利用 langchain 思想实现的基于本地知识库的问答应用

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

依托于本项目支持的开源 LLM 与 Embedding 模型,本项目可实现全部使用开源模型离线私有部署。与此同时,本项目也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入。

本项目实现原理:过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的 top k个 -> 匹配出的文本作为上下文和问题一起添加到 prompt中 -> 提交给 LLM生成回答。


微调、本地知识库和 prompt 是LMM模型调整和优化中的重要概念,它们之间有一定的关系和区别。

  • 微调(Finetuning)是一种让预先训练好的模型适应特定任务或数据集的低成本方案。
  • 本地知识库(Local Knowledge Base)是一种存储行业特定信息的数据库,它可以为LMM模型提供实时、动态的知识补充。
  • Prompt 是一种用于引导模型生成特定类型回答的输入提示。

1. 环境配置

推荐python版本为3.11,使用conda实现

conda create -n langchain python=3.11.7
conda activate langchain

安装项目的依赖

# 拉取仓库
$ 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 中相应依赖取消注释再安装。

2.模型下载

如需在本地或离线环境下运行本项目,需要首先将项目所需的模型下载至本地,通常开源 LLM 与 Embedding 模型可以从 HuggingFace 下载。

git lfs install

# 开源 LLM模型
git clone https://huggingface.co/THUDM/chatglm3-6b(下载太慢,选择modelscope下载)
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

# Embedding 模型
git clone https://huggingface.co/BAAI/bge-large-zh(下载太慢࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值