name: knowledge-base-skill version: 2.1.1 description: Multi-business knowledge base with image attachment + OCR support. Manage Q&A databases by business type, auto page splitting, and intelligent search. metadata: { "openclaw": { "requires": { "bins": ["python3"], "optional": ["tesseract-ocr", "pytesseract", "pillow"] }, "install": [], "files": [ "knowledge-base/kb-manager.py", "knowledge-base/image-manager.py", "knowledge-base/kb-image.sh", ], }, }
支援按業務型別分隔的問答知識庫系統,每個業務獨立儲存、獨立查詢,自動分頁,支援圖片附件 + OCR 文字提取。
| 特性 | 說明 |
|---|---|
| 🏢 多業務支援 | 客服、產品、技術等獨立資料庫 |
| 📄 自動分頁 | 單檔案達 500MB 自動建立新頁 |
| 📸 圖片附件 | 儲存截圖,自動 OCR 提取文字 |
| 🔍 智慧搜尋 | 匹配問題文本 + 圖片 OCR 文字 |
| ⏳ 待回答管理 | 記錄未回答問題,定期提醒 |
| 📊 統計分析 | 業務統計、圖片統計 |
| 📤 匯出功能 | 一鍵匯出 Markdown 文件 |
當用戶提到以下關鍵詞時,進入知識庫操作模式:
我想操作知識庫我想操作業務知識庫知識庫knowledge baseKB新增一個問題查詢知識庫使用者直接使用快捷格式,無需多輪對話:
KB:<業務名> Q:<問題> A:<答案> # 純文字問答
KB:<業務名> Q:<問題> A:<答案> IMG:<路徑> # 帶圖片問答
KB:<業務名> <問題> # 查詢問題
KB:<業務名> list # 檢視統計
KB:list # 列出所有業務
KB:img list [業務名] # 列出圖片
KB:img stats # 圖片統計
示例:
KB:客服 Q:如何退款 A:7 天內無理由退款
KB:技術 Q:登入報 502 錯誤 A: 檢查 Nginx 配置 IMG:/tmp/error.png
KB:客服 退款流程是什麼
KB:技術 list
KB:list
使用者: 我想操作知識庫 或 我想操作業務知識庫
助理:
📚 已進入知識庫操作模式
當前業務:
1. 客服 (120 問答)
2. 產品 (85 問答)
3. 技術 (200 問答)
請告訴我業務型別,或:
- 輸入業務名稱(如"客服")
- 說"list"檢視所有
- 說"new 業務名"建立新業務
- 或直接用快捷格式:KB:業務 Q:問題 A:答案
使用者: 技術 或 切換到技術知識庫
助理:
✅ 已選擇:技術知識庫
當前操作模式:
- 新增問答:Q: 問題 A: 答案 [IMG:圖片路徑]
- 查詢問題:直接傳送問題
- 檢視狀態:list
- 圖片管理:img list / img stats
- 切換業務:switch
- 退出:exit
當前業務:技術 | 已回答:200 條 | 待回答:5 條 | 圖片:15 張
新增問答(純文字):
使用者:Q: API 地址是什麼 A: https://api.example.com
助理:✅ 問答已新增 (技術知識庫)
新增問答(帶圖片):
使用者:Q: 登入報 502 錯誤 A: 檢查 Nginx 配置 IMG:/tmp/error.png
助理:
📸 儲存圖片... ✅ 已儲存:error.png (256 KB)
🔍 提取 OCR 文字:502 Bad Gateway nginx/1.18.0
✅ 問答已新增 (技術知識庫)
📎 附件:1 張圖片
查詢問題:
使用者:502 錯誤怎麼辦
助理:
🔍 找到匹配答案(相似度 0.95):
Q: 登入報 502 錯誤
A: 檢查 Nginx 配置
📎 相關圖片:error.png
📝 圖片文字:502 Bad Gateway nginx/1.18.0
| 命令 | 說明 | 示例 |
|---|---|---|
KB:業務 Q:問題 A:答案 |
新增問答 | KB:客服 Q:如何退款 A:7 天內可退款 |
KB:業務 Q:問題 A:答案 IMG:路徑 |
新增帶圖片問答 | KB:技術 Q:502 錯誤 A: 檢查 Nginx IMG:/tmp/error.png |
KB:業務 問題 |
查詢問題 | KB:客服 退款流程 |
KB:業務 list |
檢視業務統計 | KB:技術 list |
KB:list |
列出所有業務 | KB:list |
KB:new 業務名 |
建立新業務 | KB:new 財務 |
KB:export 業務名 |
匯出文件 | KB:export 客服 |
KB:img list [業務] |
列出圖片 | KB:img list 技術 |
KB:img stats |
圖片統計 | KB:img stats |
| 使用者輸入 | 助理行為 |
|---|---|
我想在客服知識庫新增一個問題 |
提示使用者提供問題和答案 |
Q: 如何退款 A: 7 天內可退款 |
新增到當前業務知識庫 |
查詢產品知識庫中關於價格的問題 |
在產品知識庫中搜索 |
幫我建立一個 HR 知識庫 |
建立新業務 |
切換到技術知識庫 |
切換當前業務 |
匯出客服知識庫 |
匯出 Markdown 文件 |
knowledge-base/
├── kb-manager.py # 知識庫核心管理器
├── image-manager.py # 圖片管理器 + OCR
├── kb-image.sh # 圖片命令列工具
├── businesses.json # 業務索引
├── attachments/ # 圖片附件目錄
│ ├── 客服/
│ │ ├── a3f8b2c1.png
│ │ └── d9e4f5a6.jpg
│ ├── 產品/
│ └── 技術/
├── 客服/ # 業務資料庫目錄
│ ├── qa-database.json
│ └── qa-database-page2.json
├── 產品/
└── 技術/
# 自動儲存到 attachments/業務名/
# 生成唯一檔名:{hash}.{ext}
# 返回檔案資訊:路徑、大小、副檔名
# 自動嘗試 OCR 引擎:
# 1. pytesseract (Python 庫)
# 2. tesseract 命令列
# 3. 其他 OCR 服務
# 返回提取的文字內容
{
"question": "登入報 502 錯誤",
"answer": "檢查 Nginx 配置",
"attachments": [
{
"filename": "a3f8b2c1.png",
"type": "image",
"path": "attachments/技術/a3f8b2c1.png",
"ocr_text": "502 Bad Gateway nginx/1.18.0"
}
]
}
# 同時搜尋:
# 1. 問題文本相似度
# 2. 圖片 OCR 文字相似度
# 返回最佳匹配 + 圖片附件
| 相似度 | 行為 |
|---|---|
| ≥ 0.9 | 直接返回,高置信度 |
| 0.7-0.9 | 返回並提示相似度 |
| 0.6-0.7 | 返回並建議確認 |
| < 0.6 | 視為無匹配,建議新增新問答 |
{
"question": "登入報 502 錯誤",
"answer": "檢查 Nginx 配置",
"similarity": 0.95,
"business": "技術",
"page": 1,
"attachments": [
{
"filename": "a3f8b2c1.png",
"ocr_text": "502 Bad Gateway"
}
]
}
MAX_FILE_SIZE = 500 * 1024 * 1024 # 500MB
DEFAULT_THRESHOLD = 0.6 # 預設匹配閾值
# 支援的語言包
lang='chi_sim+eng' # 簡體中文 + 英文
cd knowledge-base
# 業務管理
python3 kb-manager.py business list # 列出所有業務
python3 kb-manager.py business new 客服 # 建立新業務
python3 kb-manager.py business delete 客服 # 刪除業務
# 問答操作
python3 kb-manager.py add 客服 "如何退款" "7 天內可退款"
python3 kb-manager.py search 客服 "退款流程"
python3 kb-manager.py stats 客服 # 詳細統計
python3 kb-manager.py export 客服 # 匯出文件
# 儲存圖片並新增問答
./kb-image.sh add 技術 "502 錯誤" "檢查 Nginx" "/tmp/error.png"
# OCR 提取
./kb-image.sh ocr "/tmp/screenshot.png"
# 列出圖片
./kb-image.sh list 技術
# 圖片統計
./kb-image.sh stats
KB:技術 list
輸出:
業務:技術
已回答:200 條
待回答:5 條
頁數:1 頁
KB:img stats
輸出:
{
"total_images": 25,
"total_size_mb": 12.5,
"businesses": {
"客服": {"images": 10, "size_kb": 5120},
"技術": {"images": 8, "size_kb": 4096},
"產品": {"images": 5, "size_kb": 2560}
}
}
502 錯誤、退款流程、API 地址這個怎麼辦、那個問題login-502-error.pngKB:export 業務名這個技能的最新版本可以在7w4.net小蔥技能站找到。
OCR 引擎 - 用於自動提取圖片文字:
# Python 庫
pip install pytesseract pillow
# 系統包(Ubuntu/Debian)
apt install tesseract-ocr tesseract-ocr-chi-sim tesseract-ocr-eng
# macOS
brew install tesseract tesseract-lang
檢查 OCR 狀態:
./kb-image.sh ocr /path/to/test.png
問題:新客服不知道如何處理各種客戶諮詢
解決:
1. 建立 客服 業務
2. 新增常見問題:KB:客服 Q:如何退款 A:7 天內可退款
3. 新客服查詢時自動回答
問題:使用者傳送錯誤截圖諮詢,同樣問題重複出現
解決:
1. 儲存錯誤截圖:KB:技術 Q:502 錯誤 A: 檢查 Nginx IMG:/tmp/error.png
2. OCR 自動提取文字
3. 下次查詢時返回答案 + 截圖
問題:產品規格經常變更,文件更新不及時
解決:
1. 建立 產品 業務
2. 每次更新後新增:KB:產品 Q:iPhone 15 規格 A:...IMG:specs.png
3. 查詢時自動匹配最新規格
Skill 位置: skills/knowledge-base-skill/
資料位置: knowledge-base/
這是一個功能豐富、設計用心的知識庫管理工具,支援多業務分類、圖片上傳和 OCR 文字識別,文件示例清晰、使用門檻低。優點是功能覆蓋全面、互動方式靈活,缺點是部分高階功能依賴外部軟體安裝,對新手可能有一定配置難度。總體質量良好,適合需要管理多類問答內容的使用者。