From 9dec66d2bf1403917a31cc10196e575d1960f8f8 Mon Sep 17 00:00:00 2001 From: starmen1265 Date: Thu, 12 Feb 2026 00:22:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8A=80=E8=83=BD=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- USER.md | 11 +- memory/2026-02-11.md | 63 ++++++ skills/kb-workflow/.env.example | 14 ++ skills/kb-workflow/README.md | 247 +++++++++++++++++++++++ skills/kb-workflow/SKILL.md | 53 ++--- skills/kb-workflow/install-env.sh | 321 ++++++++++++++++++++++++++++++ 6 files changed, 677 insertions(+), 32 deletions(-) create mode 100644 memory/2026-02-11.md create mode 100644 skills/kb-workflow/.env.example create mode 100644 skills/kb-workflow/README.md create mode 100755 skills/kb-workflow/install-env.sh diff --git a/USER.md b/USER.md index 03f6f64..6ee049c 100644 --- a/USER.md +++ b/USER.md @@ -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` 更多信息有待了解。 diff --git a/memory/2026-02-11.md b/memory/2026-02-11.md new file mode 100644 index 0000000..76347aa --- /dev/null +++ b/memory/2026-02-11.md @@ -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 环境变量示例 diff --git a/skills/kb-workflow/.env.example b/skills/kb-workflow/.env.example new file mode 100644 index 0000000..dc8e79b --- /dev/null +++ b/skills/kb-workflow/.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" diff --git a/skills/kb-workflow/README.md b/skills/kb-workflow/README.md new file mode 100644 index 0000000..14d720b --- /dev/null +++ b/skills/kb-workflow/README.md @@ -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 +``` + +### 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 diff --git a/skills/kb-workflow/SKILL.md b/skills/kb-workflow/SKILL.md index 1de6ccd..a62dfc8 100644 --- a/skills/kb-workflow/SKILL.md +++ b/skills/kb-workflow/SKILL.md @@ -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 完成 diff --git a/skills/kb-workflow/install-env.sh b/skills/kb-workflow/install-env.sh new file mode 100755 index 0000000..39d0f3e --- /dev/null +++ b/skills/kb-workflow/install-env.sh @@ -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 ""