基于Langchain-chatchat搭建本地智能知识问答系统

news2024/9/20 5:59:38

基于Langchain-chatchat搭建本地智能

  • 搭建本地智能知识问答系统:基于Langchain-chatchat的实践指南
    • 引言
    • 项目概述
    • 环境安装
      • Anaconda
      • pip
    • 项目安装步骤
    • 大语言模型(LLM)的重要性
    • 结语


搭建本地智能知识问答系统:基于Langchain-chatchat的实践指南

引言

在数字化时代,企业对知识管理的需求日益增长。本地化的知识问答系统不仅能提升数据安全性,还能实现私域化部署,满足企业对数据保密和快速响应的需求。本文将介绍如何基于Langchain-chatchat搭建一个本地智能知识问答系统。

项目概述

基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
依托于本项目支持的开源 LLM 与 Embedding 模型,本项目可实现全部使用开源模型离线私有部署。与此同时,本项目也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型API 的接入。
本项目实现原理如下图所示,过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的 -> 匹配出的文本作为上下文和问题一起添加打包-> 提交给LLM,最后生成回答。
强烈推荐使用 Python3.11,创建一个虚拟环境,并在虚拟环境内安装项目的依赖。需要注意电脑显存要大于12G,不然该项目跑不动。
该项目是一个可以实现完全本地化推理的知识库增强方案, 重点解决数据安全保护,私域化部署的企业痛点。本开源方案采用Apache License,可以免费使用,无需付费。

以下是搭建基于Langchain-chatchat的本地智能知识问答系统的流程图:

成功
失败
开始
环境检查
结束
是否安装Anaconda?
创建并激活Anaconda环境
安装Anaconda
检查Anaconda安装
安装pip
克隆Langchain-Chatchat仓库
安装依赖
下载模型资料包
初始化配置
启动系统
演示系统
结束

环境安装

Anaconda

Anaconda是一个流行的Python数据科学和机器学习平台,它通过提供集成的发行版和包管理器conda,简化了数据科学项目的设置和管理。Anaconda的主要功能包括包管理、环境管理、数据科学工具和库的预装以及跨平台支持。

# 创建新的环境
conda create--name环境名称
# 创建指定 Python 版本的环境
conda create--name环境名称python=版本号# 查看环境
condaenvlist
# 激活环境
conda activate 环境名称
# 删除环境
conda remove-n环境名称--all
# 安装指定包:
condainstall包名称
# 安装指定版本的包
condainstall包名称=版本号
# 安装多个包
condainstall包名称1 包名称2 包名称3 # 查看当前环境的所有包
conda list
# 卸载包
conda remove 包名称

pip

pip是一个现代的、通用的Python包管理工具,用于查找、下载、安装和卸载Python包。

# 安装库
pipinstallpackage-name
# 查看已安装的库
pip list
# 卸载库
pip uninstall package_name

项目安装步骤

  1. 通过Git克隆Langchain-Chatchat仓库。
  2. 进入目录并安装全部依赖。
  3. 使用git lfs安装模型下载资料包。
  4. 初始化配置和数据库。
# 拉取仓库
$ git clone https://github.com/chatchat-space/Langchain-Chatchat.git
# 进入目录
$ cd Langchain-Chatchat
# 安装全部依赖
$ pip install -r requirements.txt
$ pip install -r requirements_api.txt
$ pip install -r requirements_webui.txt
# 默认依赖包括基本运行环境(FAISS向量库)。如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
  • 模型下载:
资料包
$ git lfs install
$ git clone https://huggingface.co/THUDM/chatglm3-6b $ git clone https://huggingface.co/BAAI/bge-large-zh 初始化
$ python copy_config_example.py
$ python init_database.py --recreate-vs
$ python startup.py -a

大语言模型(LLM)的重要性

LLM是利用机器学习技术理解和生成人类语言的AI模型。它们使用基于神经网络的模型和自然语言处理(NLP)技术,能够执行文本分析、情绪分析、语言翻译和语音识别等任务。

结语

基于Langchain-chatchat搭建的本地智能知识问答系统,不仅提供了一个开源的解决方案,还通过Apache License允许免费商用,无需付费。这为企业提供了一个高效、安全且成本效益高的知识管理工具。


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

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

相关文章

【SQL Server数据库】带函数查询和综合查询(2)

目录 1.检索至少选修课程“数据结构”和“C语言”的学生学号。 2.列出所有班名、班主任、班长、系名。 3.没有选修以“01”开头的课程的学生学号,姓名,选课的课程号。 4. 统计各门课程的选修人数,并按人数降序排列…

Linux-磁盘管理与文件系统

目录 一、磁盘结构 1、磁盘的物理结构 2、磁盘的数据结构 3、磁盘存储容量 4、接口类型 二、磁盘分区 1、磁盘的两种分区方式 1.1、MBR分区 1.2、GPT分区 三、查看硬盘的分区情况 1、Fdisk—查询磁盘设备 2、lsblk—以树形查看磁盘分区 3、blkid—查看磁盘的UUID …

eNSP中静态NAT和动态NAT的配置和使用

一、静态NAT 1.拓扑图 a.新建拓扑图 b.PC端配置 PC1: PC2&#xff1a; c.路由器配置 AR1: <Huawei>system-view [Huawei]sysname R1 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.254 24 [R1-GigabitEthernet0/0/0]quit…

浏览器提升编译速度小技巧(二)- 使用Dev Drive

1. 引言 在浏览器开发过程中&#xff0c;编译速度对开发效率有着重要影响。对于大型项目如Chrome和Firefox&#xff0c;编译时间的长短不仅关系到开发进度&#xff0c;还直接影响开发者的工作体验。为了提升编译速度&#xff0c;开发者需要不断探索和应用各种优化技巧。 Wind…

Stable Diffusion【真人模型】:人像光影摄影极限写实真实感大模型

大家好&#xff0c;我是极客菌 今天和大家分享一个基于SD1.5的真人大模型&#xff1a;人像光影摄影极限写实真实感大模型。 该模型具有以下特点&#xff1a; 真实肤感&#xff08;在面部肌理和皮肤肌理上均有加强学习&#xff0c;拒绝ai出图假的问题&#xff09; 永不脱妆&a…

discuz插件之优雅草超级列表互动增强v1.2版本更新

https://doc.youyacao.com/9/2142 v1.2更新 discuz插件之优雅草超级列表互动增强v1.2版本更新 [title]20220617 v1.2发布[/title] 增加了对php8的支持 增加了 对discuz3.5的支持

【机器学习】图神经网络(NRI)模型原理和运动轨迹预测代码实现

1.引言 1.1.NRI研究的意义 在许多领域,如物理学、生物学和体育,我们遇到的系统都是由相互作用的组分构成的,这些组分在个体和整体层面上都产生复杂的动态。建模这些动态是一个重大的挑战,因为往往我们只能获取到个体的轨迹数据,而不知道其背后的相互作用机制或具体的动态…

亚马逊卖家为何需要自养账号?揭秘背后的原因

亚马逊是一家极为重视用户体验的国际电商平台&#xff0c;因此用户的评论和星级评价对店铺排名影响深远。平台审核评论非常严格&#xff0c;这些评价直接影响商品在平台上的生存和发展。 在亚马逊上&#xff0c;用户的评分和评论对商品的成功至关重要。好评多的商品通常被认为优…

docker容器相关命令

☆ 问题描述 docker容器相关命令 ★ 解决方案 1. 拉取镜像 docker pull ubuntu2.查看镜像是否拉取成功 docker images3. 运行容器 docker run -itd --name <容器名称> -p <主机端口>:<容器端口> --cpus30 ubuntu # -p设置端口 --cpus/-c 设置核心 …

【CPP】插入排序:直接插入排序、希尔排序

目录 1.插入排序1.1直接插入排序简介代码分析 1.2直接插入对比冒泡排序简介代码对比分析(直接插入排序与冒泡的复杂度效率区别) 1.3希尔排序简介代码分析 1.插入排序 基本思想&#xff1a;把一个待排数字按照关键码值插入到一个有序序列中&#xff0c;得到一个新的有序序列。 …

Python学习笔记19:进阶篇(八)常见标准库使用之glob模块和argparse模块

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 这里贴一下教程地址&#xff1a;https://docs.python.org/zh-cn/3/tutorial/stdlib.h…

执行shell脚本出现 $‘ \r‘ 符号导致执行失败【解决】

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…

mprpc框架基础类的设计

目录 1.回顾 2.主函数书写 3.框架设计 3.1 mprpcapplication.h 3.2 rpcprovider.h 3.3 mprpcapplication.cc 3.4 mprpcprovider.cc 1.回顾 mprpc框架怎么用&#xff1f; 在上一节&#xff0c;我们完成了如何把本地服务发布成RPC服务。 我们打开example下callee下的users…

制造业ERP五大生产模式详解!

制造业面临着从成本控制、生产效率到供应链管理的挑战&#xff0c;每一个环节都需要精细化的管理和高效的协同。而ERP系统&#xff0c;作为一种集信息技术与管理思想于一体的管理工具&#xff0c;正逐渐成为制造业转型升级的关键。那么&#xff0c;通过本文你将会了解到&#x…

某某商场对账返款单,table

好久不写原生html&#xff0c;今天写了个&#xff0c;快忘完了 。。。 Double Header Table ***商场统一收银结算商户对账返款单 商场&#xff08;盖章有效&#xff09; 铺位名称&#xff1a; 铺位号&#xff1a; 制单人&#xff1a; 制单日期&#xff1a; </tr><tr&…

智慧社区:居民幸福生活的保底线,价值非常大。

大屏应该能够显示社区内的关键数据&#xff0c;如人流量、车辆数量、垃圾分类情况等。这些数据可以通过图表、数字、地图等形式展示&#xff0c;以便居民和管理者能够直观地了解社区的情况。 智慧社区可视化大屏成为一个有益于社区管理和居民生活的工具&#xff0c;提供实时、准…

北京互动阅读app开发,“身”临其境,阅读精彩

随着大数据与智能化的不断发展进步&#xff0c;线上阅读软件也越来越多&#xff0c;为了缓解对传统翻页阅读方式产生的疲劳&#xff0c;人们对线上阅读提出了新的要求。对此&#xff0c;与智能科技相结合的北京互动阅读app开发&#xff0c;以高互动、高体验感的优势&#xff0c…

Casaos之qittorrent设置(没有账号密码)

点击安装只有没有账号密码&#xff0c;只能从运行日志中找密码&#xff1a; # 查看container docker ps -a # 查看container日志 docker logs ae15cb90afbd 进入系统 最下方&#xff0c;保存。

solidity智能合约如何实现跨合约调用函数

背景 比如现在有一个需求、我需要通过外部合约获取BRC20 token的总交易量。那么我需要在brc20的转账函数里面做一些调整&#xff0c;主要是两个函数内统计转移量。然后再提供外部获取函数。 /*** dev Sets amount as the allowance of spender over the callers tokens.** Ret…

从SRE视角透视DevOps的构建精髓

SRE 侧重系统稳定性&#xff0c;DevOps 强调开发运维协作。SRE 实践助力DevOps&#xff0c;提升系统稳定性与团队协作效率。 SRE 运用软件工程的原理&#xff0c;将系统管理员的手工任务自动化&#xff0c;负责运维由系统组件构成的服务&#xff0c;确保服务稳定运行。SRE职责涵…