Как управлять ответами с помощью конфигурации модели

При каждом вызове модели вы можете отправить конфигурацию модели, чтобы контролировать, как модель генерирует ответ. Каждая модель поддерживает разные варианты конфигурации, например настройку maxOutputTokens или специализированные конфигурации для размышления, модальностей ответа, изображений, речи или обнаружения голосовой активности (VAD).

В большинстве случаев при доступе к модели Gemini вы настраиваете ее с помощью GenerationConfig. Однако если вы настраиваете модель Gemini Live API, используйте LiveGenerationConfig.

На этой странице рассказывается, как настроить конфигурацию для моделей Gemini, и приводится таблица доступных параметров.

Перейти к настройке Gemini Перейти к настройке Gemini Live API

GenerationConfig для моделей Gemini

Нажмите на название своего поставщика Gemini API, чтобы посмотреть контент и код, относящиеся к нему.

Задайте GenerationConfig для большинства моделей Gemini, включая модели общего назначения, модели для создания изображений (Nano Banana) и модели для синтеза речи (TTS).

Конфигурация сохраняется в течение всего времени существования экземпляра GenerativeModel. Если вы хотите использовать другую конфигурацию, создайте и используйте новый экземпляр с другой конфигурацией.

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

Swift

Задайте значения параметров в GenerationConfig при создании экземпляра GenerativeModel.


import FirebaseAILogic

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// For the latest general-use Gemini models, the following parameters are now unsupported:
// temperature, top-K, top-P, frequency penalty, presence penalty, and candidate count
let config = GenerationConfig(
  maxOutputTokens: 200,
  stopSequences: ["red"]
)

// Initialize the Gemini Developer API backend service.
// Specify the config as part of creating the `GenerativeModel` instance.
let model = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
  modelName: "GEMINI_MODEL_NAME",
  generationConfig: config
)

// ...

Kotlin

Задайте значения параметров в GenerationConfig при создании экземпляра GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// For the latest general-use Gemini models, the following parameters are now unsupported:
// temperature, top-K, top-P, frequency penalty, presence penalty, and candidate count
val config = generationConfig {
    maxOutputTokens = 200
    stopSequences = listOf("red")
}

// Initialize the Gemini Developer API backend service.
// Specify the config as part of creating the `GenerativeModel` instance.
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
    modelName = "GEMINI_MODEL_NAME",
    generationConfig = config
)

// ...

Java

Задайте значения параметров в GenerationConfig при создании экземпляра GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// For the latest general-use Gemini models, the following parameters are now unsupported:
// temperature, top-K, top-P, frequency penalty, presence penalty, and candidate count
GenerationConfig.Builder configBuilder = new GenerationConfig.Builder();
configBuilder.maxOutputTokens = 200;
configBuilder.stopSequences = List.of("red");

GenerationConfig config = configBuilder.build();

// Specify the config as part of creating the `GenerativeModel` instance.
GenerativeModelFutures model = GenerativeModelFutures.from(
        FirebaseAI.getInstance(GenerativeBackend.googleAI())
                .generativeModel(
                    "GEMINI_MODEL_NAME",
                    config
                );
);

// ...

Web

Задайте значения параметров в GenerationConfig при создании экземпляра GenerativeModel.


// ...

// Initialize the Gemini Developer API backend service.
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// For the latest general-use Gemini models, the following parameters are now unsupported:
// temperature, top-K, top-P, frequency penalty, presence penalty, and candidate count
const generationConfig = {
  maxOutputTokens: 200,
  stopSequences: ["red"],
};

// Specify the config as part of creating the `GenerativeModel` instance.
const model = getGenerativeModel(ai, { model: "GEMINI_MODEL_NAME",  generationConfig });

// ...

Dart

Задайте значения параметров в GenerationConfig при создании экземпляра GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// For the latest general-use Gemini models, the following parameters are now unsupported:
// temperature, top-K, top-P, frequency penalty, presence penalty, and candidate count
final generationConfig = GenerationConfig(
  maxOutputTokens: 200,
  stopSequences: ["red"],
);

// Initialize the Gemini Developer API backend service.
// Specify the config as part of creating the `GenerativeModel` instance.
final model = FirebaseAI.googleAI().generativeModel(
  model: 'GEMINI_MODEL_NAME',
  generationConfig: generationConfig,
);

// ...

Unity

Задайте значения параметров в GenerationConfig при создании экземпляра GenerativeModel.


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
// For the latest general-use Gemini models, the following parameters are now unsupported:
// temperature, top-K, top-P, frequency penalty, presence penalty, and candidate count
var generationConfig = new GenerationConfig(
  maxOutputTokens: 200,
  stopSequences: new string[] { "red" }
);

// Initialize the Gemini Developer API backend service.
// Specify the config as part of creating the `GenerativeModel` instance.
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());
var model = ai.GetGenerativeModel(
  modelName: "GEMINI_MODEL_NAME",
  generationConfig: generationConfig
);

Вы можете экспериментировать с запросами и конфигурациями моделей, используя Google AI Studio.

LiveGenerationConfig для моделей Gemini Live API

Нажмите на название своего поставщика Gemini API, чтобы посмотреть контент и код, относящиеся к нему.

Задавайте LiveGenerationConfig, только если используете модели Gemini Live API.

Конфигурация сохраняется в течение всего времени существования экземпляра LiveModel. Если вы хотите использовать другую конфигурацию, создайте и используйте новый экземпляр с другой конфигурацией.

Ниже приведен пример базовой конфигурации модели. Дополнительные параметры, например настройка обнаружения голосовой активности, приведены в таблице ниже.

Swift

Задайте значения параметров в liveGenerationConfig во время инициализации экземпляра LiveModel:


// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here).
let config = LiveGenerationConfig(
  maxOutputTokens: 200,
  responseModalities: [.audio],
  speech: SpeechConfig(voiceName: "Fenrir"),
)

// Specify the config as part of creating the `liveModel` instance.
let liveModel = FirebaseAI.firebaseAI(backend: .googleAI()).liveModel(
  modelName: "GEMINI_LIVE_MODEL_NAME",
  generationConfig: config
)

// ...

Kotlin

Задайте значения параметров в LiveGenerationConfig при создании экземпляра LiveModel.


// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here).
val config = liveGenerationConfig {
    maxOutputTokens = 200
    responseModality = ResponseModality.AUDIO
    speechConfig = SpeechConfig(voice = Voice("FENRIR"))
}

// Specify the config as part of creating the `LiveModel` instance.
val liveModel = Firebase.ai(backend = GenerativeBackend.googleAI()).liveModel(
    modelName = "GEMINI_LIVE_MODEL_NAME",
    generationConfig = config
)

// ...

Java

Задайте значения параметров в LiveGenerationConfig при создании экземпляра LiveModel.


// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here).
LiveGenerationConfig.Builder configBuilder = new LiveGenerationConfig.Builder();
configBuilder.setMaxOutputTokens(200);
configBuilder.setResponseModality(ResponseModality.AUDIO);

configBuilder.setSpeechConfig(new SpeechConfig(new Voice("FENRIR")));

LiveGenerationConfig config = configBuilder.build();

// Specify the config as part of creating the `LiveModel` instance.
LiveGenerativeModel lm = FirebaseAI.getInstance(GenerativeBackend.googleAI()).liveModel(
          "GEMINI_LIVE_MODEL_NAME",
          config
);

// ...

Web

Задайте значения параметров в LiveGenerationConfig во время инициализации экземпляра LiveGenerativeModel:


// ...

// Initialize the Gemini Developer API backend service.
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Set parameter values in a `LiveGenerationConfig` (example values shown here).
const liveGenerationConfig = {
  maxOutputTokens: 200,
  responseModalities: [ResponseModality.AUDIO],
  speechConfig: {
    voiceConfig: {
      prebuiltVoiceConfig: { voiceName: "Fenrir" },
    },
  },
};

// Specify the config as part of creating the `LiveGenerativeModel` instance.
const liveModel = getLiveGenerativeModel(ai, {
  model: "GEMINI_LIVE_MODEL_NAME",
  liveGenerationConfig,
});

// ...

Dart

Задайте значения параметров в LiveGenerationConfig при создании экземпляра LiveGenerativeModel.


// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here).
final config = LiveGenerationConfig(
  maxOutputTokens: 200,
  responseModalities: [ResponseModalities.audio],
  speechConfig: SpeechConfig(voiceName: 'Fenrir'),
);

// Specify the config as part of creating the `liveGenerativeModel` instance.
final liveModel = FirebaseAI.googleAI().liveGenerativeModel(
  model: 'GEMINI_LIVE_MODEL_NAME',
  liveGenerationConfig: config,
);

// ...

Unity

Задайте значения параметров в LiveGenerationConfig при создании экземпляра LiveModel.


// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here).
var config = new LiveGenerationConfig(
  maxOutputTokens: 200,
  responseModalities: new[] { ResponseModality.Audio },
  speechConfig: SpeechConfig.UsePrebuiltVoice("Fenrir")
);

// Specify the config as part of creating the `LiveModel` instance.
var liveModel = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetLiveModel(
  modelName: "GEMINI_LIVE_MODEL_NAME",
  liveGenerationConfig: config
);

// ...

Вы можете экспериментировать с запросами и конфигурациями моделей, используя Google AI Studio.



Доступные параметры модели

В таблице ниже приведены общие сведения о доступных параметрах для настройки модели. Некоторые параметры применимы только к определенным моделям.

Параметр Описание Ограничения Значение по умолчанию
Временная метка аудио
audioTimestamp
Позволяет распознавать временные метки в аудиофайлах.

Логическое значение

Применимо только при использовании конфигурации GenerativeModel и типе входных данных "только аудио".

false
Макс. число выходных токенов
maxOutputTokens

Указывает максимальное количество токенов, которые могут быть сгенерированы в ответе.

Для gemini-4-argon стандартное и максимальное количество выходных токенов составляет 32,768 для запросов без потоковой передачи и 65,536 для запросов с потоковой передачей. Обратите внимание, что Firebase AI Logic пока не поддерживает декодирование длинных URL, но эта функция скоро появится.

--- ---
Остановить последовательности
stopSequences
Указывает список строк, которые сообщают модели, что нужно прекратить генерировать контент, если одна из строк встречается в ответе.

Применимо только при использовании конфигурации GenerativeModel.

Неприменимо для моделей Nano Banana и TTS.

---
Специализированные конфигурации
Думаю…
thinkingConfig

Управляет "процессом мышления" моделей при генерации ответа.

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

Допустимые значения: см. документацию по thinking.

Неприменимо к моделям TTS.

Firebase AI Logic пока не поддерживает настройку thinkingConfig для моделей Live API.

Зависит от модели
Модальности ответа
responseModalities
Указывает тип выходных данных (например, текст, аудио или изображения). Применимо (и обязательно) только при использовании моделей Nano Banana, TTS и Live API. ---
Характеристики изображений
imageConfig
Указывает соотношение сторон и разрешение сгенерированных изображений.

Допустимые значения: см. раздел Настройка генерации изображений.

Применимо только при использовании моделей Nano Banana.

Соотношение сторон 1:1 (квадрат)
Разрешение 1024 x 1024
Речь (голос)
speechConfig
Указывает голос, используемый для вывода звука. Применимо только при использовании моделей TTS и Live API.

Обязательно для моделей TTS.
Puck
Обнаружение голосовой активности (VAD)
realtimeInputConfig
Настраивает обнаружение голосовой активности (VAD), обработку прерываний и охват контекста очереди или отключает автоматическое VAD.

Допустимые значения: см. раздел Настройка VAD.

Применимо только при использовании моделей Live API.

VAD включен

См. значения по умолчанию для отдельных настроек.



Другие способы управления генерацией контента

  • Подробнее о создании запросов…
  • Используйте настройки безопасности, чтобы снизить вероятность получения ответов, которые могут считаться вредными, включая дискриминационные высказывания и откровенно сексуальный контент.
  • Задайте системные инструкции, чтобы управлять поведением модели. Эта функция похожа на вводные инструкции, которые вы добавляете до того, как модель получит дальнейшие инструкции от конечного пользователя.
  • Передайте схему ответа вместе с запросом, чтобы указать определенную схему вывода. Эта функция чаще всего используется при генерации выходных данных JSON, но ее также можно использовать для задач классификации (например, когда вы хотите, чтобы модель использовала определенные метки или теги).