【LLM】-12-部署Langchain-Chatchat-0.3.x版本
目录
1、0.3与0.2的功能对比
2、0.3.x支持多种部署方式
2.3、源码安装
2.3.1、项目源码下载
2.3.2、创建conda环境
2.3.3、安装poetry
2.3.4、安装依赖库
2.3.5、项目初始化
2.3.6、配置文件
2.3.7、初始化知识库
2.3.7、启动服务
2.3.8、配置说明
2.3.8.1、basic_settings.yaml
从0.3.1开始,模型与项目独立部署,需要借助xinference、oneai、localai等平台独立部署大模型,
Langchain-Chat通过接口API调用
1、0.3与0.2的功能对比
| 功能 | 0.2.x | 0.3.x |
|---|---|---|
| 模型接入 | 本地:fastchat 在线:XXXModelWorker | 本地:model_provider,支持大部分主流模型加载框架 在线:oneapi 所有模型接入均兼容openai sdk |
| Agent | ❌不稳定 | ✅针对ChatGLM3和QWen进行优化,Agent能力显著提升 |
| LLM对话 | ✅ | ✅ |
| 知识库对话 | ✅ | ✅ |
| 搜索引擎对话 | ✅ | ✅ |
| 文件对话 | ✅仅向量检索 | ✅统一为File RAG功能,支持BM25+KNN等多种检索方式 |
| 数据库对话 | ❌ | ✅ |
| 多模态图片对话 | ❌ | ✅ 推荐使用 qwen-vl-chat |
| ARXIV文献对话 | ❌ | ✅ |
| Wolfram对话 | ❌ | ✅ |
| 文生图 | ❌ | ✅ |
| 本地知识库管理 | ✅ | ✅ |
| WEBUI | ✅ | ✅更好的多会话支持,自定义系统提示词... |
2、0.3.x支持多种部署方式
Langchain-Chatchat 自 0.3.0 版本起,为方便支持用户使用 pip 方式安装部署,以及为避免环境中依赖包版本冲突等问题, 在源代码/开发部署中不再继续使用 requirements.txt 管理项目依赖库,转为使用 Poetry 进行环境管理。
1)pip 安装:
pip install langchain-chatchat -U
2)docker安装
docker pull chatimage/chatchat:0.3.1.3-0f4eb00-20240729
# 国内镜像
docker pull ccr.ccs.tencentyun.com/langchain-chatchat/chatchat:0.3.1.3-0f4eb00-20240729
2.3、源码安装
2.3.1、项目源码下载
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
2.3.2、创建conda环境
conda create -n chat03x python=3.10conda activate chat03x

2.3.3、安装poetry
pip install poetrypoetry config virtualenvs.prefer-active-python true
2.3.4、安装依赖库
cd Langchain-Chatchat-03x/libs/chatchat-serverpoetry install --with lint,test -E xinferencepip install -e .
Poetry install 后会在你的虚拟环境中 site-packages 路径下生成一个 chatchat-
<version>.dist-info 文件夹带有 direct_url.json 文件,这个文件指向你的开发环境
2.3.5、项目初始化
cd libs/chatchat-serverpython chatchat/cli.py init

注:配置参数打印查看
from chatchat.settings import Settingsprint(Settings.basic_settings) # 基本配置信息,包括数据目录、服务器配置等
print(Settings.kb_settings) # 知识库相关配置项
print(Settings.model_settings) # 模型相关配置项
print(Settings.tool_settings) # 工具相关配置项
print(Settings.prompt_settings) # prompt 模板
2.3.6、配置文件
修改model_settings.yaml 文件
cd libs/chatchat-servervim model_settings.yaml
# 默认选用的 LLM 名称
DEFAULT_LLM_MODEL: llama3-8b# 默认选用的 Embedding 名称
DEFAULT_EMBEDDING_MODEL: bge-large-zh-v1.5 #bge-m3# # 平台类型
# # 可选值:['xinference', 'ollama', 'oneapi', 'fastchat', 'openai', 'custom openai']
platform_type: xinference# # xinference 平台访问地址 api url
api_base_url: http://127.0.0.1:9997/v1# # api key if available
api_key: EMPTY
博主已搭建xinference平台, 并启动 名为llama3-8b的模型、以及名为 customer-bge-large-zh的embedding
可以借助平台,在线下载部署

2.3.7、初始化知识库
需要启动语言模型与嵌入模型
cd libs/chatchat-server# 会清空数据库、删除已有的配置文件,如果有重要数据,请备份。
python chatchat/cli.py kb --recreate-vs

如需使用其它 Embedding 模型,或者重建特定的知识库,请查看 python chatchat/cli.py kb --help 了解更多的参数。
2.3.7、启动服务
需要先确保LLM 模型启动成功,参考【LLM】-13-Xinference的部署、使用-CSDN博客
cd libs/chatchat-serverpython chatchat/cli.py start -a
部分启动日志
操作系统:Linux-5.15.0-73-generic-x86_64-with-glibc2.31.
python版本:3.10.14 (main, May 6 2024, 19:42:50) [GCC 11.2.0]
项目版本:0.3.1.3
langchain版本:0.1.17
数据目录:/home/chatchat/Langchain-Chatchat-03x/libs/chatchat-server
当前使用的分词器:ChineseRecursiveTextSplitter
默认选用的 Embedding 名称: customer-bge-large-zh

2.3.8、配置说明
2.3.8.1、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: /home/chatchat/Langchain-Chatchat-03x/libs/chatchat-server/data/knowledge_base# 数据库默认存储路径。如果使用sqlite,可以直接修改DB_ROOT_PATH;如果使用其它数据库,请直接修改SQLALCHEMY_DATABASE_URI。
DB_ROOT_PATH: /home/chatchat/Langchain-Chatchat-03x/libs/chatchat-server/data/knowledge_base/info.db# 知识库信息数据库连接URI
SQLALCHEMY_DATABASE_URI: sqlite:home/chatchat/Langchain-Chatchat-03x/libs/chatchat-server/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
参考文章:
Langchain-chat 0.3.x版本
Langchain-chat-0.3.x docker-compose部署
Langchain-chat API文档
使用 — Xinference
NLTK下载资源包报错问题处理
相关文章:
【LLM】-12-部署Langchain-Chatchat-0.3.x版本
目录 1、0.3与0.2的功能对比 2、0.3.x支持多种部署方式 2.3、源码安装 2.3.1、项目源码下载 2.3.2、创建conda环境 2.3.3、安装poetry 2.3.4、安装依赖库 2.3.5、项目初始化 2.3.6、配置文件 2.3.7、初始化知识库 2.3.7、启动服务 2.3.8、配置说明 2.3.8.1、basic_…...
优化网络接收缓存减少数据丢包
视频领域,网络udp数据丢包会引起视频解码花屏。 1、修订单个socket的缓冲区大小:通过setsockopt使用SO_RCVBUF来设置接收缓冲区,该参数在设置的时候不会与rmem_max进行对比校验,但是如果设置的大小超过rmem_max的话,则…...
数据透视——判别分析
文章目录 判别分析简介常用的判别分析方法距离判别贝叶斯判别线性判别分析(LDA)支持向量机(SVM)总结 补充 在数据科学的丰富领域中,判别分析扮演着至关重要的角色。它是一种统计方法,用于预测样本数据的类别…...
书生大模型学习笔记 - 连接云端开发机
申请InternStudio开发机: 这里进去报名参加实战营即可获取 书生大模型实战营 InternStudio平台 创建开发机 SSH连接开发机: SSH免密码登录 本地创建SSH密钥 ssh-keygen -t rsa打开以下文件获取公钥 ~/.ssh/id_rsa.pub去InternStudio添加公钥 …...
Python操作符的重载
目录 1、操作符重载的基本概念1.1、常用的操作符重载方法1.1.1、算术操作符1.1.2、比较操作符1.1.3、比其他操作符 1.2、例子 2、应用场景2.1、增强代码的可读性2.2、 实现类的数学运算2.3、支持自定义的数据结构2.4、简化 API 设计2.5、实现链式操作和流式接口 3、总结 Python…...
redis面试(三)Hash数据结构
HASH 哈希,在redis底层实现的时候,数据的结构叫做dict 这个Dict就是一个用于维护key和value映射关系的数据结构,与很多语言中的Map类型相似。 本质上也是一个数组链表的形式存在,不同的点在于,每个dict中是可以存在…...
Java基础语法
注释 注释就是在程序指定位置添加的说明性信息 简单理解,就是对代码的一种解释 注释有三种: 单行注释 格式://注释信息 多行注释 格式:/*注释信息*/ 文档注释 格式:/**注释信息*/ 注释的注意事项…...
Qt | QChart+QChartView+QLineSeries(折线图)+QBarSeries(柱状图)实战
点击上方"蓝字"关注我们 01、QLineSeries QLineSeries 是 Qt 中的一个类,用于在图表中表示一系列的数据点。它继承自 QAbstractSeries 类,提供了绘制折线图所需的基本功能。 常用的方法包括 append(x, y):向序列中添加一个新的数据点,其中 x 和 y 分别表示横坐…...
公布一批脸书爬虫(facebook)IP地址,真实采集数据
一、数据来源: 1、这批脸书爬虫(facebook)IP来源于尚贤达猎头公司网站采集数据; 2、数据采集时间段:2023年10月-2024年7月; 3、判断标准:主要根据用户代理是否包含“facebook”和IP核实。…...
Package.Json 参数配置理解用途
"dev": "SET NODE_OPTIONS--openssl-legacy-provider & vue-cli-service serve --open" 这行命令首先设置环境变量NODE_OPTIONS,添加了--openssl-legacy-provider标志。这个标志用于解决某些情况下Node.js在Windows系统上使用OpenSSL时可能…...
k3:增加触发器,当外协单和报料单新增时,更新生产任务单的“说明”栏
外协单新增时 CREATE TRIGGER [dbo].[t_BOS257800018Entry2_update]ON [dbo].[t_BOS257800018Entry2]AFTER insert AS BEGINSET NOCOUNT ON; ------实现当外协时,生产任务单的说明有标识(240731 BY WK) declare fid_souce as int; declare…...
神奇海洋养鱼小程序游戏广告联盟流量主休闲小游戏源码
在海洋养鱼小程序中,饲料、任务系统、系统操作日志、签到、看广告、完成喂养、每日签到、系统公告、积分商城、界面设计、拼手气大转盘抽奖以及我的好友等功能共同构建了一个丰富而互动的游戏体验。以下是对这些功能的进一步扩展介绍: 饲料 任务奖励&a…...
分享几个适合普通人的AI副业变现思路
最近很多人问:看你做AI也做了有一两年了,也没见有什么产出啊?其实很多事情是长期主义,并不是一时半会儿马上就看到收益了。 正如董宇辉出名前也只是新东方默默无闻的一位老师,李佳琪曾经也只是一个化妆品销售。抱着长…...
如何使用CANoe自带的TCP/IP Stack验证TCP的零窗口探测机制
如果想利用CANoe自带的TCP/IP协议栈验证TCP的零窗口探测机制,就必须添加一个网络节点并配置独立的CANoe TCP/IP协议栈,作为验证对象。而与它进行TCP通信的对端也是一个网络节点,但不要配置TCP/IP协议栈,而是使用CAPL代码在底层组装TCP报文模拟TCP通信过程。这样可以尽量减少…...
二进制搭建 Kubernetes v1.20(中)
一、部署 CNI 网络组件 目录 一、部署 CNI 网络组件 1.flannel简介 1)UDP模式 2)VXLAN 模式 2.部署flannel 编辑 3.Calico简介 1.flannel简介 K8S 中 Pod 网络通信:●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器࿰…...
Scrapy 爬取旅游景点相关数据(七):利用指纹实现“不重复爬取”
本期学习: 利用网页指纹去重 众所周知,代理是要花钱的,那么在爬取(测试)巨量网页的时候,就不可能对已经爬取过的网站去重复的爬,这样会消耗大量的时间,更重要的是会消耗大量的IP (金…...
java的对象向上转型
对象向上转型,父类对象就可以调用子类重写父类的方法,这样当父类对象需要添加新的功能时,只需要添加一个子类,在子类中对父类的功能进行扩展,而不需要更改父类代码 向上转型,格式如下 父类类型 父类对象子…...
Navicat Premium 16破解
Navicat Premium 16破解教程 1安装Navicat Premium 16 通过百度网盘分享的文件:Navicat_Premium_16_chs-x64.zip 链接:https://pan.baidu.com/s/1ryRSJ2d9s6rXI09LEmLtpw?pwdz7wo 提取码:z7wo 一直下一步即可 2破解 选择刚才安装路径&am…...
【C/C++】C语言到C++的入门知识点(主要适用于C语言精通到Qt的C++开发入门)
【C/C】C语言到C的入门知识点(主要适用于C语言精通到Qt的C开发入门) 文章目录 C语言与C的不同C中写C语言代码C语言到C的知识点Qt开发中需要了解的C基础知识namespace输入输出字符串类型class类构造函数和析构函数(解析函数)类的继…...
docker 建木 发版 (详细教程)
先创建git仓库 Git勤勉 两种方式上传-CSDN博客 把项目送上去 进入建木 可以接着这个来 dockerfile部署镜像 ->push仓库 ->虚拟机安装建木 ->自动部署化 (详细步骤)-CSDN博客 创建分组项目 开始操作 git 上钩子 前面链接里有这个教…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
多元隐函数 偏导公式
我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z、 …...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...
