from fastapi import APIRouter, Query from fastapi.responses import StreamingResponse import sys import os # 导入基于agno框架的信息收集Agent sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from agents.simple_agent import simple_info_agent agents_route = APIRouter(prefix="/agents",tags=["agents"]) @agents_route.get("/stream") async def chat_stream( username: str = Query(..., description="用户名"), user_id: str = Query(..., description="用户ID"), user_message: str = Query(..., description="用户消息") ): """ SSE接口,流式输出Agent响应。 用户输入通过GET的query参数传递,包含username、user_id、user_message。 """ if not user_message: user_message = "你好,请介绍一下你自己。" def agno_stream(): """ 生成SSE数据流,逐步输出Agent的响应内容。 agno的Agent.run支持stream=True,返回事件生成器。 """ for event in simple_info_agent.run(user_message, stream=True,username=username,user_id=user_id): if hasattr(event, "content") and event.content: yield f"data: {event.content}\n\n" return StreamingResponse(agno_stream(), media_type="text/event-stream")