視覺能力
Claude 3 系列模型具有新的視覺能力,可以理解和分析圖像,為多模態互動開啟了令人興奮的可能性。
本指南描述了如何在 Claude 中處理圖像,包括最佳實踐、代碼示例以及需要注意的限制。
如何使用視覺能力
您可以通過以下方式使用 Claude 的視覺能力:
- claude.ai。像上傳文件一樣上傳圖像,或直接將圖像拖放到聊天窗口中。
- Console Workbench。如果您選擇了接受圖像的模型(僅限 Claude 3 模型),每個用戶消息塊的右上角會出現一個添加圖像的按鈕。
- API 請求。請參閱本指南中的示例。
上傳前注意事項
評估圖像大小
您可以在單個請求中包含多個圖像(claude.ai 最多 5 個,API 請求最多 20 個)。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 |
計算圖像成本
您在請求中包含的每個圖像都會計入您的令牌使用量。要計算大致成本,請將圖像令牌的大致數量乘以您使用的模型的每令牌價格。
如果您的圖像不需要調整大小,您可以通過以下算法估算使用的令牌數:令牌數 = (寬度像素 * 高度像素)/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.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.b64encode(httpx.get(image2_url).content).decode("utf-8")
在進行 API 請求時,您可以將圖像作為 base64 編碼的圖像提供給 Claude,放在 image
內容塊中。以下是一個簡單的 Python 示例,展示如何在 Messages API 請求中包含 base64 編碼的圖像:
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-3-5-sonnet-20240620",
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 不能用於識別(即命名)圖像中的人物,並且會拒絕這樣做。
- 準確性:Claude 在解釋低質量、旋轉或非常小(小於 200 像素)的圖像時可能會產生幻覺或犯錯。
- 空間推理:Claude 的空間推理能力有限。它可能難以處理需要精確定位或佈局的任務,如讀取模擬時鐘面或描述棋子的確切位置。
- 計數:Claude 可以給出圖像中物體的大致數量,但可能並不總是精確,尤其是對於大量小物體。
- AI 生成的圖像:Claude 不知道一張圖像是否由 AI 生成,如果被問到可能會回答錯誤。不要依賴它來檢測假冒或合成圖像。
- 不適當內容:Claude 不會處理違反我們可接受使用政策的不適當或露骨圖像。
- 醫療應用:雖然 Claude 可以分析一般醫療圖像,但它並不是為解釋複雜的診斷掃描(如 CT 或 MRI)而設計的。Claude 的輸出不應被視為專業醫療建議或診斷的替代品。
始終仔細審查和驗證 Claude 的圖像解釋,特別是對於高風險用例。不要在沒有人工監督的情況下使用 Claude 進行需要完美精確度或敏感圖像分析的任務。
常見問題
深入了解視覺能力
準備開始使用 Claude 構建圖像相關應用了嗎?以下是一些有用的資源:
- 多模態指南:這個指南包含圖像入門的提示和最佳實踐技巧,以確保使用圖像時獲得最高質量的性能。了解如何有效地使用圖像提示 Claude 執行諸如解釋和分析圖表或從表格中提取內容等任務。
- API 參考:訪問我們的 Messages API 文檔,包括涉及圖像的 API 調用示例。
如果您還有其他問題,請隨時聯繫我們的支持團隊。您也可以加入我們的開發者社區,與其他創作者聯繫並獲得 Anthropic 專家的幫助。