视觉与图像输入
向多模态模型发送图像——编码、大小限制和费用。
Claude 和 Gemini 模型支持同时接收图像和文本。图像以内容块的形式包含在普通消息中。
Base64 图像
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [{
"role": "user",
"content": [
{"type": "image", "source": {
"type": "base64",
"media_type": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUg..."
}},
{"type": "text", "text": "What does this chart show?"}
]
}]
}
Python
import base64, anthropic
img = base64.standard_b64encode(open(class="s">"chart.png", class="s">"rb").read()).decode()
client = anthropic.Anthropic(api_key=class="s">"sk-your-key", base_url=class="s">"https://aiprimetech.io")
msg = client.messages.create(
model=class="s">"claude-sonnet-4-6",
max_tokens=1024,
messages=[{class="s">"role": class="s">"user", class="s">"content": [
{class="s">"type": class="s">"image", class="s">"source": {class="s">"type": class="s">"base64",
class="s">"media_type": class="s">"image/png", class="s">"data": img}},
{class="s">"type": class="s">"text", class="s">"text": class="s">"What does this chart show?"},
]}],
)
print(msg.content[0].text)
实际限制
| 限制项 | 建议 |
|---|---|
| 格式 | PNG、JPEG、GIF 和 WebP |
| 分辨率 | 尺寸过大的图像会在上游缩小。发送前将图像长边调整为约 1500px,可以节省 token,且不会损失质量。 |
| 成本 | 图像按输入 token 计费,费用大致与面积成正比。一张整页截图的成本可能高于一页文本。 |
| 多张图像 | 每条消息允许包含多个图像块;每个图像块都会计费。 |
在智能体循环中,图像与其他内容一样,每轮都会随历史记录重新发送。图像描述完成后,应将其从对话记录中移除,否则同一张截图会被反复计费。