本指南介绍如何在 Claude 中使用图像,包括最佳实践、代码示例和需要注意的限制。
通过以下方式使用 Claude 的视觉功能:
您可以在单个请求中包含多个图像(claude.ai 最多 20 个,API 请求最多 100 个)。Claude 在制定响应时将分析所有提供的图像。这对于比较或对比图像很有帮助。
如果您提交的图像大于 8000x8000 像素,将被拒绝。如果您在一个 API 请求中提交超过 20 个图像,此限制为 2000x2000 像素。
虽然 API 支持每个请求 100 个图像,但标准端点的请求大小限制为 32MB。
为了获得最佳性能,我们建议在上传前调整过大的图像大小。如果您的图像长边超过 1568 像素,或您的图像超过约 1,600 个令牌,它将首先按比例缩小,保持宽高比,直到符合大小限制。
如果您的输入图像过大需要调整大小,这将增加首个令牌的时间的延迟,而不会为您提供任何额外的模型性能。任何边小于 200 像素的非常小的图像可能会降低性能。
为了改进首个令牌的时间,我们建议 将图像调整为不超过 1.15 兆像素(且在两个维度上都不超过 1568 像素)。
以下是我们的 API 接受的最大图像大小表,这些图像不会因常见宽高比而被调整大小。使用 Claude Sonnet 3.7 模型,这些图像使用约 1,600 个令牌,每 1K 张图像约花费 $4.80。
| 宽高比 | 图像大小 |
|---|---|
| 1 | 1092x1092 px |
| 3 | 951x1268 px |
| 2 | 896x1344 px |
| 9 | 819x1456 px |
| 1 | 784x1568 px |
您在请求中包含的每个图像都计入您的令牌使用量。要计算近似成本,请将近似图像令牌数乘以您使用的模型的每令牌价格。
如果您的图像不需要调整大小,您可以通过此算法估计使用的令牌数:tokens = (width px * height px)/750
以下是基于 Claude Sonnet 3.7 每百万输入令牌 $3 的价格,在我们 API 的大小限制内不同图像大小的近似令牌化和成本示例:
| 图像大小 | 令牌数 | 每张图像成本 | 每 1K 张图像成本 |
|---|---|---|---|
| 200x200 px(0.04 兆像素) | ~54 | ~$0.00016 | ~$0.16 |
| 1000x1000 px(1 兆像素) | ~1334 | ~$0.004 | ~$4.00 |
| 1092x1092 px(1.19 兆像素) | ~1590 | ~$0.0048 | ~$4.80 |
向 Claude 提供图像时,请记住以下几点以获得最佳结果:
许多适用于与 Claude 进行基于文本交互的提示技术也可以应用于基于图像的提示。
这些示例演示了涉及图像的最佳实践提示结构。
就像文档查询放置一样,Claude 在图像位于文本之前时效果最好。 放置在文本之后或与文本交错的图像仍然会表现良好,但如果您的用例允许, 我们建议采用先图像后文本的结构。
以下示例演示了如何使用各种编程语言和方法使用 Claude 的视觉功能。您可以通过三种方式向 Claude 提供图像:
image 内容块中的 base64 编码图像base64 示例提示使用这些变量:
以下是如何使用 base64 编码的图像和 URL 引用在消息 API 请求中包含图像的示例:
对于您将重复使用的图像或想要避免编码开销的情况,请使用文件 API:
请参阅消息 API 示例了解更多示例代码和参数详情。
虽然 Claude 的图像理解功能是最先进的,但需要注意一些限制:
始终仔细审查和验证 Claude 的图像解释,特别是对于高风险用例。不要在没有人工监督的情况下使用 Claude 执行需要完美精度或敏感图像分析的任务。
准备好开始使用 Claude 构建图像了吗?以下是一些有用的资源:
如果您有任何其他问题,请随时联系我们的支持团队。您也可以加入我们的开发者社区与其他创作者联系并获得 Anthropic 专家的帮助。
# 对于基于 URL 的图像,您可以直接在 JSON 请求中使用 URL
# 对于 base64 编码的图像,您需要先对图像进行编码
# 如何在 bash 中将图像编码为 base64 的示例:
BASE64_IMAGE_DATA=$(curl -s "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg" | base64)
# 编码的数据现在可以在您的 API 调用中使用curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/jpeg",
"data": "'"$BASE64_IMAGE_DATA"'"
}
},
{
"type": "text",
"text": "Describe this image."
}
]
}
]
}'curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "url",
"url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
}
},
{
"type": "text",
"text": "Describe this image."
}
]
}
]
}'# 首先,将您的图像上传到文件 API
curl -X POST https://api.anthropic.com/v1/files \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14" \
-F "[email protected]"
# 然后在您的消息中使用返回的 file_id
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_abc123"
}
},
{
"type": "text",
"text": "Describe this image."
}
]
}
]
}'