从头开始搭建 Langchain-Chatchat 0.3x

2级选手 2024-08-18 16:31:02 阅读 54

github代码库链接

Langchain-Chatchat

icon-default.png?t=N7T8

https://github.com/chatchat-space/Langchain-Chatchat

inference

icon-default.png?t=N7T8

https://github.com/xorbitsai/inference

本文将会用到两个代码库

第一个代码库是启动chatchat使用。

第二个代码库是加载推理模型使用。

安装Xinference

首先新建虚拟环境, 然后通过pip安装

<code>pip install "xinference[all]"

启动方式

xinference-local --host 0.0.0.0 --port 8887

通过浏览器打开会看到这样一个界面

launch model 会自动下载模型文件,默认是从hugging face下载,如果网络不通可以更改到ModelScope。也可以添加本地模型

添加注册模型

点击resgister model
 填写model name 自己随便起一个名字就好了
模型介绍 可写可不写
按照截图勾选即可
选择你下载到本地的大模型基座
填写本地大模型的实际路径
register mdoel 点击注册

glm4-chat模型下载国内可以去魔塔社区下载:

魔搭社区汇聚各领域最先进的机器学习模型,提供模型探索体验、推理、训练、部署和应用的一站式服务。

icon-default.png?t=N7T8

https://www.modelscope.cn/models/ZhipuAI/glm-4-9b

打开网址复制名字,以glm4为例,按照下面代码操作可以指定下载目录。

<code>pip install modelscope

from modelscope import snapshot_download

download_dir = r'D:\mycode\MachineLearningPractice-main\modelscope_download'

model_dir = snapshot_download("ZhipuAI/glm-4-9b-chat", cache_dir=download_dir)

魔塔下载模型详细文档信息:魔搭社区汇聚各领域最先进的机器学习模型,提供模型探索体验、推理、训练、部署和应用的一站式服务。

icon-default.png?t=N7T8

https://www.modelscope.cn/docs/%E6%A8%A1%E5%9E%8B%E7%9A%84%E4%B8%8B%E8%BD%BD

启动模型

点击launch model点击custom models点击language mdels

然后我们就会看到我们刚刚注册的大模型信息

点击卡片--右边弹出信息

选择推理模型引擎是否量化选择gpu or cpu小火箭启动模型API

点击Running ModelLANGUAGE MODELS

即可查看到我们启动的模型

Actions-向上箭头 ↑即可打开模型推理界面右边垃圾桶 即关闭运行的模型

同理我们在注册一个embedding model

使用nohup方式启动xinference,这样我们关闭终端的时候,我们启动的API接口依然存在。

<code>nohup xinference-local --host 0.0.0.0 --port 8887 > logfile.log 2>&1 &

安装chatchat3

退出xinference虚拟环境,新建一个虚拟环境用来运行Langchain-Chatchat

pip install "langchain-chatchat[xinference]" -U

需要修改默认llm模型可执行:

模型名字即为之前注册的模型ID,选择你所启动的模型的ID 

chatchat-config model --default_llm_model autodl-tmp-glm-4-9b-chat

需要修改<code>默认embedding模型可执行:

chatchat-config model --DEFAULT_EMBEDDING_MODEL custom-embedding-bge

自定义模型接入配置

完成上述项目配置项可以通过MODEL_PLATFORMS这里配置

<code>chatchat-config model --set_model_platforms "[{

\"platform_name\": \"xinference\",

\"platform_type\": \"xinference\",

\"api_base_url\": \"http://127.0.0.1:9997/v1\",

\"api_key\": \"EMPT\",

\"api_concurrencies\": 5,

\"llm_models\": [

\"autodl-tmp-glm-4-9b-chat\"

],

\"embed_models\": [

\"custom-embedding-bge\"

],

\"image_models\": [],

\"reranking_models\": [],

\"speech2text_models\": [],

\"tts_models\": []

}]"

主要修改这两个选项

初始化知识库

指定自己在xinference平台上启动的embedding模型ID

<code>chatchat-kb -r --embed-model=custom-embedding-bge

chatchat-config basic --show

知识库路径为  DATA_PATH 变量指向的路径下的 knowledge_base 目录中:

启动项目

<code>chatchat -a

启动成功

由于 chatchat-config server 配置默认监听地址 <code>DEFAULT_BIND_HOST 为 127.0.0.1, 所以无法通过其他 ip 进行访问。

chatchat-config server --show

{

"HTTPX_DEFAULT_TIMEOUT": 300.0,

"OPEN_CROSS_DOMAIN": true,

"DEFAULT_BIND_HOST": "127.0.0.1",

"WEBUI_SERVER_PORT": 8501,

"API_SERVER_PORT": 7861,

"WEBUI_SERVER": {

"host": "127.0.0.1",

"port": 8501

},

"API_SERVER": {

"host": "127.0.0.1",

"port": 7861

},

"class_name": "ConfigServer"

}

chatchat-config server --DEFAULT_BIND_HOST 0.0.0.0

修改监听地址



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。