每日更新
指令集工程
Dify 技术流
工作流
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,创建知识库

先创立一个空的数据库,然后点击添加文件
2,导入文件

有三种导入方式,文本上传、notion、web
这里选择上传文本
3,文本分段与清洗

这里是决定知识库的质量地方,所以必须要谨慎对待
- 分段设置:
- 自动是官方已经默认配置好的,一般选这个就可以
- 自定义化:就要讲解一些概念
- 分段标识符: 是以什么字符为分段一般 \n(换行),或者你可以在自己文本中自定义
- 分段最大长度:这里dify 设置最高1000,你要考虑,多段文本+指令集+用户问题,是否会超过模型的 max_token,一般500合适
- 分段重叠长度:就是分段文本与上下文的冗余,这样能更好的衔接上下文,一般10~20%
- 索引方式:
- 也就是向量化,不同模型的向量化工具、词库不一致,所以最好使用原本模型的,或者高质量的向量化工具
- Q&A分段:将文本用LLM 推理成一问一答形式,多适用于短小、采访、多问题文本。
- 检索设置
- 向量检索:知识库会把用户问题跟知识库内容,进行相似度匹配,并且返回语义相似度最高的前几个文本返回

然后点击下一步,等程序向量化文本、索引后
五,知识库相关功能介绍
查看知识库内的文档,可以多个

召回测试:也即是知识库检索测试,可以输入问题,看看返回的文段相似度

知识库设置:
这里可以设置 embedding(向量化工具)模型
也可以设置 Rank (重排)模型
TopK:是一次返回多少文段
Score:是文段要跟 用户问题语义相似度要多高,0.00~1.00,越高,跟问题越相似,一般 0.3~0.4 左右

Loading...
Last update: 2024-08-26
🎉Wellcome AIGC world🎉
-- RongYe.Liu ---
👏进步路上,一路通行👏