一个基于Neo4j的知识图谱可视化平台,支持理论知识的图谱展示、搜索和智能问答。
- 基于vis.js的交互式图谱展示
- 支持节点拖拽、缩放、平移
- 实时显示节点和关系统计信息
- 自适应屏幕布局
- 节点关键词搜索
- 实时搜索结果展示
- 点击搜索结果快速定位节点
- 基于DeepSeek API的智能问答
- 自动生成Cypher查询语句
- 自然语言查询知识图谱
- 查看节点详细信息
- 编辑节点属性
- 删除节点操作
- 前端: HTML5, Tailwind CSS, vis.js
- 后端: Python Flask
- 数据库: Neo4j
- AI服务: DeepSeek API
- Python 3.8+
- Neo4j 数据库
- DeepSeek API Key
- 克隆项目
git clone <repository-url>
cd graph-chat- 安装依赖
pip install -r requirements.txt- 配置环境变量
export DEEPSEEK_API_KEY="your-api-key"
export NEO4J_URI="bolt://localhost:7687"
export NEO4J_USER="neo4j"
export NEO4J_PASSWORD="your-password"也可以自行创建本地环境文件,并在启动前加载,例如:
cp .env.example .env.local
source .env.local- 初始化数据库
# 导入政治理论知识图谱数据
cypher-shell -u neo4j -p your-password < politics_data.cypher- 启动应用
python app.py- 访问应用 打开浏览器访问: http://localhost:5000
graph-chat/
├── app.py # Flask主应用
├── neo4j_db.py # Neo4j数据库操作
├── deepseek_qa.py # DeepSeek问答服务
├── politics_data.cypher # 政治理论知识图谱数据
├── templates/
│ └── index.html # 前端页面
├── requirements.txt # Python依赖
└── README.md # 项目说明
- 页面加载后自动显示知识图谱
- 可以拖拽节点调整位置
- 使用"适应展示"按钮重置视图
- 点击节点查看详细信息
- 在搜索框输入关键词
- 点击搜索按钮或按Enter键
- 在右侧查看搜索结果
- 点击结果项定位到对应节点
- 在问答框输入问题
- 点击提问按钮或按Enter键
- 查看AI生成的答案和Cypher查询
- 点击节点查看详情
- 点击"编辑"按钮修改信息
- 点击"删除"按钮删除节点
- Theory: 政治理论 (马克思主义、毛泽东思想、邓小平理论等)
- Concept: 核心概念 (辩证唯物主义、改革开放等)
- Practice: 实践活动 (新民主主义革命、改革开放等)
- DEVELOPS_INTO: 理论发展关系
- CONTAINS: 理论包含概念
- GUIDES: 理论指导实践
- REFLECTS: 实践反映理论
GET /api/real_graph_data- 获取真实图谱数据GET /api/graph_data- 获取模拟图谱数据
GET /api/node/<node_id>- 获取节点详情POST /api/update_node/<node_id>- 更新节点信息DELETE /api/delete_node/<node_id>- 删除节点
GET /api/search?q=<keyword>- 搜索节点GET /api/qa?question=<question>- AI问答
- 后端API在
app.py中添加路由 - 前端交互在
templates/index.html中实现 - 数据库操作在
neo4j_db.py中扩展
- 使用Tailwind CSS类名
- 主要样式在
templates/index.html中定义
MIT License
欢迎提交Issue和Pull Request来改进项目。
