赞
踩
简单实现一个本地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 uvicorn
-
- uvicorn.run(app, host="localhost", port=8000)
服务运行启动web服务结果:
客户端调用web服务测试代码:
- from langserve import RemoteRunnable
-
- remote_chain = RemoteRunnable("http://localhost:8000/chain/")
- r = remote_chain.invoke({ "text": "帮我用java写1个排序算法"})
- print(r)
测试结果回答准确,如下图:
服务端非常简单,后面再写个前端对接一下即可方便使用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。