| import os |
| from tools import all_tools |
| from dotenv import load_dotenv |
| from smolagents import CodeAgent, PromptTemplates, LiteLLMModel |
| import logfire |
| import litellm |
|
|
| load_dotenv() |
|
|
| logfire.configure(token=os.getenv("LOGFIRE_TOKEN")) |
| litellm.callbacks = ["logfire"] |
| litellm.success_callback = ["logfire"] |
|
|
| model = LiteLLMModel( |
| model_id="openrouter/openai/gpt-4.1-mini", |
| api_key=os.getenv("OPENROUTER_API_KEY"), |
| max_tokens=5045 |
| ) |
|
|
| |
| with open("system_prompt.txt", "r", encoding="utf-8") as f: |
| prompts = PromptTemplates(system_prompt = f.read()) |
|
|
| agent = CodeAgent( |
| model=model, |
| tools=all_tools, |
| |
| additional_authorized_imports=['numpy', |
| 'pandas', |
| 'subprocess', |
| 'scipy', |
| 'csv'], |
| add_base_tools=True |
| ) |
|
|
| class BasicAgent: |
| def __init__(self): |
| print("BasicAgent initialized.") |
| self.agent = agent |
| def __call__(self, question: str) -> str: |
| print(f"Agent received question (first 50 chars): {question[:50]}...") |
| fixed_answer = self.agent.run(question) |
| print(f"Agent returning fixed answer: {fixed_answer}") |
| return fixed_answer |