モデル構成を使用してレスポンスを制御する

モデルへの呼び出しごとに、モデルがどのようにレスポンスを生成するかを制御するモデル構成を送信できます。モデルごとに異なる構成オプションが用意されています。

Google AI Studio を使用して、プロンプトとモデル構成を試すこともできます。

Gemini 構成オプションに移動 Imagen 構成オプションに移動



Gemini モデルを構成する

Gemini API プロバイダをクリックして、このページでプロバイダ固有のコンテンツとコードを表示します。

このセクションでは、Gemini モデルで使用する構成を設定する方法と、各パラメータの説明について説明します。

モデル構成を設定する(Gemini

一般的なユースケースの構成

構成はインスタンスの存続期間中維持されます。別の構成を使用する場合は、その構成で新しい GenerativeModel インスタンスを作成します。

Swift

GenerativeModel インスタンスの作成の一環として、GenerationConfig でパラメータの値を設定します。


import FirebaseAI

// Set parameter values in a `GenerationConfig` (example values shown here)
let config = GenerationConfig(
  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

GenerativeModel インスタンスの作成の一環として、GenerationConfig でパラメータの値を設定します。


// ...

// Set parameter values in a `GenerationConfig` (example values shown here)
val config = generationConfig {
    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

GenerativeModel インスタンスの作成の一環として、GenerationConfig でパラメータの値を設定します。


// ...

// Set parameter values in a `GenerationConfig` (example values shown here)
GenerationConfig.Builder configBuilder = new GenerationConfig.Builder();
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

GenerativeModel インスタンスの作成の一環として、GenerationConfig でパラメータの値を設定します。


// ...

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

// Set parameter values in a `GenerationConfig` (example values shown here)
const generationConfig = {
  max_output_tokens: 200,
  stop_sequences: ["red"],
  temperature: 0.9,
  top_p: 0.1,
  top_k: 16,
};

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

// ...

Dart

GenerativeModel インスタンスの作成の一環として、GenerationConfig でパラメータの値を設定します。


// ...

// Set parameter values in a `GenerationConfig` (example values shown here)
final generationConfig = GenerationConfig(
  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,
);

// ...

Unity

GenerativeModel インスタンスの作成の一環として、GenerationConfig でパラメータの値を設定します。


// ...

// Set parameter values in a `GenerationConfig` (example values shown here)
var generationConfig = new GenerationConfig(
  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 の構成

パラメータの説明(Gemini

使用可能なパラメータの概要は次のとおりです。 Gemini Developer API ドキュメントで、パラメータとその値の包括的なリストを確認できます。

パラメータ 説明 デフォルト値
音声のタイムスタンプ
audioTimestamp

音声のみの入力ファイルでタイムスタンプの認識を有効にするブール値。

generateContent または generateContentStream の呼び出しを使用し、入力タイプが音声のみのファイルの場合にのみ適用されます。

false
頻度のペナルティ
frequencyPenalty
生成されたレスポンスに繰り返し出現するトークンを含める確率を制御します。
値が正の場合は、生成されたコンテンツに繰り返し出現するトークンにペナルティが課されるため、コンテンツが繰り返される確率は低下します。
---
最大出力トークン
maxOutputTokens
レスポンスで生成できるトークンの最大数を指定します。 ---
プレゼンス ペナルティ
presencePenalty
生成されたレスポンスにすでに含まれているトークンを含める確率を制御します。
値が正の場合は、生成されたコンテンツ内の既存のトークンにペナルティが課されるため、より多様なコンテンツが生成される確率は高くなります。
---
停止シーケンス
stopSequences

レスポンスでいずれかの文字列が検出された場合に、コンテンツの生成を停止するようモデルに指示する文字列のリストを指定します。

GenerativeModel 構成を使用する場合にのみ適用されます。

---
温度
temperature
回答のランダム性の度合いを制御します。
温度が低いほど、より決定的なレスポンスが得られ、温度が高いほど、より多様で創造的なレスポンスが得られます。
モデルによって異なる
Top-K
topK
生成されたコンテンツで使用される確率が最も高い単語の数を制限します。
Top-K 値が 1 の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンの中で最も確率の高いものになります。Top-K 値が n の場合、次に選択されるトークンは、最も確率の高い n 個のトークンの中から選択されます(すべて設定された温度に基づきます)。
モデルによって異なる
Top-P
topP
生成されるコンテンツの多様性を制御します。
トークンは、確率の合計が Top-P 値に等しくなるまで、確率の高いもの(上記の Top-K を参照)から低いものへと選択されます。
モデルによって異なる
レスポンス モダリティ
responseModality

Live API または Gemini モデルによるネイティブ マルチモーダル出力を使用する場合のストリーミング出力のタイプ(テキスト、音声、画像など)を指定します。

Live APILiveModel 構成を使用する場合、またはマルチモーダル出力が可能な Gemini モデルを使用する場合にのみ適用されます。

---
音声(発話)
speechConfig

Live API を使用する場合に、ストリーミングされた音声出力に使用する音声を指定します。

Live APILiveModel 構成を使用する場合にのみ適用されます。

Puck



Imagen モデルを構成する

Imagen API プロバイダをクリックして、このページでプロバイダ固有のコンテンツとコードを表示します。

このセクションでは、Imagen モデルで使用する構成を設定する方法と、各パラメータの説明について説明します。

モデル構成を設定する(Imagen

構成はインスタンスの存続期間中維持されます。別の構成を使用する場合は、その構成で新しい ImagenModel インスタンスを作成します。

Swift

ImagenModel インスタンスの作成の一環として、ImagenGenerationConfig のパラメータの値を設定します。


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

ImagenModel インスタンスの作成の一環として、ImagenGenerationConfig のパラメータの値を設定します。


// ...

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

ImagenModel インスタンスの作成の一環として、ImagenGenerationConfig のパラメータの値を設定します。


// ...

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

ImagenModel インスタンスの作成の一環として、ImagenGenerationConfig のパラメータの値を設定します。


// ...

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

ImagenModel インスタンスの作成の一環として、ImagenGenerationConfig のパラメータの値を設定します。


// ...

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

// ...

Unity

Unity での Imagen の使用はまだサポートされていませんが、近日中に対応する予定です。

各パラメータの説明については、このページの次のセクションをご覧ください。

パラメータの説明(Imagen

使用可能なパラメータの概要は次のとおりです。Google Cloud のドキュメントで、パラメータとその値の包括的なリストを確認できます。

パラメータ 説明 デフォルト値
ネガティブ プロンプト
negativePrompt
生成される画像から除外する内容の説明

このパラメータは imagen-3.0-generate-002 でまだサポートされていません。

---
結果の数
numberOfImages
リクエストごとに返される生成画像の数 デフォルトは Imagen 3 モデルの 1 つの画像
アスペクト比
aspectRatio
生成された画像の幅と高さの比率 デフォルトはスクエア(1:1)です。
画像形式
imageFormat
出力オプション(画像形式(MIME タイプ)、生成された画像の圧縮レベルなど) デフォルトの MIME タイプは PNG
デフォルトの圧縮は 75(MIME タイプが JPEG に設定されている場合)
透かし
addWatermark
生成された画像に目に見えない電子透かし(SynthID)を追加するかどうか デフォルトは Imagen 3 モデルの場合は true です
人物の生成
personGeneration
モデルによる人物の生成を許可するかどうか デフォルトはモデルによって異なります



コンテンツ生成を制御するその他のオプション

  • プロンプト設計について学習し、ニーズに合った出力を生成するようにモデルに影響を与えます。
  • 安全性設定を使用して、ヘイトスピーチや性的描写が露骨なコンテンツなど、有害とみなされる可能性のあるレスポンスが返される可能性を調整します。
  • システム指示を設定して、モデルの動作を制御します。この機能は、モデルがエンドユーザーからの詳細な手順に公開される前に追加するプリアンブルのようなものです。
  • プロンプトとともにレスポンス スキーマを渡して、特定の出力スキーマを指定します。この機能は、JSON 出力を生成する場合によく使用されますが、分類タスク(モデルに特定のラベルやタグを使用させる場合など)にも使用できます。