# x-langserve **Repository Path**: chain-engine/x-langserve ## Basic Information - **Project Name**: x-langserve - **Description**: 一个完整的 LangServe(将 LangChain 应用快速部署为 REST API 服务) 学习与实践项目 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-15 - **Last Updated**: 2026-02-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # x-langserve ## 项目定位 `x-langserve` 是一个完整的 LangServe(将 LangChain 应用快速部署为 REST API 服务) 学习与实践项目,旨在帮助开发者快速掌握如何将 LangChain 应用部署为 REST API 服务。 ## 什么是 LangServe `LangServe` 是 `LangChain` 生态系统中的核心组件,专为将 LangChain 应用部署为生产级 REST API 服务而设计。它提供了以下核心功能: - **简单部署**:一行代码即可将任何 LangChain 链部署为 API 服务 - **自动文档**:自动生成 OpenAPI 规范和交互式 API 文档 - **类型安全**:使用 Pydantic 模型确保请求和响应的类型正确性 - **流式支持**:原生支持流式响应,适用于大语言模型的生成过程 - **客户端生成**:支持为多种编程语言自动生成客户端代码 - **监控集成**:内置与 Prometheus 等监控系统的集成 ### LangServe 与 LangChain 的关系: - LangChain 提供了构建 LLM 应用的核心框架和工具 - LangServe 专注于将这些应用部署为可访问的 API 服务 - 两者紧密集成,共同构成了从开发到部署的完整链路 ## 项目结构 ``` x-langserve/ ├── .gitee/ # Gitee 相关配置 ├── .gitignore # Git 忽略文件 ├── LICENSE # MIT 许可证 ├── README.md # 项目说明文档 ├── README.en.md # 英文项目说明文档 ├── app.py # 主应用入口 ├── chains/ # LangChain 链定义 ├── models/ # 模型配置 ├── schemas/ # 请求/响应模式定义 ├── tests/ # 测试文件 └── requirements.txt # 项目依赖 ``` ## 功能特性 - **基础示例**:包含完整的 LangServe 部署示例 - **多种链类型**:展示不同类型的 LangChain 链部署 - **API 文档**:自动生成的 OpenAPI 文档 - **类型安全**:使用 Pydantic 进行请求/响应验证 - **客户端生成**:支持多种语言的客户端代码生成 - **部署指南**:提供详细的部署步骤和最佳实践 ## 快速开始 ### 环境要求 - Python 3.8+ - pip 20.0+ ### 安装依赖 本项目使用 [uv](https://docs.astral.sh/uv/) 进行依赖管理,它是一个快速、现代的 Python 包管理器。 ```bash # 安装依赖 uv sync # 激活虚拟环境 uv run python --version ``` ### 启动服务 ```bash uv run python app.py ``` 服务启动后,可通过以下地址访问: - API 服务:http://localhost:8000 - API 文档:http://localhost:8000/docs - 交互式 Playground:http://localhost:8000/playground ## 使用示例 ### 1. 基本链调用 ```python from langserve import RemoteRunnable # 创建远程运行实例 runnable = RemoteRunnable("http://localhost:8000/chain") # 调用链 result = runnable.invoke({"input": "你好,世界!"}) print(result) ``` ### 2. 流式调用 ```python from langserve import RemoteRunnable # 创建远程运行实例 runnable = RemoteRunnable("http://localhost:8000/chain") # 流式调用 for chunk in runnable.stream({"input": "你好,世界!"}): print(chunk, end="", flush=True) ``` ## 部署选项 ### 本地开发 ```bash uv run python app.py ``` ### 使用 Docker ```bash # 构建镜像 docker build -t x-langserve . # 运行容器 docker run -p 8000:8000 x-langserve ``` ### 部署到云服务 - **AWS Lambda**:使用 Serverless Framework 部署 - **Google Cloud Run**:使用 gcloud 命令行工具部署 - **Azure Functions**:使用 Azure CLI 部署 - **Heroku**:使用 Heroku CLI 部署 ## 学习资源 - [LangServe 官方文档](https://python.langchain.com/docs/serve/) - [LangChain 官方文档](https://python.langchain.com/docs/) - [FastAPI 官方文档](https://fastapi.tiangolo.com/) - [Pydantic 官方文档](https://docs.pydantic.dev/) ## 贡献指南 1. **Fork 本仓库** 2. **新建分支**:`git checkout -b feature/your-feature` 3. **提交更改**:`git commit -m "Add your feature"` 4. **推送到远程**:`git push origin feature/your-feature` 5. **新建 Pull Request** ## 许可证 本项目采用 MIT 许可证,详情请见 [LICENSE](LICENSE) 文件。 ## 联系方式 - 项目地址:[https://gitee.com/chain-engine/x-langserve](https://gitee.com/chain-engine/x-langserve) - 问题反馈:[https://gitee.com/chain-engine/x-langserve/issues](https://gitee.com/chain-engine/x-langserve/issues)