Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, HTTPException | |
| from pydantic import BaseModel | |
| from langchain_core.messages import HumanMessage | |
| from src.agents.main_agent import multi_agent_graph | |
| from src.agents.rag_agent import invocation_state | |
| import time | |
| invocation_state.invocation_type = 'api' | |
| app = FastAPI() | |
| # Modèle Pydantic pour valider l'entrée de l'utilisateur | |
| class UserInput(BaseModel): | |
| question: str | |
| async def ask_question(user_input: UserInput): | |
| messages = [HumanMessage(content=user_input.question)] | |
| config = {"configurable": {"thread_id": "1"}} | |
| # Mesurer le temps d'exécution | |
| start_time = time.time() | |
| try: | |
| result = await multi_agent_graph.ainvoke({"messages": messages}, config=config) | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| end_time = time.time() | |
| execution_time = end_time - start_time # Temps écoulé | |
| # Retourner la réponse | |
| response_message = result["messages"][-1].content | |
| print(f"Temps d'exécution: {execution_time:.4f} secondes") | |
| return {"response": response_message, "execution_time": execution_time} |