新闻详情

新闻详情

首页 / 资讯中心 / 详情

ModLens 源码剖析:10 路视觉来源的 Failover 链如何做到“永不沉默“的故障转移

发布时间:2026/9/25 14:53:30来源:尧图网络
ModLens 源码剖析:10 路视觉来源的 Failover 链如何做到“永不沉默“的故障转移
ModLens 源码剖析10 路视觉来源的 Failover 链如何做到永不沉默的故障转移【免费下载链接】modlensThe first vision plugin for DeepSeek Harness, and the vision bridge for every text-only coding agent. Paste an image, get structured JSON evidence (OCR, layout, semantics). | 全网最强 DeepSeek Harness 外挂视觉插件为 DeepSeek、GLM 等纯文本模型外挂视觉能力粘贴图片即得结构化 JSON 证据OCR、版面、语义。项目地址: https://gitcode.com/gh_mirrors/mo/modlensModLens 是一个为 DeepSeek Harness 等纯文本编码代理外挂视觉能力的开源插件粘贴图片即得结构化 JSON 证据OCR 全文、版面区块、语义。它的底层维护了10 路视觉来源和一条故障转移Failover链——任何一路挂了下一路无缝顶上且每一次尝试都会留下记录。这篇文章带你读懂这条链的组装逻辑和永不沉默的实现方式不需要你写过一行 TypeScript。先看图理解整体数据流图片进入 ModLens 后先由 skill 接管再交给视觉引擎池最后产出结构化 JSON。一、10 路视觉来源6 个内置 Provider 4 个可复用 CLI所谓10 路来自 README.md 中Vision engines一节的说法六个内置 Provider加四个本机可复用的 Agent CLI。6 个内置 Provider注册表在 src/providers/index.ts每个名字含别名都映射到同一个 Provider 实现Provider需要什么单次耗时定位gemini-api免费 Gemini API key5-10 秒推荐首选openai任意 OpenAI 兼容端点5-10 秒通用水口qwen-vl、GLM、自建网关anthropicAnthropic API key5-10 秒手里已有 key 的机器antigravity-cli免费agyCLI浏览器登录15-45 秒零注册起步claude-cli已登录的 Claude Code20-45 秒复用你的 Claude 订阅kimi-cli已登录的 Kimi Code20-45 秒仅被点名时运行4 个可复用 CLI安装流程会发现机器上的 Codex、OpenCode、Pi、Grok探测逻辑见 src/auto/discover.ts逐个征求授权后对应路线由 src/auto/routes.ts 的reuseProviders构造并入同一条链。授权复用绝不插队且每次复用都会在结果里标注这次花了谁的额度——这就是永不沉默的第一层含义不静默计费。二、Failover 链是如何组装的链的排序规则写在 src/providers/availability.ts核心是两条常量本地图片链gemini-api → openai → anthropic → antigravity-cli → claude-cli 远程 URL 链gemini-api → openai → anthropic → antigravity-cli三条设计原则值得细看快车道优先。注释里写得很直白内联 API 5-10 秒出结果Agent 类要 15-45 秒所以快的在前Agent 兜底L129-L135。远程 URL 链是安全边界。远程图片只有走内联下载路径才会经过 SSRF 防护、图片魔数校验和大小上限所以 Agent 类 CLI 永远不进入远程链claude-cli只读本地文件也永远不进入远程链L131-L135。kimi-cli是点名专属。它消耗 Kimi 订阅且没有内置即同意的历史所以被放进PIN_ONLY_PROVIDERS只有你显式-p kimi-cli或写入配置才会加入本地链L144-L148。可用性过滤只把真能用的引擎放进链providerAvailableavailability.ts L108-L127在运行时过滤链条子进程类 Provider 检查二进制是否在 PATH 上含 Windows 的.exe/.cmd后缀处理见 L86-L92API 类 Provider 检查必填配置是否齐备。过滤后的链由providerChain返回若用户配置了首选 provider它会移到所在区段的最前但不会越过安全边界。复用来的引擎则由 src/analyzer.ts 的composeChain按区段合并借用来的 API key 插在内联区尾部借用来的 Agent 插在claude-cli之前——速度档位决定位置授权先后不决定优先级。三、故障转移的瞬间一次失败的完整旅程主循环在 src/analyzer.ts 的analyzeImage里一次失败要经历四道关卡才轮到下一路关卡 1先换 key再换路同一 Provider 的apiKey支持逗号分隔多 key。鉴权、限流、配额类失败会continue到下一把 keyL269-L272而网络、5xx、解析类失败跳过剩余 key直接进入下一个 Provider。这避免了一把 key 限流就整个引擎下线的浪费。关卡 2配额冷却不浪费第二次撞墙配额类失败会被 src/cooldown.ts 记录到~/.modlens/state.json无重置时间的配额失败冷却45 分钟月度预算类冷却24 小时L60-L67。冷却中的引擎不淘汰只是被reorderByCooldownanalyzer.ts L421-L455挪到自己所在区段的末尾——注意是区内末尾不是全链末尾这样远程 URL 不会因为冷却而被 Agent 抢走下载安全边界依然成立。状态文件用临时文件 原子重命名写入并发写互相合并崩溃也不会留下半个文件L137-L171。关卡 3超时兜底绝不挂死子进程由 analyzer.ts 的 runCommand 托管到点先 SIGTERM2 秒不退再 SIGKILL输出管道在进程退出后有 500 毫秒排空窗口专门防语言服务器继承管道导致永远等不到 close这类经典坑L794-L801。关卡 4结构校验像 JSON 但不合规也算失败很多 Provider 能返回 JSON但漏字段或结构不对。L585-L598 对每一路的结果做 schema 校验src/schema.ts 定义契约不合规直接判失败、移交下一路——而不是把残缺证据交给下游模型。四、永不沉默attempts 与 warnings 双账本以上每一次尝试都写入meta.attempts每一条路由通知都写入meta.warnings结构见 analyzer.ts L57-L82。一次gemini 限流 → 切到 openai 第二把 key的运行输出会是这样attempts: [ { provider: gemini-api, ok: false, error: 429 quota exceeded }, { provider: openai, keyIndex: 1, ok: true, durationSeconds: 7.2 } ], warnings: [Rotated to openai API key 2 after: openai (API key 1): 429 …]这就是永不沉默的完整定义换路了会告诉你为什么换花了谁的额度会告诉你全链失败时把每一路的报错拼成一条聚合错误抛给你L356-L360甚至还会附上这台机器上还有 Codex 等可复用视觉要不要授权的提示reuseHintL469-L508。效果层面这就是纯文本模型看懂图片的体验粘贴截图模型逐元素描述界面而背后的多路故障转移对使用者完全透明。五、延伸阅读文件看点src/providers/availability.ts失败链排序、可用性过滤的唯一事实源src/analyzer.ts主循环key 轮换、冷却重排、结构校验src/auto/discover.ts本机 5 个 Agent CLI 的只读探测src/auto/routes.ts借用引擎的路线构造与额度标注src/cooldown.ts配额冷却存储原子写、并发合并docs/output-schema.zh-CN.mdattempts/warnings输出契约docs/troubleshooting.zh-CN.md故障报错的逐条解读一句话总结ModLens 的 failover 链 按速度分区的候选集 可用性过滤 区内换 key 配额冷却 结构校验外加一本从不缺席的尝试账本。任何一路沉默了你都能从meta.attempts里找到它沉默的原因。【免费下载链接】modlensThe first vision plugin for DeepSeek Harness, and the vision bridge for every text-only coding agent. Paste an image, get structured JSON evidence (OCR, layout, semantics). | 全网最强 DeepSeek Harness 外挂视觉插件为 DeepSeek、GLM 等纯文本模型外挂视觉能力粘贴图片即得结构化 JSON 证据OCR、版面、语义。项目地址: https://gitcode.com/gh_mirrors/mo/modlens创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Atlas 300V部署YOLO全指南:昇腾推理加速卡的性能调优与避坑实践 2026/9/25 15:23:46

Atlas 300V部署YOLO全指南:昇腾推理加速卡的性能调优与避坑实践

先从最直接的问题说起:Atlas 300V 24G到底是不是一张运算加速卡?是,但它不是你想的那种加速卡。很多人一看到"24G显存"就下意识拿它跟RTX 4090、A100这些GPU比,这是个挺大的误区。Atlas 300V 24G是华为昇腾系的一款推理…

阅读更多 →
fast_align 性能优化指南:OpenMP + tcmalloc,百万句对实测快 4.8 倍 2026/9/25 15:23:39

fast_align 性能优化指南:OpenMP + tcmalloc,百万句对实测快 4.8 倍

fast_align 性能优化指南:OpenMP tcmalloc,百万句对实测快 4.8 倍 【免费下载链接】AI_NovelGenerator 使用ai生成多章节的长篇小说,自动衔接上下文、伏笔 项目地址: https://gitcode.com/GitHub_Trending/ai/AI_NovelGenerator fast…

阅读更多 →
LLM+企微量化推送系统:打通策略信号到手机最后一公里 2026/9/25 15:23:39

LLM+企微量化推送系统:打通策略信号到手机最后一公里

1. 这套系统到底在解决什么问题散户做量化,最头疼的从来不是策略本身,而是“策略跑出来了,信号怎么及时送到手上”。我身边不少朋友用 Python 写完回测,收益曲线画得漂漂亮亮,结果实盘的时候还在手动刷新行情软件、手动…

阅读更多 →
Tekton Pipeline `nop` 镜像深度解析:优雅终止 Sidecar 与 Affinity Assistant 常驻容器的内部实现 2026/9/25 15:23:39

Tekton Pipeline `nop` 镜像深度解析:优雅终止 Sidecar 与 Affinity Assistant 常驻容器的内部实现

云原生CI/CDDevOps后端 【免费下载链接】pipeline A cloud-native Pipeline resource. 项目地址: https://gitcode.com/gh_mirrors/pipelin/pipeline 点击查看 免费下载 nop 是 Tekton Pipeline 内部使用的一个“最小化空操作”镜像,承担两项关键职能&a…

阅读更多 →
Atlas 300V 24G部署YOLOv5s:从ONNX到OM的完整实践与调优 2026/9/25 15:23:33

Atlas 300V 24G部署YOLOv5s:从ONNX到OM的完整实践与调优

最近帮客户做一套流水线视觉检测方案,手里的硬件正好是 Atlas 300V 24G 这张卡,任务是把 YOLOv5s 跑通,每天稳定处理几十万张图。装卡的时候同事顺嘴问了一句:“这不就是一块运算加速卡吗?跟显卡有啥区别?”…

阅读更多 →
强制重启后报No boot device available?启动链路排查与引导修复指南 2026/9/25 15:23:13

强制重启后报No boot device available?启动链路排查与引导修复指南

1. 一次强制重启引发的"血案"现场还原shutdown -r -f这条命令,但凡在机房待过几年的运维都敲过。它的作用很直接:跳过系统对未保存数据的友好询问,强制关闭所有进程并立即重启。正常情况下,敲完回车,屏幕一黑…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉