视觉功能
Claude 3系列模型具有新的视觉功能,使Claude能够理解和分析图像,为多模态交互开启了令人兴奋的可能性。
本指南介绍如何在Claude中使用图像功能,包括最佳实践、代码示例以及需要注意的限制。
如何使用视觉功能
通过以下方式使用Claude的视觉功能:
- claude.ai。像上传文件一样上传图像,或直接将图像拖放到聊天窗口中。
- Console Workbench。如果您选择支持图像的模型(仅限Claude 3模型),每个用户消息块的右上角都会出现添加图像的按钮。
- API请求。请参阅本指南中的示例。
上传前注意事项
评估图像大小
您可以在单个请求中包含多个图像(claude.ai最多5个,API请求最多100个)。Claude在制定回应时会分析所有提供的图像。这对于比较或对比图像很有帮助。
为获得最佳性能,如果图像超过大小或令牌限制,我们建议在上传前调整图像大小。如果您的图像长边超过1568像素,或图像超过约1,600个令牌,系统会首先按比例缩小图像,直到其符合大小限制。
如果您的输入图像太大需要调整大小,这将增加首个令牌响应时间的延迟,而不会给您带来任何额外的模型性能。任何边缘小于200像素的非常小的图像可能会降低性能。
以下是我们的API接受的不同纵横比的最大图像尺寸表,这些图像不会被调整大小。使用Claude 3.5 Sonnet模型时,这些图像使用约1,600个令牌,每1000张图像花费约4.80美元。
纵横比 | 图像尺寸 |
---|---|
1:1 | 1092x1092 px |
3:4 | 951x1268 px |
2:3 | 896x1344 px |
9:16 | 819x1456 px |
1:2 | 784x1568 px |
计算图像成本
您在请求中包含的每个图像都会计入您的令牌使用量。要计算大致成本,将估计的图像令牌数乘以您使用的模型的每令牌价格。
如果您的图像不需要调整大小,您可以通过以下算法估算使用的令牌数:令牌数 = (宽度px * 高度px)/750
以下是基于Claude 3.5 Sonnet每百万输入令牌3美元的价格,在我们API大小限制内不同图像尺寸的大致令牌化和成本示例:
图像尺寸 | 令牌数 | 每张图像成本 | 每1000张图像成本 |
---|---|---|---|
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提供图像时,请注意以下几点以获得最佳效果:
- 图像格式:使用支持的图像格式:JPEG、PNG、GIF或WebP。
- 图像清晰度:确保图像清晰,不要太模糊或像素化。
- 文本:如果图像包含重要文本,请确保文本清晰可读且不要太小。避免为了放大文本而裁剪掉关键的视觉上下文。
提示示例
许多适用于与Claude进行基于文本交互的提示技巧也可以应用于基于图像的提示。
这些示例展示了涉及图像的最佳实践提示结构。
关于提示示例
这些提示示例使用Anthropic Python SDK,并使用httpx
库从维基百科获取图像。您可以使用任何图像来源。
示例提示使用以下变量。
import base64
import httpx
image1_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image1_media_type = "image/jpeg"
image1_data = base64.standard_b64encode(httpx.get(image1_url).content).decode("utf-8")
image2_url = "https://upload.wikimedia.org/wikipedia/commons/b/b5/Iridescent.green.sweat.bee1.jpg"
image2_media_type = "image/jpeg"
image2_data = base64.standard_b64encode(httpx.get(image2_url).content).decode("utf-8")
在进行API请求时,您可以将图像作为base64编码的图像在image
内容块中提供给Claude。以下是一个简单的Python示例,展示如何在Messages API请求中包含base64编码的图像:
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": image1_media_type,
"data": image1_data,
},
},
{
"type": "text",
"text": "描述这张图像。"
}
],
}
],
)
print(message)
有关更多示例代码和参数详情,请参阅Messages API示例。
限制
虽然Claude的图像理解能力处于前沿水平,但仍有一些需要注意的限制:
- 人物识别:Claude不能用于识别(即命名)图像中的人物,并且会拒绝这样做。
- 准确性:在解释低质量、旋转或非常小(小于200像素)的图像时,Claude可能会产生幻觉或出错。
- 空间推理:Claude的空间推理能力有限。它可能在需要精确定位或布局的任务中遇到困难,比如读取模拟时钟面或描述棋子的确切位置。
- 计数:Claude可以给出图像中物体的大致数量,但可能并不总是精确准确,尤其是在有大量小物体时。
- AI生成的图像:Claude不知道图像是否是AI生成的,如果被问到可能会回答错误。不要依赖它来检测假图或合成图像。
- 不当内容:Claude不会处理违反我们可接受使用政策的不当或露骨图像。
- 医疗应用:虽然Claude可以分析一般的医疗图像,但它并不是为解释复杂的诊断扫描(如CT或MRI)而设计的。Claude的输出不应被视为专业医疗建议或诊断的替代品。
始终仔细审查和验证Claude的图像解释,尤其是对于高风险用例。在没有人工监督的情况下,不要将Claude用于需要完美精确度或敏感图像分析的任务。
常见问题
深入了解视觉功能
准备好开始使用Claude构建图像应用了吗?以下是一些有用的资源:
- 多模态指南:这个指南包含图像入门的提示和确保图像最高质量性能的最佳实践技巧。了解如何有效地使用图像提示Claude执行任务,如解释和分析图表或从表格中提取内容。
- API参考:访问我们的Messages API文档,包括涉及图像的API调用示例。
如果您有任何其他问题,请随时联系我们的支持团队。您也可以加入我们的开发者社区,与其他创作者联系并获得Anthropic专家的帮助。