什么是 LangServe

LangServe 是一个工具,用于快速部署基于 LangChain 构建的应用程序。它简化了将 LangChain 链、代理或可运行对象转换为 REST API 的过程,并内置了 Playground 功能,方便测试和交互。

核心功能

  • 快速部署:将 LangChain 对象转换为可扩展的 API 端点。
  • 自动生成文档:基于 OpenAPI 和 JSON Schema 自动生成 API 文档。
  • 内置 Playground:提供交互式界面,方便测试模型行为。
  • 生产就绪:支持批处理、异步处理、监控等生产级需求。

安装方法

通过 pip 安装 LangServe:

pip install "langserve[all]"

基本用法

  1. 创建 LangChain 应用(如链或代理):
from langchain.chains import LLMChain
from langchain.prompts import ChatPromptTemplate
from langchain_community.llms import OpenAI

prompt = ChatPromptTemplate.from_template("回答关于{topic}的问题")
chain = LLMChain(llm=OpenAI(), prompt=prompt)

  1. 使用 LangServe 部署:
from fastapi import FastAPI
from langserve import add_routes

app = FastAPI()
add_routes(app, chain, path="/my_chain")

# 如果下一节的启动方式不行就直接运行本文件
if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

  1. 启动服务:
uvicorn main:app --reload

高级配置

  • 自定义输入/输出:通过 input_schemaoutput_schema 控制 API 数据结构。
  • 批处理支持:启用 batch=True 提高高负载场景性能。
  • 身份验证:集成 FastAPI 的安全中间件。

部署选项

  • 本地开发:使用 Uvicorn 或 Gunicorn 运行。
  • 云部署:支持部署到 AWS Lambda、Google Cloud Run 等平台。
  • Docker 容器:提供官方 Docker 镜像简化部署。

调试与监控

  • 访问 /docs 查看自动生成的 API 文档。
  • 使用 /playground 交互测试端点。
  • 集成 Prometheus 指标收集监控数据。

常见问题

  • 性能优化:对于高并发场景,建议启用批处理并使用异步处理。
  • 版本控制:通过 API 路径前缀(如 /v1/...)管理不同版本。
  • 跨域问题:配置 FastAPI CORS 中间件解决跨域访问限制。
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐