AI-基于Langchain-Chatchat和chatglm3-6b部署私有本地知识库

news2025/1/11 18:50:11

目录

  • 参考
  • 概述
  • 部署安装
    • 环境准备
    • 原理和流程图
    • 一键启动
    • 启动WebAPI 服务
    • 启动WebUI服务
  • Docker部署
  • 知识库管理
  • 常见问题
    • 本地知识库怎么微调?回答不准确

参考

手把手教你搭建本地知识库问答AI机器人
LangChain-Chatchat:基于LangChain和ChatGLM2-6B构建本地离线私有化知识库
在家庭私有云上部署体验语言模型chatglm3-6b,打造私人助理

概述

自从去年GPT模型火爆以来,降低了很多个人和企业进入人工智能领域的门槛,对于大模型尤其是开源的大模型国内应该比较受关注和期待,毕竟高额的成本也能将不少人阻挡在门外,其次,大家都希望在产品中集成LLM的能力,结合业务来落地智能化应用,提升产品的竞争力,最直接的应用就是构建知识库。

下面汇总了一下之前介绍的有关构建知识库相关的文章和视频,包含了开源和闭源多种不同的解决方案,从使用情况来看,因为都是开源产品,所以在架构和功能完整性上可能都不够全面,因为一直在持续的迭代过程。

如果是站在一个中小企业的角度,去选型一款比较符合企业构建本地知识库需求的产品来评估,从以下介绍的开源产品目前的实现效果和未来规划目标来看,个人觉得Quivr从设计上来讲更加符合应用需求,前提是增加企业已有文档库、数据库纳入知识库的能力,扩展Danswer提高的功能,完善并丰富对于开源或者闭源模型的支持(目前暂时支持较弱)尤其是对于中文支持不错的国产模型比如ChatGLM2等,另外一种方案就是今天介绍的LangChain-Chatchat刚好可以与Quivr互补,其对于模型的支持很丰富,但对于业务端的属性支持较弱,只支持单个用户单个知识库,不能建立多个知识库通过权限来隔离。

部署安装

环境准备

我使用的硬件和模型信息:

显卡:一块英伟达的A6000

LLM:开源的chatglm3-6b

向量模型:开源的jina-embedding-l-en-v1

向量数据库:开源的milvus

原理和流程图

在这里插入图片描述

一键启动

一键启动聊天机器人
安装完成,输入以下命令启动

$ python startup.py -a

看到下面画面后,表示正常启动了
在这里插入图片描述

启动WebAPI 服务

在线调用API服务的情况下,直接执执行 server/api.py 脚本启动 API 服务;

python server/api.py

启动 API 服务后,可访问 localhost:7861 或 {API 所在服务器 IP}:7861 FastAPI 自动生成的 docs 进行接口查看与测试。

FastAPI docs 界面
在这里插入图片描述

启动WebUI服务

在浏览器输入聊天机器人地址:http://127.0.0.1:8561
在这里插入图片描述

Docker部署

如果想快速部署 LangChain-Chatchat 产品来体验,可以选择Docker一键部署的方式,比较简单,只需要先安装Docker 容器,在Unbuntu环境中如何安装 Docker & Docker Compose,可以参考文章 《Quivr 基于GPT和开源LLMs构建本地知识库 (更新篇)》中的3.2节。这里不过多赘述。 Windows安装Docker更简单。

Docker镜像使用的版本一般会稍微滞后一些,如果想快速体验最新的版本按前面开发模式部署会更合适一点。

LangChain-Chatchat项目使用的 Docker 镜像地址是:

http://registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.0

docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.0
  • 该版本镜像大小 33.9GB,使用 v0.2.0,以 nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04 为基础镜像
  • 该版本内置一个 embedding 模型:m3e-large,内置 chatglm2-6b-32k
  • 该版本目标为方便一键部署使用,请确保您已经在Linux发行版上安装了NVIDIA驱动程序
  • 请注意,您不需要在主机系统上安装CUDA工具包,但需要安装 NVIDIA Driver 以及 NVIDIA Container Toolkit,请参考安装指南
  • 首次拉取和启动均需要一定时间,首次启动时请参照下图使用 docker logs -f 查看日志
  • 如遇到启动过程卡在 Waiting… 步骤,建议使用 docker exec -it bash 进入 /logs/ 目录查看对应阶段日志

知识库管理

切换到知识库管理后,可以查看和删除已创建知识库、新增知识库,也可以对知识库进行文件增减。
在这里插入图片描述

新建知识库:点击“新建知识库”,输入知识库名称和简介,选择向量数据库和模型,再点击新建即可。

在这里插入图片描述

上传文件到知识库:选择已创建知识库,选择上传文件,点击“添加文件到知识库”

在这里插入图片描述

创建好知识库后,可以切换菜单到“对话”,选择对话模式为“知识库问答”,并选择要对话的知识库,即可开启和特定知识库聊天。

常见问题

本地知识库怎么微调?回答不准确

知识库不用微调,不准确需要分析定位原因,是数据本身问题还是ai问题,ai层面可以考虑增加问题改写步骤(看我前两天分享),换更好的大模型,向量切分方面的优化等

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

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

相关文章

flink1.14.5使用CDH6.3.2的yarn提交作业

使用CDH6.3.2安装了hadoop集群,但是CDH不支持flink的安装,网上有CDH集成flink的文章,大都比较麻烦;但其实我们只需要把flink的作业提交到yarn集群即可,接下来以CDH yarn为基础,flink on yarn模式的配置步骤…

读元宇宙改变一切笔记09_硬件与互操作性(下)

1. 移动互联网的继承者 1.1. 要想让元宇宙成为现实,需要开发新的标准,创建新的基础设施,可能还需要对长期存在的TCP/IP协议进行彻底改革 1.1.1. 采用新的设备和硬件,甚至可能打破技术巨头、独立开发者和终端用户之间的权利平衡 …

简单整理FFmpeg相关命令集

FFmpeg相关命令集 简单整理了FFmpeg相关命令,主要包括ffplay播放控制和媒体播放命令、ffmpeg命令相关参数以及常用的提取音视频等命令。 🎡导航小助手🎡 FFmpeg相关命令集1.ffmpeg命令分类查询2.ffplay命令2.1 ffplay播放控制2.2 ffplay命令…

使用ffmpeg进行视频截取

1 原始视频信息 通过ffmpeg -i命令查看视频基本信息 ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-sta…

【Kotlin】协程的字节码原理

前言 协程是Koltin语言最重要的特性之一,也是最难理解的特性。网上关于kotlin协程的描述也是五花八门,有人说它是轻量级线程,有人说它是无阻塞式挂起,有人说它是一个异步框架等等,众说纷芸。甚至还有人出了书籍专门介…

[笔记]深度学习入门 基于Python的理论与实现(一)

代码仓库 gitee 1. python 入门 1.5之前是python安装和基础语法, 我直接跳过了 1.5 Numpy 深度学习中经常出现数组和矩阵运算,Numpy 的数组类 numpy.array 提供了很多便捷的方法 1.5.1 导入 Numpy import numpy as np1.5.2 生成 Numpy 数组 np.array()&#xf…

云计算概述(发展过程、定义、发展阶段、云计算榜单)(一)

云计算概述(一) (发展过程、定义、发展阶段、云计算榜单) 本文目录: 零、00时光宝盒 一、前言 二、云计算的发展过程 三、云计算的定义 四、云计算发展阶段 五、云计算公司榜单看云计算兴衰 六、参考资料 零、0…

数据结构与算法教程,数据结构C语言版教程!(第四部分、字符串,数据结构中的串存储结构)二

第四部分、字符串,数据结构中的串存储结构 串存储结构,也就是存储字符串的数据结构。 很明显,字符串之间的逻辑关系也是“一对一”,用线性表的思维不难想出,串存储结构也有顺序存储和链式存储。 提到字符串&#xff…

《SPSS统计学基础与实证研究应用精解》视频讲解:SPSS运行环境设置

《SPSS统计学基础与实证研究应用精解》1.8 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解1.6节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。本书旨在手把手教会使…

【机器学习300问】8、为什么要设计代价函数(损失函数)?它有什么用?

一、先介绍一下线性回归模型 (1)基本概念理解 文字解释:线性回归模型顾名思义,他处理的回归问题,是监督学习的一种。线性回归模型是一种预测模型,其基础是假设目标值和输入值之间存在线性关系。通过一条最…

矩阵快速幂技巧练习(一)— 经典牛问题

上一篇文章简单介绍了斐波那契数列的矩阵乘法,并做了一个小推广,这篇文章来小试牛刀,做一个经典的练习题。 求斐波那契数列矩阵乘法的方法 题目 第一年农场有一只成熟的母牛A,往后的每年: 每一只成熟的母牛都会生一只…

websocket项目 聊天室

1.项目概述 这个项目是一个基本的实时聊天应用,适用于小型团队或群体。提供了多个聊天室供用户选择。可以通过该代码进行进一步的扩展和定制,例如添加聊天机器人、改进界面等。 2.技术栈 flask,boostrapt,websocket&#xff0c…

【Rust】get_local_info 0.2.4发布

发布0.2.4,修正0.2.3([我的Rust库更新]get_local_info 0.2.3-CSDN博客)中存在的峰值算法bug,现已提交力扣并通过,耗时0ms

[笔记]深度学习入门 基于Python的理论与实现(二)

2. 感知机 感知机(perceptron)是由美国学者 Frank Rosenblatt 在 1957 年提出的。它作为神经网络(深度学习)的起源的算法,是学习神经网络和深度学习的重要一环 严格地说,本章所说的感知机应该称为‘人工神经元’或‘朴素感知机’&…

排序算法8----归并排序(非递归)(C)

1、介绍 归并排序既可以是内排序(在内存上的数据排序),也可以是外排序(磁盘上)(硬盘)(在文件中的数据排序)。 其他排序一般都是内排序。 区别于快速排序的非递归&#xf…

uni-app的学习【第三节】

五 运行环境判断与跨端兼容 uniapp为开发者提供了一系列基础组件,类似HTML里的基础标签元素,但uni-app的组件与HTML不同,而是与小程序相同,更适合手机端使用。 虽然不推荐使用 HTML 标签,但实际上如果开发者写了`div`等标签,在编译到非H5平台时也会被编译器转换为 `view`…

爬虫-8-数据存储-mysql

#mysql占空间最小吧,数据存储没问题吧 (//∇//)

Flowable:BpmnModel API

之前都是使用工具在绘制流程图,但是还是很少去认真的去看这个xml,有时候我们要从xml中分析获取一些结果,这个时候就要对xml及对应的api有足够的认识。 一:重新认识bpmn definitions:根节点用于定义流程。 bpmndi:BPMND…

台式OLED透明屏的6大基本要素

台式 OLED 透明屏作为一种创新的显示技术,正逐渐走进人们的视野。本文将为您全面介绍台式 OLED 透明屏的各个方面,包括类别、尺寸、技术参数原理、应用、主要厂家(尼伽)以及价格因素。 一、类别台式 OLED 透明屏根据不同的需求和应…

Java 实现双链表

文章目录 双链表(Doubly Linked List)是一种常用的数据结构,它与单链表相似,但每个节点除了包含指向下一个节点的指针外,还包含一个指向前一个节点的指针。 双链表的节点由三部分组成:数据域(存…