指令用途
大語言模型(LLM)在使用 query_graph 進行 Cypher 圖查詢時,必須事先知道圖譜中定義了哪些 節點標籤 (Node Labels) 以及 關係類型 (Relationship Types)。如果沒有這些元數據(Metadata),AI 就會憑空猜測關係名稱,導致寫出錯誤的 Cypher 語句而執行失敗。
get_graph_schema 專為提供 圖譜結構描述 而生。它回傳當前圖譜中所有有效的節點類型(如 Class, Method, Interface)以及邊關係類型(如 CALLS, IMPLEMENTS, EXTENDS),是 AI 助手在進行語意圖查詢前必須優先調用的引導工具。
運作流程
- 架構查詢:讀取圖譜底層的元數據字典。
- 提取模型結構:列出所有的 Node properties(節點屬性)與 Edge direction(邊方向性)。
- 回傳與格式化:以標準圖 Schema 描述回傳,方便 AI 進行 Cypher 語句生成。
實戰對話範例
範例:獲取圖譜 Schema 以便生成 Cypher 查詢
- You:
/opsx:explore "我想寫一個 Cypher 來查詢類別關係。請先幫我查詢圖譜 Schema。" - AI:
好的,為了寫出 100% 正確的 Cypher 語句,我將首先調用
get_graph_schema獲取圖的結構定義。CM 呼叫:
get_graph_schema()
CM 回傳:{ "nodeLabels": ["Project", "Directory", "File", "Class", "Interface", "Method", "Field"], "relationshipTypes": ["CONTAINS", "DEPENDS_ON", "IMPLEMENTS", "EXTENDS", "CALLS", "AFFECTS"], "nodeProperties": { "Class": ["name", "qualifiedName", "filePath", "startLine", "endLine"], "Method": ["name", "qualifiedName", "filePath", "startLine", "endLine", "isAsync"] } }分析:
圖譜 Schema 定義非常清晰:- 類別節點為
Class,包含qualifiedName屬性。 - 方法節點為
Method,與類別是CONTAINS(包含)關係,方法間是CALLS(呼叫)關係。
現在我可以使用這些精確的標籤,為您撰寫查詢呼叫關係的 Cypher 語句了。
- 類別節點為