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, 大语言模型, 威胁情报分析, 工单分析, 特权检测, 网络安全, 逆向工具, 隐私保护