Разрешение СМИ

Параметр media_resolution управляет обработкой входных медиафайлов API Gemini, таких как изображения, видео и PDF-документы, определяя максимальное количество токенов, выделяемых для медиавходов. Это позволяет сбалансировать качество ответа с задержкой и стоимостью. Различные настройки, значения по умолчанию и их соответствие токенам см. в разделе « Количество токенов» .

Разрешение мультимедиа можно настроить двумя способами:

Разрешение медиафайлов по отдельным частям (только для Gemini 3)

Gemini 3 позволяет задавать разрешение для отдельных медиаобъектов в вашем запросе, обеспечивая тонкую оптимизацию использования токенов. Вы можете смешивать уровни разрешения в одном запросе. Например, использовать высокое разрешение для сложной диаграммы и низкое разрешение для простого контекстного изображения. Этот параметр переопределяет любую глобальную конфигурацию для конкретной части. Настройки по умолчанию см. в разделе «Количество токенов» .

Python

from google import genai
from google.genai import types

# The media_resolution parameter for parts is currently only available in the v1alpha API version. (experimental)
client = genai.Client(
  http_options={
      'api_version': 'v1alpha',
  }
)

# Replace with your image data
with open('path/to/image1.jpg', 'rb') as f:
    image_bytes_1 = f.read()

# Create parts with different resolutions
image_part_high = types.Part.from_bytes(
    data=image_bytes_1,
    mime_type='image/jpeg',
    media_resolution=types.MediaResolution.MEDIA_RESOLUTION_HIGH
)

model_name = 'gemini-3-pro-preview'

response = client.models.generate_content(
    model=model_name,
    contents=["Describe these images:", image_part_high]
)
print(response.text)

JavaScript

// Example: Setting per-part media resolution in JavaScript
import { GoogleGenAI, MediaResolution, Part } from '@google/genai';
import * as fs from 'fs';
import { Buffer } from 'buffer'; // Node.js

const ai = new GoogleGenAI({ httpOptions: { apiVersion: 'v1alpha' } });

// Helper function to convert local file to a Part object
function fileToGenerativePart(path, mimeType, mediaResolution) {
    return {
        inlineData: { data: Buffer.from(fs.readFileSync(path)).toString('base64'), mimeType },
        mediaResolution: { 'level': mediaResolution }
    };
}

async function run() {
    // Create parts with different resolutions
    const imagePartHigh = fileToGenerativePart('img.png', 'image/png', Part.MediaResolutionLevel.MEDIA_RESOLUTION_HIGH);
    const model_name = 'gemini-3-pro-preview';
    const response = await ai.models.generateContent({
        model: model_name,
        contents: ['Describe these images:', imagePartHigh]
        // Global config can still be set, but per-part settings will override
        // config: {
        //   mediaResolution: MediaResolution.MEDIA_RESOLUTION_MEDIUM
        // }
    });
    console.log(response.text);
}
run();

ОТДЫХ

# Replace with paths to your images
IMAGE_PATH="path/to/image.jpg"

# Base64 encode the images
BASE64_IMAGE1=$(base64 -w 0 "$IMAGE_PATH")

MODEL_ID="gemini-3-pro-preview"

echo '{
    "contents": [{
      "parts": [
        {"text": "Describe these images:"},
        {
          "inline_data": {
            "mime_type": "image/jpeg",
            "data": "'"$BASE64_IMAGE1"'",
          },
          "media_resolution": {"level": "MEDIA_RESOLUTION_HIGH"}
        }
      ]
    }]
  }' > request.json

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1alpha/models/${MODEL_ID}:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d @request.json

Глобальная резолюция СМИ

С помощью параметра GenerationConfig можно задать разрешение по умолчанию для всех частей медиафайла в запросе. Эта функция поддерживается всеми многомодальными моделями. Если запрос содержит как глобальные, так и настройки для каждой части , то для конкретного элемента приоритет имеет настройка для каждой части.

Python

from google import genai
from google.genai import types

client = genai.Client()

# Prepare standard image part
with open('image.jpg', 'rb') as f:
    image_bytes = f.read()
image_part = types.Part.from_bytes(data=image_bytes, mime_type='image/jpeg')

# Set global configuration
config = types.GenerateContentConfig(
    media_resolution=types.MediaResolution.MEDIA_RESOLUTION_HIGH
)

response = client.models.generate_content(
    model='gemini-2.5-flash',
    contents=["Describe this image:", image_part],
    config=config
)
print(response.text)

JavaScript

import { GoogleGenAI, MediaResolution } from '@google/genai';
import * as fs from 'fs';

const ai = new GoogleGenAI({ });

async function run() {
   // ... (Image loading logic) ...

   const response = await ai.models.generateContent({
      model: 'gemini-2.5-flash',
      contents: ["Describe this image:", imagePart],
      config: {
         mediaResolution: MediaResolution.MEDIA_RESOLUTION_HIGH
      }
   });
   console.log(response.text);
}
run();

ОТДЫХ

# ... (Base64 encoding logic) ...

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [...],
    "generation_config": {
      "media_resolution": "MEDIA_RESOLUTION_HIGH"
    }
  }'

Доступные значения разрешения

API Gemini определяет следующие уровни разрешения медиафайлов:

  • MEDIA_RESOLUTION_UNSPECIFIED : Настройка по умолчанию. Количество токенов для этого уровня значительно различается между Gemini 3 и более ранними моделями Gemini.
  • MEDIA_RESOLUTION_LOW : Меньшее количество токенов, что приводит к более быстрой обработке и снижению затрат, но с меньшей детализацией.
  • MEDIA_RESOLUTION_MEDIUM : Баланс между детализацией, стоимостью и задержкой.
  • MEDIA_RESOLUTION_HIGH : Большее количество токенов, обеспечивающее модели большую детализацию, но за счет увеличения задержки и стоимости.
  • MEDIA_RESOLUTION_ULTRA_HIGH (только для каждой части): Максимальное количество токенов, необходимое для определенных сценариев использования, например, при работе за компьютером .

Обратите внимание, что MEDIA_RESOLUTION_HIGH обеспечивает оптимальную производительность для большинства сценариев использования.

Точное количество токенов, генерируемых для каждого из этих уровней, зависит как от типа носителя (изображение, видео, PDF), так и от версии модели .

Количество токенов

В таблицах ниже приведено приблизительное количество токенов для каждого значения media_resolution и типа медиафайлов для каждого семейства моделей.

Модели Gemini 3

MediaResolution Изображение Видео PDF
MEDIA_RESOLUTION_UNSPECIFIED (По умолчанию) 1120 70 560
MEDIA_RESOLUTION_LOW 280 70 280 + Исходный текст
MEDIA_RESOLUTION_MEDIUM 560 70 560 + Исходный текст
MEDIA_RESOLUTION_HIGH 1120 280 1120 + Исходный текст
MEDIA_RESOLUTION_ULTRA_HIGH 2240 Н/Д Н/Д

Модели Gemini 2.5

MediaResolution Изображение Видео PDF (сканированный) PDF (в исходном формате)
MEDIA_RESOLUTION_UNSPECIFIED (По умолчанию) 256 + Pan & Scan (~2048) 256 256 + OCR 256 + Исходный текст
MEDIA_RESOLUTION_LOW 64 64 64 + OCR 64 + Исходный текст
MEDIA_RESOLUTION_MEDIUM 256 256 256 + OCR 256 + Исходный текст
MEDIA_RESOLUTION_HIGH 256 + Панорамирование и сканирование 256 256 + OCR 256 + Исходный текст

Выбор правильного разрешения

  • Значение по умолчанию ( UNSPECIFIED ): Начните с значения по умолчанию. Оно настроено для обеспечения оптимального баланса качества, задержки и стоимости для большинства распространенных сценариев использования.
  • LOW : Используйте в сценариях, где стоимость и задержка имеют первостепенное значение, а детализация менее критична.
  • MEDIUM / HIGH : Повышайте разрешение, когда задача требует понимания мельчайших деталей в медиаконтенте. Это часто необходимо для сложного визуального анализа, чтения диаграмм или понимания объемных документов.
  • ULTRA HIGH — доступен только для настройки отдельных компонентов. Рекомендуется для определенных сценариев использования, например, при работе за компьютером или в случаях, когда тестирование показывает явное улучшение по сравнению с HIGH .
  • Управление по частям (Gemini 3): Оптимизирует использование токенов. Например, в запросе с несколькими изображениями используйте HIGH для сложной диаграммы и LOW или MEDIUM для более простых контекстных изображений.

Рекомендуемые настройки

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

Тип носителя Рекомендуемые настройки Максимальное количество токенов Руководство по применению
Изображения MEDIA_RESOLUTION_HIGH 1120 Рекомендуется для большинства задач анализа изображений, обеспечивающих максимальное качество.
PDF-файлы MEDIA_RESOLUTION_MEDIUM 560 Оптимальный уровень для понимания документов; качество обычно достигает насыщения на medium . Повышение до high редко улучшает результаты распознавания текста для стандартных документов.
Видео (Общее) MEDIA_RESOLUTION_LOW (или MEDIA_RESOLUTION_MEDIUM ) 70 (за кадр) Примечание: Для видео low и medium настройки обрабатываются одинаково (70 токенов) для оптимизации использования контекста. Этого достаточно для большинства задач распознавания и описания действий.
Видео (с большим количеством текста) MEDIA_RESOLUTION_HIGH 280 (за кадр) Требуется только в тех случаях, когда сценарий использования включает распознавание текста с высоким разрешением (OCR) или чтение мелких деталей в видеокадрах.

Всегда тестируйте и оценивайте влияние различных настроек разрешения на конкретное приложение, чтобы найти оптимальный компромисс между качеством, задержкой и стоимостью.

Сводка совместимости версий

  • Перечисление MediaResolution доступно для всех моделей, поддерживающих ввод мультимедиа.
  • Количество токенов, связанных с каждым уровнем перечисления, различается между моделями Gemini 3 и более ранними версиями Gemini.
  • Настройка media_resolution для отдельных объектов Part доступна только в моделях Gemini 3 .

Следующие шаги