【LLM】-12-部署Langchain-Chatchat-0.3.x版本

news2024/11/17 7:36:25

目录

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.8、配置说明

2.3.8.1、basic_settings.yaml

2.3.9、加载模型


1、0.3与0.2的功能对比

功能0.2.x0.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.10

conda activate chat03x

2.3.3、安装poetry

pip install poetry

poetry config virtualenvs.prefer-active-python true

2.3.4、安装依赖库

cd Langchain-Chatchat-03x/libs/chatchat-server

poetry install --with lint,test -E xinference


pip install -e .

Poetry install 后会在你的虚拟环境中 site-packages 路径下生成一个 chatchat-<version>.dist-info 文件夹带有 direct_url.json 文件,这个文件指向你的开发环境

2.3.5、项目初始化

cd libs/chatchat-server

python chatchat/cli.py init

配置参数打印查看

from chatchat.settings import Settings

print(Settings.basic_settings) # 基本配置信息,包括数据目录、服务器配置等
print(Settings.kb_settings) # 知识库相关配置项
print(Settings.model_settings) # 模型相关配置项
print(Settings.tool_settings) # 工具相关配置项
print(Settings.prompt_settings) # prompt 模板

2.3.6、初始化知识库

cd libs/chatchat-server

# 会清空数据库、删除已有的配置文件,如果有重要数据,请备份。
python chatchat/cli.py kb --recreate-vs

如需使用其它 Embedding 模型,或者重建特定的知识库,请查看 python chatchat/cli.py kb --help 了解更多的参数。

2.3.7、启动服务

cd libs/chatchat-server
python chatchat/cli.py start -a

部分启动日志

==============================Langchain-Chatchat Configuration==============================
操作系统: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 名称: bge-m3
==============================Langchain-Chatchat Configuration==============================


2024-07-30 15:08:50.693 | INFO     | chatchat.startup:start_main_server:257 - 正在启动服务:
2024-07-30 15:08:50.696 | INFO     | chatchat.startup:start_main_server:258 - 如需查看 llm_api 日志,请前往 /home/chatchat/Langchain-Chatchat-03x/libs/chatchat-server/data/logs

INFO:     Started server process [989797]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:7861 (Press CTRL+C to quit)

  You can now view your Streamlit app in your browser.

  URL: http://0.0.0.0:8501
 

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.0
  port: 7861
  public_host: 127.0.0.1
  public_port: 7861

# WEBUI 服务器地址
WEBUI_SERVER:
  host: 0.0.0.0
  port: 8501

2.3.9、加载模型

未完待续......

参考文章:

Langchain-chat 0.3.x版本

Langchain-chat-0.3.x docker-compose部署

Langchain-chat API文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1960596.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一副穿戴甲背后,5万苏北宝妈如何硬控全球美甲潮流?

2019年的一天&#xff0c;张达在拼多多后台看到一个有趣的订单。“看姓名、联系方式&#xff0c;像表妹下的订单&#xff0c;但我的穿戴甲店才开第二天&#xff0c;她应该不可能知道。”张达回忆。 1993年出生的张达&#xff0c;是江苏东海县人&#xff0c;当地以水晶闻名。高…

达梦数据库的系统视图v$bufferpool

达梦数据库的系统视图v$bufferpool 达梦数据库系统视图V$BUFFERPOOL的主要作用是监控和管理数据库缓冲池的性能。通过查询V$BUFFERPOOL视图&#xff0c;用户可以获取以下关键信息&#xff1a; 缓存命中率&#xff1a;显示缓冲池的命中率&#xff0c;即从缓冲池中成功获取数据的…

嵌入式☞第二组(壹)

C语言基础: 循环的构成&#xff1a; 循环体 循环条件 循环的分类&#xff1a; 无限循环&#xff1a;程序设计中尽量避免无限循环。(程序中的无限循环必须可控) 有限循环&#xff1a;循环限定循环次数或者循环的条件。 当型循环的实现&#xff1a; while 语法 while(循…

【MySQL】索引 【上】 {没有索引的查询/磁盘/mysql与磁盘IO/初识索引}

文章目录 1.没有索引存在的问题2. 认识磁盘MySQL与存储MySQL与磁盘交互基本单位建立共识图解IO认识索引 在关系数据库中&#xff0c;索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构&#xff0c;它是某个表中一列或若干列值的集合和相应的指向表中物…

初学Mybatis之缓存

所有的查询都需要连接数据库&#xff0c;而连接数据库消耗资源 我们可以把一次查询的结果暂时存在一个可以直接获取到的地方&#xff08;内存&#xff1a;缓存&#xff09; 我们再次查询相同数据的时候&#xff0c;直接走缓存&#xff0c;不走数据库 缓存&#xff1a;存在内…

3.5.1、查找和排序算法-算法介绍

算法特性 算法是对特定问题求解步骤的一种描述&#xff0c;它是指令的有限序列&#xff0c;其中每一条指令表示一个或多个操作。简单的说算法就是某个问题的解题思路&#xff0c;算法的五个重要特性如下&#xff1a; 有穷性。一个算法必须总是&#xff08;对任何合法的输入值…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十二章 设备树常用of函数

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

NAS变身云盘管理大师:群晖部署AList全攻略!

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒🔑 AList功能简介🚀 快速部署📝 操作步骤🐳 Docker容器部署:灵活与强大📝 操作步骤📝 群晖部署🎈 获取方式 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 在这个数字化时代,我们似乎都不可避免地拥有多个…

【数据结构】:大厂面试经典链表OJ题目详解

反转链表 206. 反转链表 - 力扣&#xff08;LeetCode&#xff09; 思路解透 本题就是通过不停地将最先的 head 节点位置的后一位插到最前面&#xff0c;完成链表的反转 本题需要两个节点变量 cur&#xff1a;其任务就是定位到原 head 节点位置的前一位&#xff0c;然后将自己…

列表(list)—python

一、列表的定义方式 列表内的每一个数据称为元素&#xff0c;列表以[ ]作为标识&#xff0c;列表内的每个元素之间用逗号隔开。 列表的基本语法如下&#xff1a; #字面量 [元素1,元素2,元素3,元素4,……]#定义变量 变量名称[元素1,元素2,元素3,元素4,……]#定义空列表 变量名…

Linux的防火墙

一、防火墙概述 防火墙是一种计算机硬件和软件的结合&#xff0c;使internet和intranet之间建立一个安全网关&#xff08;Security Gateway&#xff09;&#xff0c;从而保护内网免受非法用户侵入的技术。 防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成。…

安防视频监控EasyCVR视频汇聚平台无法编辑设备通道信息的原因排查及解决

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构&#xff0c;兼容性强、支持多协议接入&#xff0c;包括国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SD…

ECharts - 坐标轴刻度数值处理

写图表时&#xff0c;Y轴的数值过大&#xff0c;不太可能直接展示&#xff0c;这时候就得简写了&#xff0c;或者百分比展示的也要处理&#xff0c;如下图&#xff1a; yAxis: {type: value,// Y轴轴线axisLine: { show: false }, // 刻度线axisTick: { show: false },// 轴刻度…

ECharts实现按月统计和MTBF统计

一、数据准备 下表是小明最近一年的旅游记录 create_datecity_namecost_money2023-10-10 10:10:10北京14992023-11-11 11:11:11上海29992023-12-12 12:12:12上海19992024-01-24 12:12:12北京1232024-01-24 12:12:12上海2232024-02-24 12:12:12广州5642024-02-24 12:12:12北京…

学习笔记之Java篇(0729)

p 数组 大纲知识点数组的概念数组的定义、四个特点数组的常见操作普通遍历、for-each遍历、java.util.Array类用法多维数组多维数组的内存结构、存储表格、Javabean和数组存储表格常见算法冒泡排序基础算法、冒泡排序优化算法、二分法查找&#xff08;折半查找&#xff09; 1、…

【JavaWeb】Filter

基本使用 使用了过滤器之后&#xff0c;要想访问web服务器上的资源&#xff0c;必须先经过滤器&#xff0c;过滤器处理完毕之后&#xff0c;才可以访问对应的资源。过滤器一般完成一些通用的操作&#xff0c;比如&#xff1a;登录校验、统一编码处理、敏感字符处理等。 使用操…

nginx 子路径映射配置

如果子路径转发到另一个服务器IP&#xff0c;配置如下&#xff0c;注意都要以“/”结尾。 #指定nginx进程数 worker_processes 1; pcre_jit on;events {# 连接数上限worker_connections 30000; }#http服务 http {server {listen 20012;# 监听的端口号server_name localho…

Spring IoC DI(笔记)

一.了解SpringIoC&DI 1.1IoC 通过前面的学习,我们知道了Spring是一个开源框架,他让我们的开发更加简单.他支持广泛的应用场 景,有着活跃而庞大的社区,这也是Spring能够长久不衰的原因&#xff0c;但是这个概念相对来说,还是比较抽象&#xff0c;我们用一句更具体的话来概…

纯原创【车牌识别】基于图像处理的车牌识别——matlab项目实战(含GUI界面)详解

摘要 车牌识别系统乃计算机视觉与模式识别技术于智能交通领域的重要研究课题之一。其作用在于从复杂背景里提取运动中的汽车牌照&#xff0c;进而识别出车牌号码。车牌识别技术在高速公路电子收费、日常停车场管理以及交通违章监控等场景得到广泛运用。它的问世对于维护交通安全…

代码随想录二刷(链表章节)

代码随想录二刷(链表章节) 链表就是通过指针串联在一起的线性结构&#xff0c;每个节点都是由一个数据域和指针域(存放下一个节点的指针)。 双链表就是每个节点中既有指向前一个节点的&#xff0c;也有指向后一个节点的。 循环链表就是把头和尾连起来。 性能分析如下&#xf…