GAIA_agent / app.py
Rachel0619's picture
updated app.py
da23c7b
Raw History Blame Contribute Delete
2.06 kB
import yaml
import os
from smolagents import GradioUI, CodeAgent, InferenceClientModel, PythonInterpreterTool
import pandas as pd
import requests
from io import BytesIO
from huggingface_hub import InferenceClient
# Get current directory path
CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
from tools.answer_question import SimpleTool as AnswerQuestion
from tools.web_search import DuckDuckGoSearchTool as WebSearch
from tools.visit_webpage import VisitWebpageTool as VisitWebpage
from tools.final_answer import FinalAnswerTool as FinalAnswer
class GAIAAgent:
def __init__(self):
CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
model = InferenceClientModel(
model_id="Qwen/Qwen2.5-Coder-32B-Instruct",
provider="together",
token=os.getenv("HF_TOKEN")
)
with open(os.path.join(CURRENT_DIR, "prompts.yaml"), 'r') as stream:
prompt_templates = yaml.safe_load(stream)
answer_question = AnswerQuestion()
web_search = WebSearch()
visit_webpage = VisitWebpage()
final_answer = FinalAnswer()
python_interpreter = PythonInterpreterTool()
self.agent = CodeAgent(
model=model,
tools=[
answer_question,
web_search,
visit_webpage,
python_interpreter,
final_answer,
],
managed_agents=[],
max_steps=15,
verbosity_level=1,
grammar=None,
planning_interval=3,
name='gaia_agent',
description='Agent for answering GAIA evaluation questions',
executor_type='local',
executor_kwargs={},
max_print_outputs_length=None,
prompt_templates=prompt_templates
)
def run(self, question: str) -> str:
return self.agent.run(question)
agent = GAIAAgent()
if __name__ == "__main__":
GradioUI(agent.agent).launch()