当前位置: 首页 > java >正文

【大模型系列】使用fastapi为langchain应用快速对外提供restful api

我们可以通过fastapi为我们的langchain应用向外暴露endpoint,操作如下:

安装依赖
# 安装 LangServe
pip install langserve[all]# 也可以只安装一端
pip install "langserve[client]"
pip install "langserve[server]"pip install uvicorn
pip install fastapi

fastapi 入门可以参考: https://www.runoob.com/fastapi/fastapi-tutorial.html

官网: https://fastapi.tiangolo.com/

接口开发和调试

以下是一个简单的例子

from fastapi import FastAPI
from langchain_openai import ChatOpenAI
from langserve import add_routes
from pydantic import BaseModel
import uvicorn
from langchain.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParserapp = FastAPI()@app.get("/")
def read_root():return {"message": "Hello, World!"}class Data(BaseModel):output: strdef llm_chain():prompt = PromptTemplate.from_template("写一关于{subject}首诗,30字以内")llm = ChatOpenAI(model="gpt-4o-mini")chain = prompt | llm | StrOutputParser()return chain# Add routes immediately when the module is imported
add_routes(app,llm_chain(),path="/llm_chain",# 注意:如果要允许其他程序通过接口调用,则这个参数需要加;启用enabled_endpoints等n个端点(可以自定义名称,playground,stream_log是调试必须要的)enabled_endpoints=("invoke", "batch", "config_hashes", "playground", "stream_log"),
)if __name__ == "__main__":uvicorn.run(app, host="0.0.0.0", port=8000)

执行main方法启动
在这里插入图片描述
浏览器访问:http://localhost:8000/llm_chain/playground/ 可进入api调试界面

在这里插入图片描述


点击start,调用接口调试

在这里插入图片描述

接口调用

参考如下代码

import requestsresponse = requests.post(
# 这里的请求路径需要在上面的enabled_endpoints白名单里"http://localhost:8000/llm_chain/invoke", json={"input": {"subject": "夏天"}}
)
print(response.json())

返回值如下:
在这里插入图片描述

over~~

http://www.xdnf.cn/news/4618.html

相关文章:

  • 路由交换机的 ROMMON 模式
  • 鸿蒙 使用动画 简单使用
  • 学习黑客Linux 系统状态管理
  • 【Python】算法笔记
  • C++ 线程池:原理、实现与高级实现
  • 电商双11美妆数据分析(2)
  • 【anylogic_04】地铁站的人流仿真
  • 易境通海外仓系统:如何高效管理尾程派送订单?
  • 1:点云处理—三种显示方法(自建点云)
  • 这些单词有什么内在联系吗?
  • Linux 内核学习(6) --- Linux 内核基础知识
  • 第18篇:Linux设备驱动程序入门<五>
  • 股票基础知识 | 投资理财(1)【未完待续】
  • 【PhysUnits】2 Scalar<T> 标量元组结构体(scalar/mod.rs)
  • leetcode刷题日记——随机链表的复制
  • 应急响应靶场web3:知攻善防实验室
  • 使用英伟达 Riva 和 OpenAI 构建 AI 聊天机器人
  • 普通IT的股票交易成长史--20250507晚复盘
  • J2 WebScarab 安装指南详细步骤与配置方法
  • 数据报(Datagram)与虚电路(Virtual Circuit)的区别
  • SQL Server 存储过程开发三层结构规范
  • 生物化学笔记:神经生物学概论12 大脑全景图 知觉、行为和语言 注意力
  • vue3的页面跳转方法汇总(路由跳转,组件跳转)
  • 微信小程序开发,登录注册实现
  • ​​Dongle​​(中文常称“加密狗”或“适配器”)
  • 智慧医疗时代下的医疗设备智能控费系统解决方案
  • 【C++】C++中的类型转换
  • GoFrame框架下优雅使用Redis:从入门到实战的最佳实践
  • docker搭建DeepSeek+Dify构建个人知识库
  • 在 Ubuntu 系统中,挂起(Suspend)和休眠(Hibernate)