进军AI大模型-Langchain程序部署

前提

安装langserve

执行命令

pip install "langserve[all]" 

代码实现

使用python性能最好的fastapi框架

python 复制代码
import os

from fastapi import FastAPI
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langserve import add_routes

# 1. 准备环境
os.environ['OPENAI_API_BASE'] = "https://api.mctools.online/v1"
# 2. 定义模型
model = ChatOpenAI(model="gpt-4o")
# 3. prompt提示词
prompt = ChatPromptTemplate.from_messages([
    ('system', '请计算以下的结果'),
    ('user', '{text}')
])
# 4. 解析
parser = StrOutputParser()
# 5. 创建链
chain = prompt | model | parser

# 6. 调用
print(chain.invoke({'text': '当x趋于正无穷,求x分之一的极限'}))


app = FastAPI(title="langchain部署服务",version="V1",description="langchian第一个应用")

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

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

执行结果

request: http://localhost:8000/chain/demo01/invoke

method:post

body:

python 复制代码
{
    "input":
    {
        "text":"当x趋于正无穷,求x分之一的极限"
    }
}

代码重构

用client调用

touch client.py

python 复制代码
from langserve import RemoteRunnable

if __name__ == '__main__':
    client = RemoteRunnable('http://127.0.0.1:8000/chain/demo01')
    print(client.invoke({'text': '当x趋于正无穷,求x分之一的极限'}))

执行结果

当 \( x \) 趋于正无穷大时,\( \frac{1}{x} \) 的极限是 0。

代码解释

这段代码使用了langserve库中的RemoteRunnable类来创建一个客户端实例,用于与运行在本地(127.0.0.1)的服务器通信,该服务器监听8000端口,并且指定路径为/chain/demo01。这通常意味着有一个后端服务在运行,能够处理来自这个客户端的请求。

当执行client.invoke({'text': '当x趋于正无穷,求x分之一的极限'})时,客户端会向服务器发送一个包含文本的问题,即"当x趋于正无穷,求x分之一的极限"。

相关推荐
.远_4 分钟前
CUDA C | 第一章 基于CUDA的异构并行计算
linux·c++·人工智能·python
学地理的小胖砸15 分钟前
【python如何使用随机模块】
开发语言·python
小汤猿人类36 分钟前
Spring AMQP ----消息转换器
服务器·python·spring
白雪公主的后妈37 分钟前
Python爬虫基础——案例:爬取豆瓣电影动画排行榜
爬虫·python·requests模块·json模块
encoding-console1 小时前
如何在centos中进行有效的网络管理
linux·centos·php·network
soragui1 小时前
【HAProxy】如何在Ubuntu下配置HAProxy服务器
linux·haproxy
猫咪-95271 小时前
ls指令详讲
linux
游客5201 小时前
图像处理 | 图像二值化
图像处理·人工智能·python·opencv·计算机视觉
烦躁的大鼻嘎1 小时前
Linux 编程入门:打造你的首个动态进度条
linux·运维·服务器
WeeJot嵌入式1 小时前
【Linux】Linux命令
linux·运维·服务器