Parametri di generazione dei contenuti

Questa pagina mostra i parametri di campionamento facoltativi che puoi impostare in una richiesta a un modello. I parametri disponibili per ogni modello possono variare. Per saperne di più, consulta la documentazione di riferimento.

Parametri di campionamento dei token

I parametri di questa sezione influiscono sul modo in cui il modello seleziona il token successivo dal suo vocabolario. Regolando questi parametri, puoi controllare la casualità e la diversità del testo generato.

Top-K

Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a 1 indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (chiamato anche decodifica greedy). Un top-K pari a 3 indica, invece, che il token successivo viene selezionato tra i tre token più probabili (utilizzando la temperatura).

Per ogni fase di selezione dei token, vengono campionati i token top-K con le probabilità più alte. Quindi i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.

Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.

Per Gemini 3.5 Flash, topK è fissato a 64 e non può essere modificato.

Per saperne di più, consulta topK.

Top-P

Top-P cambia il modo in cui il modello seleziona i token per l'output. I token vengono selezionati dal più probabile al meno probabile finché la somma delle loro probabilità raggiunge il valore di top-P. Ad esempio, se i token A, B e C hanno una probabilità di 0,3, 0,2 e 0,1 e il valore di top-P è 0.5, il modello seleziona A o B come token successivo utilizzando la temperatura ed esclude C come candidato.

Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.

Per saperne di più, consulta topP.

Temperatura

La temperatura viene utilizzata per il campionamento durante la generazione della risposta, che avviene quando vengono applicati topP e topK. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature basse sono ideali per prompt che richiedono risposte meno aperte o creative, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a 0 significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato prompt sono per lo più deterministiche, ma è comunque possibile una piccola variazione.

Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura. Se il modello entra in una generazione infinita, l'aumento della temperatura ad almeno 0.1 potrebbe portare a risultati migliori.

1.0 è il valore iniziale consigliato per la temperatura.

Temperature più basse portano a risultati prevedibili (ma non completamente deterministici). Per saperne di più, consulta temperature.

Parametri di arresto

I parametri di questa sezione ti consentono di controllare con precisione la lunghezza e il contenuto dell'output generato dal modello definendo le condizioni in cui il processo di generazione deve interrompersi.

Numero massimo di token di output

Imposta maxOutputTokens per limitare il numero di token generati nella risposta. Un token equivale a circa quattro caratteri, quindi 100 token corrispondono a circa 60-80 parole. Imposta un valore basso per limitare la lunghezza della risposta.

Sequenze di interruzioni

Definisci le stringhe in stopSequences per indicare al modello di interrompere la generazione di testo se una delle stringhe viene rilevata nella risposta. Se una stringa viene visualizzata più volte nella risposta, quest'ultima viene troncata nel punto in cui la stringa viene rilevata per la prima volta. Le stringhe sono sensibili alle maiuscole.

Parametri di penalizzazione dei token

I parametri di questa sezione ti consentono di controllare la probabilità che i token vengano generati in base alla loro frequenza e presenza nell'output.

Penalità di frequenza

I valori positivi penalizzano i token che compaiono ripetutamente nel testo generato, riducendo la probabilità di ripetere i contenuti. Il valore minimo è -2.0. Il valore massimo è fino a 2.0, ma non incluso. Per saperne di più, consulta frequencyPenalty nella documentazione di GenerationConfig.

Penalità di presenza

I valori positivi penalizzano i token che compaiono già nel testo generato, aumentando la probabilità di generare contenuti più diversificati. Il valore minimo è -2.0. Il valore massimo è fino a 2.0, escluso. Per saperne di più, consulta presencePenalty nella documentazione di GenerationConfig.

Parametri del formato della risposta

I parametri di questa sezione consentono di configurare il formato dell'output generato dal modello.

Tipo MIME di risposta

Imposta responseMimeType per specificare il tipo MIME della risposta di output del testo candidato generato. I valori supportati includono:

  • text/plain (predefinito): output di testo normale.
  • application/json: risposta JSON nei candidati.
  • text/x.enum: per le attività di classificazione, genera un valore enum come definito nello schema di risposta.

Specifica il tipo di risposta appropriato per evitare comportamenti indesiderati. Ad esempio, se hai bisogno di una risposta in formato JSON, specifica application/json e non text/plain.

Per saperne di più, consulta responseMimeType e Output strutturato.

Parametri avanzati

Utilizza questi parametri per restituire ulteriori informazioni sui token nella risposta o per controllare la variabilità della risposta.

Numero di candidati

Il numero di varianti di risposta da restituire. Per ogni richiesta, ti vengono addebitati i token di output di tutti i candidati, ma i token di input ti vengono addebitati una sola volta.

La specifica di più candidati è una funzionalità in anteprima che funziona con generateContent (streamGenerateContent non è supportato).

Per saperne di più, consulta candidateCount.

Seed

Quando il seed è impostato su un valore specifico, il modello fa del suo meglio per fornire la stessa risposta per le richieste ripetute. L'output deterministico non è garantito. Inoltre, la modifica del modello o delle impostazioni dei parametri, come la temperatura, può causare variazioni nella risposta anche se utilizzi lo stesso valore seed. Per impostazione predefinita, viene utilizzato un valore seed casuale. Per saperne di più, consulta seed.

Esempio

Ecco un esempio che utilizza i parametri per ottimizzare la risposta di un modello.

Python

Installa

pip install --upgrade google-genai

Per saperne di più, consulta la documentazione di riferimento dell'SDK.

Imposta le variabili di ambiente per utilizzare l'SDK Google Gen AI con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

from google import genai
from google.genai.types import GenerateContentConfig, HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))
response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Why is the sky blue?",
    # See the SDK documentation at
    # https://googleapis.github.io/python-genai/genai.html#genai.types.GenerateContentConfig
    config=GenerateContentConfig(
        temperature=0,
        candidate_count=1,
        response_mime_type="application/json",
        top_p=0.95,
        top_k=20,
        seed=5,
        max_output_tokens=500,
        stop_sequences=["STOP!"],
        presence_penalty=0.0,
        frequency_penalty=0.0,
    ),
)
print(response.text)
# Example response:
# {
#   "explanation": "The sky appears blue due to a phenomenon called Rayleigh scattering. When ...
# }

Go

Scopri come installare o aggiornare l'Go.

Per saperne di più, consulta la documentazione di riferimento dell'SDK.

Imposta le variabili di ambiente per utilizzare l'SDK Google Gen AI con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

import (
	"context"
	"fmt"
	"io"

	genai "google.golang.org/genai"
)

// generateWithConfig shows how to generate text using a text prompt and custom configuration.
func generateWithConfig(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	modelName := "gemini-2.5-flash"
	contents := genai.Text("Why is the sky blue?")
	// See the documentation: https://pkg.go.dev/google.golang.org/genai#GenerateContentConfig
	config := &genai.GenerateContentConfig{
		Temperature:      genai.Ptr(float32(0.0)),
		CandidateCount:   int32(1),
		ResponseMIMEType: "application/json",
	}

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, config)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText := resp.Text()

	fmt.Fprintln(w, respText)
	// Example response:
	// {
	//   "explanation": "The sky is blue due to a phenomenon called Rayleigh scattering ...
	// }

	return nil
}

Node.js

Installa

npm install @google/genai

Per saperne di più, consulta la documentazione di riferimento dell'SDK.

Imposta le variabili di ambiente per utilizzare l'SDK Google Gen AI con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateContent(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const client = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const config = {
    temperature: 0,
    candidateCount: 1,
    responseMimeType: 'application/json',
    topP: 0.95,
    topK: 20,
    seed: 5,
    maxOutputTokens: 500,
    stopSequences: ['STOP!'],
    presencePenalty: 0.0,
    frequencyPenalty: 0.0,
  };

  const response = await client.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: 'Why is the sky blue?',
    config: config,
  });

  console.log(response.text);

  // Example response:
  // {
  //   "explanation": "The sky appears blue due to a phenomenon called Rayleigh scattering. When ...
  // }

  return response.text;
}

Java

Scopri come installare o aggiornare l'Java.

Per saperne di più, consulta la documentazione di riferimento dell'SDK.

Imposta le variabili di ambiente per utilizzare l'SDK Google Gen AI con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True


import com.google.genai.Client;
import com.google.genai.types.GenerateContentConfig;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;

public class TextGenerationConfigWithText {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.5-flash";
    generateContent(modelId);
  }

  // Generates text with text input and optional configurations
  public static String generateContent(String modelId) {
    // Client Initialization. Once created, it can be reused for multiple requests.
    try (Client client =
        Client.builder()
            .location("global")
            .vertexAI(true)
            .httpOptions(HttpOptions.builder().apiVersion("v1").build())
            .build()) {

      // Set optional configuration parameters
      GenerateContentConfig contentConfig =
          GenerateContentConfig.builder()
              .temperature(0.0F)
              .candidateCount(1)
              .responseMimeType("application/json")
              .topP(0.95F)
              .topK(20F)
              .seed(5)
              .maxOutputTokens(500)
              .stopSequences("STOP!")
              .presencePenalty(0.0F)
              .frequencyPenalty(0.0F)
              .build();

      // Generate content using optional configuration
      GenerateContentResponse response =
          client.models.generateContent(modelId, "Why is the sky blue?", contentConfig);

      System.out.print(response.text());
      // Example response:
      // {
      //  "explanation": "The sky appears blue due to a phenomenon called Rayleigh scattering.
      // Sunlight, which appears white, is actually composed of all the colors of the rainbow...
      // }
      return response.text();
    }
  }
}

Passaggi successivi