|
2 | 2 | from datetime import timedelta |
3 | 3 |
|
4 | 4 | from pydantic import BaseModel |
5 | | -from restack_ai.agent import agent, import_functions, log |
| 5 | +from restack_ai.agent import NonRetryableError, agent, import_functions, log |
6 | 6 |
|
7 | 7 | with import_functions(): |
8 | 8 | from src.functions.llm_chat import LlmChatInput, Message, llm_chat |
@@ -32,13 +32,18 @@ async def messages(self, messages_event: MessagesEvent) -> list[Message]: |
32 | 32 | log.info(f"Received message: {messages_event.messages}") |
33 | 33 | self.messages.extend(messages_event.messages) |
34 | 34 |
|
35 | | - assistant_message = await agent.step( |
36 | | - function=llm_chat, |
37 | | - function_input=LlmChatInput(messages=self.messages), |
38 | | - start_to_close_timeout=timedelta(seconds=120), |
39 | | - ) |
40 | | - self.messages.append(Message(role="assistant", content=str(assistant_message))) |
41 | | - return self.messages |
| 35 | + try: |
| 36 | + assistant_message = await agent.step( |
| 37 | + function=llm_chat, |
| 38 | + function_input=LlmChatInput(messages=self.messages), |
| 39 | + start_to_close_timeout=timedelta(seconds=120), |
| 40 | + ) |
| 41 | + except Exception as e: |
| 42 | + error_message = f"Error during llm_chat: {e}" |
| 43 | + raise NonRetryableError(error_message) from e |
| 44 | + else: |
| 45 | + self.messages.append(Message(role="assistant", content=str(assistant_message))) |
| 46 | + return self.messages |
42 | 47 |
|
43 | 48 | @agent.event |
44 | 49 | async def end(self, end: EndEvent) -> EndEvent: |
|
0 commit comments