Изображения в Messages
Блок image и передача base64
Структура
Для локального изображения добавьте в messages[].content блок image
| Поле | Значение |
|---|---|
type | image |
source.type | base64 |
source.media_type | MIME-тип изображения |
source.data | Base64 без префикса data URI |
Пример
Подготовьте photo.png, установите anthropic, задайте ключ и ID совместимой модели в GETAPI_API_KEY и GETAPI_MODEL
python
import base64
import os
from pathlib import Path
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.getapi.ru",
api_key=os.environ["GETAPI_API_KEY"],
max_retries=0,
)
encoded = base64.b64encode(Path("photo.png").read_bytes()).decode("ascii")
response = client.messages.create(
model=os.environ["GETAPI_MODEL"],
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": encoded,
},
},
{"type": "text", "text": "Опиши изображение"},
],
}],
)
for block in response.content:
if block.type == "text":
print(block.text)Форматы файлов
MIME-тип должен соответствовать байтам файла. Не передавайте путь к локальному файлу вместо его содержимого
Поддержку URL-источников, число изображений и ограничения размера проверяйте для конкретной модели
Ответ
Читайте все текстовые блоки content, отдельно проверяя stop_reason. Ответ может содержать блоки других типов
Подробнее: Messages, анализ изображений