结合 Dify 和 LLaMA3.1 的高效关系提取

将文本转换为
可视化知识图谱

Text2Neo4j 自动遍历文档,从文本中提取实体关系,直接写入 Neo4j 数据库,形成可查询的知识图谱。支持 128K 上下文处理。

核心功能

强大的功能集合,让知识图谱构建变得简单高效

目录遍历

自动遍历目录以定位并读取文本文件,支持批量处理大量文档,高效完成数据收集。

关系提取

利用开源 AI 模型从文本中提取有意义的关系,支持人物、地点、组织等多种实体类型。

Neo4j 集成

将提取的关系直接写入 Neo4j 数据库,创建可查询、可视化的知识图谱,支持复杂关系查询。

工作流程

简单四步,从文本到知识图谱

1

遍历目录

自动扫描并读取指定目录下的所有文本文件

2

读取文本

解析文件内容,准备进行关系提取处理

3

关系提取

使用 AI 模型智能识别实体和关系

4

写入图谱

将结果存入 Neo4j,形成可视化知识图谱

快速开始

几分钟内完成安装并开始使用

1

创建 Conda 环境

conda create -n text2neo4j python=3.10.13 -y
2

安装依赖

pip install -r requirements.txt
3

配置文件

cp parses/configs.demo.py parses/configs.py

然后编辑 parses/configs.py 配置 Neo4j 连接和 Dify API

4

运行程序

python parses/main.py

常见问题

找到您需要的答案

为什么推荐使用 Dify + LLaMA3.1:8B?

LLaMA3.1:8B 模型支持 128K 上下文,适合处理较长的文本。结合 Dify 平台可以更好地管理和优化 prompt,本项目脚本默认基于此组合完成,提供更稳定的关系提取效果。当然,您也可以尝试单纯使用 LLaMA3.1:8B 或其他关系提取方式,主要是调整适当的 prompt。

如何提高关系提取的准确性?

由于使用 LLaMA3.1:8B 模型从文本中提取关系,每次提取的关系数量和类型可能会有所不同。如果需要更精准的关系提取,可以尝试调整 prompt 或选择更适合的模型进行优化和调试。本项目提供了详细的 prompt 模板供您参考和修改。

支持哪些类型的文本文件?

Text2Neo4j 支持处理各种纯文本文件(.txt)格式。程序会自动遍历指定目录下的所有文本文件,无论文件大小,都能通过 LLaMA3.1:8B 的 128K 上下文能力进行高效处理。

如何查看生成的知识图谱?

关系提取完成后,数据会自动写入您配置的 Neo4j 数据库。您可以通过 Neo4j Browser(http://localhost:7474)或 Neo4j Desktop 可视化查看和查询生成的知识图谱。支持的查询包括 Cypher 查询语言,可以灵活探索实体间的关系网络。

实际效果

看看 Text2Neo4j 如何从文本中提取关系

示例输入

高捷,祖籍江苏,本科毕业于东南大学。

提取结果:

实体:高捷(人物)、江苏(地点)、东南大学(组织)、本科(学位)
关系:高捷 —籍贯→ 江苏、高捷 —校友→ 东南大学、高捷 —学位→ 本科

复杂示例

2024年8月26日,公司A的陈总与公司B的刘总达成合作协议。陈总来自贵州,于2000年毕业于北京大学。刘总来自四川,于2005年毕业于深圳大学。

提取结果:

识别10个实体(人物、组织、地点、日期)
提取10种关系(CEO、籍贯、校友、毕业、合作等)