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

简单实现一个本地ChatGPT web服务(langchain框架)

简单实现一个本地ChatGPT 服务,用到langchain框架,fastapi,并且本地安装了ollama。

依赖安装:

pip install langchain
pip install langchain_community
pip install langchain-cli # langchain v0.2 2024年5月最新版本
pip install bs4
pip install langchainhub
pip install FastAPI

实现本地chatGPT代码:

from fastapi import FastAPI
from langchain_community.llms.ollama import Ollama
from langchain_core.prompts import ChatPromptTemplate
from langserve import add_routes
from langchain_core.output_parsers import StrOutputParser
from langchain_core.messages import HumanMessage, SystemMessage# 创建LLM模型
model = Ollama(model="qwen2:7b")messages = [SystemMessage(content="你好!我是你的虚拟助理。今天我能为您做些什么?"),HumanMessage(content="你好!"),
]result = model.invoke(messages)print('-----------------------相当于启动测试模型回复-----------------------')
print(result)
print('-----------------------相当于启动测试模型回复-----------------------')parser = StrOutputParser()prompt_template = ChatPromptTemplate.from_messages([('system', "你好!我是你的虚拟助理。"),('user', '{text}')
])chain = prompt_template | model | parser# 定义web服务
app = FastAPI(title="LangChain Server",version="1.0",description="一个简单的 web API 服务",
)add_routes(app,chain,path="/chain",
)if __name__ == "__main__":import uvicornuvicorn.run(app, host="localhost", port=8000)

服务运行启动web服务结果:

 客户端调用web服务测试代码:

from langserve import RemoteRunnableremote_chain = RemoteRunnable("http://localhost:8000/chain/")
r = remote_chain.invoke({ "text": "帮我用java写1个排序算法"})
print(r)

测试结果回答准确,如下图:

 服务端非常简单,后面再写个前端对接一下即可方便使用。

http://www.lryc.cn/news/401681.html

相关文章:

  • Elasticsearch-多边形范围查询(8.x)
  • Kotlin Misk Web框架
  • 【设计模式之美】【建造型】工厂模式:通过面向接口编程思路,串起业务流程
  • AI算法19-偏最小二乘法回归算法Partial Least Squares Regression | PLS
  • live555关于RTSP协议交互流程
  • Centos7 安装私有 Gitlab
  • 浅谈数学模型在UGC/AIGC游戏数值配置调参中的应用(AI智能体)
  • 第T5周:使用TensorFlow实现运动鞋品牌识别
  • 网络编程学习之tcp
  • 前端XMLHttpRequest、Fetch API、Axios实现文件上传、下载方法及后端Spring文件服务器处理方法
  • STM32智能交通监测系统教程
  • 【利用Selenium+autoIt实现文件上传】
  • python join
  • cython加速python代码
  • React@16.x(60)Redux@4.x(9)- 实现 applyMiddleware
  • level 6 day1 Linux网络编程之网络基础
  • PostgreSQL UPDATE 命令
  • 什么? CSS 将支持 if() 函数了?
  • function calling实现调用理杏仁api获取数据
  • Excel中用VBA实现Outlook发送当前工作簿
  • 从 ArcMap 迁移到 ArcGIS Pro
  • WSL2 的安装与运行 Linux 系统
  • 业务终端动态分配IP-DHCP技术、DHCP中继技术
  • 新一代大语言模型 GPT-5 对工作与生活的影响及应对策略
  • AI基于大模型语言存在的网络安全风险
  • 探索Perl语言:入门学习与实战指南
  • dp or 数学问题
  • kibana连接elasticsearch(版本8.11.3)
  • 基于python的图像去水印
  • Linux下Supervisor的安装与配置