
langserve
把 LangChain 应用一键变成 REST API,快速上线
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 2323
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Python 环境与 pip(用于安装 langserve)
- LangChain 构建的可运行对象(chain/agent/retriever 等)
- 模型服务密钥,例如 OPENAI_API_KEY
- 项目依赖管理使用 poetry(README 说明)
- 云部署需对应 CLI:AWS Copilot CLI / Azure CLI / gcloud,以及 Dockerfile
安装与启动步骤
-
1安装 LangServe
同时需要客户端和服务端时安装 all 全部依赖,避免后续缺包。
pip install "langserve[all]" -
2按需分开安装
只写客户端代码装 client,只做服务端装 server;二者与 all 互斥选择其一即可。
pip install "langserve[client]" pip install "langserve[server]" -
3配置模型密钥
LangServe 本身不含模型,链里用到的模型密钥需通过环境变量注入。
export OPENAI_API_KEY="sk-xxxxxxxx" -
4定义可运行路由
打开 server.py,用 add_routes 把 LangChain 对象挂到指定 path 上,README 明确要求在此处编辑。
add_routes(app, RunnableLambda(func), path="/foo") -
5部署到 AWS
使用 AWS Copilot CLI 指定 Load Balanced Web Service 类型和 Dockerfile 完成部署。
copilot init --app my-app --name my-service --type 'Load Balanced Web Service' --dockerfile './Dockerfile' --deploy -
6部署到 Azure
通过 Azure Container Apps 部署,README 指定目标端口为 8001,并把密钥作为环境变量传入。
az containerapp up --name my-container-app --source . --resource-group my-resource-group --environment my-environment --ingress external --target-port 8001 --env-vars=OPENAI_API_KEY=sk-xxxxxxxx -
7部署到 GCP
使用 Cloud Run 部署,端口同样为 8001,允许未认证访问并设置环境变量。
gcloud run deploy my-service --source . --port 8001 --allow-unauthenticated --region us-central1 --set-env-vars=OPENAI_API_KEY=sk-xxxxxxxx
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
OPENAI_API_KEY | 是 | 链中调用的模型密钥,通过环境变量注入服务 | sk-xxxxxxxx |
path | 是 | add_routes 中挂载 runnable 的 URL 路径 | /foo |
如何确认成功
访问部署后服务的 /docs 页面,能看到自动生成的 Swagger/JSONSchema API 文档与 Playground 即成功。
常见问题
Q:这个项目还维护吗?
A:已自 2024 年 11 月 18 日起废弃,官方建议新项目改用 LangGraph Platform,并只接受社区的 bug 修复,不再接受新功能贡献。
Q:客户端和服务端需要分开安装吗?
A:可以。pip install "langserve[client]" 用于客户端调用代码,pip install "langserve[server]" 用于服务端,二者都要则装 langserve[all]。
Q:JavaScript 项目怎么调用?
A:LangServe 的 JavaScript 客户端在 LangChain.js 中提供,可按其文档接入已部署的服务端。
Q:部署到云平台需要自己写服务吗?
A:不需要额外框架,但 AWS 部署需准备 Dockerfile 并安装 AWS Copilot CLI,Azure 和 GCP 则分别使用 az containerapp 与 gcloud run 命令。
注意事项
- 项目已废弃(DEPRECATED),新项目建议迁移到 LangGraph Platform,README 提供 MIGRATION.md 迁移指南。
- README 使用 poetry 管理依赖,改造示例工程时应遵循其 poetry 文档。
- Azure Container Apps 与 Cloud Run 的示例目标端口均为 8001,需与服务监听端口保持一致。
- 云平台部署命令中的 app、service、resource-group 等名称需替换为你自己的真实名称。
核心亮点
- 一行代码将链/代理包装成 REST API,开发效率高
- 内置流式、批处理和异步支持,适配多种调用场景
- 自动生成 OpenAPI 文档和 Playground,调试直观
不足之处
- 仅支持 Python,对 JavaScript/TypeScript 开发者不友好
- 部署依赖 LangChain 生态,非 LangChain 项目无法使用
- 文档和社区尚在完善,部分高级用法需自行摸索
适用场景
- 快速将 LLM 应用封装成后端服务供前端调用
- 为内部工具或外部客户提供标准化的 LLM API
- 在云平台上部署可扩展的 LLM 服务,配合监控
替代项目
FastAPI、Gradio、Chainlit
上一篇:nextpy
下一篇:agentUniverse
同类项目推荐
Lynkr
开源
给 Claude Code 装个代理,看清每次请求,调试提速
Streamline your workflow with Lynkr, a CLI tool that acts as an HTTP proxy for effic···
aikit
开源
一套工具跑通大模型推理、微调与多卡扩展
Razer AIKit is an AI development toolkit with fast LLM inferencing, fine-tuning, and···
sponge
开源
拖拽生成 Go 后端代码,快速搭建稳定服务
A powerful and easy-to-use Go development framework that enables you to effortlessly···
langchain-rust
开源
用 Rust 写 LLM 应用,类型安全、性能好、部署轻
️LangChain for Rust, the easiest way to write LLM-based programs in Rust
swiftide
开源
用 Rust 快速构建流式 LLM 应用,索引查询一把梭
Fast, streaming indexing, query, and agentic LLM applications in Rust
skills
开源
让 AI 代理真正会写 Expo 和 EAS 命令
A collection of AI agent skills for working with Expo projects and Expo Application ···
langchain-prefect
开源
让 Langchain 应用拥有生产级工作流编排,自动重试监控不操心
Tools for using Langchain with Prefect
compass
开源
把代码库变成知识图谱,让 AI 更懂你的项目
Native, local-first knowledge graph engine for code and project artifacts—inspired ···
claude-desktop-cn
开源
让 Claude 桌面端说中文,本地代码管理更顺手
中文 Claude Desktop / Claude Code 桌面客户端:中文界面、本地 Code 工作区、GitHub 导入···