2026年langchain 快速入门(三):搭建RAG知识库

langchain 快速入门(三):搭建RAG知识库LLM 大模型一般训练的数据都是滞后的 这是就需要用到 RAG 知识库 RAG 知识库可以降低大模型在输出答案时的幻觉 也能够让大模型知识拓展 构建知识库的流程如下 文档内容切片 gt 文字向量化 gt 向量数据库 文档内容切片 LLM 有上下文长度限制 且向量检索在短文本上更精确 文本切片方法有 按字数切片 按句切片 递归切片 不管是哪个切片方法 目的是保留语义的完整性 因此不是

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



LLM大模型一般训练的数据都是滞后的,这是就需要用到RAG知识库,RAG知识库可以降低大模型在输出答案时的幻觉,也能够让大模型知识拓展。

 
  
文档内容切片
  1. 按字数切片
  2. 按句切片
  3. 递归切片
    不管是哪个切片方法,目的是保留语义的完整性,因此不是某个好或某个坏,根据实际需求进行选择。



文字向量化

将每个切片文字块转换为关系向量

关系向量是怎么来的? 这些是通过对模型进行大量的上下文训练,得到的词语与词语,句子与句子的语义关系上的关联,这是LLM的基础。
不同的文字向量模型输出的向量矩阵也会不同,因此在构建和检索时需要用同一个文字向量模型进行转换。



向量数据库
  1. 两个向量的余弦角大小
  2. 两个向量的欧氏举例
  3. 两个向量的分类区域

用文本也能搜索,为什么要用向量呢? 文本的数据库检索一般通过正则搜索,这种无法关联语义进行检索,因为我们无法保证大模型在检索时能够按照固定的格式。举个例子:

本次都利用千问的语言模型,和FAISS向量数据库演示,来演示

 
  

代码的流程如下:

  1. 初始化RAG:文本切片->文本向量模型->构建向量数据库
  2. 询问ai:提示词->文本向量模型->向量数据库检索->组合prompt->喂给LLM->回答问题->记录历史对话
文本切片
 
  

这里利用了langchain提供的文本分词器(递归分词)

构建向量数据库
 
  

这部分要注意:新版FAISS读取现有数据库要设置:allow_dangerous_deserialization=True,不然会报错

提示词模板
 
  

之前没有讲到历史对话记录,这次补充下:

这个是langchain框架的占位符(其实是框架写好了prompt模板,告诉ai这个是历史对话),使用时将历史对话记录的数组放在这里设置的字段中,在添加历史对话时要使用相关的类进行声明对话(告诉ai这句话是ai说的还是用户说的)

 
  
Chain链的解释(核心逻辑)
 
  

Chain链流程:

  1. 查询RAG的chain:获取字段->内容交给向量数据库检索->将检索的内容(数组)转换为字符串格式->保存到字段并传递给下一个任务
  2. 询问LLM的chain:获取,,字段->填充上面定义的prompt模板->喂给LLM模型->解析成文本并保存在字段

是获取上一个任务传递过来的字段内容。

如果❤喜欢❤本系列教程,就点个关注吧,后续不定期更新~

小讯
上一篇 2026-04-02 11:04
下一篇 2026-04-02 11:02

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/226502.html