Langchain-Chatchat+Xinference集成部署
安装环境:
系统:Anolis OS 8.9
python版本:Python 3.9.19
Langchain-Chatchat版本:0.3.1.3
Xinference版本:v0.13.3
模型选择(下载时需要科学上网):
qwen2-instruct
bge-large-zh-v1.5
部署内网IP:192.168.18.55
安装目录:/data/langchain/chatchat_data
一、初始化环境安装
yum install -y python39-devel python39 mesa-libGL
pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
二、xinference模型框架安装
pip3 install "xinference[all]" -i https://pypi.tuna.tsinghua.edu.cn/simple
2.1 xinference模型框架启动及模型下载
XINFERENCE_MODEL_SRc=modelscope xinference-local --host 192.168.18.55 --port 9997
启动后访问:http://192.168.18.55:9997
进入xinference控制台下载模型
下载模型时需要科学上网去下载
2.2 下载qwen2-instruct模型
2.3 查看qwen2-instruct下载成功后并自动运行
2.4 下载bge-large-zh-v1.5模型
2.5 下载成功后会自动运行
三、安装langchain
mkdir -p /data/langchain/chatchat_data
pip3 install langchain-chatchat -U -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install "langchain-chatchat[xinference]" -U -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install "unstructured[pdf]" -i https://pypi.tuna.tsinghua.edu.cn/simple
python3 -m nltk.downloader -d /data/langchain/chatchat_data/data/nltk_data popular
四、初始化项目配置与数据目录
4.1 设置 Chatchat 存储配置文件和数据文件的根目录
# on linux
export CHATCHAT_ROOT=/data/langchain/chatchat_data
若不设置该环境变量,则自动使用当前目录
4.2 执行初始化配置
chatchat init
4.3 修改配置文件
cat model_settings.yaml
# 模型配置项
# 默认选用的 LLM 名称
DEFAULT_LLM_MODEL: qwen2-instruct
# 默认选用的 Embedding 名称
DEFAULT_EMBEDDING_MODEL: bge-large-zh-v1.5
# AgentLM模型的名称 (可以不指定,指定之后就锁定进入Agent之后的Chain的模型,不指定就是 DEFAULT_LLM_MODEL)
Agent_MODEL: ''
# 默认历史对话轮数
HISTORY_LEN: 3
# 大模型最长支持的长度,如果不填写,则使用模型默认的最大长度,如果填写,则为用户设定的最大长度
MAX_TOKENS:
# LLM通用对话参数
TEMPERATURE: 0.7
# 支持的Agent模型
SUPPORT_AGENT_MODELS:
- chatglm3-6b
- glm-4
- openai-api
- Qwen-2
- qwen2-instruct
- gpt-3.5-turbo
- gpt-4o
# LLM模型配置,包括了不同模态初始化参数。
# `model` 如果留空则自动使用 DEFAULT_LLM_MODEL
LLM_MODEL_CONFIG:
preprocess_model:
model: ''
temperature: 0.05
max_tokens: 4096
history_len: 10
prompt_name: default
callbacks: false
llm_model:
model: ''
temperature: 0.9
max_tokens: 4096
history_len: 10
prompt_name: default
callbacks: true
action_model:
model: ''
temperature: 0.01
max_tokens: 4096
history_len: 10
prompt_name: ChatGLM3
callbacks: true
postprocess_model:
model: ''
temperature: 0.01
max_tokens: 4096
history_len: 10
prompt_name: default
callbacks: true
image_model:
model: sd-turbo
size: 256*256
# # 模型加载平台配置
# # 平台名称
# platform_name: xinference
# # 平台类型
# # 可选值:['xinference', 'ollama', 'oneapi', 'fastchat', 'openai', 'custom openai']
# platform_type: xinference
# # openai api url
# api_base_url: http://127.0.0.1:9997/v1
# # api key if available
# api_key: EMPTY
# # API 代理
# api_proxy: ''
# # 该平台单模型最大并发数
# api_concurrencies: 5
# # 是否自动获取平台可用模型列表。设为 True 时下方不同模型类型可自动检测
# auto_detect_model: false
# # 该平台支持的大语言模型列表,auto_detect_model 设为 True 时自动检测
# llm_models: []
# # 该平台支持的嵌入模型列表,auto_detect_model 设为 True 时自动检测
# embed_models: []
# # 该平台支持的图像生成模型列表,auto_detect_model 设为 True 时自动检测
# text2image_models: []
# # 该平台支持的多模态模型列表,auto_detect_model 设为 True 时自动检测
# image2text_models: []
# # 该平台支持的重排模型列表,auto_detect_model 设为 True 时自动检测
# rerank_models: []
# # 该平台支持的 STT 模型列表,auto_detect_model 设为 True 时自动检测
# speech2text_models: []
# # 该平台支持的 TTS 模型列表,auto_detect_model 设为 True 时自动检测
# text2speech_models: []
MODEL_PLATFORMS:
- platform_name: xinference
platform_type: xinference
api_base_url: http://192.168.18.55:9997/v1
api_key: EMPTY
api_proxy: ''
api_concurrencies: 5
auto_detect_model: true
llm_models: []
embed_models: []
text2image_models: []
image2text_models: []
rerank_models: []
speech2text_models: []
text2speech_models: []
配置知识库路径(basic_settings.yaml)(可选)
默认知识库位于 CHATCHAT_ROOT/data/langchain/chatchat_data,如果你想把知识库放在不同的位置,或者想连接现有的知识库,可以在这里修改对应目录即可。
cat basic_settings.yaml
# 服务器基本配置信息
# 除 log_verbose/HTTPX_DEFAULT_TIMEOUT 修改后即时生效
# 其它配置项修改后都需要重启服务器才能生效,服务运行期间请勿修改
# 生成该配置模板的项目代码版本,如这里的值与程序实际版本不一致,建议重建配置文件模板
version: 0.3.1.3
# 是否开启日志详细信息
log_verbose: false
# httpx 请求默认超时时间(秒)。如果加载模型或对话较慢,出现超时错误,可以适当加大该值。
HTTPX_DEFAULT_TIMEOUT: 300.0
# 知识库默认存储路径
KB_ROOT_PATH: /data/langchain/chatchat_data/data/knowledge_base
# 数据库默认存储路径。如果使用sqlite,可以直接修改DB_ROOT_PATH;如果使用其它数据库,请直接修改SQLALCHEMY_DATABASE_URI。
DB_ROOT_PATH: /data/langchain/chatchat_data/data/knowledge_base/info.db
# 知识库信息数据库连接URI
SQLALCHEMY_DATABASE_URI: sqlite:////data/langchain/chatchat_data/data/knowledge_base/info.db
# API 是否开启跨域
OPEN_CROSS_DOMAIN: false
# 各服务器默认绑定host。如改为"0.0.0.0"需要修改下方所有XX_SERVER的host
# Windows 下 WEBUI 自动弹出浏览器时,如果地址为 "0.0.0.0" 是无法访问的,需要手动修改地址栏
DEFAULT_BIND_HOST: 0.0.0.0
# API 服务器地址。其中 public_host 用于生成云服务公网访问链接(如知识库文档链接)
API_SERVER:
host: 0.0.0.0
port: 7861
public_host: 127.0.0.1
public_port: 7861
# WEBUI 服务器地址
WEBUI_SERVER:
host: 0.0.0.0
port: 8501
4.4 初始化知识库
进行知识库初始化前,请确保已经启动模型推理框架及对应 embedding 模型,且已按照上述步骤模型接入配置。
chatchat kb -r
出现以下日志即为成功:
----------------------------------------------------------------------------------------------------
知识库名称 :samples
知识库类型 :faiss
向量模型: :bge-large-zh-v1.5
知识库路径 :/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data/knowledge_base/samples
文件总数量 :47
入库文件数 :42
知识条目数 :740
用时 :0:02:29.701002
----------------------------------------------------------------------------------------------------
总计用时 :0:02:33.414425
4.5 启动项目
chatchat start -a
启动后访问http://192.168.18.55:8501