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

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

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

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



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

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

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

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

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

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

Быстрый

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


import FirebaseAILogic

// 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 во время инициализации экземпляра LiveModel :


// ...

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

// 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 = Voices.FENRIR)
    temperature = 0.9f
    topK = 16
    topP = 0.1f
}

// 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(Voices.FENRIR));
configBuilder.setTemperature(0.9f);
configBuilder.setTopK(16);
configBuilder.setTopP(0.1f);

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 :


// ...

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" },
    },
  },
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
};

// 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'),
  temperature: 0.9,
  topP: 0.1,
  topK: 16,
);

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

// ...

Единство

Задайте значения параметров в 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"),
  temperature: 0.9f,
  topK: 16,
  topP: 0.1f
);

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

// ...

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

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

Ниже представлен общий обзор доступных параметров, если таковые имеются.Полный список параметров и их значений можно найти в документации по 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 или при использовании модели Gemini , способной выдавать многомодальные данные.

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

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

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

Puck



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

Чтобы просмотреть контент и код, относящиеся к вашему поставщику Imagen API , нажмите на него, чтобы перейти по ссылке.

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

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

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

Быстрый

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


import FirebaseAILogic

// 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
Следует ли включать округленные оценки «Ответственного ИИ» для списка атрибутов безопасности в ответах на нефильтрованные входные и выходные данные?

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

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



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

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