大家好,我是【同学小张】。持续学习,持续干货输出,关注我,跟我一起学AI大模型技能。
LangServe 用于将 Chain 或者 Runnable 部署成一个 REST API 服务。
0. 安装
- 同时安装langserve的服务端和客户端。
pip install "langserve[all]"
- 只安装客户端
pip install "langserve[client]"
- 只安装服务端
pip install "langserve[server]"
1. 代码及运行结果
1.1 服务端代码
import os
# 加载 .env 到环境变量from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())#!/usr/bin/env pythonfrom fastapi import FastAPI
from langchain.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langserve import add_routes
import uvicorn
app = FastAPI(
title="LangChain Server",
version="1.0",
description="A simple api server using Langchain's Runnable interfaces",)
prompt_template ="""
我的名字叫【{name}】,我的个人介绍是【{description}】。
请根据我的名字和介绍,帮我想一段有吸引力的自我介绍的句子,以此来吸引读者关注和点赞我的账号。
"""
model = ChatOpenAI()
prompt = ChatPromptTemplate.from_template(prompt_template)
add_routes(
app,
prompt | model,
path="/self_introduction",)if __name__ =="__main__":
uvicorn.run(app, host="localhost", port=9999)
从代码来看创建LangServe的重点:
(1)创建一个FastAPI实例:app
(2)
add_routes
函数直接将
app, chain, path
加进去
path
:访问路径(接口) (3)通过uvicorn.run
跑起来
注意上面的访问路径为
/self_introduction
,端口为9999,客户端要与之对应。
运行之后:
补充知识:Uvicorn是什么?
- 基于 uvloop 和 httptools 构建的非常快速的 ASGI 服务器
- 它不是一个 Web 框架,而是一个服务器,这是 FastAPI 框架提供的东西
- 它是 FastAPI 的推荐使用的服务器
1.2 客户端代码
import requests
response = requests.post("http://localhost:9999/self_introduction/invoke",
json={'input':{'name':'同学小张','description':'热爱AI,持续学习,持续干货输出'}})print(response.json())
就是发送一个post请求,注意url路径和端口号与serve端对应。url路径除了接口后面还加一个
invoke
,别漏了。
运行之后(请确保你的服务代码先运行起来):
大功告成。
本文比较简单,通过一个例子带大家看了下LangServe的使用方法。它其实就是将LangChain程序制作成了一个 FastAPI 服务,方便部署和发布。重点在
add_routes
函数。
如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~
- 大家好,我是同学小张
- 欢迎 点赞 + 关注 👏,促使我持续学习,持续干货输出。
- +v: jasper_8017 一起交流💬,一起进步💪。
- 微信公众号也可搜【同学小张】 🙏
- 踩坑不易,感谢关注和围观
本站文章一览:
版权归原作者 同学小张 所有, 如有侵权,请联系我们删除。