123456789101112131415161718192021222324252627282930313233343536 |
- from fastapi import APIRouter, Query
- from fastapi.responses import StreamingResponse
- import sys
- import os
- sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
- from agents.simple_agent import simple_info_agent # 导入基于agno框架的信息收集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")
|