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

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

В большинстве случаев при работе с моделью 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',
  config: 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.agentPlatform()).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
Указывает максимальное количество токенов, которое может быть сгенерировано в ответе. --- ---
Остановить последовательности
stopSequences
Указывает список строк, при обнаружении которых в ответе модель должна прекратить генерировать контент.

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

Неприменимо к моделям для создания изображений ("Nano Banana") или моделям преобразования текста в речь.

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

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

  • Управлять объемом мышления модели с помощью уровня мышления (модели Gemini 3.x и более поздние).
  • Укажите, нужно ли добавлять краткие пересказы.

Допустимые значения указаны в документации по размышлениям.

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

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

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

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

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

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

Обязательно для моделей TTS.
Puck



Другие способы управления созданием контента

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