Freddolin's picture
Update agent.py
c36be6c verified
raw
history blame
1.43 kB
from transformers import pipeline
from tools.search_tool import search_duckduckgo
from tools.asr_tool import transcribe_audio
from tools.excel_tool import analyze_excel
class GaiaAgent:
def __init__(self):
self.llm = pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.2", device="cpu")
def __call__(self, question: str):
trace = ""
question_lower = question.lower()
if "http" in question_lower or "wikipedia" in question_lower:
trace += "Detected URL or web reference. Performing search...\n"
result = search_duckduckgo(question)
trace += result
return result.strip(), trace
elif question_lower.endswith(".mp3"):
trace += "Detected audio reference. Transcribing audio...\n"
result = transcribe_audio(question)
trace += result
return result.strip(), trace
elif question_lower.endswith(".xlsx") or question_lower.endswith(".csv"):
trace += "Detected Excel file. Analyzing...\n"
result = analyze_excel(question)
trace += result
return result.strip(), trace
else:
trace += "General question. Using local model...\n"
output = self.llm(question, max_new_tokens=256, do_sample=False)[0]["generated_text"]
trace += output
return output.strip(), trace