TTechSpecs

指令用途

graphify extract 是 Graphify 的核心指令之一。它的用途是從非結構化文字(文件、網頁、筆記等)中,使用 LLM 自動提取實體(Entity)關係(Relationship),並建立到知識圖譜中。


運作流程

  1. 讀取輸入來源:支援本地檔案或 URL
  2. LLM 理解內容:讓 LLM 讀懂文字的語意
  3. 提取實體與關係:識別節點類型和邊類型
  4. 建立圖譜節點:在圖譜資料庫中創建節點和邊
  5. 附加來源資訊:追蹤每個節點的來源文件

基本用法

從本地檔案提取

# 從 README.md 提取專案資訊
graphify extract README.md

# 從多篇文件提取
graphify extract docs/*.md

從網頁提取

# 從 GitHub README 提取
graphify extract https://github.com/Graphify-Labs/graphify

# 從網站文章提取
graphify extract https://example.com/article

進階選項

指定提取模式

# 輕量模式(快速,但可能遺漏部分資訊)
graphify extract README.md --mode=light

# 完整模式(全面,但耗時)
graphify extract README.md --mode=full

# 自訂模式(平衡速度與完整性)
graphify extract README.md --mode=custom --extractor="gpt-4"

指定圖譜命名空間

# 將提取的內容放到特定命名空間
graphify extract README.md --namespace="project-docs"

指定 LLM 提示範本

# 使用自訂的提取提示
graphify extract README.md --prompt="./prompts/entity-extraction.txt"

實戰對話範例

範例一:提取專案 README

  • You:
    graphify extract README.md
  • AI:

    正在從 README.md 提取知識…

    提取摘要

    • 實體:12 個(5 個 Person,3 個 Project,4 個 Technology)
    • 關係:18 個

    識別的實體

    • Person: 張三、李四、王五
    • Project: Graphify、Superpowers、TechSpecs
    • Technology: LLM、Neo4j、React

    建立的關係

    • 張三 → WORKS_ON → Graphify
    • Graphify → DEPENDS_ON → LLM
    • Graphify → USES → Neo4j

    ✓ 知識已成功加入圖譜!


範例二:從網頁提取 API 文件

  • You:
    graphify extract https://api.example.com/docs
  • AI:

    正在從 https://api.example.com/docs 提取知識…

    提取摘要

    • 實體:8 個(4 個 API,4 個 DataType)
    • 關係:12 個

    識別的實體

    • API: POST /users, GET /users, PUT /users/:id, DELETE /users/:id
    • DataType: User, CreateUserRequest, UpdateUserRequest, UserResponse

    建立的關係

    • POST /users → RETURNS → UserResponse
    • POST /users → ACCEPTS → CreateUserRequest
    • GET /users → RETURNS → UserResponse

    ✓ 知識已成功加入圖譜!


輸出格式

終端輸出

Extracting knowledge from README.md...

[========                    ] 40% (Processing section 2 of 5)

Extracted Entities:
  ✓ Person: 張三
  ✓ Project: Graphify
  ✓ Technology: LLM

Extracted Relationships:
  ✓ 張三 → WORKS_ON → Graphify
  ✓ Graphify → DEPENDS_ON → LLM

Summary:
  - Entities: 12
  - Relationships: 18
  - Processing time: 2.3s
  - Source: README.md

✓ Knowledge successfully added to graph!

常見問題

Q1:提取結果不如預期怎麼辦?

A:可以嘗試以下方法:

  1. 使用 --mode=full 進行完整提取
  2. 使用自訂提示範本(--prompt
  3. 調整 LLM 溫度參數(--temperature=0.1

Q2:如何避免重複提取?

A:Graphify 會自動去重:

  • 相同實體只會建立一次
  • 重複提取會合併到現有節點
  • 可以使用 --force 強制重新提取

Q3:如何查看提取的詳細日誌?

A:使用 --verbose 參數:

graphify extract README.md --verbose

與其他指令組合

提取後查詢

# 1. 提取文件
graphify extract README.md

# 2. 查詢提取的知識
graphify query "誰參與了這個專案?"

提取後視覺化

# 1. 提取文件
graphify extract README.md

# 2. 視覺化圖譜
graphify visualize --output=graph.html

最佳實踐

1. 分批提取大型文件

# 不要一次提取所有文件
# 建議分批提取並驗證結果

graphify extract docs/introduction.md
graphify extract docs/getting-started.md
graphify extract docs/api-reference.md

2. 使用命名空間組織知識

# 將不同來源的知識分開存放
graphify extract project1/README.md --namespace="project1"
graphify extract project2/README.md --namespace="project2"

3. 驗證提取結果

# 提取後立即查詢確認結果
graphify extract README.md
graphify query "README 中提到了哪些技術?"

graphify extract 是建立知識圖譜的第一步,掌握它你就能從任何文字來源中提取結構化知識!