Używanie konfiguracji modelu do kontrolowania odpowiedzi

W każdym wywołaniu modelu możesz wysłać konfigurację modelu, aby określić, jak model ma generować odpowiedź. Każdy model oferuje inne opcje konfiguracji.

Możesz też eksperymentować z promptami i konfiguracjami modeli w Google AI Studio.

Przejdź do Gemini opcji konfiguracji Przejdź do Imagen opcji konfiguracji (Wycofane)



Konfigurowanie modeli Gemini

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

W tej sekcji dowiesz się, jak skonfigurować model do użycia z Gemini modelami, oraz znajdziesz opis każdego parametru.

Konfigurowanie modelu (Gemini)

Konfiguracja na potrzeby ogólnych Gemini przypadków użycia

Konfiguracja jest utrzymywana przez cały okres istnienia instancji. Jeśli chcesz użyć innej konfiguracji, utwórz nową instancję GenerativeModel z tą konfiguracją.

Swift

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

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

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

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

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

// ...

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

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

Konfiguracja na potrzeby Gemini Live API

Konfiguracja jest utrzymywana przez cały okres istnienia instancji. Jeśli chcesz użyć innej konfiguracji, utwórz nową instancję LiveModel z tą 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(
  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

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

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

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

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

// ...

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

// ...

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

Opis parametrów (Gemini)

Oto ogólny przegląd dostępnych parametrów. Pełną listą parametrów i ich wartości znajdziesz w Gemini Developer API dokumentacji.

Parametr Opis Wartość domyślna
Sygnatura czasowa dźwięku
audioTimestamp

Wartość logiczna, która umożliwia rozpoznawanie sygnatur czasowych w plikach wejściowych zawierających tylko dźwięk.

Ma zastosowanie tylko w przypadku używania generateContent lub generateContentStream wywołań, a typem danych wejściowych jest plik zawierający tylko dźwięk.

false
Liczba kandydatów
candidateCount

Określa liczbę wariantów odpowiedzi do zwrócenia. Za każde żądanie naliczana jest opłata za tokeny wyjściowe wszystkich kandydatów, ale opłata za tokeny wejściowe jest naliczana tylko raz.

Obsługiwane wartości: 18 (włącznie)

Ma zastosowanie tylko w przypadku używania generateContent i najnowszych modeli Gemini. Modele Live API i generateContentStream nie są obsługiwane.

1
Kara za częstotliwość
frequencyPenalty
Określa prawdopodobieństwo uwzględnienia tokenów, które wielokrotnie pojawiają się w wygenerowanej odpowiedzi.
Wartości dodatnie powodują karanie tokenów, które wielokrotnie pojawiają się w wygenerowanych treściach, co zmniejsza prawdopodobieństwo powtórzenia treści.
---
Maksymalna liczba tokenów wyjściowych
maxOutputTokens
Określa maksymalną liczbę tokenów, które mogą zostać wygenerowane w odpowiedzi. ---
Kara za obecność
presencePenalty
Określa prawdopodobieństwo uwzględnienia tokenów, które już pojawiają się w wygenerowanej odpowiedzi.
Wartości dodatnie powodują karanie tokenów, które już pojawiają się w wygenerowanych treściach, co zwiększa prawdopodobieństwo wygenerowania bardziej różnorodnych treści.
---
Sekwencje zatrzymania
stopSequences

Określa listę ciągów znaków, które informują model, aby przestał generować treści, jeśli w odpowiedzi zostanie napotkany jeden z tych ciągów.

Ma zastosowanie tylko w przypadku używania konfiguracji GenerativeModel

---
Temperatura
temperature
Określa stopień losowości w odpowiedzi.
Niższe temperatury powodują bardziej deterministyczne odpowiedzi, a wyższe temperatury – bardziej różnorodne lub kreatywne.
Zależy od modelu
Top-K
topK
Ogranicza liczbę słów o największym prawdopodobieństwie używanych w wygenerowanych treściach.
Wartość Top-K równa 1 oznacza, że następny wybrany token powinien być najbardziej prawdopodobny spośród wszystkich tokenów w słowniku modelu, natomiast wartość Top-K równa n oznacza, że następny token powinien zostać wybrany spośród n najbardziej prawdopodobnych tokenów (wszystko na podstawie ustawionej temperatury).
Zależy od modelu
Top-P
topP
Określa różnorodność wygenerowanych treści.
Tokeny są wybierane w kolejności od najbardziej (patrz Top-K powyżej) do najmniej prawdopodobnych, aż suma ich prawdopodobieństw będzie równa wartości Top-P.
Zależy od modelu
Modalność odpowiedzi
responseModality

Określa typ strumieniowych danych wyjściowych podczas korzystania z Live API lub natywnych danych wyjściowych multimodalnych generowanych przez Gemini model, np. tekst, dźwięk lub obrazy.

Ma zastosowanie tylko w przypadku używania modeli Live API, lub w przypadku używania modelu Gemini, który może generować dane wyjściowe multimodalne.

---
Mowa (głos)
speechConfig

Określa głos używany na potrzeby strumieniowych danych wyjściowych audio podczas korzystania z Live API.

Ma zastosowanie tylko w przypadku używania modeli Live API.

Puck



Konfigurowanie modeli Imagen

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

W tej sekcji dowiesz się, jak skonfigurować model do użycia z Imagen modelami, oraz znajdziesz opis każdego parametru.

Konfigurowanie modelu (Imagen)

Konfiguracja jest utrzymywana przez cały okres istnienia instancji. Jeśli chcesz użyć innej konfiguracji, utwórz nową instancję ImagenModel z tą konfiguracją.

Swift

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

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

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

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

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

// ...

Unity

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

// ...

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

Opis parametrów (Imagen)

Oto ogólny przegląd dostępnych parametrów. Pełną listę parametrów i ich wartości znajdziesz w Google Cloud dokumentacji.

Parametr Opis Wartość domyślna
Prompt negatywny
negativePrompt
Opis tego, co chcesz pominąć w wygenerowanych obrazach.

Ten parametr nie jest jeszcze obsługiwany przez imagen-3.0-generate-002.

---
Liczba wyników
numberOfImages
Liczba wygenerowanych obrazów zwracanych w odpowiedzi na każde żądanie. Domyślnie jest to 1 obraz.
Format obrazu
aspectRatio
Stosunek szerokości do wysokości wygenerowanych obrazów. Domyślnie jest to kwadrat (1:1).
Format obrazu
imageFormat
Opcje wyjściowe, takie jak format obrazu (typ MIME) i poziom kompresji wygenerowanych obrazów. Domyślny typ MIME to PNG
Domyślny poziom kompresji to 75 (jeśli typ MIME jest ustawiony na JPEG).
Znak wodny
addWatermark
Czy do wygenerowanych obrazów ma być dodawany niewidoczny cyfrowy znak wodny (SynthID). Domyślnie jest to true.
Generowanie osób
personGeneration
Czy model ma mieć możliwość generowania obrazów osób. Domyślna wartość zależy od modelu.
Uwzględnij atrybuty bezpieczeństwa
includeSafetyAttributes
Czy w odpowiedziach na niefiltrowane dane wejściowe i wyjściowe mają być włączone zaokrąglone wyniki odpowiedzialnej AI dla listy atrybutów bezpieczeństwa .

Kategorie atrybutów bezpieczeństwa: "Death, Harm & Tragedy", "Firearms & Weapons", "Hate", "Health", "Illicit Drugs", "Politics", "Porn", "Religion & Belief", "Toxic", "Violence", "Vulgarity", "War & Conflict".

Domyślnie jest to false.



Inne opcje kontrolowania generowania treści

  • Dowiedz się więcej o projektowaniu promptów aby wpływać na model i generować dane wyjściowe 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 działa jak wstęp, który dodajesz, zanim model zostanie poddany dalszym instrukcjom od użytkownika.
  • Przekaż wraz z promptem schemat odpowiedzi, aby określić konkretny schemat danych wyjściowych. Ta funkcja jest najczęściej używana podczas generowania danych wyjściowych JSON, ale można jej też używać do zadań klasyfikacji (np. gdy chcesz, aby model używał określonych etykiet lub tagów).