3⃣️知识库创建

type
status
date
slug
summary
tags
category
icon
password

一、什么是知识库,为什么需要

在写后面内容时候,发现有必要出一期好好讲讲,知识库是什么。我会结合程序思想,围绕是什么、为什么、怎么做,这三点展开讲讲,dify 和其他同类的 ai-agent平台(例如coze)为什么会有知识库。
 

二,为什么需要知识库

解决 LLM 上下文token 有限的问题
  • 在GPT3.5 时代,LLM 的token 上下文只有4080,大概为中文的字符的1.5倍,也就说输入 1000 个汉字,为2000 tokens(何为token,参考这篇
  • 因此,LLM 能理解的内容大概就2000 字左右,对于长文本、复杂功能、上下文记忆,远远不够。所以需要一个新的工具:向量数据库
  • 将用户输入的文本,分割、向量化、存入向量数据库,然后根据用户输入向量化,跟向量数据库中的数据相似度对比,获取最优文本,作为上下文,连同问题一起返回给 LLM ,这既是最原始基础的 RAG(检索增强技术)
 
 

三、什么是知识库

存储分割文本的数据库
  • 能获取多格式内容,word、excel、pdf、txt、网页内容等
  • 可以团队协同合作
  • 文本分割成500~1000长度等小块文本
  • 向量化存储内容,能存储文本内容
  • 可以相似度匹配获取语义接近的文本
 

四、创建知识库

我们拿,《中国人口三千年》这本书做例子(为什么呢?鬼叫它在我搜索时候排第一),文件放在上面。
1,创建知识库
notion image
先创立一个空的数据库,然后点击添加文件
 
2,导入文件
notion image
有三种导入方式,文本上传、notion、web
这里选择上传文本
 
3,文本分段与清洗
notion image
这里是决定知识库的质量地方,所以必须要谨慎对待
  • 分段设置:
    • 自动是官方已经默认配置好的,一般选这个就可以
    • 自定义化:就要讲解一些概念
      • 分段标识符: 是以什么字符为分段一般 \n(换行),或者你可以在自己文本中自定义
      • 分段最大长度:这里dify 设置最高1000,你要考虑,多段文本+指令集+用户问题,是否会超过模型的 max_token,一般500合适
      • 分段重叠长度:就是分段文本与上下文的冗余,这样能更好的衔接上下文,一般10~20%
  • 索引方式:
    • 也就是向量化,不同模型的向量化工具、词库不一致,所以最好使用原本模型的,或者高质量的向量化工具
    • Q&A分段:将文本用LLM 推理成一问一答形式,多适用于短小、采访、多问题文本。
  • 检索设置
    • 向量检索:知识库会把用户问题跟知识库内容,进行相似度匹配,并且返回语义相似度最高的前几个文本返回
 
notion image
然后点击下一步,等程序向量化文本、索引后
 

五,知识库相关功能介绍

 
查看知识库内的文档,可以多个
notion image
 
召回测试:也即是知识库检索测试,可以输入问题,看看返回的文段相似度
notion image
 
知识库设置:
这里可以设置 embedding(向量化工具)模型
也可以设置 Rank (重排)模型
TopK:是一次返回多少文段 Score:是文段要跟 用户问题语义相似度要多高,0.00~1.00,越高,跟问题越相似,一般 0.3~0.4 左右
notion image
1⃣️你的第一个聊天机器人4⃣️工作流创作rag机器人
Loading...
目录