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

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

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

Перейти к параметрам конфигурации Gemini Перейти к параметрам конфигурации Imagen



Настройка моделей Gemini

Щелкните своего поставщика API Gemini , чтобы просмотреть специфичный для этого поставщика контент и код на этой странице.

В этом разделе показано, как настроить конфигурацию для использования с моделями Gemini , а также приведено описание каждого параметра .

Настройте конфигурацию модели ( Gemini )

Конфигурация для общих случаев использования

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

Быстрый

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


import FirebaseAI

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
let config = GenerationConfig(
  candidateCount: 1,
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
  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.
val config = generationConfig {
    candidateCount = 1
    maxOutputTokens = 200
    stopSequences = listOf("red")
    temperature = 0.9f
    topK = 16
    topP = 0.1f
}

// 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.
GenerationConfig.Builder configBuilder = new GenerationConfig.Builder();
configBuilder.candidateCount = 1;
configBuilder.maxOutputTokens = 200;
configBuilder.stopSequences = List.of("red");
configBuilder.temperature = 0.9f;
configBuilder.topK = 16;
configBuilder.topP = 0.1f;

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.
const generationConfig = {
  candidate_count: 1,
  maxOutputTokens: 200,
  stopSequences: ["red"],
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
};

// 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.
final generationConfig = GenerationConfig(
  candidateCount: 1,
  maxOutputTokens: 200,
  stopSequences: ["red"],
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
);

// 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,
);

// ...

Единство

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


// ...

// Set parameter values in a `GenerationConfig`.
// IMPORTANT: Example values shown here. Make sure to update for your use case.
var generationConfig = new GenerationConfig(
  candidateCount: 1,
  maxOutputTokens: 200,
  stopSequences: new string[] { "red" },
  temperature: 0.9f,
  topK: 16,
  topP: 0.1f
);

// 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
);

Описание каждого параметра вы найдете в следующем разделе этой страницы.

Конфигурация для Gemini Live API

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

Быстрый

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


import FirebaseAI
// ...

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

// Initialize the Vertex AI Gemini API backend service
// Specify the config as part of creating the `LiveGenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).liveModel(
  modelName: "GEMINI_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 = Voices.FENRIR)
    temperature = 0.9f
    topK = 16
    topP = 0.1f
}

// Initialize the Gemini Developer API backend service
// Specify the config as part of creating the `LiveModel` instance
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).liveModel(
    modelName = "GEMINI_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.setResponseModalities(ResponseModality.AUDIO);

configBuilder.setSpeechConfig(new SpeechConfig(Voices.FENRIR));
configBuilder.setTemperature(0.9f);
configBuilder.setTopK(16);
configBuilder.setTopP(0.1f);

LiveGenerationConfig config = configBuilder.build();

// Initialize the Gemini Developer API backend service
// Specify the config as part of creating the `LiveModel` instance
LiveModelFutures model = LiveModelFutures.from(
        FirebaseAI.getInstance(GenerativeBackend.googleAI())
                .generativeModel(
                    "GEMINI_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 generationConfig = {
  maxOutputTokens: 200,
  responseModalities: [ResponseModality.AUDIO],
  speechConfig: {
    voiceConfig: {
      prebuiltVoiceConfig: { voiceName: "Fenrir" },
    },
  },
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
};

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

// ...

Dart

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



// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here)
final generationConfig = LiveGenerationConfig(
  maxOutputTokens: 200,
  responseModalities: [ResponseModalities.audio],
  speechConfig: SpeechConfig(voiceName: 'Fenrir'),
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
);

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

// ...

Единство

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


// ...

// Set parameter values in a `LiveGenerationConfig` (example values shown here)
var liveGenerationConfig = new LiveGenerationConfig(
  maxOutputTokens: 200,
  responseModalities: new [] { ResponseModality.Audio },
  speechConfig: SpeechConfig.UsePrebuiltVoice("Fenrir"),
  temperature: 0.9f,
  topK: 16,
  topP: 0.1f
);

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

Описание каждого параметра вы найдете в следующем разделе этой страницы.

Описание параметров ( Близнецы )

Ниже приведен краткий обзор доступных параметров (если применимо).Полный список параметров и их значений можно найти в документации API разработчика Gemini .

Параметр Описание Значение по умолчанию
Аудио временная метка
audioTimestamp

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

Применимо только при использовании вызовов generateContent или generateContentStream , а тип входных данных — только аудиофайл.

false
Количество кандидатов
candidateCount

Указывает количество возвращаемых вариантов ответа. За каждый запрос с вас взимается плата за выходные токены всех кандидатов, но плата за входные токены взимается только один раз.

Поддерживаемые значения: 1 - 8 (включительно)

Применимо только при использовании generateContent и последних моделей Gemini . Модели Live API и generateContentStream не поддерживаются.

1
Штраф частоты
frequencyPenalty
Контролирует вероятность включения токенов, которые неоднократно появляются в сгенерированном ответе.
Положительные значения накладывают штраф на токены, которые неоднократно появляются в сгенерированном контенте, что снижает вероятность повторения контента.
---
Максимальное количество выходных токенов
maxOutputTokens
Указывает максимальное количество токенов, которые могут быть сгенерированы в ответе. ---
Штраф за присутствие
presencePenalty
Контролирует вероятность включения токенов, которые уже присутствуют в сгенерированном ответе.
Положительные значения накладывают штраф на токены, которые уже появляются в сгенерированном контенте, увеличивая вероятность генерации более разнообразного контента.
---
Стоповые последовательности
stopSequences

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

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

---
Температура
temperature
Контролирует степень случайности ответа.
Более низкие температуры приводят к более детерминированным реакциям, а более высокие температуры приводят к более разнообразным и креативным реакциям.
Зависит от модели.
Топ-К
topK
Ограничивает количество наиболее вероятных слов, используемых в сгенерированном контенте.
Значение top-K, равное 1 означает, что следующий выбранный токен должен быть наиболее вероятным среди всех токенов в словаре модели, тогда как значение top-K, равное n , означает, что следующий токен должен быть выбран из n наиболее вероятных токенов (все на основе установленной температуры).
Зависит от модели.
Топ-П
topP
Контролирует разнообразие генерируемого контента.
Токены выбираются от наиболее вероятных (см. top-K выше) к наименее вероятным до тех пор, пока сумма их вероятностей не станет равна значению top-P.
Зависит от модели.
Модальность ответа
responseModality

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

Применимо только при использовании Live API и конфигурации LiveModel или при использовании модели Gemini , поддерживающей мультимодальный вывод.

---
Речь (голос)
speechConfig

Указывает голос, используемый для потокового аудиовывода при использовании Live API .

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

Puck



Настройка моделей Imagen

Щелкните своего поставщика Imagen API , чтобы просмотреть специфичный для этого поставщика контент и код на этой странице.

В этом разделе показано, как настроить конфигурацию для использования с моделями Imagen , а также приведено описание каждого параметра .

Настройте конфигурацию модели ( Imagen )

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

Быстрый

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


import FirebaseAI

// Set parameter values in a `ImagenGenerationConfig` (example values shown here)
let config = ImagenGenerationConfig(
  negativePrompt: "frogs",
  numberOfImages: 2,
  aspectRatio: .landscape16x9,
  imageFormat: .jpeg(compressionQuality: 100),
  addWatermark: false
)

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

// ...

Kotlin

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


// ...

// Set parameter values in a `ImagenGenerationConfig` (example values shown here)
val config = ImagenGenerationConfig {
    negativePrompt = "frogs",
    numberOfImages = 2,
    aspectRatio = ImagenAspectRatio.LANDSCAPE_16x9,
    imageFormat = ImagenImageFormat.jpeg(compressionQuality = 100),
    addWatermark = false
}

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

// ...

Java

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


// ...

// Set parameter values in a `ImagenGenerationConfig` (example values shown here)
ImagenGenerationConfig config = new ImagenGenerationConfig.Builder()
    .setNegativePrompt("frogs")
    .setNumberOfImages(2)
    .setAspectRatio(ImagenAspectRatio.LANDSCAPE_16x9)
    .setImageFormat(ImagenImageFormat.jpeg(100))
    .setAddWatermark(false)
    .build();

// Specify the config as part of creating the `ImagenModel` instance
ImagenModelFutures model = ImagenModelFutures.from(
        FirebaseAI.getInstance(GenerativeBackend.googleAI())
                .imagenModel(
                    "IMAGEN_MODEL_NAME",
                    config
                );
);

// ...

Web

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


// ...

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

// Set parameter values in a `ImagenGenerationConfig` (example values shown here)
const generationConfig = {
  negativePrompt: "frogs",
  numberOfImages: 2,
  aspectRatio: ImagenAspectRatio.LANDSCAPE_16x9,
  imageFormat: ImagenImageFormat.jpeg(100),
  addWatermark: false
};

// Specify the config as part of creating the `ImagenModel` instance
const model = getImagenModel(ai, { model: "IMAGEN_MODEL_NAME", generationConfig });

// ...

Dart

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


// ...

// Set parameter values in a `ImagenGenerationConfig` (example values shown here)
final generationConfig = ImagenGenerationConfig(
  negativePrompt: 'frogs',
  numberOfImages: 2,
  aspectRatio: ImagenAspectRatio.landscape16x9,
  imageFormat: ImagenImageFormat.jpeg(compressionQuality: 100)
  addWatermark: false
);

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

// ...

Единство

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


using Firebase.AI;

// Set parameter values in a `ImagenGenerationConfig` (example values shown here)
var config = new ImagenGenerationConfig(
  numberOfImages: 2,
  aspectRatio: ImagenAspectRatio.Landscape16x9,
  imageFormat: ImagenImageFormat.Jpeg(100)
);

// Initialize the Gemini Developer API backend service
// Specify the config as part of creating the `ImagenModel` instance
var model = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetImagenModel(
  modelName: "imagen-4.0-generate-001",
  generationConfig: config
);

// ...

Описание каждого параметра вы найдете в следующем разделе этой страницы.

Описание параметров ( Imagen )

Ниже представлен краткий обзор доступных параметров (при необходимости). Полный список параметров и их значений можно найти в документации Google Cloud .

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

Этот параметр пока не поддерживается imagen-3.0-generate-002 .

---
Количество результатов
numberOfImages
Количество сгенерированных изображений, возвращаемых для каждого запроса по умолчанию одно изображение
Соотношение сторон
aspectRatio
Соотношение ширины к высоте генерируемых изображений по умолчанию — квадрат (1:1)
Формат изображения
imageFormat
Параметры вывода, такие как формат изображения (тип MIME) и уровень сжатия создаваемых изображений. Тип MIME по умолчанию — PNG
сжатие по умолчанию — 75 (если тип MIME установлен на JPEG)
Водяной знак
addWatermark
Добавлять ли невидимый цифровой водяной знак (называемый SynthID ) к сгенерированным изображениям по умолчанию true
Поколение людей
personGeneration
Разрешить ли генерацию людей по модели по умолчанию зависит от модели
Включить атрибуты безопасности
includeSafetyAttributes
Следует ли включить округленные оценки Responsible AI для списка атрибутов безопасности в ответах на нефильтрованные входные и выходные данные

Категории атрибутов безопасности: "Death, Harm & Tragedy" , "Firearms & Weapons" , "Hate" , "Health" , "Illicit Drugs" , "Politics" , "Porn" , "Religion & Belief" , "Toxic" , "Violence" , "Vulgarity" , "War & Conflict" .

по умолчанию — false



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

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