进军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分之一的极限"。

相关推荐
xiaoye-duck1 天前
《Linux系统编程》Linux基础开发工具 (二):详解自动化构建 make / Makefile
linux
cui_ruicheng1 天前
Linux网络编程(五):基于UDP实现DictServer
linux·服务器·网络·udp
Terasic友晶科技1 天前
答疑解惑|为DE25-Nano开发板配置Linux kernel时.config文件没有起作用是什么原因?
linux·服务器·fpga开发·linux kernel·de25-nano
晚霞的不甘1 天前
CANN Catlass 矩阵乘模板库深度解析:高性能矩阵运算的进阶之路
人工智能·python·线性代数·矩阵
爱写代码的小朋友1 天前
基于多约束遗传算法的中小学排座位优化模型研究
linux·人工智能·算法
小白学大数据1 天前
深度探索:Python 爬虫实现豆瓣音乐全站采集
开发语言·爬虫·python·数据分析
用户6757049885021 天前
Celery 太重了?这可能是你一直在找的 asyncio 任务队列
后端·python·消息队列
Cloud_Shy6181 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十一章 Python 包跟踪器 下篇)
前端·后端·python·数据分析·excel
程序员榴莲1 天前
网络编程入门 Python Socket 实现一个简单的用户认证系统
服务器·网络·python
知识分享小能手1 天前
Flask入门学习教程,从入门到精通, 认识Flask路由 — 知识点详解 (2)
python·学习·flask