e98f90e1641398a34b5ee18426a84a5c8f85b6eb
逐类人工审查真实任务 run_ac7f480a3ccb(1666 条 OCR 输出)后确认 LLM 五类分类层性价比为负: - 规则层删除 782 条(47%),几乎全对(---/HTML/___/编号等); - LLM 层额外删除 131 条,其中 **73 条(56%)是真实对话**, 如"好好教育她一番吧""腿不要合上""这家医院 为VIP患者提供了特殊服务"; - 它真正抓住而规则层抓不到的仅 58 条且大半可正则化; - repeat 类别 67 条判定、0 条删除,形同虚设; - 长文本保护/上下文净化/去重/429 退避/断点存档等机制全是在给 不稳定的分类器兜底,误删量超过净收益。 改动: 1. 规则层下沉原 LLM 层抓到的确定性模式:水印编号(SPHO-1/PHO一号馆)、 日期与数值(2011-11-27/4.0)、VLM 提示回显(no text is visible)、 角色标注((出演))。刻意不删(北冈果林)这类演员名括号——无法与 (小声)不要啊 可靠区分,且其本身是无害字幕文本; 2. 新增 use_llm 参数并**默认关闭** LLM 分类层,需要旧行为时显式开启; ocr-subtitle 工作流显式声明 use_llm=0 并附 _note_use_llm 理由。 真实数据实测:保留 863 条(旧 588)、误删真对话 0 条(旧 73)、 LLM 调用 0 次(旧 680 次/52 秒)。
VRSub
为视频生成 VR 双眼字幕的单体应用:API、调度器与全部节点在同一进程内运行, 单仓库、单环境、单命令启动。由原分布式 WOV 多仓库合并而来,详细约定见 AGENTS.md。
快速开始
uv sync
uv run uvicorn wov_app.main:app --reload
访问 http://127.0.0.1:8000/ 上传视频,自动执行"提音 → 转写 → 翻译 → ASS"。
- 模型权重本地优先:把 whisper 模型放在
model/faster-whisper-large-v3(含model.bin)即可完全离线运行。 - LLM 翻译默认使用 SiliconFlow(
Qwen/Qwen3.6-35B-A3B),API Key 放在 gitignored 的.env(LLM_API_KEY=sk-...),启动时自动加载;也可用LLM_API_BASE/LLM_MODEL环境变量覆盖。
目录
| 路径 | 说明 |
|---|---|
src/wov_sdk/ |
协议数据模型(与分布式版兼容) |
src/wov_app/ |
应用层:API、注册表、调度器、数据库 |
nodes/ |
进程内节点实现(echo/ffmpeg/whisper/llm/ass) |
manifests/ |
节点清单 JSON |
web/ |
静态前端 |
model/ |
本地模型权重(gitignored) |
data/ |
SQLite 与存储(gitignored) |
tests/ |
测试(100% 行覆盖率) |
测试
uv run pytest
与分布式版的关系
- 协议数据模型、工作流 DAG 数据化、调度拓扑执行保持不变。
- 已移除:子进程节点、节点 HTTP 协议、节点注册/实例管理、TTL 回收。
- 未来回退分布式时,只需为
registry.invoke重新加上进程边界。
Languages
Python
92.6%
JavaScript
5%
HTML
1.4%
CSS
1%