首页 > 系统相关 >LangChain-Chatchat学习资料-Windows开发部署

LangChain-Chatchat学习资料-Windows开发部署

时间:2023-08-25 11:22:57浏览次数:49  
标签:服务 Windows 模型 py LangChain Chatchat API LLM model

在windows10下的安装部署

参考资料

1.LacnChain-Chatchat项目

基础环境准备

本人使用的是Windows10专业版22H2版本,已经安装了Python3.10,CUDA11.8版本,miniconda3。
硬件采用联想R9000P,AMD R7 5800H,16G内存,RTX3060 6G。

安装依赖

# 使用conda安装激活环境
conda create -n Langchain-Chatchat python=3.10
conda activate Langchain-Chatchat
# 拉取仓库
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
# 进入目录
cd Langchain-Chatchat
# 安装全部依赖
pip install -r requirements.txt

默认依赖包括基本运行环境(FAISS向量库)。如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。

此项目分为LLM服务,API服务和WebUI服务,可单独根据运行需求安装依赖包。

如果只需运行 LLM服务和API服务,可执行:

pip install -r requirements_api.txt

如果只需运行 WebUI服务,可执行:

pip install -r requirements_webui.txt

注:使用 langchain.document_loaders.UnstructuredFileLoader 进行 .docx 等格式非结构化文件接入时,可能需要依据文档进行其他依赖包的安装,请参考 langchain 文档

下载模型

Langchain-Chatchat支持的开源 LLM 与 Embedding 模型,如果使用在线LLM服务,如OpenAI的API,则请直接查看下一节。

如果需要本地或离线LLM服务,则需要下载模型,通常开源 LLM 与 Embedding 模型可以从 HuggingFace 下载。

因为我的显卡为RTX3060,只有6G的显存,所以我使用的 LLM 模型 THUDM/chatglm2-6b-int4 与 Embedding 模型 moka-ai/m3e-base
下载模型需要先安装Git LFS,然后运行

git clone https://huggingface.co/THUDM/chatglm2-6b-int4
git clone https://huggingface.co/moka-ai/m3e-base

如果你的网络不好,下载很慢,chatglm2-6b相关模型,推荐以下的方式
1.仅从Huggingface上下载模型实现,不下载LFS模型文件

# 只获取仓库本身,而不获取任何 LFS 对象
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm2-6b-int4

2.从清华云盘下载模型参数文件,放到本地chatglm2-6b仓库下
image

修改配置项

修改模型相关参数配置文件

复制一份模型相关参数配置模板文件 configs/model_config.py.example,并重命名为 model_config.py

  • 修改本地LLM模型存储路径。
    如果使用本地LLM模型,请确认已下载至本地的 LLM 模型本地存储路径写在 llm_model_dict 对应模型的 local_model_path 属性中,如:
llm_model_dict={
    "chatglm2-6b-int4": {
        "local_model_path": "D:\\Langchain-Chatchat\\chatglm2-6b-int4",  # "THUDM/chatglm2-6b-int4",
        "api_base_url": "http://localhost:8888/v1",  # "URL需要与运行fastchat服务端的server_config.FSCHAT_OPENAI_API一致
        "api_key": "EMPTY"
    },
}

默认模板中没有提供llm_model_dict中,没有chatglm2-6b-int4模型,需要自己添加。

  • 修改在线LLM服务接口相关参数
    如果使用在线LLM服务,类OpenAi的API,需在llm_model_dict的gpt-3.5-turbo模型,修改对应的API地址和环境变量中的KEY,或新增对应的模型对象。
llm_model_dict={
    "gpt-3.5-turbo": {
        "local_model_path": "gpt-3.5-turbo",
        "api_base_url": "https://api.openai.com/v1",
        "api_key": os.environ.get("OPENAI_API_KEY")
    },
}
  • 修改使用的LLM模型名称
    根据上述新增或修改的模型名称,修改LLM_MODEL为使用的模型名称
# LLM 名称
LLM_MODEL = "chatglm2-6b-int4"
  • 修改embedding模型存储路径
    请确认已下载至本地的 Embedding 模型本地存储路径写在 embedding_model_dict 对应模型属性中,如:
embedding_model_dict = {
    "m3e-base": "D:\\Langchain-Chatchat\\m3e-base",
}
  • 其他修改项,可根据配置文件中的注释,自行进行修改。

修改服务相关参数配置文件

复制服务相关参数配置模板文件 configs/server_config.py.example,并重命名为 server_config.py。

  • 修改服务绑定的IP和端口
    根据实际情况,修改DEFAULT_BIND_HOST属性,改为需要绑定的服务IP
# 各服务器默认绑定host
DEFAULT_BIND_HOST = "10.0.21.161"

知识库初始化

如果您是第一次运行本项目,知识库尚未建立,或者配置文件中的知识库类型、Embedding模型发生变化,需要以下命令初始化或重建知识库:

python init_database.py --recreate-vs

启动服务

启用LLM服务

如果启动在线的API服务(如 OPENAI 的 API 接口),则无需启动 LLM 服务,如需使用开源模型进行本地部署,需首先启动 LLM 服务,参照项目部署手册,LLM服务启动方式有三种,我们只选择其中之一即可,这里采用的是基于多进程脚本 llm_api.py 启动 LLM 服务
在项目根目录下,执行 server/llm_api.py 脚本启动 LLM 模型服务:

python server/llm_api.py

启用API服务

执行server/api.py 脚本启动 API 服务

python server/api.py

启动 API 服务后,可访问 localhost:7861 或 {API 所在服务器 IP}:7861 FastAPI 自动生成的 docs 进行接口查看与测试。
image

启用webui服务

启动 API 服务后,执行 webui.py 启动 Web UI 服务(默认使用端口 8501)

streamlit run webui.py

使用 Langchain-Chatchat 主题色启动 Web UI 服务(默认使用端口 8501)

streamlit run webui.py --theme.base "light" --theme.primaryColor "#165dff" --theme.secondaryBackgroundColor "#f5f5f5" --theme.textColor "#000000"

或使用以下命令指定启动 Web UI 服务并指定端口号

streamlit run webui.py --server.port 666

启动成功进行访问

image

标签:服务,Windows,模型,py,LangChain,Chatchat,API,LLM,model
From: https://www.cnblogs.com/vriverh/p/17653686.html

相关文章

  • Windows 虚拟地址 到底是如何映射到 物理地址 的?
    一:背景1.讲故事我发现有很多的.NET程序员写了很多年的代码都没弄清楚什么是虚拟地址,更不用谈什么是物理地址以及Windows是如何实现地址映射的了?这一篇我们就来聊一聊这两者之间的联系。二:地址映射研究1.找虚拟地址怎么去找虚拟地址呢?相信很多朋友都知道应用程序用的......
  • windows wget与curl
     wget下载https://eternallybored.org/misc/wget/curl下载https://curl.se/download.html  ffmpet下载http://ffmpeg.org/......
  • Exceptionless系列:简介和部署(Windows、Linux、Docker)
    目录一、简介二、版本三、运行说明1、Exceptionless2、Elasticsearch3、Exceptionless.UI四、打包Exceptionless.UI五、window部署1.Elasticsearch2.Exceptionless六、Docker部署一、简介Exceptionless为您提供了跟踪错误、日志和事件的工具,同时指导您找到可行的解决方案。首先......
  • windows远程桌面到ubuntu16.04
    环境ubuntu:16.04windows:windows10目标让windows可以使用RemoteDesktop客记端远程到ubuntu16.04安装事宜windowns无需安装ubuntu16.04需要安装xrdp和xfce4安装sudoaptinstallxrdpxfce4查看安装版本,发现默认安装的是xrdp0.6.1修改配置sudoechoxfce4-sessi......
  • Windows Server2008R2 服务器Paged Pool占用过高的问题
    这台服务器一直运行的好好的,但最近发现经常内存占用了99%,重启后过几天内存又涨到99%。运行的应用软件占的内存并不高,任务管理器所有进程占用内存加起来也远远不到99%。下载了RamMap,发现是PagedPool占用了绝大多数的内存; 下载poolmon.exe,终端中运行poolmon.exe-p-b,再按下......
  • Windows中通过C++自动添加防火墙例外规则
    在C++程序中无法直接控制防火墙警报窗口的显示,因为这是由操作系统和防火墙软件控制的。防火墙警报窗口是为了提醒用户程序正在尝试与外部网络进行通信,以确保用户意识到可能的网络活动。然而,可以通过编写C++程序在用户的系统上自动添加防火墙例外规则,从而避免防火墙警报窗口的显示......
  • Windows怎么录制屏幕
    使用Win键+Alt+R进行屏幕录制Wwin键是ctrl键和alt键之间的按键。windows键就是电脑键盘上ctrl键和alt键之间的按键。它带着微软的徽标,跟开始菜单一样的图标,它属于辅助按键,主要与其它按键组合使用,实现一些特定的功能,组合成多种快捷操作方式。录制会走时间停止录制使用Win+G......
  • windows cmd bat maven打包pause无法暂停问题
    解决:使用call来调用命令::当前目录setwork_path=%~dp0cd/d%work_path%callmvncleancallmvninstallechook...pause 执行结果:  ......
  • python 在windows下open打开文件默认编码
    open(self.data_path):python在用open打开文件时,如果默认不指定编码encoding="UTF-8"则会用windows默认的编码,一般为GBK,有的开源代码并未指定编码,但是UTF8的文件,全局修改一下,设置windows环境变量:PYTHONUTF8=1,参考:https://dev.to/methane/python-use-utf-8-mode-on-windows-212i......
  • windows 桌面GUI自动化- 14.pywinauto 找到多个相同控件使用found_index
    前言pywinauto在查找到多个相同控件时操作会报错,可以使用found_index选择其中的一个查找到多个查找control_type="MenuBar"的所有控件frompywinautoimportApplicationapp=Application('uia').start("notepad.exe")win=app.window(title_re="无标题-记事本")#......