Spaces:
Sleeping
Sleeping
IngoTB303
Enhance agent functionality: add new agents for audio, visual, and Python tasks; update question fetching to handle attachments; improve tool initialization and requirements.
9e58d03
| import agent_tools | |
| from smolagents import CodeAgent, AzureOpenAIServerModel | |
| import app_tokens | |
| model = AzureOpenAIServerModel( | |
| model_id = app_tokens.AZURE_OPENAI_MODEL, | |
| azure_endpoint = app_tokens.AZURE_OPENAI_ENDPOINT, | |
| api_key = app_tokens.AZURE_OPENAI_API_KEY, | |
| api_version = app_tokens.OPENAI_API_VERSION | |
| ) | |
| class BasicAgent: | |
| def __init__(self): | |
| self.web_agent = CodeAgent( | |
| model=model, | |
| tools=[#agent_tools.tavily_search, | |
| #agent_tools.duck_search, | |
| agent_tools.visit_page, | |
| agent_tools.wiki_search, | |
| agent_tools.google_search, | |
| agent_tools.final_answer | |
| ], | |
| max_steps=8, | |
| name="web_agent", | |
| description="Runs web searches for you. Can use Google, DuckDuckGo and Wikipedia for search.", | |
| add_base_tools = True | |
| ) | |
| self.audio_agent = CodeAgent( | |
| model=model, | |
| tools=[agent_tools.speech_to_text_tool, agent_tools.final_answer], | |
| max_steps=4, | |
| name="audio_agent", | |
| description="This agent can help you with converting audio to text.", | |
| add_base_tools = True | |
| ) | |
| self.py_agent = CodeAgent( | |
| model=model, | |
| tools=[agent_tools.do_python, agent_tools.final_answer], | |
| additional_authorized_imports=["json","pandas","numpy", "regex"], | |
| max_steps=8, | |
| name="python_code_agent", | |
| description="This agent can help you with executing and validating python code.", | |
| add_base_tools = True | |
| ) | |
| self.visual_agent = CodeAgent( | |
| model=model, | |
| tools=[agent_tools.visual_qa_tool, agent_tools.final_answer], | |
| max_steps=4, | |
| name="visual_qa_agent", | |
| description="This agent can help you with answering questions about pictures.", | |
| add_base_tools = True | |
| ) | |
| self.manager_agent = CodeAgent( | |
| model=model, | |
| tools=[], | |
| managed_agents=[self.web_agent, self.audio_agent, self.py_agent, self.visual_agent], | |
| planning_interval=8, | |
| verbosity_level=2, | |
| max_steps=12, | |
| add_base_tools = True | |
| ) | |
| def forward(self, question: str, attachment: str = None) -> str: | |
| if attachment: | |
| result = self.manager_agent.run(question, additional_args={"attachment": attachment}) | |
| else: | |
| result = self.manager_agent.run(question) | |
| return result | |