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)