- Published on
Dify 基础使用知识库
- Authors

- Name
- 叫我小N就好啦
- GitHub
- @MinorN
Dify 实战-知识库搭建
知识库就是为了大模型在回答之前先去根据我们自己内部(公司)的知识进行搜索,然后回答,如果没有对应的内容,大模型大概率会出现 AI 幻觉(一本正经地胡说八道)
RAG,全称检索增强生成,我们可以让用户的查询先经过一个检索的节点(检索提供的知识库的内容),然后再经过 LLM 节点,最后返回
我们必须先构建知识库,我们先对文件预处理,然后对文件进行切分(文件可能太大),然后需要将切分的结果向量化(不理解没事),最后构建索引即可
导入文本知识库
我们来创建一个知识库来试试
这里会有多种数据源的选择
我们先以导入 pdf 来做示范,随便上传一个 pdf 文件
先不做任何修改,直接保存处理,等待一段时间后,我们重新创建一个 chatflow 来进行测试
然后询问有关知识库内的问题就会发现回答的准确了,
知识库具体设置
接下来我们来看看刚才默认的那些参数
通用分段设置
通用的分段设置中,分段标识符用于分段的规则,一般以换行符为分段,如果是 pdf、word 一般用 \n ,markdown 一般用 # 来进行分段;分段最大长度指的是,如果超过了分段的最大长度,那么直接截取(一般 1 个tokens 对应 1-1.5 个汉字);分段重叠长度可以保留分段之间的关系
父子分段
有些回答可能会有上下文的限制条件,如果只使用通用分段,可能会导致上下文的限制条件丢失,导致回答不精准,此时就需要父子分段
父段、子段可以看看成类似包含关系,父分段大一点,会包含子分段(可能不是完全包含)
这里具体值的设定,需要不断地调试,每个文档情况都不同
检索设置
向量检索
通过向量之间的比较,对比向量之间的相似度,找到最相似的文本分段
全文检索
通过关键词匹配,适合精准匹配
混合检索
结合上述两种检索方式,从两种查询结果选择最匹配的最佳结果
Rerank 模型
首先模型得支持 Rerank,Rerank 模型会对于初步检索的结果,排序然后打分,随后获取一个相关性最高或者最相似的结果返回
Top K:用于筛选与用户问题相似度最高的文本片段。系统同时会根据选用模型上下文窗口大小动态调整分段数量。
Score 阈值:用于设置文本片段筛选的相似度阈值。不易设置过高,过高会导致漏检,过低就会导致出现不相关内容