给纯文本模型(如 DeepSeek)在 opencode 里补上"看图"能力。 | Give text-only models like DeepSeek image recognition inside opencode.
opencode-vision-router 是一个 opencode 插件,为不支持图片的纯文本模型(如 deepseek-v4-flash)添加一个 vision 工具:
- MiMo 云端识别(默认):通过 OpenCode Zen 的免费
mimo-v2.5-free识图。MiMo 支持图片、音频和视频输入。 - 本地识别(可选):通过 Ollama 调用本地视觉模型(
qwen2.5vl),图片数据不出本机,但精度通常低于云端模型。 - 模型路由:可把识别任务路由给模型列表里支持视觉的模型(如
gpt-5.6-luna),让主模型是纯文本也能用上 GPT 级别的识图。 - 自动取图:你在会话里直接贴图,工具会自动取最近一张,无需保存到磁盘、无需传路径。
当模型需要"看"图时,它会调用 vision 工具,该工具把图交给视觉后端并返回文字描述。
DeepSeek 等模型不支持图片输入,opencode 无法把图附加给它。这个插件补齐缺口:模型要"看"→ 调 vision 工具 → 视觉后端返回文字 → 主模型继续推理。
-
默认的 MiMo Free 已随 OpenCode Zen 模型列表提供;本机实测可直接调用。如果 OpenCode 提示需要凭据,再运行
/connect并选择 OpenCode Zen。 -
如果要使用本地后端,再运行 Ollama 并拉取视觉模型:
ollama pull qwen2.5vl:7b ollama create qwen2.5vl-vision -f - <<'EOF' FROM qwen2.5vl:7b PARAMETER num_ctx 32768 EOF
(
ollama create qwen2.5vl-vision需要一个Modelfile;上面这个会创建一个更大上下文的模型。)为什么要
num_ctx 32768?Ollama 的/v1/chat/completions接口会忽略请求级的options.num_ctx和keep_alive。把它写进模型的Modelfile是唯一可靠的办法。默认上下文(4096)太小,装不下聊天历史加图片,会报exceeds context错误。
在你的 opencode 配置(~/.config/opencode/opencode.json)中加入:
{
"plugin": [
"opencode-vision-router"
]
}或者从本地目录加载:
{
"plugin": [
"C:/Users/you/path/to/opencode-vision-router"
]
}然后重启 opencode。
直接贴图并提问:
看一下这张图里有什么
模型会自动调用 vision 工具。也可以传路径:
用 vision 工具看 C:\path\to\image.png
默认使用 opencode/mimo-v2.5-free。明确写 model: local 或 model: ollama 时才使用本地 Qwen;写 model: gpt-5.6-luna 等可使用其他已配置的视觉模型。
MiMo Free 是 OpenCode Zen 的限时免费模型,不保证永久免费。免费期间请求数据可能用于改进模型,不要发送敏感图片。
传 model 参数即可路由到模型列表中支持视觉的云端模型:
model 取值 |
解析为 |
|---|---|
gpt-5.6-luna / gpt-5.6 / gpt / cloud |
CLOUD_MODEL(默认 gpt-5.6-luna) |
gpt-5.6-sol |
gpt-5.6-sol |
openai/gpt-5.6-sol |
provider openai,模型 gpt-5.6-sol |
环境变量:
| 变量 | 默认值 | 说明 |
|---|---|---|
OLLAMA_BASE |
http://127.0.0.1:11434 |
本地 Ollama 地址 |
VISION_MODEL |
qwen2.5vl-vision |
本地视觉模型名 |
VISION_DEFAULT_MODEL |
opencode/mimo-v2.5-free |
未指定 model 时使用的视觉模型 |
VISION_CLOUD_MODEL |
gpt-5.6-luna |
model: gpt / cloud 路由使用的云端模型 |
VISION_CLOUD_TIMEOUT |
180000 |
云端请求或兼容模型子进程超时(毫秒) |
OPENCODE_BIN |
自动探测 | 云端路由用到的 opencode 可执行文件路径 |
OPENCODE_ZEN_BASE |
https://opencode.ai/zen |
MiMo 的 Zen API 地址 |
OPENCODE_ZEN_API_KEY |
空 | 可选的 Zen API key;MiMo Free 通常可直接调用 |
opencode/mimo-v2.5-free 直接调用 OpenCode Zen 的 OpenAI 兼容接口,不创建新的 OpenCode session。GPT 等需要 OAuth/provider 路由的模型仍通过 opencode run --pure --format json ... -m <provider>/<model> -f <image> 调用;--pure 会禁用插件以避免递归调用 vision 工具,结果从 NDJSON 输出中解析。
MIT