| from llama_index.llms.google_genai import GoogleGenAI |
| from llama_index.tools.arxiv import ArxivToolSpec |
| from llama_index.tools.wikipedia import WikipediaToolSpec |
| from llama_index.tools.duckduckgo import DuckDuckGoSearchResultsToolSpec |
| from llama_index.core.tools import FunctionTool |
| from llama_index.core.agent.workflow import AgentWorkflow |
|
|
| from tools import interpret_python_math_code |
| from gaia_system_prompt import GAIA_SYSTEM_PROMPT |
|
|
| import os |
|
|
| GEMINI_API_KEY = os.getenv("GEMINI_TOKEN") |
| GEMINI_MODEL_NAME = "gemini-2.5-flash-preview-04-17" |
|
|
| class FinalAgent: |
| def __init__(self): |
| |
| self.llm = GoogleGenAI(model=GEMINI_MODEL_NAME, api_key=GEMINI_API_KEY) |
|
|
| |
| self.tools = [ |
| FunctionTool.from_defaults( |
| func=interpret_python_math_code, |
| name="InterpretPythonMathCode", |
| description="Interprets Python code for mathematical expressions." |
| ), |
| DuckDuckGoSearchResultsToolSpec(), |
| WikipediaToolSpec(), |
| ArxivToolSpec() |
| ] |
|
|
| |
| self.agent = AgentWorkflow( |
| llm=self.llm, |
| tools=self.tools, |
| system_prompt=GAIA_SYSTEM_PROMPT |
| ) |
|
|
| print("FinalAgent initialized.") |
| def __call__(self, question: str) -> str: |
| |
| print(f"Agent received question (first 50 chars): {question[:50]}...") |
| fixed_answer = "This is a default answer." |
| print(f"Agent returning fixed answer: {fixed_answer}") |
|
|
| |
| response = self.agent.run(question) |
| |
| return response |