---
summary: "通过本地或托管的 Ollama 视觉模型路由图像理解"
read_when:
- "您希望通过 Ollama 视觉模型进行图像描述"
- "您正在为 Ollama 配置图像模型默认值"
title: "Ollama视觉及图像描述"
sidebarTitle: "视觉"
---
## 视觉与图像描述
捆绑的 Ollama 插件将 Ollama 注册为具备图像能力的媒体理解提供方,因此 OpenClaw 可以将显式的图像描述请求以及已配置的图像模型默认值,通过本地或托管的 Ollama 视觉模型进行路由。
```bash
ollama pull qwen2.5vl:7b
export OLLAMA_API_KEY="ollama-local"
openclaw infer image describe --file ./photo.jpg --model ollama/qwen2.5vl:7b --json
```
`--model` 必须是完整的 `` 参考;设置后,`infer image describe` 首先尝试该模型,而不是跳过已经支持原生视觉的模型的描述。如果呼叫失败,OpenClaw可以通过`agents.defaults.imageModel.fallbacks`继续; file/URL 准备错误在尝试回退之前失败。使用`infer image describe`进行OpenClaw的图像理解流程并配置`imageModel`;使用 `infer model run --file` 进行带有自定义提示的原始多模式检查。
要让 Ollama 成为入站媒体的默认图像理解提供方:
```json5
{
agents: {
defaults: {
imageModel: {
primary: "ollama/qwen2.5vl:7b",
},
},
},
}
```
更喜欢完整的 `ollama/` 参考号。仅当该确切模型在 `models.providers.ollama.models` 和 `input: ["text", "image"]` 下列出并且没有其他配置的图像提供程序公开相同的裸 ID 时,裸 `imageModel` 引用(例如 `qwen2.5vl:7b`)才会标准化为 `ollama/qwen2.5vl:7b`;否则显式使用提供者前缀。
较慢的本地视觉模型可能需要比云模型更长的图像理解超时时间, 并且如果 Ollama 尝试分配模型完整标称的视觉上下文,在受限硬件上可能会崩溃。请设置能力超时并限制 `num_ctx`:
```json5
{
models: {
providers: {
ollama: {
models: [
{
id: "qwen2.5vl:7b",
name: "qwen2.5vl:7b",
input: ["text", "image"],
params: { num_ctx: 2048, keep_alive: "1m" },
},
],
},
},
},
tools: {
media: {
models: [
{
provider: "ollama",
model: "qwen2.5vl:7b",
timeoutSeconds: 300,
capabilities: ["image"],
},
],
image: {
timeoutSeconds: 180,
},
},
},
}
```
此超时适用于入站图像理解和显式 `view_image` 工具。 `models.providers.ollama.timeoutSeconds` 仍然控制底层 Ollama HTTP 请求防护以进行正常模型调用。
实时验证:
```bash
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA_IMAGE=1 \
pnpm test:live -- src/agents/tools/image-tool.ollama.live.test.ts
```
如果你手动定义 `models.providers.ollama.models`,请显式标记视觉模型:
```json5
{
id: "qwen2.5vl:7b",
name: "qwen2.5vl:7b",
input: ["text", "image"],
contextWindow: 128000,
maxTokens: 8192,
}
```
OpenClaw 会拒绝对未标记为具备图像能力的模型发起图像描述请求。 在隐式发现的情况下,这一能力来自 `/api/show` 的视觉能力。