From d921b64dbd32fbada1419132e864c3f12a712792 Mon Sep 17 00:00:00 2001 From: Arsenii Shatokhin Date: Thu, 11 Apr 2024 12:59:34 +0400 Subject: [PATCH] Handle cases when agent from settings was removed --- agency_swarm/agents/agent.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/agency_swarm/agents/agent.py b/agency_swarm/agents/agent.py index 49233c00..04bb10d3 100644 --- a/agency_swarm/agents/agent.py +++ b/agency_swarm/agents/agent.py @@ -5,6 +5,7 @@ from typing import List from deepdiff import DeepDiff +from openai import NotFoundError from agency_swarm.tools import BaseTool, ToolFactory from agency_swarm.tools import Retrieval, CodeInterpreter @@ -147,14 +148,17 @@ def init_oai(self): # iterate settings and find the assistant with the same name for assistant_settings in settings: if assistant_settings['name'] == self.name: - self.assistant = self.client.beta.assistants.retrieve(assistant_settings['id']) - self.id = assistant_settings['id'] - # update assistant if parameters are different - if not self._check_parameters(self.assistant.model_dump()): - print("Updating assistant... " + self.name) - self._update_assistant() - self._update_settings() - return self + try: + self.assistant = self.client.beta.assistants.retrieve(assistant_settings['id']) + self.id = assistant_settings['id'] + # update assistant if parameters are different + if not self._check_parameters(self.assistant.model_dump()): + print("Updating assistant... " + self.name) + self._update_assistant() + self._update_settings() + return self + except NotFoundError: + continue # create assistant if settings.json does not exist or assistant with the same name does not exist self.assistant = self.client.beta.assistants.create(