本项目是一个基于simple-graph-sqlite库构建的航空知识图谱查询系统。提供了一个类似Neo4j的Web图形用户界面(GUI),用于进行语义搜索、多跳查询和图数据管理。
- 语义搜索: 使用
bge-m3:latest嵌入模型查找与自然语言查询最相关的图节点。 - 交互式图谱可视化: 在Web界面中动态渲染和探索图数据。
- 节点动态展开: 双击图中的任意节点可加载并显示其邻居节点。
- 可调参数: GUI界面允许用户自定义语义相似度阈值、查询跳数(n-hop)和返回结果数量(Top-K)。
- CRUD操作: 支持通过GUI界面对节点进行增、删、改、查操作。
- 解耦架构: 项目代码逻辑清晰,分为图构建、图查询和Web服务三个独立的模块。
.
├── aviation_graph.sqlite # 知识图谱数据库文件
├── simple_graph.py # 用于从RAG数据库构建知识图谱的脚本
├── graph_utils.py # 封装了图查询和嵌入生成的核心逻辑
├── graph_gui.py # Flask后端,提供API服务和Web界面
├── templates/
│ └── index.html # 系统的前端HTML、CSS和JavaScript代码
├── requirements.txt # 项目依赖
└── README.md # 本文档
- 确保你已安装Python 3.6+。
- 确保本地LMStudio服务正在运行,并且已下载
bge-m3:latest嵌入模型和qwen3_30ba3b聊天模型。
在项目根目录下打开终端,运行以下命令安装所有必需的Python库:
pip install -r requirements.txt如果你需要从头构建或更新aviation_graph.sqlite数据库,请运行simple_graph.py脚本。请确保rag_data/rag_system.db文件存在或修改脚本中的路径。
python simple_graph.py build --rag-db ./rag_data/rag_system.db注意:此步骤需要较长时间,因为它会调用语言模型进行实体和关系提取。
运行graph_gui.py来启动Flask Web服务器:
python graph_gui.py服务器启动后,你会在终端看到类似以下的输出:
* Serving Flask app 'graph_gui'
* Debug mode: on
INFO:werkzeug: * Running on http://127.0.0.1:5000
INFO:main:启动Flask服务器,请在浏览器中访问 http://127.0.0.1:5000
打开你的Web浏览器,访问 http://127.0.0.1:5000。
-
查询:
- 在左侧的“查询”面板中,输入你的自然语言查询(例如,“飞行员疲劳管理”)。
- 根据需要调整“相似度阈值”、“查询跳数”和“返回Top-K结果”的滑块。
- 点击“执行查询”按钮,图谱将在右侧显示。
-
交互:
- 缩放: 使用鼠标滚轮在图谱上进行缩放。
- 拖拽: 按住并拖动节点或画布背景。
- 展开: 双击任意节点以加载并显示其一跳邻居。
- 查看详情: 将鼠标悬停在节点或边上可查看其详细信息。单击节点可将其信息加载到“编辑”面板。
-
编辑:
- 点击“编辑”选项卡切换到编辑模式。
- 修改节点: 单击图中的节点,其信息会自动填充到表单中。修改后,点击“保存节点”。
- 新增节点: 清空“节点ID”字段,填写其他信息,然后点击“保存节点”。
- 删除节点: 单击图中的节点加载其信息,然后点击“删除节点”。