大模型知识库

一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。

1. 下载Langchain-chatchat

git clone https://github.com/chatchat-space/Langchain-Chatchat/

2. 下载大模型和embedding模型

大模型: git clone https://huggingface.co/THUDM/chatglm3-6b-32k

embedding 模型:  git clone https://huggingface.co/BAAI/bge-large-zh
如果在下载过程中遇到huggingface.co is not conneted, 可以使用以下方法解决:
完美解决huggingface问题:Failed to connect to huggingface.co port 443_failed to connect to huggingface.co port 443 after-CSDN博客
pip install -U huggingface_hub
export HF_ENDPOINT=https://hf-mirror.comhuggingface-cli download --resume-download --local-dir-use-symlinks False THUDM/chatglm3-6b --local-dir chatglm3-6bhuggingface-cli download --resume-download --local-dir-use-symlinks False BAAI/bge-large-zh --local-dir bge-large-zh
3. 下载需要的包
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

pip install spacy

pip install cchardet

pip install accelerate

pip install --upgrade pip

pip install -r requirements.txt

4. 修改配置文件

生成配置文件

python copy_config_example.py
cd configs
vim model_config.py

修改

EMBEDDING_MODEL = "bge-large-zh"

LLM_MODELS = ["chatglm3-6b-32k"]

5. 安装相应的向量数据库

1)安装postgresql数据库

PostgreSQL: Linux downloads (Ubuntu)

启动数据库

service postgresql start

查看是否启动成功

pg_lsclusters

2)安装向量数据库 

GitHub - pgvector/pgvector: Open-source vector similarity search for Postgres

通过以下的命令解决:

pg_config --includedir-server
sudo apt install postgresql-server-dev-all

su - postgrespsql

修改kb_config.py

SQLALCHEMY_DATABASE_URI = f"postgresql://langchain:langchain@127.0.0.1:5432/langchain_chatchat"

DEFAULT_VS_TYPE = "pg"
创建新的user

CREATE USER langchain WITH PASSWORD 'langchain';

创建数据库langchain_chatchat

CREATE DATABASE langchain_chatchat;

ALTER USER "langchain" WITH login superuser createrole createdb replication bypassrls;

6. 安装插件

python -m spacy download en_core_web_sm

python -m spacy download zh_core_web_sm

pip install psycopg2

pip install pgvector

pip install flask-mysqldb

pip install protobuf==3.20

pip install filemagic

7. 启动服务的代码:

python startup.py -a

postgres sql操作

查询所有的数据库:\l

查看所有的用户:

SELECT usename AS username,

usesysid AS user_id,

usecreatedb AS can_create_db,

usesuper AS is_superuser,

userepl AS can_replicate,

passwd AS password,

valuntil AS password_expiration

FROM pg_catalog.pg_user;

GRANT CONNECT ON DATABASE langchain_chatchat TO langchain;
GRANT USAGE ON SCHEMA public TO langchain;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO langchain;
ALTER USER "langchain" WITH login superuser createrole createdb replication bypassrls;

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

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

相关文章

汽车电子零部件(8):T_Box

前言: 网联汽车(Connected Vehicles ,CV)是一个广泛的概念,四个主要的CV线程已发展起来:互联、自主、共享和电动。这些应用于包括CV在内的垂直领域:汽车、通信、互联网和共享手机服务。中国汽车工程师学会(SAEC)提倡将车载ADAS(高级驾驶员辅助系统)与通信技术相结合…

gitlab仓库使用流程(开发)

1.1.GitLab代码提交流程: 1.1.1准备阶段: 确保已经安装了Git,并且配置了正确的用户名和邮箱地址。 在本地创建一个新的文件夹,用于存放即将开发的代码。 1.1.2.拉取代码: 使用git clone命令从GitLab上拉取项目代码…

基于python的在线学习与推荐系统

技术:pythonmysqlvue 一、系统背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大…

阿里5年经验之谈 —— 接口测试用例如何编写?

接口测试用例如何编写?下面简单给大家讲解一下。 接口测试用例是目前软件开发中不可或缺的一个重要部分,因此编写接口测试用例同样重要。 接口测试用例的作用非常明显,它能够帮助我们了解产品正在考验、调整它如何表现在特定情境之下、产品…

01|模型IO:输入提示、调用模型、解析输出

Model I/O 可以把对模型的使用过程拆解成三块,分别是输入提示(对应图中的Format)、调用模型(对应图中的Predict)和输出解析(对应图中的Parse)。这三块形成了一个整体,因此在LangCha…

VScode 设置个性化背景(保姆级教程)

VS Code设置个性化背景的作用主要体现在以下几个方面: 提升编程体验:个性化背景能够让编程环境更符合个人的审美和习惯,使得长时间在VS Code中进行代码编辑时,能够保持愉悦的心情,从而提高编程效率。减少视觉疲劳&…

【工具】Mermaid + 大模型画流程图

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 引入使用画TCP三次握手了解历史人物 总结 引入 最近看面试文章关于TCP三次握手和…

数据预处理:重复值

数据重复值处理 数据重复值出现情况重复的记录用于分析演变规律重复的记录用于样本不均衡处理重复的记录用于检测业务规则问题 数据重复值出现情况 数据集中的重复值包括以下两种情况: 数据值完全相同的多条数据记录。这是最常见的数据重复情况。数据主体相同但匹…

XAI之TDB:transformer-debugger的简介、安装和使用方法、应用案例之详细攻略

XAI之TDB:transformer-debugger的简介、安装和使用方法、应用案例之详细攻略 导读:小语言模型在处理一些任务时会出现无法明确解释的行为,难以细致追踪模型内部各个组件如神经元、注意力头等在推理过程中的作用。2024年3月12日,Op…

第二十六天-统计与机器学习SciPy,Scikit-Leaen

目录 1.介绍 2.使用scipy 1. 安装 2.拟合曲线 3.随机变量与概率分布 4.假设检验 5.参数检验 3.使用Scikit-Learn 1. 机器学习库,建立在numpy,scipy,matplotlib基础上 2.包含功能 3.安装 1.官网:https://scikit-learn.org 2.下载 3.线性回归…

STM32 ADC库函数

单片机学习! 目录 1. RCC_ADCCLKConfig 函数 2. ADC_DeInit 函数 3. ADC_Init 函数 4. ADC_StructInit 函数 5. ADC_Cmd 函数 6. ADC_DMACmd 函数 7. ADC_ITConfig 函数 8. 用于校准的函数 8.1 ADC_ResetCalibration 函数 8.2 ADC_GetResetCalibrationSta…

【Java扫盲篇】==和equals的区别

这是一道面试经典题,面试官对你说:小伙子,请你说说和equals的区别 对于来说 如果比较的是基本数据类型,那么比较的是数据的值是否相同。注意:(与数据类型无关) int a 10;int b 10;System.out…

数据库系统概念(第二周 第二堂)(关系模型)

目录 回顾 关系模型 历史与现状 组成成分 数据结构——关系 关系定义 关系性质 关系和关系模式 难点概念理解 关系属性的分类 一、超码(superkey) 二、候选码(candidate key) 三、主码(primary key&#…

Catmull-Rom P5 ThreeJs与前端

文章目录 问题Echarts 3D如何让曲线变得平滑?Echarts 2D图中平滑效果是如何实现的?如何在一个Echarts 3D图中画一个圆圈?如何在Echarts 3D图中画一个立方体? Catmull-Rom插值算法先来回答第二个问题回到第一个问题在Echarts 3D图中…

git基础命令(三)之远程命令

目录 基础概念origin git clonegit remote add 添加远程存储库git remote 显示远程存储库列表git pushgit pushgit push origin mastergit push origin --allgit push -f origin mastegit push origin --tags git fetch获取远程仓库的更新查看远程分支的更新情况拉取特定远程分…

【Linux】——进程地址空间 Linux2.6内核进程调度队列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一、环境变量的补充 二、进程空间的地址 2.1、程序地址空间 2.2、研究背景 2.3、程序地址空间 来段代码感受一下 2.4、进程地址空间 2.5、如何…

一文搞懂IP

IP 1. 基本介绍2. IP地址定义3. IP地址分类4. 子网掩码5. 全局地址与私有地址 1. 基本介绍 TCP/IP 协议的心脏是网络层,主要“实现节点之间的通信”,即“点对点(end-to-end)通信”。 网络层包含IP(Internet Protocol)及DNS(Domain Name Sys…

Linux的基本指令讲解

1 ls指令 语法: ls [选项][目录或文件] 功能: 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。 常用选项: -a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -d…

Json Web Token(JWT) 快速入门

推荐视频:【从零开始掌握JWT】 目录 第一章 会话跟踪 01 使用Cookie和Session,jsessionid 02 使用token 例子一:自定义token 例子二:使用redis存储token 第一章 会话跟踪 应用背景 :浏览器访问web应用&#xff…

下拉树级带搜索功能

可以直接复制粘贴到自己的项目里,方法处把接口替换一下 <template><div><el-popoverplacement"bottom"width"200"trigger"click"><el-inputslot"reference"class"mrInput":placeholder"placehol…