Python开发AI智能体(四)———LangServe部署应用程序

前言

上篇文章给大家介绍了在Langchain框架中如何定义提示词模板

这篇文章将介绍LangChain 生态系统中的一个工具LangServe


一、LangServe是什么?

LangServe 是 LangChain 生态系统中的一个工具,旨在帮助开发者将基于 LangChain 开发的链(Chain)、代理(Agent)或其他可运行对象(Runnable)快速部署为 REST API 服务。它基于 FastAPI 构建,简化了将 AI 应用转化为标准化接口的过程,方便与其他系统集成。

核心功能与特点

  1. 快速部署
    只需少量代码即可将 LangChain 对象(如链、检索器、代理)转换为 API 端点,无需手动编写路由或序列化逻辑。

  2. 自动 API 文档
    集成 FastAPI 的 Swagger UI,自动生成交互式 API 文档,支持开发者直接测试接口。

  3. 异步支持
    原生支持异步请求处理,适合高并发场景,提升推理任务的效率。

  4. 与 LangChain.js 集成
    生成的 API 可直接被 LangChain.js 调用,方便前后端协作开发 AI 应用。

  5. 简化开发流程
    开发者聚焦于业务逻辑(如链的设计),而无需处理 HTTP 请求解析、响应格式化等底层细节。

二、编写代码

1.大模型调用部分

这部分代码在上一篇文章中已经做过了详细介绍,这里就不多叙述了

# 调用AI检测平台(langSmith)
import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = 'XXXX'
os.environ["LANGCHAIN_PROJECT"] = "智谱AI"

#调用智谱AI API
os.environ["ZHIPUAI_API_KEY"] = "XXXXX"

#安装第三方库集成
#pip install langchain_community
#调用第三方库
from langchain_community.chat_models import ChatZhipuAI
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate

#调用大语言模型
model = ChatZhipuAI(model_name='glm-4-flash')

# 创建返回的数据解析器
parser = StrOutputParser()

# 定义提示模板
prompt_template = ChatPromptTemplate.from_messages([
      ('system','请将下面的内容翻译成{language}'),
      ('user',"{text}")
])
#得到链
chain = prompt_template | model |parser


#调用chain
print(chain.invoke({'language':'English','text':'今天心情非常好,因为中午吃了汉堡'}))

2.安装第三方库langserve

pip install langserve[all]

3.安装第三方库FastAPI 

由于langServe工具是基于FastAPI构建的,所以我们这里需要先安装FastAPI

pip install fastapi

4.调用第三方库

from langserve import add_routes
from fastapi import FastAPI

5.创建FastAPI应用 

app = FastAPI(title='我的Langchain服务',version='v1.0',description='使用Langchain翻译任何语句的服务器')
  • title:构建服务的名称,可自定义

  • version: 构建服务的版本,可自定义

  • description:构建服务的功能,可自定义

6.添加路由

add_routes(
    app,
    chain,
    path="/chain"

)
  • app:你所创建的FastAPI应用,这里为app

  • chain: 创建的链

  • path:路由路径,可自定义

7.构建服务器

if __name__ == "__main__":
    #构建服务器
    import uvicorn

    uvicorn.run(app,host="localhost",port=8000)

8.完整代码 

#安装第三方库  pip install langserve[all]
# 调用AI检测平台(langSmith)
import os

os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = 'xxxxxxxx'
os.environ["LANGCHAIN_PROJECT"] = "智谱AI"

#调用智谱AI API
os.environ["ZHIPUAI_API_KEY"] = "xxxxxxxxx"

#安装第三方库集成
#pip install langchain_community
#调用第三方库
from langchain_community.chat_models import ChatZhipuAI
from langchain_core.output_parsers import StrOutputParser
from fastapi import FastAPI
from langchain_core.prompts import ChatPromptTemplate
from langserve import add_routes


#调用大语言模型
model = ChatZhipuAI(model_name='glm-4-flash')

# 创建返回的数据解析器
parser = StrOutputParser()

# 定义提示模板
prompt_template = ChatPromptTemplate.from_messages([
      ('system','请将下面的内容翻译成{language}'),
      ('user',"{text}")
])
#得到链
chain = prompt_template | model |parser


#调用chain
print(chain.invoke({'language':'English','text':'今天心情非常好,因为中午吃了汉堡'}))

#创建fastAPI应用
app = FastAPI(title='我的Langchain服务',version='v1.0',description='使用Langchain翻译任何语句的服务器')
#添加路由
add_routes(
    app,
    chain,
    path="/chain"

)

if __name__ == "__main__":
    #构建服务器
    import uvicorn

    uvicorn.run(app,host="localhost",port=8000)

9.运行结果

 运行后终端控制台出现如下界面代表服务构建成功

10.测试 

关于服务接口测试有两种方法

1.借助于第三方工具,例如Apipost

2.利用代码进行测试,我这里介绍第二种方式

from langserve import RemoteRunnable

if __name__ == "__main__":
    client = RemoteRunnable('http://127.0.0.1:8000/chain/')
    print('nihao')

新建.py文件,运行上述代码,终端控制台不报错及代表接口测试成功 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值