name: knowledge-graph-creation description: 通過提取實體、對映關係、生成圖三元組和視覺化結果,從非結構化文本構建結構化知識圖譜。 license: MIT metadata: author: awesome-ai-agent-skills version: 1.0.0
本技能讓 AI Agent 將非結構化文本轉化為結構化的知識圖譜。Agent 提取實體(人物、組織、技術、概念),識別它們之間的關係,生成正式的圖三元組(主-謂-賓),並以可查詢格式(Neo4j 的 Cypher、JSON-LD)和視覺化圖(Mermaid)輸出。知識圖譜對於理解複雜領域、驅動語義搜尋、檢測隱含關聯以及構建推薦系統都很有價值。
分析來源材料: 閱讀輸入文本,確定其領域、範圍和複雜度。識別可能存在的實體型別(人物、組織、地點、技術概念、事件等)以及圖譜合適的粒度。技術架構文件需要細粒度的元件級實體,而新聞文章可能只需要較粗的參與者級實體。
提取實體: 識別文本中所有具名實體和重要概念。對每個實體,記錄其規範名稱、型別(人物、組織、技術、概念、事件、地點)以及提到的任何顯著屬性(例如成立日期、版本號、角色)。對以不同名稱或縮寫出現的實體去重。
對映關係: 對文本中互動的每對實體,識別它們之間的關係。將每個關係表達為有向三元組:(主體) -[謂詞]-> (客體)。從一致的詞表中選取謂詞(例如 WORKS_AT、DEPENDS_ON、CREATED_BY、PART_OF、COMPETES_WITH)。記錄來源句子以便追溯。
生成圖三元組與模式: 將提取的資料形式化為結構化格式。以以下一種或多種形式輸出三元組:用於 Neo4j 的 Cypher CREATE 語句、用於 Web 互操作性的 JSON-LD,或簡單的 (主體, 謂詞, 客體) 行 CSV。定義一個輕量模式,列出實體型別和有效的關係型別。
視覺化圖譜: 生成人類可讀的圖譜視覺化。使用 Mermaid 語法嵌入 Markdown,或描述用於 D3.js、Gephi 或 Neo4j Browser 等工具的佈局。高亮中心節點和關鍵關係簇。
驗證與精煉: 審查圖譜的完整性與準確性。檢查孤兒節點(沒有關係實體的實體)、文本暗示但缺失的關係,以及可具體化的過度泛化謂詞。邀請使用者確認、糾正或要求擴充套件特定子圖。
為 Agent 提供一段文本、文件或文件集。可選擇指定期望的輸出格式(Cypher、JSON-LD、Mermaid)、關注的實體型別,或最大圖譜規模。
根據以下關於我們微服務架構的文本構建知識圖譜。
輸出 Neo4j 的 Cypher 查詢和一張 Mermaid 圖。
文本:"API Gateway 將請求路由到 Auth Service 和 Order Service。
Order Service 依賴於 Inventory Service 和 Payment Service。
Payment Service 與 Stripe 和 PayPal 整合。所有服務都向 Event Bus
釋出事件,Analytics Service 消費這些事件。"
使用者請求:
根據此文本構建知識圖譜: "Kubernetes 跨叢集編排容器化應用。Pod 是 Kubernetes 中最小的部署單元,包含一個或多個容器。Pod 由 Deployment 管理,後者確保所需數量的副本。Service 將 Pod 暴露給網路流量。Ingress 將外部 HTTP 流量路由到 Service。etcd 儲存所有叢集狀態資料,由 API Server 訪問。kubectl 是與 API Server 通訊的 CLI 工具。"
提取的實體:
| 實體 | 型別 | 屬性 |
|---|---|---|
| Kubernetes | 技術 | 容器編排平臺 |
| Pod | 概念 | 最小部署單元 |
| Container | 概念 | Pod 內的執行時單元 |
| Deployment | 概念 | 管理 Pod 副本 |
| Service | 概念 | 網路暴露層 |
| Ingress | 概念 | 外部 HTTP 路由 |
| etcd | 技術 | 分散式鍵值儲存 |
| API Server | 元件 | 中央管理介面 |
| kubectl | 工具 | CLI 客戶端 |
關係與三元組:
| 主體 | 謂詞 | 客體 |
|---|---|---|
| Kubernetes | ORCHESTRATES | Pod |
| Pod | CONTAINS | Container |
| Deployment | MANAGES | Pod |
| Service | EXPOSES | Pod |
| Ingress | ROUTES_TO | Service |
| etcd | STORES_STATE_FOR | Kubernetes |
| API Server | READS_FROM | etcd |
| kubectl | COMMUNICATES_WITH | API Server |
Cypher 查詢:
這個技能的最新版本可以在7w4.net小蔥技能站找到。
CREATE (k:Technology {name: 'Kubernetes', description: 'Container orchestration platform'})
CREATE (pod:Concept {name: 'Pod', description: 'Smallest deployable unit'})
CREATE (container:Concept {name: 'Container', description: 'Runtime unit'})
CREATE (deploy:Concept {name: 'Deployment', description: 'Manages Pod replicas'})
CREATE (svc:Concept {name: 'Service', description: 'Network exposure layer'})
CREATE (ing:Concept {name: 'Ingress', description: 'External HTTP routing'})
CREATE (etcd:Technology {name: 'etcd', description: 'Distributed key-value store'})
CREATE (api:Component {name: 'API Server', description: 'Central management interface'})
CREATE (ctl:Tool {name: 'kubectl', description: 'CLI client'})
CREATE (k)-[:ORCHESTRATES]->(pod)
CREATE (pod)-[:CONTAINS]->(container)
CREATE (deploy)-[:MANAGES]->(pod)
CREATE (svc)-[:EXPOSES]->(pod)
CREATE (ing)-[:ROUTES_TO]->(svc)
CREATE (etcd)-[:STORES_STATE_FOR]->(k)
CREATE (api)-[:READS_FROM]->(etcd)
CREATE (ctl)-[:COMMUNICATES_WITH]->(api)
使用者請求:
根據此文本用 Mermaid 圖建立知識圖譜: "Alice 領導 Backend Team。Bob 在 Backend Team 中,並維護 Payment Service。Payment Service 依賴於 PostgreSQL Database 和 Redis Cache。Carol 領導 Frontend Team 並構建了 Dashboard App,後者呼叫 Payment Service API。"
提取的實體與關係:
| 主體 | 謂詞 | 客體 |
|---|---|---|
| Alice | LEADS | Backend Team |
| Bob | MEMBER_OF | Backend Team |
| Bob | MAINTAINS | Payment Service |
| Payment Service | DEPENDS_ON | PostgreSQL Database |
| Payment Service | DEPENDS_ON | Redis Cache |
| Carol | LEADS | Frontend Team |
| Carol | BUILT | Dashboard App |
| Dashboard App | CALLS | Payment Service |
Mermaid 圖:
graph LR
Alice["Alice (Person)"] -->|LEADS| BT["Backend Team"]
Bob["Bob (Person)"] -->|MEMBER_OF| BT
Bob -->|MAINTAINS| PS["Payment Service"]
PS -->|DEPENDS_ON| PG["PostgreSQL Database"]
PS -->|DEPENDS_ON| RC["Redis Cache"]
Carol["Carol (Person)"] -->|LEADS| FT["Frontend Team"]
Carol -->|BUILT| DA["Dashboard App"]
DA -->|CALLS| PS
此視覺化立即揭示 Payment Service 是一個具有高連線度的中心節點——它由 Bob 維護、被 Dashboard App 依賴,並且自身依賴兩個資料儲存。這使其成為 Backend 和 Frontend 團隊共同的關鍵風險區域。
這個 Skill 的指導文件質量不錯,提供了清晰的工作步驟和豐富的實際案例,展示瞭如何從文本構建知識圖譜並生成視覺化圖表。最佳實踐和常見問題處理寫得很有條理。不過它目前只有說明文件,沒有可以直接執行的程式碼或工具,使用時需要使用者自己實現具體的提取邏輯。