Używanie konfiguracji modelu do kontrolowania odpowiedzi

W każdym wywołaniu modelu możesz wysłać konfigurację modelu, aby określić, jak model wygeneruje odpowiedź. Każdy model obsługuje różne opcje konfiguracji, takie jak ustawienie maxOutputTokens lub specjalistyczne konfiguracje dotyczące rozumowania, modalności odpowiedzi, obrazów lub mowy.

W większości przypadków użycia podczas uzyskiwania dostępu do modelu Gemini konfigurujesz go za pomocą GenerationConfig. Jeśli jednak konfigurujesz model Gemini Live API, używasz LiveGenerationConfig.

Na tej stronie dowiesz się, jak skonfigurować modele Gemini, i znajdziesz opis każdego parametru.

Przejdź do konfiguracji Gemini Przejdź do konfiguracji Gemini Live API

GenerationConfig dla modeli Gemini

Kliknij Gemini API dostawcę, aby wyświetlić na tej stronie treści i kod dostawcy.

Ustaw GenerationConfig dla większości modeli Gemini, w tym modeli ogólnego zastosowania, modeli generujących obrazy (modeli „Nano Banana”) i modeli zamiany tekstu na mowę (TTS).

Konfiguracja jest utrzymywana przez cały okres eksploatacji instancji GenerativeModel. Jeśli chcesz użyć innej konfiguracji, utwórz i użyj nowej instancji z inną konfiguracją.

Swift

Ustaw wartości parametrów w GenerationConfig podczas tworzenia instancji 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

Ustaw wartości parametrów w GenerationConfig podczas tworzenia instancji 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

Ustaw wartości parametrów w GenerationConfig podczas tworzenia instancji 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

Ustaw wartości parametrów w GenerationConfig podczas tworzenia instancji 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

Ustaw wartości parametrów w GenerationConfig w ramach tworzenia instancji 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

Ustaw wartości parametrów w GenerationConfig w ramach tworzenia instancji 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
);

Opis każdego parametru znajdziesz w następnej sekcji tej strony.

Możesz eksperymentować z promptami i konfiguracjami modeli za pomocą Google AI Studio.

LiveGenerationConfig w przypadku modeli Gemini Live API

Kliknij dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod dotyczące tego dostawcy.

Ustaw LiveGenerationConfig tylko wtedy, gdy używasz modeli Gemini Live API.

Konfiguracja jest utrzymywana przez cały okres eksploatacji instancji LiveModel. Jeśli chcesz użyć innej konfiguracji, utwórz i użyj nowej instancji z inną konfiguracją.

Swift

Ustaw wartości parametrów w liveGenerationConfig podczas inicjowania instancji 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

Ustaw wartości parametrów w LiveGenerationConfig podczas tworzenia instancji 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

Ustaw wartości parametrów w LiveGenerationConfig podczas tworzenia instancji 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

Ustaw wartości parametrów w LiveGenerationConfig podczas inicjowania instancji 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

Ustaw wartości parametrów w LiveGenerationConfig w ramach tworzenia instancji 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

Ustaw wartości parametrów w LiveGenerationConfig w ramach tworzenia instancji 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
);

// ...

Opis każdego parametru znajdziesz w następnej sekcji tej strony.

Możesz eksperymentować z promptami i konfiguracjami modeli, korzystając z Google AI Studio.



Opis parametrów

Tabela poniżej zawiera ogólne omówienie dostępnych parametrów. Niektóre parametry mają zastosowanie tylko do określonych modeli.

Parametr Opis Ograniczenia Wartość domyślna
Sygnatura czasowa dźwięku
audioTimestamp
Umożliwia rozpoznawanie sygnatur czasowych w przypadku plików wejściowych zawierających tylko dźwięk.

Wartość logiczna

Ma zastosowanie tylko wtedy, gdy używasz konfiguracji GenerativeModel, a typem danych wejściowych jest plik zawierający tylko dźwięk.

false
Maksymalna liczba tokenów wyjściowych
maxOutputTokens

Określa maksymalną liczbę tokenów, które można wygenerować w odpowiedzi.

W przypadku modelu gemini-4-argon domyślny i maksymalny limit tokenów wyjściowych to 32,768 tokenów w przypadku żądań bez strumieniowania i 65,536 tokenów w przypadku żądań strumieniowania. Pamiętaj, że Firebase AI Logic nie obsługuje jeszcze długiego dekodowania, ale ta funkcja będzie dostępna już wkrótce.

--- ---
Sekwencje zatrzymania
stopSequences
Określa listę ciągów znaków, które informują model, że ma przestać generować treść, jeśli w odpowiedzi pojawi się jeden z tych ciągów.

Ma zastosowanie tylko wtedy, gdy używasz konfiguracji GenerativeModel.

Nie dotyczy modeli graficznych („Nano Banana”) ani modeli TTS.

---
Konfiguracje specjalistyczne
Myślę
thinkingConfig

Kontroluje „proces myślowy” modeli podczas generowania odpowiedzi.

  • Kontroluj ilość myślenia, jaką może wykonać model, za pomocą poziomu myślenia.
  • Określ, czy chcesz uwzględnić podsumowania myśli.

Obsługiwane wartości: zapoznaj się z dokumentacją dotyczącą rozumowania

Nie dotyczy modeli TTS.

Firebase AI Logic nie obsługuje jeszcze ustawiania wartości thinkingConfig dla modeli Live API.

Zależy od modelu
Sposoby odpowiedzi
responseModalities
Określa typ danych wyjściowych (np. tekst, dźwięk lub obrazy). Dotyczy to tylko (i jest wymagane) w przypadku korzystania z Gemini modeli obrazów (modeli „Nano Banana”), modeli TTS i Live API modeli. ---
Charakterystyka obrazu
imageConfig
Określa format obrazu i rozdzielczość wygenerowanych obrazów.

Obsługiwane wartości: patrz Konfigurowanie generowania obrazów.

(ma zastosowanie tylko w przypadku korzystania z Gemini modeli obrazów („Nano Banana”)).

Format obrazu 1:1 (kwadrat)
Rozdzielczość 1024 x 1024
Mowa (głos)
speechConfig
Określa głos używany w wyjściu audio. Ma zastosowanie tylko w przypadku korzystania z modeli TTS i Live API.

Wymagane w przypadku modeli TTS.
Puck



Inne opcje kontrolowania generowania treści

  • Dowiedz się więcej o projektowaniu promptów, aby móc wpływać na model i generować wyniki dostosowane do Twoich potrzeb.
  • Użyj ustawień bezpieczeństwa, aby dostosować prawdopodobieństwo otrzymania odpowiedzi, które mogą być uznane za szkodliwe, w tym wypowiedzi szerzące nienawiść i treści o charakterze jednoznacznie seksualnym.
  • Ustaw instrukcje systemowe, aby sterować zachowaniem modelu. Ta funkcja jest podobna do wprowadzenia, które dodajesz, zanim model zostanie poddany dalszym instrukcjom od użytkownika końcowego.
  • Przekaż schemat odpowiedzi wraz z promptem, aby określić konkretny schemat wyjściowy. Ta funkcja jest najczęściej używana podczas generowania danych wyjściowych w formacie JSON, ale można jej też używać w przypadku zadań klasyfikacji (np. gdy chcesz, aby model używał określonych etykiet lub tagów).