指令用途
graphify query 是 Graphify 的查詢指令。它的用途是讓你用自然語言提問,AI 會將你的問題轉換成圖譜查詢,執行查詢後再用自然語言回覆你。
不需要學習 Cypher、Gremlin 或其他圖譜查詢語言——直接用你平常說話的方式提問即可!
運作流程
- 接收自然語言問題:例如「誰參與了 Graphify 專案?」
- LLM 理解問題意圖:識別查詢目標和條件
- 轉換為圖譜查詢:將自然語言轉成圖譜查詢語言
- 執行查詢:在圖譜資料庫中執行查詢
- 自然語言回覆:將查詢結果用自然語言組織回覆
基本用法
簡單查詢
# 查詢人員關係
graphify query "誰參與了 Graphify 專案?"
# 查詢技術依賴
graphify query "Graphify 依賴哪些技術?"
# 查詢專案關聯
graphify query "哪些專案使用了 LLM?"
進階查詢
# 多跳查詢
graphify query "張三參與的專案中,有哪些使用了 Neo4j?"
# 聚合查詢
graphify query "有多少人參與了超過 3 個專案?"
# 條件查詢
graphify query "找出所有後端開發者參與的專案"
查詢範例
範例一:查詢人員與專案關係
- You:
graphify query "誰參與了 Graphify 專案?" - AI:
根據圖譜查詢結果,參與 Graphify 專案的人員有:
- 張三 - 核心開發者,負責後端架構
- 李四 - 前端工程師,負責 UI 設計
- 王五 - 專案經理,負責專案管理
共 3 人參與此專案。
範例二:查詢技術依賴關係
- You:
graphify query "Graphify 專案依賴哪些技術?" - AI:
根據圖譜查詢結果,Graphify 專案依賴以下技術:
- LLM - 用於理解與提取知識
- Neo4j - 作為圖譜資料庫
- React - 用於前端介面
主要技術棧以 AI 和圖譜資料庫為核心。
範例三:複雜多跳查詢
- You:
graphify query "張三參與的專案中,有哪些使用了 Neo4j?" - AI:
根據圖譜查詢結果:
張三參與的專案:
- Graphify
- Superpowers
其中使用 Neo4j 的專案:
- 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:可能的原因:
- 圖譜中沒有相關資料 → 先執行
graphify extract加入資料 - 查詢詞彙與圖譜中的實體不匹配 → 嘗試不同的說法
- 查詢條件過於嚴格 → 放寬條件
Q2:查詢結果不準確?
A:可以嘗試:
- 使用更明確的查詢詞
- 檢查圖譜中的資料是否正確(
graphify visualize) - 調整 LLM 溫度參數(
--temperature=0.1)
Q3:查詢速度太慢?
A:可以:
- 限制結果數量(
--limit) - 限制查詢深度(
--depth) - 對圖譜建立索引
與其他指令組合
查詢後視覺化
# 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 是從圖譜中提取洞察的關鍵工具,掌握它你就能用自然語言探索任何知識網絡!