GETAPI
СвязатьсяВойти
GETAPI/Документация/Мультимодальный ввод в GenerateContent

Мультимодальный ввод в GenerateContent

Изображения и другие типы данных в parts

Изображения

Передайте изображение частью inlineData внутри contents[].parts

ПолеТипНазначение
inlineData.mimeTypestringMIME-тип, например image/png
inlineData.datastringBase64 без префикса data URI
textstringВопрос в отдельной части сообщения

Пример

Подготовьте photo.png, задайте GETAPI_API_KEY и GETAPI_MODEL для модели, которая поддерживает изображения через GenerateContent

python
import base64
import json
import os
from pathlib import Path
from urllib.parse import quote
from urllib.request import Request, urlopen

encoded = base64.b64encode(Path("photo.png").read_bytes()).decode("ascii")
model = quote(os.environ["GETAPI_MODEL"], safe="")
body = {
    "contents": [{
        "role": "user",
        "parts": [
            {"inlineData": {"mimeType": "image/png", "data": encoded}},
            {"text": "Опиши изображение"},
        ],
    }]
}

request = Request(
    f"https://api.getapi.ru/v1beta/models/{model}:generateContent",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "x-goog-api-key": os.environ["GETAPI_API_KEY"],
        "Content-Type": "application/json",
    },
)
with urlopen(request, timeout=120) as response:
    result = json.load(response)

for candidate in result.get("candidates", []):
    for part in candidate.get("content", {}).get("parts", []):
        if "text" in part and not part.get("thought"):
            print(part["text"])

Аудио и видео

Поддержка других MIME-типов определяется моделью и маршрутом. Не отправляйте аудио или видео по аналогии с изображением без проверки доступных способов загрузки

Возможность модели понимать видео не подтверждает наличие Files API или поддержку ссылки на файл, загруженный в другой сервис

Для длинных файлов уточните поддерживаемый метод передачи и ограничения. Base64 увеличивает размер тела запроса

Обработка результата

Текст, причины завершения и метаданные читаются по правилам GenerateContent. Отсутствие текстового кандидата требует отдельной обработки

Другие способы передачи изображений: общий обзор

Назад
← Изображения в Messages
Далее
Модели Google →