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

Langchain-Chatchat+Xinference集成部署

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_datapip3 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.05max_tokens: 4096history_len: 10prompt_name: defaultcallbacks: falsellm_model:model: ''temperature: 0.9max_tokens: 4096history_len: 10prompt_name: defaultcallbacks: trueaction_model:model: ''temperature: 0.01max_tokens: 4096history_len: 10prompt_name: ChatGLM3callbacks: truepostprocess_model:model: ''temperature: 0.01max_tokens: 4096history_len: 10prompt_name: defaultcallbacks: trueimage_model:model: sd-turbosize: 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: xinferenceplatform_type: xinferenceapi_base_url: http://192.168.18.55:9997/v1api_key: EMPTYapi_proxy: ''api_concurrencies: 5auto_detect_model: truellm_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.0port: 7861public_host: 127.0.0.1public_port: 7861# WEBUI 服务器地址
WEBUI_SERVER:host: 0.0.0.0port: 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
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【线性代数】汤家凤线性代数辅导讲义整理
  • Java中基本数据类型包装类的常量池缓存的值得范围是多少?
  • Linux:账号和权限管理(二)
  • 掀起 .NET 风暴:用 Docker 快速打造并部署你的炫酷应用!
  • the request was rejected because no multipart boundary was found
  • FP8量化
  • 精益生产管理培训机构怎么选?三大维度助你精准定位
  • 从科幻到现实:AIGC助力打造个性化数字人
  • MySQL:先插入数据库,然后再查询
  • linux shell 函数
  • STM32控制机械臂与传感器:整合ESP32通讯、Spark与人工智能优化的智能制造解决方案(代码说明)
  • 机器学习第五章-神经网络
  • ubantu-elasticsearch
  • echarts横向柱状图
  • Vue3发送验证码,开启倒计时,并且倒计时结束前无法点击
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • happypack两次报错的问题
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • laravel5.5 视图共享数据
  • win10下安装mysql5.7
  • 百度小程序遇到的问题
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 精彩代码 vue.js
  • 如何解决微信端直接跳WAP端
  • 深入浅出Node.js
  • 微信开源mars源码分析1—上层samples分析
  • HanLP分词命名实体提取详解
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 昨天1024程序员节,我故意写了个死循环~
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #Lua:Lua调用C++生成的DLL库
  • #数据结构 笔记一
  • (Java数据结构)ArrayList
  • (ZT)一个美国文科博士的YardLife
  • (二)hibernate配置管理
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (五)MySQL的备份及恢复
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)项目管理杂谈-我所期望的新人
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • **PHP二维数组遍历时同时赋值
  • .NET Core中的去虚
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .Net 路由处理厉害了