| import os |
| from smolagents import CodeAgent, DuckDuckGoSearchTool, OpenAIServerModel, VisitWebpageTool, LiteLLMModel |
| from tools.attached_files import csv_reader, excel_reader, transcribe_audio |
| from tools.basic_math import * |
| from tools.browser import arvix_search, wiki_search |
|
|
| def get_agent(provider:str) -> CodeAgent: |
| search_tool = DuckDuckGoSearchTool(max_results=5) |
| web_page_tool = VisitWebpageTool(max_output_length=1_000_000) |
|
|
| codestral_key = os.getenv('CODESTRAL_API_KEY') |
| groq_key = os.getenv('GROQ_API_KEY') |
|
|
| model = None |
|
|
| if provider=='groq': |
| model = LiteLLMModel( |
| model_id="groq/deepseek-r1-distill-llama-70b", |
| api_base="https://api.groq.com/openai/v1/chat/completions", |
| api_key=groq_key) |
|
|
| else: |
| model = OpenAIServerModel( |
| model_id='codestral-latest', |
| api_base="https://codestral.mistral.ai/v1/chat/completions", |
| api_key=codestral_key) |
|
|
| return CodeAgent(tools=[search_tool, web_page_tool, add, subtract, multiply, divide, modulus, rounder, power, square_root, csv_reader, excel_reader, transcribe_audio, wiki_search, arvix_search], model=model, additional_authorized_imports=['random', 'time'], add_base_tools=True) |