Skip to content

基于sqlite构建图数据库,图数据库支持类似neo4j的简单GUI界面,可作为基于sqlite的图数据库模板

Notifications You must be signed in to change notification settings

weixz123/sqlite-graph-GUI

Repository files navigation

航空知识图谱交互式查询系统

本项目是一个基于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               # 本文档

安装与运行

1. 环境准备

  • 确保你已安装Python 3.6+。
  • 确保本地LMStudio服务正在运行,并且已下载bge-m3:latest嵌入模型和qwen3_30ba3b聊天模型。

2. 安装依赖

在项目根目录下打开终端,运行以下命令安装所有必需的Python库:

pip install -r requirements.txt

3. 构建知识图谱 (可选)

如果你需要从头构建或更新aviation_graph.sqlite数据库,请运行simple_graph.py脚本。请确保rag_data/rag_system.db文件存在或修改脚本中的路径。

python simple_graph.py build --rag-db ./rag_data/rag_system.db

注意:此步骤需要较长时间,因为它会调用语言模型进行实体和关系提取。

4. 启动查询系统

运行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

5. 使用系统

打开你的Web浏览器,访问 http://127.0.0.1:5000

  • 查询:

    1. 在左侧的“查询”面板中,输入你的自然语言查询(例如,“飞行员疲劳管理”)。
    2. 根据需要调整“相似度阈值”、“查询跳数”和“返回Top-K结果”的滑块。
    3. 点击“执行查询”按钮,图谱将在右侧显示。
  • 交互:

    • 缩放: 使用鼠标滚轮在图谱上进行缩放。
    • 拖拽: 按住并拖动节点或画布背景。
    • 展开: 双击任意节点以加载并显示其一跳邻居。
    • 查看详情: 将鼠标悬停在节点或边上可查看其详细信息。单击节点可将其信息加载到“编辑”面板。
  • 编辑:

    1. 点击“编辑”选项卡切换到编辑模式。
    2. 修改节点: 单击图中的节点,其信息会自动填充到表单中。修改后,点击“保存节点”。
    3. 新增节点: 清空“节点ID”字段,填写其他信息,然后点击“保存节点”。
    4. 删除节点: 单击图中的节点加载其信息,然后点击“删除节点”。

About

基于sqlite构建图数据库,图数据库支持类似neo4j的简单GUI界面,可作为基于sqlite的图数据库模板

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published