基于LangChain+LLM的本地知识库问答(附源码)

过去半年,随着ChatGPT的火爆,直接带火了整个LLM这个方向,然LLM毕竟更多是基于过去的经验数据预训练而来,没法获取最新的知识,以及各企业私有的知识

什么是langchain

通俗讲,所谓langchain (官网地址、GitHub地址),即把AI中常用的很多功能都封装成库,且有调用各种商用模型API、开源模型的接口,支持以下各种组件

如你所见,这种通过组合langchain+LLM的方式,特别适合一些垂直领域或大型集团企业搭建通过LLM的智能对话能力搭建企业内部的私有问答系统,也适合个人专门针对一些英文paper进行问答,比如比较火的一个开源项目:ChatPDF,其从文档处理角度来看,实现流程如下

RAG

上图的流程我们一般称之为RAG

这套流程也可以称之为RAG, 主要分为三部分

内容抽取与向量化

将长文档以某种方式切分为若干 block,每个 block 大小一般会小于向量模型能处理的最大上下文。切分方式可以简单也可以是一个复杂的策略。比如,相邻的 block 之间可以保留重复的内容,用来降低简单切分方式造成的信息损失,并进一步补充 block 的上下文信息。

然后将block块向量化,存储在向量数据库中, 比如es, pg_vector, faiss等

ANN向量搜索

对于输入的query ,使用相同的embedding模型进行向量化, 然后在向量数据库中获取n个documents

文档给LLM并提问

将最近的documents合并成上下文并提供给llm问答,构造对应的prompt

简单的问答系统架构都是这样的, 但是具体的有很多细节可以做,比如如何分快, 如何提升召回率, 指令模版怎么构建等等,

代码样例

https://download.csdn.net/download/lazycatlove/89406408?spm=1001.2014.3001.5503

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值