LangServe 与部署:把链变成服务
用 LangServe 把 LCEL 链一键暴露为 REST API(含流式),了解生产部署要点。
LangServe 一键成 API
LangServe 基于 FastAPI,把任何 Runnable 自动包装成带 REST + Playground 的服务:
pip install "langserve[all]"
from fastapi import FastAPI
from langserve import add_routes
app = FastAPI(title="我的 RAG 服务")
add_routes(app, rag_chain, path="/rag")
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
启动后自动获得:
POST /rag/invoke:同步调用;POST /rag/stream:流式输出(SSE);POST /rag/batch:并发批量;/rag/playground:可视化调试界面。
生产部署检查清单
- 密钥管理:API Key 走环境变量或密钥管理服务,绝不入库;
- 超时与重试:LLM 调用设置超时,用
.with_fallbacks()做降级; - 限流与配额:防止恶意刷量导致 token 账单爆炸;
- 输入校验:Pydantic 约束入参,防注入式提示词攻击;
- 可观测性:接入 LangSmith,保留完整 trace 便于排查;
- 流式:面向 C 端务必用 stream,首字延迟从数秒降到毫秒级。
下一步去哪
恭喜完成全部课程!建议立刻做一个自己的小项目(例如:个人知识库问答机器人),用到的正是本站全部核心知识点。
📝 课后练习
quiz-1 LangServe 为每个部署的链自动提供的可视化调试界面路径是?