@@ -1,247 +0,0 @@
|
||||
# KB Workflow 环境安装脚本
|
||||
|
||||
一键检查并安装 kb-workflow 知识库工作流所需的全部环境依赖。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- ✅ 自动检测系统类型 (Ubuntu/Debian/Fedora/Arch)
|
||||
- ✅ 检查系统依赖 (Python3, pip3, ffmpeg, tesseract, git)
|
||||
- ✅ 检查 Python 依赖包 (httpx, aiohttp, playwright, easyocr 等)
|
||||
- ✅ 自动创建知识库目录结构
|
||||
- ✅ 生成环境变量配置示例
|
||||
- ✅ 汇总显示所有需要执行的安装命令
|
||||
|
||||
## 使用方法
|
||||
|
||||
### 运行检查脚本
|
||||
|
||||
```bash
|
||||
cd /home/starmen1265/.openclaw/workspace/skills
|
||||
./install-kb-workflow.sh
|
||||
```
|
||||
|
||||
脚本会检查所有依赖,并显示需要执行的安装命令。
|
||||
|
||||
### 示例输出
|
||||
|
||||
```
|
||||
========================================
|
||||
第一步: 检查系统依赖
|
||||
========================================
|
||||
[SUCCESS] Python3 已安装: Python 3.12.3
|
||||
[WARN] pip3 未安装
|
||||
[WARN] ffmpeg 未安装
|
||||
...
|
||||
|
||||
========================================
|
||||
需要安装的系统依赖
|
||||
========================================
|
||||
|
||||
检测到以下依赖未安装:
|
||||
- python3-pip
|
||||
- ffmpeg
|
||||
- tesseract-ocr
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
请运行以下命令安装:
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3-pip ffmpeg tesseract-ocr tesseract-ocr-chi-sim tesseract-ocr-eng
|
||||
```
|
||||
|
||||
## 依赖清单
|
||||
|
||||
### 系统依赖
|
||||
|
||||
| 依赖 | 用途 | 安装命令 |
|
||||
|------|------|----------|
|
||||
| **python3** | Python 运行时 | `sudo apt-get install python3` |
|
||||
| **python3-pip** | Python 包管理器 | `sudo apt-get install python3-pip` |
|
||||
| **ffmpeg** | 视频处理(OCR 截帧) | `sudo apt-get install ffmpeg` |
|
||||
| **tesseract-ocr** | OCR 引擎(备用方案) | `sudo apt-get install tesseract-ocr` |
|
||||
| **git** | 版本控制(归档提交) | `sudo apt-get install git` |
|
||||
|
||||
### Tesseract 语言包
|
||||
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt-get install tesseract-ocr-chi-sim tesseract-ocr-chi-tra tesseract-ocr-eng
|
||||
|
||||
# Fedora/RHEL
|
||||
sudo dnf install tesseract-langpack-chi_sim tesseract-langpack-chi_tra tesseract-langpack-eng
|
||||
```
|
||||
|
||||
### Python 依赖
|
||||
|
||||
```bash
|
||||
# 基础 HTTP 库
|
||||
pip3 install --user httpx aiohttp requests
|
||||
|
||||
# 图像和 OCR
|
||||
pip3 install --user Pillow easyocr pytesseract
|
||||
|
||||
# 浏览器自动化
|
||||
pip3 install --user playwright
|
||||
python3 -m playwright install chromium
|
||||
```
|
||||
|
||||
## 目录结构
|
||||
|
||||
安装完成后会创建以下目录结构:
|
||||
|
||||
```
|
||||
~/work/knowledge-base/ # 知识库根目录(可配置)
|
||||
├── archive/ # 归档目录
|
||||
│ ├── pending/ # 待处理
|
||||
│ └── subscriptions/ # 订阅信息
|
||||
├── metadata/ # 元数据文件
|
||||
├── content/ # 内容文件
|
||||
│ ├── downloads/ # 视频下载
|
||||
│ └── subtitles/ # 字幕文件
|
||||
└── analyzed/ # 深度分析报告
|
||||
```
|
||||
|
||||
## 环境变量
|
||||
|
||||
### 必需
|
||||
- `KB_BASE_PATH` - 知识库根目录(默认: `~/work/knowledge-base`)
|
||||
|
||||
### 可选
|
||||
- `BILIBILI_COOKIE` - B站 Cookie,用于下载会员视频
|
||||
- `AI_API_KEY` - AI API 密钥,用于深度内容分析
|
||||
- `AI_PROVIDER` - AI 提供商(openai/zhipu/minimax)
|
||||
- `AI_MODEL` - AI 模型名称(如 gpt-4)
|
||||
- `AI_BASE_URL` - 自定义 API 端点
|
||||
- `KB_GIT_USER` - Git 用户名(用于归档提交)
|
||||
- `KB_GIT_EMAIL` - Git 邮箱(用于归档提交)
|
||||
- `KB_GIT_REMOTE` - Git 远程仓库地址
|
||||
|
||||
### 配置方法
|
||||
|
||||
将以下内容添加到 `~/.bashrc` 或 `~/.zshrc`:
|
||||
|
||||
```bash
|
||||
# KB Workflow 配置
|
||||
export KB_BASE_PATH="~/work/knowledge-base"
|
||||
|
||||
# 可选:B站 Cookie
|
||||
export BILIBILI_COOKIE="SESSDATA=xxx; bili_jct=xxx"
|
||||
|
||||
# 可选:AI 配置
|
||||
export AI_API_KEY="your-api-key"
|
||||
export AI_PROVIDER="openai"
|
||||
export AI_MODEL="gpt-4"
|
||||
```
|
||||
|
||||
然后重新加载配置:
|
||||
```bash
|
||||
source ~/.bashrc # 或 source ~/.zshrc
|
||||
```
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 1. pip3 命令不存在
|
||||
|
||||
```bash
|
||||
# 方法 1: 安装 pip3
|
||||
sudo apt-get install python3-pip
|
||||
|
||||
# 方法 2: 使用 python3 -m pip
|
||||
python3 -m pip install --user <package>
|
||||
```
|
||||
|
||||
### 2. Playwright 浏览器安装失败
|
||||
|
||||
```bash
|
||||
# 手动安装 Chromium
|
||||
python3 -m playwright install chromium
|
||||
|
||||
# 如果仍然失败,尝试安装依赖
|
||||
sudo apt-get install libnss3 libatk-bridge2.0-0 libxss1 libgtk-3-0
|
||||
```
|
||||
|
||||
### 3. EasyOCR 安装失败
|
||||
|
||||
EasyOCR 依赖 PyTorch,可能需要较长时间安装:
|
||||
|
||||
```bash
|
||||
# 先安装 PyTorch
|
||||
pip3 install --user torch torchvision --index-url https://download.pytorch.org/whl/cpu
|
||||
|
||||
# 再安装 easyocr
|
||||
pip3 install --user easyocr
|
||||
```
|
||||
|
||||
### 4. 权限问题
|
||||
|
||||
如果使用 `--user` 安装的包无法找到,检查 PATH:
|
||||
|
||||
```bash
|
||||
# 查看用户安装路径
|
||||
python3 -m site --user-base
|
||||
|
||||
# 添加到 PATH(添加到 ~/.bashrc)
|
||||
export PATH="$PATH:$(python3 -m site --user-base)/bin"
|
||||
```
|
||||
|
||||
### 5. OCR 中文识别问题
|
||||
|
||||
确保已安装中文语言包:
|
||||
|
||||
```bash
|
||||
# 检查已安装的语言包
|
||||
tesseract --list-langs
|
||||
|
||||
# 应该能看到 chi_sim 和 chi_tra
|
||||
```
|
||||
|
||||
## 更新
|
||||
|
||||
如果技能更新了依赖,可以重新运行检查脚本:
|
||||
|
||||
```bash
|
||||
./install-kb-workflow.sh
|
||||
```
|
||||
|
||||
## 子技能清单
|
||||
|
||||
| 技能 | 路径 | 功能 |
|
||||
|------|------|------|
|
||||
| kb-workflow | `kb-workflow/kb_workflow.py` | 主流程协调 |
|
||||
| kb-link-parser | `kb-link-parser/link-parser.py` | 链接解析 |
|
||||
| kb-bilibili-metadata | `kb-bilibili-metadata/bilibili_metadata.py` | B站元数据提取 |
|
||||
| kb-bilibili-content | `kb-bilibili-content/bilibili_content.py` | B站内容下载 |
|
||||
| kb-ocr-processor | `kb-ocr-processor/ocr_processor.py` | 视频 OCR 识别 |
|
||||
| kb-deep-analyzer | `kb-deep-analyzer/deep_analyzer.py` | AI 深度分析 |
|
||||
|
||||
## 使用 kb-workflow
|
||||
|
||||
安装完成后,可以通过以下方式使用:
|
||||
|
||||
### 方式 1:通过主代理
|
||||
|
||||
直接向主代理发送消息:
|
||||
```
|
||||
添加到知识库 https://www.bilibili.com/video/BVxxxxx
|
||||
```
|
||||
|
||||
### 方式 2:手动运行子技能
|
||||
|
||||
```bash
|
||||
# 1. 链接解析
|
||||
python3 kb-link-parser/link-parser.py --url "https://www.bilibili.com/video/BVxxxxx"
|
||||
|
||||
# 2. 元数据提取
|
||||
python3 kb-bilibili-metadata/bilibili_metadata.py --id "BVxxxxx" --type video
|
||||
|
||||
# 3. 内容下载
|
||||
python3 kb-bilibili-content/bilibili_content.py --id "BVxxxxx" --type subtitle-download
|
||||
|
||||
# 4. 深度分析
|
||||
python3 kb-deep-analyzer/deep_analyzer.py --metadata meta.json --content content.json --output analysis.md
|
||||
```
|
||||
|
||||
## 许可证
|
||||
|
||||
MIT License
|
||||
@@ -1,101 +0,0 @@
|
||||
# SkillBug.md
|
||||
|
||||
## 问题记录
|
||||
|
||||
### 2026-02-10: 子代理权限问题
|
||||
|
||||
**问题:** `sessions_spawn` 调用子代理时返回 `forbidden` 错误。
|
||||
|
||||
**原因:** OpenClaw 配置中 allowlist 为空,Python 脚本没有权限调用子代理。
|
||||
|
||||
**解决方案:** 改用 Prompt-based 模式(方案B)。
|
||||
|
||||
---
|
||||
|
||||
## 架构重构
|
||||
|
||||
### 之前(Script-based)
|
||||
|
||||
```
|
||||
kb_workflow.py (Python脚本)
|
||||
↓
|
||||
sessions_spawn() # ❌ 失败(脚本没有权限)
|
||||
```
|
||||
|
||||
### 之后(Prompt-based)
|
||||
|
||||
```
|
||||
主代理读取 SKILL.md
|
||||
↓
|
||||
按照指导调用 sessions_spawn # ✅ 成功(主代理有权限)
|
||||
```
|
||||
|
||||
### 文件变更
|
||||
|
||||
| 文件 | 变更 | 说明 |
|
||||
|------|------|------|
|
||||
| `SKILL.md` | 重写 | 详细定义 workflow 步骤,主代理直接读取执行 |
|
||||
| `kb_workflow.py` | 简化 | 保留为辅助工具函数库(查重、归档、Git) |
|
||||
| `skill_main.py` | 简化 | 只做触发检测,返回指导信息 |
|
||||
| `SkillBug.md` | 更新 | 记录架构变更 |
|
||||
|
||||
### SKILL.md 结构
|
||||
|
||||
```
|
||||
1. 触发条件
|
||||
2. 步骤 1: 查重
|
||||
3. 步骤 2: kb-link-parser
|
||||
4. 步骤 3: 元数据技能
|
||||
5. 步骤 4: 内容下载
|
||||
6. 步骤 5: OCR(30分钟超时)
|
||||
7. 步骤 6: 深度分析
|
||||
8. 步骤 7: 归档和 Git
|
||||
9. 步骤 8: 汇报完成
|
||||
10. 目录结构
|
||||
11. 支持平台
|
||||
12. 注意事项
|
||||
```
|
||||
|
||||
### kb_workflow.py 保留的函数
|
||||
|
||||
```python
|
||||
extract_platform(filename) # 从文件名提取平台
|
||||
extract_base_name(filename) # 从文件名提取基础名称
|
||||
get_knowledge_base_path() # 获取知识库根目录
|
||||
ensure_directories(base_path) # 确保目录存在
|
||||
check_duplicate(url) # 查重
|
||||
archive_and_git(analyzed_file) # 归档和 Git
|
||||
generate_summary(...) # 生成汇报
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2026-02-12: B站视频下载失败 - 403 Forbidden
|
||||
|
||||
**问题:** 使用 kb-bilibili-content 下载视频时返回 403 Forbidden 错误。
|
||||
|
||||
**原因:**
|
||||
1. 视频可能需要B站会员权限
|
||||
2. 或者需要登录cookie才能下载
|
||||
3. 当前未配置 `BILIBILI_COOKIE` 环境变量
|
||||
|
||||
**复现场景:**
|
||||
- 链接:https://www.bilibili.com/video/BV1Z9nXzUEhv
|
||||
- 下载命令:`python3 bilibili_content.py --id "BV1Z9nXzUEhv" --type video`
|
||||
- 结果:返回403错误页面,文件只有548字节
|
||||
|
||||
**影响:** 无法进行后续的OCR处理和深度分析
|
||||
|
||||
**建议解决方案:**
|
||||
1. 配置 `BILIBILI_COOKIE` 环境变量
|
||||
2. 或提供cookies文件路径
|
||||
3. 或跳过OCR步骤,使用元数据+简介进行深度分析
|
||||
|
||||
**当前进度:**
|
||||
- ✅ 步骤1:环境变量检查完成
|
||||
- ✅ 步骤2:链接解析成功(bilibili_BV1Z9nXzUEhv)
|
||||
- ✅ 步骤3:元数据提取成功(标题:新加坡分区漫游指南...)
|
||||
- ❌ 步骤4:视频下载失败(403)
|
||||
- ⏸️ 步骤5:OCR处理(阻塞)
|
||||
- ⏸️ 步骤6:深度分析(阻塞)
|
||||
- ⏸️ 步骤7:归档(阻塞)
|
||||
Reference in New Issue
Block a user