生态与工具 中级

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 为每个部署的链自动提供的可视化调试界面路径是?