適用情境
完整開發工作流 是用於建立生產級知識圖譜的完整流程。它適合:
- 企業級知識管理系統
- 大型專案文件分析(100+ 份文件)
- 需要多人協作的場景
- 需要定期更新與維護的圖譜
核心步驟
第 0 步:規劃(Planning)
在開始之前,先回答以下問題:
- 知識來源:要從哪些文件/網頁提取知識?
- 實體類型:需要識別哪些類型的實體?
- 關係類型:實體之間有哪些關係?
- 使用場景:圖譜會如何被查詢和使用?
- 更新頻率:多久需要更新一次圖譜?
第 1 步:初始化專案
# 使用生產級配置
graphify init --backend=neo4j --llm=anthropic
# 或使用自訂配置
graphify init --config=production-config.yaml
建議配置:
- 圖譜後端:Neo4j 叢集或託管服務
- LLM 提供者:Anthropic Claude(更穩定)
- 提取模式:
full(最完整)
第 2 步:批量提取
# 來源清單
FILES=(
"README.md"
"docs/introduction.md"
"docs/api/*.md"
"docs/guides/*.md"
"docs/architecture.md"
)
# 批量提取
for file in "${FILES[@]}"; do
echo "提取 $file..."
graphify extract "$file" --namespace="prod"
done
第 3 步:驗證提取
# 統計資訊
graphify stats
# 驗證查詢
graphify query "圖譜中是否有重複的實體?"
graphify query "所有實體是否都有來源追蹤?"
graphify query "是否有孤立節點(無任何關係)?"
第 4 步:品質檢查
# 檢查實體類型分佈
graphify query "各類型實體的數量是多少?" --format=json > entity-distribution.json
# 檢查關係完整性
graphify query "是否有缺少必要關係的實體?"
# 檢查來源覆蓋率
graphify query "哪些文件已成功提取?"
第 5 步:高級查詢
# 複雜查詢測試
graphify query "找出所有沒有參與者的專案"
graphify query "列出被多個專案依賴的技術"
graphify query "哪些人員參與了超過 3 個專案?"
第 6 步:視覺化
# 完整圖譜
graphify visualize --output=full-graph.html --layout=force
# 特定視角
graphify visualize --filter="type:Person" --output=people-graph.html
graphify visualize --filter="relationship:DEPENDS_ON" --output=deps-graph.html
# 子圖
graphify visualize --focus="核心專案" --radius=2 --output=core-subgraph.html
第 7 步:部署
# 匯出圖譜
graphify export --format=graphml --output=knowledge-graph.graphml
# 部署到生產環境
graphify deploy --target=production
# 設定定期更新
graphify schedule --cron="0 2 * * *" --command="extract --source=docs/"
完整範例
以下是建立企業知識庫的完整流程:
── 規劃階段 ──
知識來源:
- 所有專案的 README.md
- API 文件(docs/api/)
- 架構文件(docs/architecture/)
- 會議記錄(meetings/)
實體類型:Person, Project, Technology, API, Meeting
關係類型:WORKS_ON, DEPENDS_ON, PARTICIPATES_IN, DEFINES
── 初始化階段 ──
- You:
graphify init --config=production-config.yaml - AI:
正在初始化生產級 Graphify 專案…
生產配置:
- 圖譜後端:Neo4j Aura (雲端託管)
- LLM 提供者:Anthropic Claude 3 Opus
- 提取模式:full
✓ 專案初始化完成!
── 批量提取階段 ──
- You:
# 提取專案文件 graphify extract --batch="projects.txt" --namespace="projects" # 提取 API 文件 graphify extract --batch="api-docs.txt" --namespace="api" # 提取會議記錄 graphify extract --batch="meetings.txt" --namespace="meetings" - AI:
正在批量提取…
提取統計:
- 處理文件:156 份
- 識別實體:892 個
- 建立關係:1,234 個
- 處理時間:15 分鐘
✓ 批量提取完成!
── 驗證階段 ──
- You:
graphify validate - AI:
正在驗證圖譜…
驗證結果:
- ✓ 所有實體都有來源追蹤
- ✓ 所有關係類型有效
- ⚠️ 發現 12 個孤立節點
- ✓ 沒有重複實體
建議:
- 檢查孤立節點是否為遺漏關係
- 考慮合併相似實體
── 視覺化階段 ──
- You:
# 生成多個視角 graphify visualize --output=full-graph.html graphify visualize --focus="核心專案" --output=core-graph.html graphify visualize --filter="relationship:WORKS_ON" --output=team-graph.html - AI:
正在生成視覺化…
✓ full-graph.html(892 節點,1,234 關係) ✓ core-graph.html(124 節點,186 關係) ✓ team-graph.html(156 節點,203 關係)
視覺化已生成,可部署到靜態網站!
品質保證檢查清單
資料完整性
- 所有實體都有來源追蹤
- 沒有孤立節點(或確認其合理性)
- 沒有重複的實體
- 關係類型一致且正確
查詢有效性
- 常用查詢返回合理結果
- 複雜查詢能正確執行
- 查詢回應時間在可接受範圍內
視覺化品質
- 佈局清晰易讀
- 節點標籤有意義
- 關係方向正確
- 顏色分類合理
部署策略
靜態部署
# 生成靜態視覺化
graphify visualize --output=index.html --static
# 部署到 Cloudflare Pages
wrangler pages deploy .graphify/public/
動態部署
# 部署 Graphify 查詢服務
graphify serve --port=4321
# 或使用 Neo4j Browser
# 直接連線到 Neo4j 實例
定期更新
# 設定每日自動更新
graphify schedule --cron="0 2 * * *" --config=update-config.yaml
監控與維護
監控指標
# 查看圖譜統計
graphify stats
# 查看查詢效能
graphify benchmark --queries=benchmark-queries.txt
定期維護
# 每週執行
graphify cleanup --remove-orphan --merge-duplicates
# 每月執行
graphify backup --name=monthly-$(date +%Y-%m)
graphify optimize
完整開發工作流確保知識圖譜的品質與可維護性,是建立生產級系統的推薦方式!