PritamSonawane7798/agentic-knowledge-graph
GitHub: PritamSonawane7798/agentic-knowledge-graph
该项目将原始网络安全支持工单文本自动转化为知识图谱,并通过 Graph RAG 提供有引用依据、可追溯推理路径的问答能力。
Stars: 0 | Forks: 0
# Agentic Knowledge Graph
一个端到端的 pipeline,可以将原始的支持工单文本转化为可查询的知识图谱,然后利用该图谱通过 Graph RAG 提供有依据、可追溯的回答。
## 它的功能
```
Raw ticket text
│
▼
LLM Extractor (GPT-4o-mini)
│ extracts entities + relationships as JSON
▼
Knowledge Graph (NetworkX)
│ MERGE deduplication · ontology validation
▼
Graph RAG (Orion agent)
│ subgraph retrieval → grounded Q&A
▼
Cited, explainable answer
```
## Pipeline 阶段
| 阶段 | 发生的操作 |
|-------|-------------|
| **1 — 构建** | 每张工单都会被发送给 LLM,LLM 会以结构化的 JSON 格式返回实体和关系。实体会被合并到图谱中(无重复)。 |
| **2 — 验证** | 每条边在被添加之前都会根据 ontology 进行检查。无效的关系会被拦截并报错。 |
| **3 — 遍历** | 多跳(Multi-hop)图查询可以回答诸如“哪些客户报告了影响 ProductX 的问题?”之类的问题,而无需调用 LLM。 |
| **4 — RAG** | 提问会触发基于关键字的子图检索。相关的子图会被序列化为 context 发送给 Orion(一个支持推理的 agent),Orion 会引用其回答背后的节点和边。 |
## Schema
**实体类型:** `Customer` · `Product` · `Issue` · `Resolution`
**允许的关系(ontology):**
```
Customer -[reported]-> Issue
Issue -[affects]-> Product
Issue -[resolved_by]-> Resolution
Issue -[related_to]-> Issue
```
任何不在此集合中的边都会在写入时被拒绝。
## 项目结构
```
agentic-kg/
├── src/
│ ├── kg_builder.py # SupportKG class — nodes, edges, ontology, MERGE, RAG context
│ ├── extractor.py # LLM-powered text → triplet extraction
│ ├── rag.py # Graph RAG — subgraph retrieval + Orion agent
│ ├── data.py # Sample support tickets
│ └── demo.py # Full end-to-end demo (run this)
```
## 环境要求
- Python 3.11+
- `networkx`
- `openai`
安装依赖:
```
pip install networkx openai
```
## 用法
设置你的 OpenAI API 密钥,然后运行演示:
```
export OPENAI_API_KEY=sk-...
cd src
python demo.py
```
该演示将:
1. 摄取 5 张示例工单,打印出哪些节点是创建的,哪些是合并的
2. 尝试添加一条违反 ontology 的边,并展示其如何被拦截
3. 运行多跳图遍历查询
4. 通过 Graph RAG 回答 3 个自然语言问题,并附带引用的推理路径
## 关键概念
**MERGE 语义** — 跨工单以不同方式编写的相同实体(例如 "ProductX"、"Product X v2.1")会被规范化为单个节点。属性会被修补,绝不重复。
**Ontology 强制执行** — `Product` 不能 `report` 一个 `Issue`。ontology 是一组 `(source_type, relationship, target_type)` 三元组,在每次写入边时都会进行检查。
**Graph RAG 与普通 RAG 的对比** — 普通 RAG 检索文本块,并要求 LLM 从散文中重新推导关系。Graph RAG 检索的是已经结构化的事实组成的子图,为 LLM 提供了一条明确的、可供引用的推理路径。
标签:DLL 劫持, Graph RAG, 大语言模型, 威胁情报分析, 工单分析, 特权检测, 网络安全, 逆向工具, 隐私保护