Spaces:
Sleeping
Sleeping
File size: 1,154 Bytes
646085c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
from fastapi import APIRouter
from langchain.globals import set_verbose
from controller.question import Question
from model.model_ai import ModelAI
from tools.duckduckgo import search
from tools.time import time
set_verbose(True) # Mensajes de depuración desactivados
router = APIRouter(
prefix="/IA",
tags=["Ask Agent"],
responses={404: {"description": "No encontrado"}},
)
model = ModelAI()
# Se añade las herramientas de tiempo y búsqueda al agente
tools = [time, search]
# esto incluye el uso de llm + memoria + herramientas
agent_executor = model.agent_executer(tools)
@router.get("/ask")
def ask_question():
"""Devuelve el formato de pregunta esperado."""
return {"input": "Pregunta"}
@router.post("/ask")
async def ask_question(question: Question):
"""Recibe una pregunta y devuelve una respuesta del agente ejecutor."""
try:
# Usamos ainvoke para realizar la llamada asíncrona
respuesta = await agent_executor.ainvoke({"input": question.input})
return {"respuesta": respuesta["output"]}
except Exception as e:
return {"error": str(e)}
|