83 lines
3.2 KiB
Markdown
83 lines
3.2 KiB
Markdown
|
|
# 知识库与知识图谱
|
|||
|
|
|
|||
|
|
项目中的知识库与知识图谱,即是知识管理组织的方式,同时会被封装为工具供 AgenticRAG 系统调用。
|
|||
|
|
|
|||
|
|
## 创建知识库
|
|||
|
|
|
|||
|
|
系统支持多种知识库存储形式,满足不同场景需求:
|
|||
|
|
|
|||
|
|
| 存储类型 | 特点 | 适用场景 |
|
|||
|
|
|----------|------|----------|
|
|||
|
|
| **Chroma** | 轻量级向量数据库 | 小型项目、快速原型、维护方便 |
|
|||
|
|
| **Milvus** | 高性能向量数据库 | 大规模生产环境、高性能查询 |
|
|||
|
|
| **LightRAG** | 图增强检索 | 复杂知识关系,构建成本较高 |
|
|||
|
|
|
|||
|
|
访问 Web 界面:http://localhost:5173,进入"知识库管理"页面,点击"新建知识库",填写知识库信息。
|
|||
|
|
|
|||
|
|
这里需要**注意**的是,这里的知识库的标题和描述都会作为智能体选择工具的依据,因此尽量详尽的描述该知识库。
|
|||
|
|
|
|||
|
|
|
|||
|
|
### LightRAG 知识库说明
|
|||
|
|
|
|||
|
|
在本项目中,系统支持基于 [LightRAG](https://github.com/HKUDS/LightRAG) 的知识图谱自动构建,能够从文档中自动提取实体和关系,构建结构化知识图谱。但是 LightRAG 所构建的知识图谱不作为全局的知识图谱来使用。只是将 LightRAG 作为知识的组织和检索形式。一方面是因为 LightRAG 构建的图谱的质量比较差,另一方面是不希望与全局的知识图谱弄混。
|
|||
|
|
|
|||
|
|
LightRAG 知识库可在知识库详情中可视化,但不支持在侧边栏图谱中直接检索,图谱检索工具不支持 LightRAG 知识库,查询需要使用对应的知识库作为工具。
|
|||
|
|
|
|||
|
|
在 Neo4j 的检索中可以看到,实际上 LightRAG 的节点和边依然是和知识图谱本身构建在了同一个 Neo4j 数据库中,但是使用了特殊的 tag 做区分。这点在后面介绍知识图谱的时候也会额外说明。
|
|||
|
|
|
|||
|
|
|
|||
|
|
系统默认使用 `siliconflow` 的 `Qwen/Qwen3-30B-A3B-Instruct-2507` 模型进行图谱构建。可通过环境变量自定义图谱构建模型:
|
|||
|
|
|
|||
|
|
<<< @/../src/.env.template#lightrag{bash}
|
|||
|
|
|
|||
|
|
|
|||
|
|
## 文档管理
|
|||
|
|
|
|||
|
|
::: danger
|
|||
|
|
待补充
|
|||
|
|
:::
|
|||
|
|
|
|||
|
|
## 知识图谱
|
|||
|
|
|
|||
|
|
::: danger
|
|||
|
|
待补充关于知识图谱在项目中的定位
|
|||
|
|
:::
|
|||
|
|
|
|||
|
|
### 1. 以三元组形式导入
|
|||
|
|
|
|||
|
|
|
|||
|
|
系统支持通过网页导入 `jsonl` 格式的知识图谱数据:
|
|||
|
|
|
|||
|
|
```jsonl
|
|||
|
|
{"h": "北京", "t": "中国", "r": "首都"}
|
|||
|
|
{"h": "上海", "t": "中国", "r": "直辖市"}
|
|||
|
|
{"h": "深圳", "t": "广东", "r": "省会"}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**格式说明**,每行一个三元组,系统自动验证数据格式,并自动导入到 Neo4j 数据库,添加 `Upload`、`Entity`、`Relation` 标签,会自动处理重复的三元组。
|
|||
|
|
|
|||
|
|
Neo4j 访问信息可以参考 `docker-compose.yml` 中配置对应的环境变量来覆盖。
|
|||
|
|
|
|||
|
|
- **默认账户**: `neo4j`
|
|||
|
|
- **默认密码**: `0123456789`
|
|||
|
|
- **管理界面**: http://localhost:7474
|
|||
|
|
- **连接地址**: bolt://localhost:7687
|
|||
|
|
|
|||
|
|
::: tip 测试数据
|
|||
|
|
可以使用 `test/data/A_Dream_of_Red_Mansions_tiny.jsonl` 文件进行测试导入。
|
|||
|
|
:::
|
|||
|
|
|
|||
|
|
### 2. 接入已有 Neo4j 实例
|
|||
|
|
|
|||
|
|
如需接入已有的 Neo4j 实例,可修改 `.env` 中的配置:
|
|||
|
|
|
|||
|
|
<<< @/../src/.env.template#neo4j{bash}
|
|||
|
|
|
|||
|
|
同时记得注释掉下面的 neo4j 服务:
|
|||
|
|
|
|||
|
|
<<< @/../docker-compose.yml#neo4j
|
|||
|
|
|
|||
|
|
|
|||
|
|
::: warning 注意事项
|
|||
|
|
确保每个节点都有 `Entity` 标签,每个关系都有 `RELATION` 类型,否则会影响图的检索与构建功能。
|
|||
|
|
:::
|