Repository navigation
1.3.3 处理 DeepSeek 网页的限流:被限流时任务自动等待,过后接着发,不再失败;对话太长时自动换新对话。
修复:
- 查服务器记录发现,限流是按账号算的,不是按对话:两个对话在同一时间停住,一个到第 6 轮,一个才到第 2 轮,新开的对话也传不上图。四个任务同时跑时,15 分钟发了 21 条就被限,14 分钟后还没恢复。以前程序认不出限流(附件上写的是 Server busy,发送时页面上什么也不显示),每次白等 3 到 5 分钟再重试,最后任务失败,排队的下一个任务接着失败。现在认得出来:所有 DeepSeek 窗口一起暂停,先等 5 分钟,还不行就加倍,最长 30 分钟,等多久都不算失败,过后从当前这条消息接着发。
- 附件显示 Server busy 时,直接点这张图上的重试,不再删掉重传。页面自己留着文件,图其实已经传上去、只是查状态时碰上繁忙的,重试只要重新查一下。试 3 次还是 Server busy,就按限流等,过后接着发,也不算失败。
- 图传不上去时,整条消息不发。以前同一张图失败 3 次就不带它发出去,而导入时会把发过却没链接的图当成用不上,图都没传上去的话,这个视频的画面集合可能被清空。现在 Server busy 以外的错误重试后还是传不上,任务就报错停下,什么也不导入。
- 发出去之后核对内容:是否接在了别的对话后面、提示词全不全、图带够了没有,不对就重发。以前有过新任务的第 1 轮接到上一个失败任务的对话里,只发出去一个 .txt,提示词和图都没带;也有过消息根本没到服务器,却把页面上迟到的旧回答读成新回答。现在回答要等服务器确实接了这条消息才算数,任务失败后它的窗口也会关掉,不留给下一个任务。
改动:
- 所有 DeepSeek 窗口共用发送节奏,两条消息至少隔 1 分钟。这个间隔是按上面的数据估的,DeepSeek 没有公布限流规则。
- 一个对话里新增的内容超过约 10 万字(谈话类视频大约 4 轮),下一轮自动换新对话。只带这一轮需要的:规则、字幕、在用的那套画面(前几轮已经筛过,所以能单张发,比总图清楚)、这一轮的候选图、要求和上一稿,不带之前的回答和思考过程。这一条是为了不让对话越来越长,不解决限流,限流按账号算,换对话躲不开。
代码改动:
- 桌面程序:
deepseek.js监听页面的请求,从中认出限流、核对发出的消息;各窗口共用发送间隔和限流等待;上传失败时点图片卡片重试,有文件传不上去时不再发送;失败任务的窗口会关闭。chat-rounds.js统计对话长度,超过上限时换新对话。 - 命令行:
pack --follow-up --new-chat --folder生成给新对话用的下一轮材料(packing.py)。 - 测试:假页面改成真的发请求,新增限流等待、错发重发、迟到的旧回答、换新对话、图传不上去不发送的测试。
- 项目规则重新整理:产品规则移到
docs/product-rules.md,工作规则移到docs/working-rules.md,不再使用AGENTS.md。
从 0.6.2 及以后的版本更新,只下载变化的部分。设置和工作区都保留。
-
桌面程序:下载
Video-Agent-Setup-1.3.3.exe,直接运行即可覆盖旧版本。安装包没有代码签名,Windows SmartScreen 可能提示“未知发布者”,选“仍要运行”即可。 -
命令行工具(需要 uv,不需要 git):
uv tool install --force https://github.com/edsfod/video-agent/releases/download/v1.3.3/video_agent-1.3.3-py3-none-any.whl
用 uv 安装时,FFmpeg 由 imageio-ffmpeg 从 PyPI 提供;电脑上已有的 ffmpeg 会优先使用。
compress需要带 SVT-AV1 的 FFmpeg。
本页附有安装包里 LGPL FFmpeg 的完整源码(ffmpeg-9.0.2.tar.xz、dav1d-1.5.4.tar.xz、SVT-AV1-v4.2.0.tar.gz)和编译说明(FFmpeg-BUILD.txt),与 0.9.0 相同。