知识库与知识图谱
本教程带领管理员创建一个 Milvus 知识库、把文档处理到可检索状态,并让 Agent 在对话中使用它。开始前请先按快速开始启动完整模式,配置可用的聊天模型与嵌入模型,并准备一份不含敏感数据的测试文档。Dify 与 Notion 只读连接器、管理 API 和图谱运维见知识库管理与 API 参考。
完成后的结果
完成本教程后,可以观察到三个结果:知识库详情页中测试文件的状态为 indexed;检索测试返回带文件来源的相关片段;配置该知识库的 Agent 能基于同一份文档回答问题。文件上传和任务完成属于中间状态,最终验收以这三个结果为准。
知识库类型
本教程选择 Milvus。Dify 与 Notion 只执行外部检索,不支持 ARS 的文档上传、解析、索引和全文预览流程。
创建知识库
使用管理员账号访问 Web「知识库」页面,点击「新建知识库」:
- 填写知识库名称和描述
- 选择
Milvus - 选择嵌入模型和适合测试文档的分块策略
- 配置读取与管理范围
- 保存,并进入新知识库详情页
知识库的名称和描述会被智能体用来判断何时应该使用这个知识库进行检索,所以请尽量详细地描述。
详情页应显示刚创建的名称、类型和空文件列表。创建失败时先检查嵌入模型配置与页面错误,不要继续上传到一个未确认存在的知识库。
文件处理流程
Web 的「添加到知识库」会在创建文件记录后自动启动解析,不需要再手动提交一次“待解析”文件:
- 在详情页点击「上传」,选择测试文档并设置 OCR、解析器等参数。如果希望解析完成后立即建立索引,同时启用「自动入库」并确认分块参数。
- 点击「添加到知识库」,在任务中心观察导入任务。未启用自动入库时,任务完成后刷新文件列表,确认状态为
parsed;uploaded只是任务执行中的短暂状态,不应作为操作终点。error_parsing表示解析失败,应先查看错误并调整 OCR 或处理参数。 - 如果没有启用自动入库,选择状态为
parsed的文件并提交入库;如果已经启用,则等待同一任务完成索引。最终刷新文件列表,确认状态为indexed;error_indexing表示分块、嵌入或存储失败。
解析负责生成 Markdown,具体 OCR 选择见文档处理与 OCR;入库负责按当前分块参数生成 chunk 与检索索引。页面任务成功只是编排信号,只有文件行达到 parsed 或最终的 indexed 才能证明对应阶段完成。状态机、分步 API 和恢复语义见知识库机制详解与知识库管理与 API 参考。
验证检索结果
打开知识库详情页「检索测试」,输入一个只有测试文档能够回答的具体问题。成功结果应至少包含相关文本片段、文件来源和 file_id;如果结果为空,先确认文件状态为 indexed,再检查嵌入模型、分块和检索参数。
不要只用宽泛关键词验证,因为模型常识或多个文档都可能命中。建议在测试文档中放入一个无敏感信息的唯一短语,并确认检索结果来自该文件。需要知识导图、示例问题或图谱运维时转到知识库管理与 API 参考。
配置共享范围
创建者在“访问权限”中分别设置谁可读取、谁可管理;管理范围必须包含在读取范围内。范围可以是全局、指定部门或指定用户。普通管理员只有命中对应范围时才获得权限,不会因为角色自动访问本部门或指定用户知识库;superadmin 可以管理全部知识库。
保存后使用一个不在读取范围内的测试账号确认列表中看不到该知识库,再使用范围内账号确认可以检索。完整角色上限与 share_config 语义见知识库管理与 API 参考。
让 Agent 使用知识库
进入 Agent 配置,在「知识库」范围中选择刚创建的知识库,并确认 knowledge-base Skill 对该 Agent 可见,然后保存。这个选择只会缩小当前用户已有权限范围,不会替用户授予读取权限。
新建对话,提出与检索测试相同的问题,并要求说明依据文件。Agent 应先激活知识库 Skill,再检索并基于测试文档回答;如果回答只使用模型常识,检查 Agent 是否保存了知识库选择、当前账号是否命中读取范围,以及工具列表中是否能激活 knowledge-base Skill。
下一步
- 配置 OCR、解析器和分块参数:文档处理与 OCR
- 使用共享权限、管理 API、知识导图、示例问题和知识图谱:知识库管理与 API 参考
- 理解状态机、存储、恢复、权限和 Agent 工具链路:知识库机制详解
- 评估检索质量:知识库评估