# 图片输入（视觉理解）

> 在 BigModel.io 的 Chat Completions 和 Messages 请求中以 URL 或 base64 发送图片给视觉模型，并排查纯文本模型导致的错误。

网页版: https://bigmodel.io/zh-cn/docs/vision · 更新于 2026-10-18

视觉模型可以在同一条消息里同时接收图片和文字。在 BigModel.io 上，按你调用的接口格式发送图片即可；分组上游使用其他协议时，网关会自动转换格式。

| 接口 | 图片内容块 |
|---|---|
| `/v1/chat/completions` | `{"type": "image_url", "image_url": {"url": "https://..." }}`，或 `data:image/...;base64,...` 形式的 URL |
| `/v1/messages` | `{"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "..."}}` |
| `/v1/responses` | `{"type": "input_image", "image_url": "..."}` |

只有支持图片输入的模型才能读取图片。在[模型目录](https://bigmodel.io/zh-cn/models)的模型页面中，查看输入类型是否包含图片，或是否有「视觉」标签。可用性取决于 Key 的分组。

## 用 Chat Completions 发送图片

使用公开 URL：

```bash [cURL]
curl https://bigmodel.io/v1/chat/completions \
  -H "Authorization: Bearer $BIGMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_VISION_MODEL_ID",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "图片里有什么？"},
        {"type": "image_url", "image_url": {"url": "https://upload.wikimedia.org/wikipedia/commons/3/3a/Cat03.jpg"}}
      ]
    }]
  }'
```

```python [Python]
import os
from openai import OpenAI

client = OpenAI(base_url="https://bigmodel.io/v1", api_key=os.environ["BIGMODEL_API_KEY"])

completion = client.chat.completions.create(
    model="YOUR_VISION_MODEL_ID",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "图片里有什么？"},
            {"type": "image_url", "image_url": {"url": "https://upload.wikimedia.org/wikipedia/commons/3/3a/Cat03.jpg"}},
        ],
    }],
)
print(completion.choices[0].message.content)
```

```js [Node.js]
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://bigmodel.io/v1", apiKey: process.env.BIGMODEL_API_KEY });

const completion = await client.chat.completions.create({
  model: "YOUR_VISION_MODEL_ID",
  messages: [{
    role: "user",
    content: [
      { type: "text", text: "图片里有什么？" },
      { type: "image_url", image_url: { url: "https://upload.wikimedia.org/wikipedia/commons/3/3a/Cat03.jpg" } },
    ],
  }],
});
console.log(completion.choices[0].message.content);
```

把 `YOUR_VISION_MODEL_ID` 换成模型目录中支持图片输入的模型 ID。

### 本地文件用 base64

图片 URL 由模型供应方自行下载，所以本机或内网地址无法访问。本地文件请改用 data URL：

```python [Python]
import base64

with open("photo.png", "rb") as f:
    b64 = base64.b64encode(f.read()).decode()

image_part = {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}}
```

```js [Node.js]
import { readFileSync } from "node:fs";

const b64 = readFileSync("photo.png").toString("base64");
const imagePart = { type: "image_url", image_url: { url: `data:image/png;base64,${b64}` } };
```

## 用 Messages API 发送图片

在支持 `/v1/messages` 的分组上，使用 Anthropic 的图片块：

```python [Python]
import base64, os
from anthropic import Anthropic

client = Anthropic(base_url="https://bigmodel.io", api_key=os.environ["BIGMODEL_API_KEY"])
b64 = base64.b64encode(open("photo.png", "rb").read()).decode()

message = client.messages.create(
    model="YOUR_VISION_MODEL_ID",
    max_tokens=512,
    messages=[{
        "role": "user",
        "content": [
            {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": b64}},
            {"type": "text", "text": "图片里有什么？"},
        ],
    }],
)
print(message.content[0].text)
```

## 图片如何转发

- **GLM、DeepSeek 分组。** 请求体原样发给供应方，`image_url` 内容块（以及 `detail` 等选项）在模型支持的范围内都能生效。
- **转换协议的分组。** Chat 的 `image_url`、Responses 的 `input_image` 和 Anthropic 的 base64 图片块之间会相互转换，所以按你调用的接口格式发送即可。

图片输入由上游供应方计数，计数会体现在[用量](https://bigmodel.io/usage)中该请求的 token 用量里，并据此计费。图片大小和数量的限制由供应方决定，超出时会返回供应方的错误。

## 验证配置

用视觉模型运行 cURL 示例，回复应描述图片内容（一只猫）。如果回复说看不到图片，或返回 400，说明该模型是纯文本模型。

## 常见问题排查

**供应方返回 400，或回复说无法查看图片。** 模型不支持图片输入，请换一个模型页面列出图片输入的模型。

**供应方无法下载图片。** URL 是私有地址、需要登录或拦截爬虫。改用 base64 data URL 发送。

**413 请求体过大。** 请求超过了网关的请求体大小限制。编码前先缩小或压缩图片；base64 会让体积增加约三分之一。供应方通常还有更小的限制。

**`/v1/messages` 返回 404。** Key 的分组只支持 Chat Completions，请在 `/v1/chat/completions` 上使用 `image_url` 格式。

**503 `api_error`「No available accounts」。** 模型 ID 错误，或 Key 的分组不提供该模型。见[模型 ID](https://bigmodel.io/zh-cn/docs/model-ids)。

## 相关文档

- [视频生成](https://bigmodel.io/zh-cn/docs/video-generation)：用文字和图片生成视频。
- [Chat Completions API 参考](https://bigmodel.io/zh-cn/docs/api-chat-completions)与 [Messages API 参考](https://bigmodel.io/zh-cn/docs/api-messages)。
- [模型目录](https://bigmodel.io/zh-cn/models)：查找视觉模型。
