Utilizzare la configurazione del modello per controllare le risposte

In ogni chiamata a un modello, puoi inviare una configurazione del modello per controllare il modo in cui il modello genera una risposta. Ogni modello offre opzioni di configurazione diverse.

Puoi anche sperimentare con prompt e configurazioni dei modelli utilizzando Google AI Studio.

Vai alle opzioni di configurazione di Gemini Vai alle opzioni di configurazione di Imagen (ritirato)



Configurare i modelli Gemini

Fai clic sul tuo fornitore Gemini API per visualizzare contenuti specifici del fornitore e codice in questa pagina.

In questa sezione viene illustrato come configurare un modello per l'utilizzo con i Gemini modelli e viene fornita una descrizione di ogni parametro.

Configurare un modello (Gemini)

Configurazione per i casi d'uso generali Gemini

La configurazione viene mantenuta per la durata dell'istanza. Se vuoi utilizzare una configurazione diversa, crea una nuova istanza GenerativeModel con quella configurazione.

Swift

Imposta i valori dei parametri in un GenerationConfig durante la creazione di un'istanza 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

Imposta i valori dei parametri in un GenerationConfig durante la creazione di un'istanza 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

Imposta i valori dei parametri in un GenerationConfig durante la creazione di un'istanza 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

Imposta i valori dei parametri in un GenerationConfig durante la creazione di un'istanza 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

Imposta i valori dei parametri in un GenerationConfig durante la creazione di un'istanza 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

Imposta i valori dei parametri in un GenerationConfig durante la creazione di un'istanza 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
);

Puoi trovare una descrizione di ogni parametro nella sezione successiva di questa pagina.

Configurazione per Gemini Live API

La configurazione viene mantenuta per la durata dell'istanza. Se vuoi utilizzare una configurazione diversa, crea una nuova istanza LiveModel con quella configurazione.

Swift

Imposta i valori dei parametri in the liveGenerationConfig durante l'inizializzazione dell'istanza 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

Imposta i valori dei parametri in un LiveGenerationConfig durante la creazione di un'istanza 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

Imposta i valori dei parametri in un LiveGenerationConfig durante la creazione di un'istanza 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

Imposta i valori dei parametri in LiveGenerationConfig durante l'inizializzazione dell'istanza 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

Imposta i valori dei parametri in un LiveGenerationConfig durante la creazione di un'istanza 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

Imposta i valori dei parametri in un LiveGenerationConfig durante la creazione di un'istanza 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
);

// ...

Puoi trovare una descrizione di ogni parametro nella sezione successiva di questa pagina.

Descrizione dei parametri (Gemini)

Ecco una panoramica generale dei parametri disponibili, a seconda dei casi. Puoi trovare un elenco completo dei parametri e dei relativi valori nella documentazione Gemini Developer API.

Parametro Descrizione Valore predefinito
Timestamp audio
audioTimestamp

Un valore booleano che consente di comprendere i timestamp per i file di input solo audio file.

Applicabile solo quando si utilizzano le chiamate generateContent o generateContentStream e il tipo di input è un file solo audio.

false
Conteggio dei candidati
candidateCount

Specifica il numero di varianti di risposta da restituire. Per ogni richiesta, ti vengono addebitati i token di output di tutti i candidati, ma ti viene addebitato un solo costo per i token di input.

Valori supportati: 1 - 8 (estremi inclusi)

Applicabile solo quando si utilizza generateContent e i modelli Gemini più recenti. I modelli Live API e generateContentStream non sono supportati.

1
Penalità di frequenza
frequencyPenalty
Controlla la probabilità di includere token che appaiono ripetutamente in la risposta generata.
I valori positivi penalizzano i token che appaiono ripetutamente nei contenuti generati, riducendo la probabilità di ripetere i contenuti.
---
Numero massimo di token di output
maxOutputTokens
Specifica il numero massimo di token che possono essere generati nella risposta. ---
Penalità di presenza
presencePenalty
Controlla la probabilità di includere token che sono già presenti nella risposta generata.
I valori positivi penalizzano i token che sono già presenti nei contenuti generati, aumentando la probabilità di generare contenuti più diversificati.
---
Sequenze di interruzioni
stopSequences

Specifica un elenco di stringhe che indica al modello di interrompere la generazione di contenuti se nella risposta viene rilevata una delle stringhe.

Applicabile solo quando si utilizza una configurazione.GenerativeModel

---
Temperatura
temperature
Controlla il grado di casualità della risposta.
Le temperature più basse generano risposte più deterministiche, mentre le temperature più alte generano risposte più diversificate o creative.
Dipende dal modello
Top-K
topK
Limita il numero di parole con la probabilità più alta utilizzate nei contenuti generati.
Un valore top-K di 1 indica che il token successivo selezionato deve essere il più probabile tra tutti i token nel vocabolario del modello, mentre un valore top-K di n indica che il token successivo deve essere selezionato tra gli n token più probabili (tutti in base alla temperatura impostata).
Dipende dal modello
Top-P
topP
Controlla la diversità dei contenuti generati.
I token vengono selezionati dal più probabile (vedi top-K sopra) al meno probabile finché la somma delle loro probabilità raggiunge il valore di top-P.
Dipende dal modello
Modalità di risposta
responseModality

Specifica il tipo di output in streaming quando si utilizza l' Live API o l'output multimodale nativo di un Gemini modello, ad esempio testo, audio o immagini.

Applicabile solo quando si utilizzano i modelli Live API, o quando si utilizza un modello Gemini in grado di generare output multimodale.

---
Voce
speechConfig

Specifica la voce utilizzata per l'output audio in streaming quando si utilizza il Live API.

Applicabile solo quando si utilizzano i modelli Live API.

Puck



Configurare i modelli Imagen

Fai clic sul tuo fornitore Imagen API per visualizzare contenuti specifici del fornitore e codice in questa pagina.

In questa sezione viene illustrato come configurare un modello per l'utilizzo con i Imagen modelli e viene fornita una descrizione di ogni parametro.

Configurare un modello (Imagen)

La configurazione viene mantenuta per la durata dell'istanza. Se vuoi utilizzare una configurazione diversa, crea una nuova istanza ImagenModel con quella configurazione.

Swift

Imposta i valori dei parametri in un ImagenGenerationConfig durante la creazione di un'istanza 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

Imposta i valori dei parametri in un ImagenGenerationConfig durante la creazione di un'istanza 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

Imposta i valori dei parametri in un ImagenGenerationConfig durante la creazione di un'istanza 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

Imposta i valori dei parametri in un ImagenGenerationConfig durante la creazione di un'istanza 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

Imposta i valori dei parametri in un ImagenGenerationConfig durante la creazione di un'ImagenModel istanza.


// ...

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

Imposta i valori dei parametri in un ImagenGenerationConfig durante la creazione di un'istanza 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
);

// ...

Puoi trovare una descrizione di ogni parametro nella sezione successiva di questa pagina.

Descrizione dei parametri (Imagen)

Ecco una panoramica generale dei parametri disponibili, a seconda dei casi. Puoi trovare un elenco completo dei parametri e dei relativi valori nella Google Cloud documentazione.

Parametro Descrizione Valore predefinito
Prompt negativo
negativePrompt
Una descrizione di ciò che vuoi omettere nelle immagini generate

Questo parametro non è ancora supportato da imagen-3.0-generate-002.

---
Numero di risultati
numberOfImages
Il numero di immagini generate restituite per ogni richiesta Il valore predefinito è un'immagine
Proporzioni
aspectRatio
Il rapporto tra larghezza e altezza delle immagini generate Il valore predefinito è quadrato (1:1)
Formato immagine
imageFormat
Le opzioni di output, come il formato immagine (tipo MIME) e il livello di compressione delle immagini generate Il tipo MIME predefinito è PNG
La compressione predefinita è 75 (se il tipo MIME è impostato su JPEG)
Filigrana
addWatermark
Se aggiungere una filigrana digitale non visibile (chiamata a SynthID) alle immagini generate Il valore predefinito è true
Generazione di persone
personGeneration
Se consentire la generazione di persone da parte del modello Il valore predefinito dipende dal modello
Includi attributi di sicurezza
includeSafetyAttributes
Se attivare i punteggi di AI responsabile arrotondati per un elenco di attributi di sicurezza nelle risposte per input e output non filtrati

Categorie di attributi di sicurezza: "Death, Harm & Tragedy", "Firearms & Weapons", "Hate", "Health", "Illicit Drugs", "Politics", "Porn", "Religion & Belief", "Toxic", "Violence", "Vulgarity", "War & Conflict".

Il valore predefinito è false



Altre opzioni per controllare la generazione di contenuti

  • Scopri di più sulla progettazione dei prompt per influenzare il modello in modo che generi output specifici per le tue esigenze.
  • Utilizza le impostazioni di sicurezza per regolare la probabilità di ricevere risposte che potrebbero essere considerate dannose, inclusi discorsi che incitano all'odio e contenuti sessualmente espliciti.
  • Imposta le istruzioni di sistema per guidare il comportamento del modello. Questa funzionalità è simile a un preambolo che aggiungi prima che il modello venga esposto a ulteriori istruzioni dell'utente finale.
  • Trasmetti uno schema di risposta insieme al prompt per specificare uno schema di output specifico. Questa funzionalità è più comunemente utilizzata quando si genera output JSON, ma può essere utilizzata anche per attività di classificazione (ad esempio quando vuoi che il modello utilizzi etichette o tag specifici).