TTechSpecs

指令用途

graphify query 是 Graphify 的查詢指令。它的用途是讓你用自然語言提問,AI 會將你的問題轉換成圖譜查詢,執行查詢後再用自然語言回覆你。

不需要學習 Cypher、Gremlin 或其他圖譜查詢語言——直接用你平常說話的方式提問即可!


運作流程

  1. 接收自然語言問題:例如「誰參與了 Graphify 專案?」
  2. LLM 理解問題意圖:識別查詢目標和條件
  3. 轉換為圖譜查詢:將自然語言轉成圖譜查詢語言
  4. 執行查詢:在圖譜資料庫中執行查詢
  5. 自然語言回覆:將查詢結果用自然語言組織回覆

基本用法

簡單查詢

# 查詢人員關係
graphify query "誰參與了 Graphify 專案?"

# 查詢技術依賴
graphify query "Graphify 依賴哪些技術?"

# 查詢專案關聯
graphify query "哪些專案使用了 LLM?"

進階查詢

# 多跳查詢
graphify query "張三參與的專案中,有哪些使用了 Neo4j?"

# 聚合查詢
graphify query "有多少人參與了超過 3 個專案?"

# 條件查詢
graphify query "找出所有後端開發者參與的專案"

查詢範例

範例一:查詢人員與專案關係

  • You:
    graphify query "誰參與了 Graphify 專案?"
  • AI:

    根據圖譜查詢結果,參與 Graphify 專案的人員有:

    1. 張三 - 核心開發者,負責後端架構
    2. 李四 - 前端工程師,負責 UI 設計
    3. 王五 - 專案經理,負責專案管理

    共 3 人參與此專案。


範例二:查詢技術依賴關係

  • You:
    graphify query "Graphify 專案依賴哪些技術?"
  • AI:

    根據圖譜查詢結果,Graphify 專案依賴以下技術:

    1. LLM - 用於理解與提取知識
    2. Neo4j - 作為圖譜資料庫
    3. React - 用於前端介面

    主要技術棧以 AI 和圖譜資料庫為核心。


範例三:複雜多跳查詢

  • You:
    graphify query "張三參與的專案中,有哪些使用了 Neo4j?"
  • AI:

    根據圖譜查詢結果:

    張三參與的專案

    1. Graphify
    2. Superpowers

    其中使用 Neo4j 的專案

    1. Graphify - 使用 Neo4j 作為主要圖譜資料庫

    結果:在張三參與的 2 個專案中,有 1 個(Graphify)使用了 Neo4j。


查詢輸出格式

文字輸出(預設)

graphify query "誰參與了 Graphify 專案?"

輸出:

根據圖譜查詢結果,參與 Graphify 專案的人員有:

1. 張三 - 核心開發者
2. 李四 - 前端工程師
3. 王五 - 專案經理

共 3 人參與此專案。

查詢耗時:0.23s

進階選項

JSON 輸出

# 以 JSON 格式輸出結果
graphify query "誰參與了 Graphify 專案?" --format=json

輸出:

{
  "query": "誰參與了 Graphify 專案?",
  "results": [
    {
      "entity": "張三",
      "type": "Person",
      "role": "核心開發者"
    },
    {
      "entity": "李四",
      "type": "Person",
      "role": "前端工程師"
    },
    {
      "entity": "王五",
      "type": "Person",
      "role": "專案經理"
    }
  ],
  "count": 3,
  "queryTime": 0.23
}

限制結果數量

# 只返回前 5 個結果
graphify query "列出所有專案" --limit=5

指定查詢深度

# 控制查詢的跳數(hop count)
graphify query "張三間接參與了哪些專案?" --depth=2

查詢技巧

1. 明確查詢目標

好的查詢:

graphify query "列出所有參與 Graphify 專案的前端工程師"

模糊的查詢(可能返回意外結果):

graphify query "關於前端的人"

2. 使用條件過濾

# 結合多個條件
graphify query "找出所有使用 React 且人數超過 3 人的專案"

3. 利用上下文

# 先查詢關係,再深入細節
graphify query "Graphify 專案的技術架構是什麼?"
graphify query "其中 LLM 的作用是什麼?"

常見問題

Q1:查詢沒有返回結果?

A:可能的原因:

  1. 圖譜中沒有相關資料 → 先執行 graphify extract 加入資料
  2. 查詢詞彙與圖譜中的實體不匹配 → 嘗試不同的說法
  3. 查詢條件過於嚴格 → 放寬條件

Q2:查詢結果不準確?

A:可以嘗試:

  1. 使用更明確的查詢詞
  2. 檢查圖譜中的資料是否正確(graphify visualize
  3. 調整 LLM 溫度參數(--temperature=0.1

Q3:查詢速度太慢?

A:可以:

  1. 限制結果數量(--limit
  2. 限制查詢深度(--depth
  3. 對圖譜建立索引

與其他指令組合

查詢後視覺化

# 1. 查詢特定關係
graphify query "張三的所有關係" --format=json > relations.json

# 2. 視覺化這些關係
graphify visualize --input=relations.json --output=zhang-san.html

查詢後導出

# 將查詢結果導出為報告
graphify query "所有專案的技術棧" --format=markdown > tech-stack.md

最佳實踐

1. 從簡單查詢開始

# 先確認圖譜有資料
graphify query "圖譜中有多少個節點?"

# 再進行具體查詢
graphify query "列出所有 Person 類型的節點"

2. 使用迭代查詢

# 第一輪:廣泛查詢
graphify query "所有專案及其參與者"

# 第二輪:針對特定專案深入
graphify query "Graphify 專案的詳細架構"

3. 記錄常用查詢

# 將常用查詢存成腳本
echo 'graphify query "誰參與了 $1 專案?"' > query-project.sh
chmod +x query-project.sh

# 使用腳本
./query-project.sh Graphify

graphify query 是從圖譜中提取洞察的關鍵工具,掌握它你就能用自然語言探索任何知識網絡!