dsh-forage 采源:把视频采成可检索的本地知识(DSH 插件)

前言

在 DSH 里做智能体时,常见做法是把网页或文档丢进上下文,但技术类内容大量落在 B 站等视频里:口播细节、演示步骤、幻灯片上的公式往往不在简介里。整段下载再人工整理,成本高;只记链接又几乎无法检索。下面介绍社区插件 dsh-forage(采源 Forage):在 DSH 侧注册一组工具,由 Python 引擎负责快扫元数据、深采转写与可选抽帧 OCR,并把摘要写回本地 SQLite,供后续模糊检索。

这是什么

dsh-forage 由维护者 a3079566007-pixel 发布,在 DSH 插件目录分类为「记忆」,当前 GitHub 星标为 0。仓库自述为「DSH 插件(宿主层)+ Python 引擎(转写 / OCR / SQLite)」的合集:Node 侧是薄壳,通过 spawn 调用 engine/harvest.py --json <cmd> 完成实际工作。命名上,中文 采源 指采集信源、留存知识;英文 Forage 强调按偏好挑选,而不是无差别抓取整站。

许可证为 MIT(README 标注 © 2026 mikejikichen);npm 包版本为 0.1.0。

架构概览

DSH 插件(Node,薄壳)
  ├─ Config:pythonPath / scriptPath / whisperModel / defaultFrames / timeout
  └─ 7 个 defineTool ──spawn──> engine/harvest.py --json <cmd>
                                   ├─ B 站 WBI 搜索(requests)
                                   ├─ yt-dlp 下载 → faster-whisper 转写
                                   ├─ ffmpeg 抽帧(场景检测 + 哈希去重)→ rapidocr
                                   └─ SQLite(trigram FTS + 二元组模糊)

依赖包括 Python 3.12、yt-dlp、ffmpeg、faster-whisper、rapidocr_onnxruntime。国内拉模型时,引擎已内置 HF_ENDPOINT=https://hf-mirror.com 与 HF_HUB_DISABLE_XET=1 的说明。

核心功能

插件向 DSH 暴露 7 个工具,对应从「定方向」到「查库」的流水线:

工具 作用
forage_plan 把方向性需求展开成检索计划(含时长/排除词过滤)
forage_search B 站快扫元数据(WBI 签名,不下载),按播放/点赞/新鲜度/兴趣评分
forage_ingest 后台深采:音频转写(faster-whisper)+ 可选抽帧 OCR
forage_digest 取材料包(元数据 + 转写 + OCR),交给模型写摘要
forage_note 写回摘要与标签,进入检索库
forage_kb 本地模糊检索(FTS + 中文二元组兜底)
forage_status 库状态与进行中的采集

典型顺序可以是:先用 forage_plan / forage_search 缩小候选,再 forage_ingest 深采,经 forage_digest 与 forage_note 沉淀摘要,最后用 forage_kb 检索;进度与异常可用 forage_status 或 CLI harvest.py --json status 查看。更细的参数说明在仓库 docs/SKILL.md(面向模型使用)。

安装与启用

README 给出的安装分两步:先把 Python 引擎放到用户目录,再在 DSH 的 profile 里本地 link 插件。官方示例为 PowerShell(路径按 Windows 用户目录写法):

# 1) 引擎:放到 ~/.dsh/harvest/
mkdir "$env:USERPROFILE\.dsh\harvest"
copy engine\harvest.py "$env:USERPROFILE\.dsh\harvest\harvest.py"
copy engine\profile.example.json "$env:USERPROFILE\.dsh\harvest\profile.json"

# 2) 插件:本地 link 安装
#    profile 的 package.json 里加依赖与 bundle,然后 pnpm install

Linux /macOS 用户需把上述路径换成对应的 ~/.dsh/harvest/,拷贝仓库中的 engine/harvest.py 与 engine/profile.example.json(后者改名为 profile.json)。插件侧需在 profile 的 package.json 中声明对本包的依赖及 dsh.bundle.patch(见仓库 package.json 与 cordis.patch.yml),再执行 pnpm install。资料中未给出 dsh plugin add github:... 一类一键命令,请勿自行拼接。

配置项

宿主层可通过配置指向引擎与模型行为(默认值以 README 为准):

字段 默认 说明
pythonPath python Python 可执行文件
scriptPath ~/.dsh/harvest/harvest.py 引擎路径
whisperModel small tiny 对中文技术词误差大
defaultFrames false 默认是否抽帧 OCR
timeoutMs 60000 单次工具超时
ingestTimeoutMs 1800000 预留

peer 依赖包括 @deepseek-ai/cordis ^4.0.2、@deepseek-ai/dsh-tools >=0.2.0-rc.1、 @deepseek-ai/schemastery ^3.18.2。

适用场景与限制

适合:需要从 B 站(及 yt-dlp 可解析的链接,如抖音链接导入)把视频变成可检索文本与摘要、并在本机 SQLite 里模糊搜索的 DSH 工作流。

限制与注意(均来自 README):

  • 抖音仅支持链接导入(yt-dlp);搜索侧 README 提到使用 whale_dive_*(具体以引擎文档为准)。
  • OCR 对竖屏低码率视频不准,横屏 1080p 较可用;关键帧原图会保留,可交给视觉模型精读。
  • ASR 对专有名词易错(示例:LoRA→RORA),摘要阶段需结合上下文校正。
  • 长任务以 detached 进程运行,异常状态会落在 failed,可用 harvest.py --json status 排查。

DSH 插件在 当前 dsh 进程权限 下运行,会调用 Python、下载与写本地库。安装前请阅读仓库源码与 MIT 许可证,确认网络下载与磁盘路径可接受。DeepSeek Harness 的「一切皆插件」理念下,社区目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;本文仅介绍社区维护的 dsh-forage。

链接

经过上面的步骤,你可以在 DSH 里用采源 Forage 把视频流里的有效片段落成本地知识库,而不是只留一堆打不开的链接。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye