一、概述
知识库功能将 RAG 管线上的各环节可视化,提供了一套简单易用的用户界面来方便应用构建者管理个人或者团队的知识库,并能够快速集成至 AI 应用中。
开发者可以将企业内部文档、FAQ、规范信息等内容上传至知识库进行结构化处理,供后续 LLM 查询。
相比于 AI 大模型内置的静态预训练数据,知识库中的内容能够实时更新,确保 LLM 可以访问到最新的信息,避免因信息过时或遗漏而产生的问题。
LLM 接收到用户的问题后,将首先基于关键词在知识库内检索内容。知识库将根据关键词,召回相关度排名较高的内容区块,向 LLM 提供关键上下文以辅助其生成更加精准的回答。
开发者可以通过此方式确保 LLM 不仅仅依赖于训练数据中的知识,还能够处理来自实时文档和数据库的动态数据,从而提高回答的准确性和相关性。
核心优势:
• 实时性:知识库中的数据可随时更新,确保模型获得最新的上下文。
• 精准性:通过检索相关文档,LLM 能够基于实际内容生成高质量的回答,减少幻觉现象。
• 灵活性:开发者可自定义知识库内容,根据实际需求调整知识的覆盖范围。
官方文档:https://docs.dify.ai/zh-hans/guides/knowledge-base
二、创建知识库
准备一个excel文件,半期考试成绩.xlsx,内容如下:
登录dify,点击知识库,创建知识库,上传文件
分段设置,选择通用
索引方式,默认是高质量,点击预览块
右上角会出现报错:PluginDaemoninternalServerError: noavailable node, plugin not found
这个是1.1.0版本的bug
解决方案:
点击插件-->探索Marketplace,搜索Lark,安装全部包含Lark的插件,安装完成后,重启dify即可。
再次上传excel文件
点击预览快,就可以看到excel的数据了
最后点击保存并处理
提示嵌入完成
进入知识库,查看文件状态是正常的。
点击召唤测试,可以看到对应的段落,结果不是最准确的。因为这些结果,都包含了语文。
三、使用知识库
新建聊天工作流test-chat
创建完成后,默认是这样的
删除中间的LLM节点,右键删除
添加条件分支,sys.query包含知识库。 也就是聊天信息包含知识库关键字
添加知识库检索,添加知识库,半期考试成绩
添加LLM,进行分析总结
选择模型,qwen-max-laster
上下文,选择知识库,result对象
SYSTEM,这里写提示词。
注意:sys.query是变量, 上下文也是变量。 点击右边的{x}就可以手动选择变量了
添加直接回复
如果不包含知识库关键字,则直接AI回答,添加LLM
最后添加直接回复,完整流程如下:
最后发布,运行
查询知识库
查询非知识库