--- name: kb-workflow description: 当收到"添加到知识库 + 链接" 或"保存到知识库 + 链接"时使用 --- # KB Workflow ## 什么时候使用 当用户发送包含以下模式的消息时,此技能自动触发: | 触发词 | 行为 | 示例 | |--------|------|------| | `添加到知识库` + 链接 | 添加到知识库并处理 | "添加到知识库 https://www.bilibili.com/video/BVxxx" | | `保存到知识库` + 链接 | 同上 | "保存到知识库 https://www.bilibili.com/video/BVxxx" | ## 环境变量 ### 执行前必须检查 在执行 workflow 之前,必须检查环境变量是否已经设置。 **必须的环境变量**(缺失则报错退出): 配置方式:将变量写入 `~/.kb_env` 文件: ```bash export AI_API_KEY="your-api-key" export AI_PROVIDER="zhipu" export AI_MODEL="glm-5" export AI_BASE_URL="https://open.bigmodel.cn/api/coding/paas/v4" ``` **可选的环境变量**: | 变量名 | 用途 | 示例 | |--------|------|------| | `BILIBILI_COOKIE` | 下载会员视频 | `SESSDATA=xxx; bili_jct=xxx` | | `KB_GIT_USER` | Git提交用户名 | `Your Name` | | `KB_GIT_EMAIL` | Git提交邮箱 | `your@email.com` | | `KB_ARCHIVE_PATH` | 归档目录路径 | `~/work/zq/30.资源/AI分析` | | `KB_GIT_ROOT` | Git仓库根目录 | `~/work/zq` | | `HF_TOKEN` | HuggingFace Token(说话者分离) | `hf_xxx` | ### 检查命令 ```bash # 从 ~/.kb_env 加载环境变量 if [ -f ~/.kb_env ]; then source ~/.kb_env fi # 检查必须的环境变量 if [ -z "$AI_API_KEY" ] || [ -z "$AI_PROVIDER" ] || [ -z "$AI_MODEL" ] || [ -z "$AI_BASE_URL" ]; then echo "❌ 错误:必须的环境变量未设置" echo "请配置 ~/.kb_env 文件" exit 1 fi echo "✅ 环境变量检查通过" ``` ## Workflow 执行方式 ### 一键处理(推荐) 使用管道 CLI 一键完成所有步骤: ```bash python3 kb-workflow/kb_workflow.py process "https://www.bilibili.com/video/BVxxx" ``` **该命令自动执行:** 1. URL 解析 → 识别平台和内容 ID 2. 元数据提取 → 获取标题、作者等信息 3. 内容下载 → 字幕/视频/文章内容 4. 语音识别 → Whisper/FunASR(如需要) 5. 深度分析 → AI 生成分析报告 6. 归档 → 移动到归档目录 **命令参数:** ```bash # 指定输出目录 python3 kb-workflow/kb_workflow.py process "https://..." -o /path/to/output # 强制重新执行(忽略已完成状态) python3 kb-workflow/kb_workflow.py process "https://..." --no-skip ``` ## 支持的平台和内容类型 | 平台 | 内容类型 | URL 示例 | |------|----------|----------| | B站 | 视频 | `bilibili.com/video/BVxxx` | | B站 | 专栏 | `bilibili.com/read/cvxxx` | | 知乎 | 问答 | `zhihu.com/question/xxx` | | 知乎 | 专栏 | `zhuanlan.zhihu.com/p/xxx` | | 知乎 | 视频 | `zhihu.com/zvideo/xxx` | ## 处理流程 ``` ┌─────────────────────────────────────────────────────────────┐ │ kb-workflow process │ ├─────────────────────────────────────────────────────────────┤ │ 1. Parse → LinkParser 解析 URL │ │ 2. Download → 平台适配器获取元数据和内容 │ │ 3. ASR → 语音识别(视频无字幕时) │ │ 4. Analyze → DeepAnalyzer 生成分析报告 │ │ 5. Archive → 归档到 KB_ARCHIVE_PATH │ └─────────────────────────────────────────────────────────────┘ ``` ## 目录结构 **工作目录(默认 ~/work/knowledge-base/):** ``` ~/work/knowledge-base/ ├── pending/ # 待处理链接 ├── metadata/ # 元数据 JSON ├── content/ # 内容文件 │ └── downloads/ # 下载的视频/字幕 └── analyzed/ # 分析报告 ``` **归档目录(默认 ~/work/zq/30.资源/AI分析/):** ``` ~/work/zq/30.资源/AI分析/ └── YYYY-MM-DD/ └── {platform}_{id}.md # 深度分析报告 ``` ## ⚠️ 严格失败处理原则 > **深度分析步骤必须成功,否则整个流程失败** 1. **深度分析不可跳过**:AI 分析是必须成功执行的步骤 2. **失败即终止**:如果分析返回失败,必须立即停止并汇报 3. **禁止降级处理**:不能使用预设模板或简单摘要来"假装成功" 4. **每次执行都要使用 AI**:必须有真实的 AI API 调用记录 ## 示例 ``` 用户: 添加到知识库 https://www.bilibili.com/video/BV1xx Claude: ✅ 环境变量检查通过 ◆ 处理中... → 解析 URL: bilibili 视频 BV1xx → 获取元数据... → 下载字幕... → 深度分析... ✅ 完成! 标题: 【教程】如何使用 Python 进行数据分析 处理阶段: 全部完成 最终文件: ~/work/zq/30.资源/AI分析/2026-03-15/bilibili_BV1xx.md ``` ## 技术架构 ``` kb-workflow/kb_workflow.py (CLI) └── kb_pipeline/ (核心管道包) ├── pipeline.py — Pipeline 编排引擎 ├── processors/ — 处理器实现 │ ├── parse.py — URL 解析 │ ├── download.py — 内容下载 │ ├── asr.py — 语音识别 │ └── analyze.py — 深度分析 └── schemas.py — 数据模型 ```