知识导图与知识图谱
本页说明 Milvus 知识库的导图、示例问题和图谱运维。它面向管理员和需要查看结果的用户;文档导入和 API 见文档导入与查询 API,状态和存储边界见知识库机制。
知识导图
在知识库详情页的“知识导图”中生成或查看层次化导图。系统根据文件列表和元数据组织分类,最多使用 200 个文件;结果保存到知识库的 mindmap 字段,Agent 可以通过 get_mindmap 读取。
新增文件时可以执行增量更新;纯删除可以直接移除对应叶子节点,不需要再次调用模型。导图只说明文件的组织关系,不代表系统已经阅读或总结全部正文。要回答内容问题,仍需检索 chunk 或打开原文。
只读用户可以查看已经生成的导图。生成、增量更新和重置属于写操作,需要知识库管理权限。
示例问题
知识库详情页可以根据文件列表生成 sample_questions,供检索测试选择。示例问题适合快速检查入口是否可用,但不等于经过人工审核的评估基准。需要可比较的检索分数时,请使用知识库评估并检查参考 chunk 和答案。
构建知识图谱
知识图谱只支持 Milvus 知识库。开始前确认:
- 文档已经解析并完成向量索引;
- 已在图谱配置中选择 LLM 抽取模型;
- 当前账号有知识库管理权限;
- Neo4j 和 Milvus 服务可访问。
在知识库详情页配置抽取器并提交构建任务。任务会从已索引的 chunk 中抽取实体和关系,随后写入结构数据和向量索引。详情页可以查看抽取、结构写入、向量索引进度和失败 chunk。
三类存储分别拥有不同事实:
| 存储 | 负责的事实 |
|---|---|
| PostgreSQL | chunk、抽取状态、图谱处理状态和任务信息 |
| Neo4j | 实体、关系和 chunk 关联 |
| Milvus | 实体与三元组的语义向量索引 |
检索时,系统可以把图谱实体/关系结果与文本 chunk 结果融合。图谱查看权限只要求知识库读取权限;配置抽取器、开始构建、重置和修复索引要求管理权限。
失败和修复
图谱任务使用 API 进程内的 Tasker。服务重启会把未完成的任务标记为失败,不会仅凭任务 payload 自动恢复原 coroutine。任务失败或取消后:
- 先保留任务错误和失败 chunk;
- 检查 PostgreSQL 的 chunk 与处理状态;
- 检查 Neo4j 的实体、关系和引用;
- 检查 Milvus 的图向量索引;
- 再决定重试、修复向量索引或重置图谱。
任务中心的“成功”只表示编排完成,不能单独证明三类存储已经一致。
API 入口
| 方法 | 路径 | 作用 |
|---|---|---|
GET | /api/knowledge/databases/{kb_id}/mindmap | 读取导图 |
GET | /api/knowledge/databases/{kb_id}/mindmap/diff | 检查导图文件变更 |
POST | /api/knowledge/databases/{kb_id}/mindmap/generate | 生成或更新导图 |
GET | /api/knowledge/databases/{kb_id}/graph-build/status | 查看图谱构建状态 |
POST | /api/knowledge/databases/{kb_id}/graph-build/config | 保存抽取配置 |
POST | /api/knowledge/databases/{kb_id}/graph-build/index | 提交图谱构建 |
POST | /api/knowledge/databases/{kb_id}/graph-build/reset | 重置图谱状态 |
POST | /api/knowledge/databases/{kb_id}/graph-build/reconcile | 修复图向量索引 |
接口字段和权限以部署实例的 Swagger 页面为准。只读用户可以调用读取接口,不能通过改 URL 绕过管理权限。