# pg_knowledge_graph **Repository Path**: shenyuflying/pg_knowledge_graph ## Basic Information - **Project Name**: pg_knowledge_graph - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-02-13 - **Last Updated**: 2026-02-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DBKnowlege - PostgreSQL 慢 SQL 诊断知识图谱 ## 项目简介 DBKnowlege 是一个基于 Flask 和知识图谱的 PostgreSQL 慢 SQL 诊断系统,旨在帮助数据库管理员和开发人员快速识别、分析和解决 PostgreSQL 数据库中的慢 SQL 问题。 ## 核心功能 ### 1. 知识图谱可视化 - 交互式知识图谱展示 - 节点和关系的可视化编辑 - 支持多知识图谱文件管理 ### 2. Markdown 案例导入与分析 - 支持上传 Markdown 格式的慢 SQL 案例 - 利用大模型自动分析案例内容 - 智能提取问题现象、根因分析、解决方案等信息 - 自动更新知识图谱 ### 3. 相似节点分析与合并 - 自动识别相似的知识图谱节点 - 生成节点合并建议 - 支持选择性合并节点,优化知识图谱结构 ### 4. 节点和关系管理 - 创建、更新、删除知识图谱节点 - 管理节点间的关系 - 支持节点详情查看 ### 5. OpenAI 集成 - 可配置的 OpenAI API 设置 - 利用大模型生成知识内容 - 智能分析节点相似性 ## 技术栈 - **后端**:Python 3.10+, Flask 2.0.1 - **前端**:HTML5, CSS3, JavaScript - **知识图谱**:自定义 JSON 格式 - **大模型集成**:OpenAI API - **依赖管理**:pip ## 快速开始 ### 1. 环境要求 - Python 3.10 或更高版本 - PostgreSQL 数据库(用于实际慢 SQL 测试,非系统运行必需) - OpenAI API 密钥(可选,用于启用大模型功能) ### 2. 安装步骤 1. **克隆项目** ```bash git clone https://github.com/yourusername/DBKnowlege.git cd DBKnowlege ``` 2. **安装依赖** ```bash pip install -r requirements.txt ``` 3. **配置环境变量** 创建 `.env` 文件,添加以下配置: ``` # OpenAI API 配置(可选) OPENAI_API_KEY=your_openai_api_key OPENAI_API_BASE=https://api.openai.com/v1 OPENAI_MODEL_NAME=gpt-3.5-turbo ``` 4. **启动应用** ```bash python app.py ``` 5. **访问应用** 打开浏览器,访问 `http://localhost:5000` ## 使用指南 ### 1. 导入慢 SQL 案例 1. 点击 "导入案例" 按钮 2. 选择一个 Markdown 格式的慢 SQL 案例文件 3. 系统会自动分析案例内容并更新知识图谱 ### 2. 浏览和编辑知识图谱 1. 在主界面上浏览知识图谱 2. 点击节点查看详情 3. 使用编辑工具创建、更新或删除节点和关系 ### 3. 分析相似节点 1. 点击 "分析相似节点" 按钮 2. 系统会自动识别并分组相似的节点 3. 查看合并建议并执行选择性合并 ### 4. 管理知识图谱文件 1. 点击 "图谱管理" 按钮 2. 创建新的知识图谱文件 3. 切换或删除现有知识图谱文件 ### 5. 配置 OpenAI 设置 1. 点击 "设置" 按钮 2. 输入 OpenAI API 密钥和相关配置 3. 保存配置以启用大模型功能 ## 项目结构 ``` DBKnowlege/ ├── app.py # 主应用文件 ├── llm_integration.py # OpenAI 集成模块 ├── data_manager.py # 数据管理模块 ├── models.py # 数据模型 ├── requirements.txt # 依赖管理 ├── .env # 环境变量配置 ├── templates/ │ └── index.html # 主页面模板 ├── static/ │ ├── css/ # 样式文件 │ └── js/ # JavaScript 文件 ├── knowledge_graphs/ # 知识图谱 JSON 文件 ├── uploads/ # 上传的 Markdown 文件 └── cases/ # 案例文件 ``` ## 知识图谱结构 知识图谱使用 JSON 格式存储,包含以下结构: ```json { "nodes": [ { "id": 1, "name": "问题现象名称", "type": "phenomenon", "description": "问题现象描述" }, { "id": 2, "name": "根因分析名称", "type": "root_cause", "description": "根因分析描述" }, { "id": 3, "name": "解决方案名称", "type": "solution", "description": "解决方案描述" } ], "relationships": [ { "id": 1, "source": 1, "target": 2, "type": "causes", "description": "关系描述" }, { "id": 2, "source": 2, "target": 3, "type": "solves", "description": "关系描述" } ] } ``` ## 节点类型 - `phenomenon`: 问题现象 - `root_cause`: 根因分析 - `solution`: 解决方案 - `monitoring`: 监控指标 - `recovery`: 恢复步骤 - `location`: 定位步骤 ## 关系类型 - `causes`: 导致 - `solves`: 解决 - `monitors`: 监控 - `recovers`: 恢复 - `locates`: 定位 ## 案例格式要求 上传的 Markdown 案例文件建议包含以下部分: ```markdown # 案例标题 ## 问题现象 问题现象描述... ## 根因分析 根因分析描述... ## 解决方案 解决方案描述... ## 监控指标 监控指标描述... ## 定位步骤 1. 定位步骤1 2. 定位步骤2 ## 恢复步骤 1. 恢复步骤1 2. 恢复步骤2 ``` ## 开发指南 ### 添加新功能 1. 在 `app.py` 中添加新的 API 端点 2. 在 `static/js/` 中添加对应的前端逻辑 3. 在 `data_manager.py` 中添加数据处理逻辑 4. 在 `llm_integration.py` 中添加大模型相关功能 ### 测试 - 运行应用并访问 `http://localhost:5000` - 导入测试案例文件 - 验证知识图谱更新 - 测试相似节点分析功能 ## 许可证 本项目采用 MIT 许可证。详见 LICENSE 文件。 ## 贡献 欢迎提交 Issue 和 Pull Request 来帮助改进这个项目! ## 联系方式 如有问题或建议,请通过以下方式联系: - 邮箱:your.email@example.com - GitHub:https://github.com/yourusername/DBKnowlege