修改技能流程
This commit is contained in:
@@ -2,14 +2,11 @@
|
||||
|
||||
- **Name:** 蒋先生
|
||||
- **What to call them:** 蒋先生
|
||||
- **Timezone:** GMT+8
|
||||
- **Notes:**
|
||||
- **Timezone:** Asia/Shanghai (GMT+8)
|
||||
- **Notes:** 偏好使用中文交流
|
||||
|
||||
## Context
|
||||
## KB Workflow 配置
|
||||
|
||||
- 🗣️ 用中文沟通
|
||||
-
|
||||
|
||||
---
|
||||
知识库路径: `~/work/knowledge-base`
|
||||
|
||||
更多信息有待了解。
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
# 2026-02-11 会话记录
|
||||
|
||||
## 个人设置
|
||||
- 用户明确要求:以后所有交流使用中文
|
||||
- 已更新 USER.md 记录此偏好
|
||||
|
||||
## KB Workflow 技能环境配置
|
||||
|
||||
### 背景
|
||||
用户需要处理"添加到知识库 + 链接"的工作流,特别是 B站视频内容。
|
||||
|
||||
### 完成的工作
|
||||
1. **检查了 kb-workflow 技能结构**
|
||||
- 主流程: kb-workflow/kb_workflow.py
|
||||
- 链接解析: kb-link-parser/link-parser.py
|
||||
- B站元数据: kb-bilibili-metadata/bilibili_metadata.py
|
||||
- B站内容下载: kb-bilibili-content/bilibili_content.py
|
||||
- OCR处理: kb-ocr-processor/ocr_processor.py
|
||||
- 深度分析: kb-deep-analyzer/deep_analyzer.py
|
||||
|
||||
2. **创建了一键环境检查脚本**
|
||||
- 文件: `skills/install-kb-workflow.sh`
|
||||
- 功能: 自动检查系统依赖和 Python 包
|
||||
- 生成缺失依赖的安装命令
|
||||
|
||||
3. **创建了知识库目录结构**
|
||||
- 路径: `~/work/knowledge-base/`
|
||||
- 包含: archive/, pending/, metadata/, content/{downloads,subtitles}/, analyzed/
|
||||
|
||||
### 环境依赖清单
|
||||
**系统依赖:**
|
||||
- python3 (已安装 3.12.3)
|
||||
- python3-pip (缺失)
|
||||
- ffmpeg (缺失)
|
||||
- tesseract-ocr + 中文/英文语言包 (缺失)
|
||||
- git (已安装 2.43.0)
|
||||
|
||||
**Python 包:**
|
||||
- httpx, aiohttp, requests (部分已安装)
|
||||
- playwright, easyocr, pytesseract (缺失)
|
||||
|
||||
### 待执行安装命令
|
||||
```bash
|
||||
# 系统依赖
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3-pip ffmpeg tesseract-ocr tesseract-ocr-chi-sim tesseract-ocr-eng
|
||||
|
||||
# Python 包
|
||||
pip3 install --user httpx aiohttp playwright easyocr pytesseract
|
||||
python3 -m playwright install chromium
|
||||
|
||||
# 环境变量
|
||||
export KB_BASE_PATH="~/work/knowledge-base"
|
||||
```
|
||||
|
||||
## 待处理事项
|
||||
- [ ] 用户需要运行安装命令完成环境配置
|
||||
- [ ] 完成后可以处理 B站视频链接添加到知识库
|
||||
|
||||
## 文档更新
|
||||
- 更新了 USER.md 添加 KB Workflow 配置章节
|
||||
- 创建了 skills/README.md 详细文档
|
||||
- 创建了 skills/.env.example 环境变量示例
|
||||
@@ -0,0 +1,14 @@
|
||||
# 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" # 或 zhipu, minimax
|
||||
# export AI_MODEL="gpt-4"
|
||||
|
||||
# 可选: Git 配置
|
||||
# export KB_GIT_USER="Your Name"
|
||||
# export KB_GIT_EMAIL="your@email.com"
|
||||
@@ -0,0 +1,247 @@
|
||||
# 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
|
||||
|
||||
# 4. 深度分析
|
||||
python3 kb-deep-analyzer/deep_analyzer.py --metadata meta.json --content content.json --output analysis.md
|
||||
```
|
||||
|
||||
## 许可证
|
||||
|
||||
MIT License
|
||||
+28
-25
@@ -14,42 +14,45 @@ description: 当收到"添加到知识库 + 链接" 或"保存到知识库 + 链
|
||||
| `添加到知识库` + 链接 | 添加到知识库并处理 | "添加到知识库 https://www.bilibili.com/video/BVxxx" |
|
||||
| `保存到知识库` + 链接 | 同上 | "保存到知识库 https://www.bilibili.com/video/BVxxx" |
|
||||
|
||||
|
||||
## 环境变量
|
||||
检查以下环境变量
|
||||
KB_BASE_PATH
|
||||
|
||||
环境变量默认值
|
||||
```bash
|
||||
export KB_BASE_PATH="~/work/knowledge-base"
|
||||
```
|
||||
在执行 workflow 之前,必须检查环境变量是否已经设置。
|
||||
以下是必须的环境变量,如果缺失必须询问用户获得。没有全部设置完成之前禁止进行后续操作。
|
||||
| 变量名 | 用途 | 示例 |
|
||||
|--------|------|------|
|
||||
| `KB_BASE_PATH` | 知识库根目录 | `~/work/kb`
|
||||
| `AI_API_KEY` | AI深度分析 | `sk-xxx` |
|
||||
| `AI_PROVIDER` | AI提供商 | `openai`, `zhipu`, `minimax` |
|
||||
| `AI_MODEL` | AI模型 | `gpt-4` |
|
||||
|
||||
以下是可选的环境变量,询问用户是否要设置,允许暂时跳过
|
||||
| 变量名 | 用途 | 示例 |
|
||||
|--------|------|------|
|
||||
| `BILIBILI_COOKIE` | 下载会员视频 | `SESSDATA=xxx; bili_jct=xxx` |
|
||||
| `KB_GIT_USER` | Git提交用户名 | `Your Name` |
|
||||
| `KB_GIT_EMAIL` | Git提交邮箱 | `your@email.com` |
|
||||
|
||||
|
||||
## Workflow 执行方式
|
||||
|
||||
主代理直接执行以下步骤,无需启动 kb-workflow 子代理:
|
||||
|
||||
1. 主代理执行 `kb_workflow.py --check` 查重
|
||||
2. 主代理启动子代理调用 kb-link-parser
|
||||
3. 主代理启动子代理调用 kb-平台-metadata
|
||||
4. 主代理启动子代理调用 kb-平台-content
|
||||
5. 主代理启动子代理调用 kb-ocr-processor(如需要)
|
||||
6. 主代理启动子代理调用 kb-deep-analyzer
|
||||
7. 主代理执行 `kb_workflow.py --archive-file` 归档
|
||||
1. 主代理启动子代理调用 kb-link-parser
|
||||
2. 主代理启动子代理调用 kb-平台-metadata
|
||||
3. 主代理启动子代理调用 kb-平台-content
|
||||
4. 主代理启动子代理调用 kb-ocr-processor(如需要)
|
||||
5. 主代理启动子代理调用 kb-deep-analyzer
|
||||
6. 主代理执行 `kb_workflow.py --archive-file` 归档
|
||||
|
||||
|
||||
## Workflow 步骤
|
||||
## Workflow 执行步骤
|
||||
|
||||
当触发后,按照以下步骤执行:
|
||||
|
||||
### 步骤 1: 查重
|
||||
|
||||
运行查重命令:
|
||||
```bash
|
||||
python3 kb_workflow.py --check --url "[URL]"
|
||||
```
|
||||
|
||||
- 如果存在:汇报用户并询问是更新还是跳过
|
||||
- 如果不存在:继续步骤 2
|
||||
### 步骤 1: 环境变量检查
|
||||
立刻告知用户,启用技能kb-workflow.
|
||||
参考环境变量标题下内容执行。
|
||||
如果必须的环境变量都没问题,继续执行下面的步骤。
|
||||
|
||||
### 步骤 2: 链接解析
|
||||
|
||||
@@ -105,7 +108,7 @@ python3 /path/to/bilibili_content.py --id "[ID]" --type subtitle --output [subti
|
||||
|
||||
3. 解析输出 JSON,提取 video_filename 和 subtitle_filename(如有)
|
||||
|
||||
### 步骤 5: OCR 处理(可选,耗时步骤)
|
||||
### 步骤 5: OCR 处理(禁止跳过)
|
||||
|
||||
> ⚠️ **重要**:此步骤为耗时步骤,视频按帧截取和 OCR 识别需要较长时间。
|
||||
> - **严禁跳过**:即使等待时间较长,也必须等待 OCR 完成
|
||||
|
||||
Executable
+321
@@ -0,0 +1,321 @@
|
||||
#!/bin/bash
|
||||
# =============================================================================
|
||||
# KB Workflow 环境一键安装脚本
|
||||
# =============================================================================
|
||||
# 功能: 检查并安装 kb-workflow 技能所需的全部环境依赖
|
||||
# 支持: Ubuntu/Debian 系统
|
||||
#
|
||||
# 使用方法:
|
||||
# ./install-env.sh # 检查环境并提示安装命令(检查模式)
|
||||
# ./install-env.sh --auto # 自动安装所有缺失依赖(自动模式)
|
||||
# =============================================================================
|
||||
|
||||
# 颜色定义
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
# 日志函数
|
||||
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
|
||||
log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
|
||||
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
||||
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
|
||||
log_section() {
|
||||
echo ""
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}$1${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
}
|
||||
|
||||
# 获取脚本目录
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
DEFAULT_KB_PATH="${HOME}/work/knowledge-base"
|
||||
|
||||
# 解析参数
|
||||
AUTO_MODE=false
|
||||
if [ "$1" = "--auto" ]; then
|
||||
AUTO_MODE=true
|
||||
log_info "自动安装模式"
|
||||
fi
|
||||
|
||||
# 检测 Linux 发行版
|
||||
detect_distro() {
|
||||
if [ -f /etc/os-release ]; then
|
||||
. /etc/os-release
|
||||
echo "$ID"
|
||||
elif [ -f /etc/debian_version ]; then
|
||||
echo "debian"
|
||||
elif [ -f /etc/redhat-release ]; then
|
||||
echo "rhel"
|
||||
fi
|
||||
}
|
||||
DISTRO=$(detect_distro)
|
||||
|
||||
# 检查命令是否存在
|
||||
command_exists() {
|
||||
command -v "$1" > /dev/null 2>&1
|
||||
}
|
||||
|
||||
# 检查 Python 包
|
||||
check_python_package() {
|
||||
python3 -c "import $1" 2>/dev/null
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
# 1. 检查系统依赖
|
||||
# =============================================================================
|
||||
log_section "第一步: 检查系统依赖"
|
||||
|
||||
MISSING_DEPS=()
|
||||
|
||||
# 检查 Python3
|
||||
if command_exists python3; then
|
||||
PYTHON_VERSION=$(python3 --version | cut -d' ' -f2)
|
||||
log_success "Python3 已安装: $PYTHON_VERSION"
|
||||
else
|
||||
log_warn "Python3 未安装"
|
||||
MISSING_DEPS+=("python3")
|
||||
fi
|
||||
|
||||
# 检查 pip3
|
||||
if python3 -m pip --version > /dev/null 2>&1 || command_exists pip3; then
|
||||
log_success "pip3 已安装"
|
||||
else
|
||||
log_warn "pip3 未安装"
|
||||
MISSING_DEPS+=("python3-pip")
|
||||
fi
|
||||
|
||||
# 检查 ffmpeg
|
||||
if command_exists ffmpeg; then
|
||||
log_success "ffmpeg 已安装"
|
||||
else
|
||||
log_warn "ffmpeg 未安装"
|
||||
MISSING_DEPS+=("ffmpeg")
|
||||
fi
|
||||
|
||||
# 检查 tesseract
|
||||
if command_exists tesseract; then
|
||||
log_success "Tesseract OCR 已安装"
|
||||
else
|
||||
log_warn "Tesseract OCR 未安装"
|
||||
MISSING_DEPS+=("tesseract-ocr")
|
||||
fi
|
||||
|
||||
# 检查 git
|
||||
if command_exists git; then
|
||||
log_success "Git 已安装"
|
||||
else
|
||||
log_warn "Git 未安装"
|
||||
MISSING_DEPS+=("git")
|
||||
fi
|
||||
|
||||
# =============================================================================
|
||||
# 2. 自动安装系统依赖(自动模式)
|
||||
# =============================================================================
|
||||
if [ ${#MISSING_DEPS[@]} -gt 0 ]; then
|
||||
if [ "$AUTO_MODE" = true ]; then
|
||||
log_section "自动安装系统依赖"
|
||||
log_info "检测到系统: $DISTRO"
|
||||
|
||||
case "$DISTRO" in
|
||||
ubuntu|debian)
|
||||
log_info "更新包列表..."
|
||||
sudo apt-get update -qq
|
||||
|
||||
log_info "安装依赖: ${MISSING_DEPS[*]}"
|
||||
sudo apt-get install -y -qq "${MISSING_DEPS[@]}" tesseract-ocr-chi-sim tesseract-ocr-eng
|
||||
;;
|
||||
fedora|rhel|centos)
|
||||
log_info "更新包列表..."
|
||||
sudo dnf check-update -y || true
|
||||
|
||||
log_info "安装依赖: ${MISSING_DEPS[*]}"
|
||||
sudo dnf install -y "${MISSING_DEPS[@]}" tesseract-langpack-chi_sim tesseract-langpack-eng
|
||||
;;
|
||||
arch)
|
||||
log_info "安装依赖: ${MISSING_DEPS[*]}"
|
||||
sudo pacman -S --noconfirm "${MISSING_DEPS[@]}" tesseract-data-chi_sim tesseract-data-eng
|
||||
;;
|
||||
*)
|
||||
log_error "不支持的系统: $DISTRO"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
log_success "系统依赖安装完成"
|
||||
MISSING_DEPS=()
|
||||
else
|
||||
log_section "需要安装的系统依赖"
|
||||
echo ""
|
||||
echo "检测到以下依赖未安装:"
|
||||
for dep in "${MISSING_DEPS[@]}"; do
|
||||
echo " - $dep"
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "请运行以下命令安装:"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
echo -e "${YELLOW}sudo apt-get update${NC}"
|
||||
echo -e "${YELLOW}sudo apt-get install -y ${MISSING_DEPS[*]} tesseract-ocr-chi-sim tesseract-ocr-eng${NC}"
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
|
||||
# =============================================================================
|
||||
# 3. 检查 Python 依赖
|
||||
# =============================================================================
|
||||
log_section "第二步: 检查 Python 依赖"
|
||||
|
||||
PYTHON_PACKAGES=(
|
||||
"httpx:httpx"
|
||||
"aiohttp:aiohttp"
|
||||
"requests:requests"
|
||||
"Pillow:PIL"
|
||||
)
|
||||
|
||||
MISSING_PY_PKGS=()
|
||||
|
||||
for pkg_info in "${PYTHON_PACKAGES[@]}"; do
|
||||
pkg_name=$(echo "$pkg_info" | cut -d':' -f1)
|
||||
import_name=$(echo "$pkg_info" | cut -d':' -f2)
|
||||
if check_python_package "$import_name" 2>/dev/null; then
|
||||
log_success "$pkg_name 已安装"
|
||||
else
|
||||
log_warn "$pkg_name 未安装"
|
||||
MISSING_PY_PKGS+=("$pkg_name")
|
||||
fi
|
||||
done
|
||||
|
||||
# 检查特殊包
|
||||
check_python_package "playwright" 2>/dev/null && log_success "playwright 已安装" || MISSING_PY_PKGS+=("playwright")
|
||||
check_python_package "easyocr" 2>/dev/null && log_success "easyocr 已安装" || MISSING_PY_PKGS+=("easyocr")
|
||||
check_python_package "pytesseract" 2>/dev/null && log_success "pytesseract 已安装" || MISSING_PY_PKGS+=("pytesseract")
|
||||
|
||||
# =============================================================================
|
||||
# 4. 自动安装 Python 依赖(自动模式)
|
||||
# =============================================================================
|
||||
if [ ${#MISSING_PY_PKGS[@]} -gt 0 ]; then
|
||||
if [ "$AUTO_MODE" = true ]; then
|
||||
log_section "自动安装 Python 包"
|
||||
|
||||
log_info "安装: ${MISSING_PY_PKGS[*]}"
|
||||
pip3 install --user "${MISSING_PY_PKGS[@]}" -q
|
||||
|
||||
log_success "Python 包安装完成"
|
||||
|
||||
# 安装 Playwright 浏览器
|
||||
if [[ " ${MISSING_PY_PKGS[*]} " =~ " playwright " ]]; then
|
||||
log_info "安装 Playwright Chromium 浏览器..."
|
||||
python3 -m playwright install chromium
|
||||
log_success "Chromium 浏览器安装完成"
|
||||
fi
|
||||
|
||||
MISSING_PY_PKGS=()
|
||||
else
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "需要安装以下 Python 包:"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
for pkg in "${MISSING_PY_PKGS[@]}"; do
|
||||
echo " - $pkg"
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "请运行以下命令安装:"
|
||||
echo ""
|
||||
echo -e "${YELLOW}pip3 install --user ${MISSING_PY_PKGS[*]}${NC}"
|
||||
|
||||
if [[ " ${MISSING_PY_PKGS[*]} " =~ " playwright " ]]; then
|
||||
echo ""
|
||||
echo -e "${YELLOW}安装完 playwright 后,还需要运行:${NC}"
|
||||
echo -e "${YELLOW} python3 -m playwright install chromium${NC}"
|
||||
fi
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
|
||||
# =============================================================================
|
||||
# 5. 创建知识库目录结构
|
||||
# =============================================================================
|
||||
log_section "第三步: 创建知识库目录结构"
|
||||
|
||||
KB_BASE_PATH="${KB_BASE_PATH:-$DEFAULT_KB_PATH}"
|
||||
log_info "知识库路径: $KB_BASE_PATH"
|
||||
|
||||
mkdir -p "$KB_BASE_PATH"/{archive/{subscriptions,pending},metadata,content/{downloads,subtitles},analyzed}
|
||||
log_success "目录结构创建完成"
|
||||
|
||||
# =============================================================================
|
||||
# 6. 环境变量配置提示
|
||||
# =============================================================================
|
||||
log_section "第四步: 环境变量配置"
|
||||
|
||||
if [ -z "$KB_BASE_PATH_SET" ]; then
|
||||
log_warn "KB_BASE_PATH 环境变量未设置"
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "建议添加到 ~/.bashrc 或 ~/.zshrc:"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
echo -e "${YELLOW}export KB_BASE_PATH=\"$KB_BASE_PATH\"${NC}"
|
||||
echo ""
|
||||
else
|
||||
log_success "KB_BASE_PATH 已设置: $KB_BASE_PATH"
|
||||
fi
|
||||
|
||||
# 创建环境变量示例文件
|
||||
ENV_FILE="${SCRIPT_DIR}/.env.example"
|
||||
cat > "$ENV_FILE" << 'EOF'
|
||||
# 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" # 或 zhipu, minimax
|
||||
# export AI_MODEL="gpt-4"
|
||||
|
||||
# 可选: Git 配置
|
||||
# export KB_GIT_USER="Your Name"
|
||||
# export KB_GIT_EMAIL="your@email.com"
|
||||
EOF
|
||||
|
||||
log_info "环境变量示例已保存到: $ENV_FILE"
|
||||
|
||||
# =============================================================================
|
||||
# 7. 完成总结
|
||||
# =============================================================================
|
||||
log_section "安装完成"
|
||||
|
||||
echo ""
|
||||
if [ ${#MISSING_DEPS[@]} -eq 0 ] && [ ${#MISSING_PY_PKGS[@]} -eq 0 ]; then
|
||||
echo -e "${GREEN}✅ 所有依赖已安装完成!${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠️ 部分依赖需要手动安装${NC}"
|
||||
echo ""
|
||||
|
||||
if [ ${#MISSING_DEPS[@]} -gt 0 ]; then
|
||||
echo "系统依赖:"
|
||||
echo -e "${YELLOW}sudo apt-get install -y ${MISSING_DEPS[*]} tesseract-ocr-chi-sim tesseract-ocr-eng${NC}"
|
||||
fi
|
||||
|
||||
if [ ${#MISSING_PY_PKGS[@]} -gt 0 ]; then
|
||||
echo ""
|
||||
echo "Python 包:"
|
||||
echo -e "${YELLOW}pip3 install --user ${MISSING_PY_PKGS[*]}${NC}"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "使用方法:"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo " export KB_BASE_PATH=\"~/work/knowledge-base\"
|
||||
echo " python3 kb_workflow.py --check --url \"[URL]\""
|
||||
echo ""
|
||||
Reference in New Issue
Block a user