为什么建立独立 Python 服务
网站仍使用 Next.js,但 Agent 核心放在 agent_service。Python 生态中的文档加载器、Retriever、评估和 LangGraph 可以独立演进。
@app.post("/chat")
async def chat(request: ChatRequest):
return StreamingResponse(
event_stream(request.messages),
media_type="text/event-stream",
)
读取 LangChain token
messages 流也经过工具节点,页面只转发自然语言,避免暴露内部 RAG 数据。
async for token, metadata in personal_agent.astream(
payload, stream_mode="messages"
):
if metadata.get("langgraph_node") == "tools":
continue
if isinstance(token.content, str) and token.content:
event = {"choices": [{"delta": {"content": token.content}}]}
yield f"data: {json.dumps(event, ensure_ascii=False)}\n\n"
本地运行
python -m venv .venv
.\.venv\Scripts\python -m pip install -r agent_service\requirements.txt
.\.venv\Scripts\python -m uvicorn main:app --app-dir agent_service --port 8000
以后 Python 服务迁移到容器或云平台时,只需修改 Next.js 的 AGENT_API_URL。