Skip to content

Commit 2d7a5ce

Browse files
committed
Update agent-rag example
1 parent eb94cc4 commit 2d7a5ce

File tree

2 files changed

+31
-25
lines changed

2 files changed

+31
-25
lines changed

agent_rag/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ dependencies = [
1111
"watchfiles>=1.0.4",
1212
"requests==2.32.3",
1313
"python-dotenv==1.0.1",
14-
"restack-ai>=0.0.77",
14+
"restack-ai>=0.0.78",
1515
]
1616

1717
[project.scripts]

agent_rag/src/agents/chat_rag.py

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from datetime import timedelta
22

33
from pydantic import BaseModel
4-
from restack_ai.agent import agent, import_functions, log
4+
from restack_ai.agent import agent, import_functions, log, NonRetryableError
55

66
with import_functions():
77
from src.functions.llm_chat import LlmChatInput, Message, llm_chat
@@ -26,30 +26,36 @@ def __init__(self) -> None:
2626
async def messages(self, messages_event: MessagesEvent) -> list[Message]:
2727
log.info(f"Received messages: {messages_event.messages}")
2828
self.messages.extend(messages_event.messages)
29-
30-
sales_info = await agent.step(
31-
function=lookup_sales, start_to_close_timeout=timedelta(seconds=120)
32-
)
33-
34-
system_content = f"You are a helpful assistant that can help with sales data. Here is the sales information: {sales_info}"
35-
36-
completion = await agent.step(
37-
function=llm_chat,
38-
function_input=LlmChatInput(
39-
messages=self.messages, system_content=system_content
40-
),
41-
start_to_close_timeout=timedelta(seconds=120),
42-
)
43-
44-
log.info(f"completion: {completion}")
45-
46-
self.messages.append(
47-
Message(
48-
role="assistant", content=completion.choices[0].message.content or ""
29+
try:
30+
sales_info = await agent.step(
31+
function=lookup_sales, start_to_close_timeout=timedelta(seconds=120)
4932
)
50-
)
51-
52-
return self.messages
33+
except Exception as e:
34+
error_message = f"Error during lookup_sales: {e}"
35+
raise NonRetryableError(error_message) from e
36+
else:
37+
system_content = f"You are a helpful assistant that can help with sales data. Here is the sales information: {sales_info}"
38+
39+
try:
40+
completion = await agent.step(
41+
function=llm_chat,
42+
function_input=LlmChatInput(
43+
messages=self.messages, system_content=system_content
44+
),
45+
start_to_close_timeout=timedelta(seconds=120),
46+
)
47+
except Exception as e:
48+
error_message = f"Error during llm_chat: {e}"
49+
raise NonRetryableError(error_message) from e
50+
else:
51+
log.info(f"completion: {completion}")
52+
self.messages.append(
53+
Message(
54+
role="assistant", content=completion.choices[0].message.content or ""
55+
)
56+
)
57+
58+
return self.messages
5359

5460
@agent.event
5561
async def end(self) -> EndEvent:

0 commit comments

Comments
 (0)