Gemini 2.5 possono utilizzare un "processo di pensiero" interno che migliora significativamente le loro capacità di ragionamento e pianificazione in più passaggi, rendendoli altamente efficaci per attività complesse come la programmazione, la matematica avanzata e l'analisi dei dati.
Puoi configurare la quantità di pensiero che un modello può svolgere utilizzando un budget di pensiero. Questa configurazione è particolarmente importante se la riduzione della latenza o dei costi è una priorità. Inoltre, consulta il confronto delle difficoltà delle attività per decidere quanto un modello potrebbe aver bisogno della sua capacità di pensiero.
Utilizzare un modello di pensiero
Utilizza un modello di pensiero proprio come faresti con qualsiasi altro Gemini modello
(inizializza il provider Gemini API scelto, crea un'istanza GenerativeModel
e così via).
Questi modelli possono essere utilizzati per attività di generazione di testo o codice, ad esempio
generare output strutturati
o analizzare input multimodali (come
immagini,
video,
audio,
o
PDF).
Puoi anche utilizzare modelli di pensiero durante lo streaming dell'output.
Modelli supportati
Solo i modelli Gemini 2.5 supportano questa funzionalità.
gemini-2.5-pro
gemini-2.5-flash
gemini-2.5-flash-lite-preview-06-17
Best practice per l'utilizzo dei modelli di pensiero
Ti consigliamo di testare il prompt in Google AI Studio o Vertex AI Studio dove puoi visualizzare l'intero processo di pensiero. Puoi identificare le aree in cui il modello potrebbe aver sbagliato, in modo da poter perfezionare i prompt per ottenere risposte più coerenti e accurate.
Inizia con un prompt generale che descriva il risultato desiderato e osserva i pensieri iniziali del modello su come determina la sua risposta. Se la risposta non è quella che ti aspettavi, aiuta il modello a generare una risposta migliore utilizzando una delle tecniche di prompting seguenti:
- Fornisci istruzioni passo passo
- Fornisci diversi esempi di coppie input-output
- Fornisci indicazioni su come devono essere formulate e formattate l'output e le risposte.
- Fornisci passaggi di verifica specifici
Oltre ai prompt, valuta la possibilità di utilizzare questi consigli:
Imposta le istruzioni di sistema, che sono come un "preambolo" che aggiungi prima che il modello venga esposto a ulteriori istruzioni dal prompt o dall'utente finale. Ti consentono di indirizzare il comportamento del modello in base alle tue esigenze e ai tuoi casi d'uso specifici.
Imposta un budget di pensiero per configurare la quantità di pensiero che il modello può fare. Se imposti un budget basso, il modello non "penserà troppo" alla sua risposta. Se imposti un budget elevato, il modello può pensare di più, se necessario. L'impostazione di un budget di pensiero riserva anche una parte maggiore del limite totale di token di output per la risposta effettiva.
(se utilizzi Vertex AI Gemini API) Assicurati di attivare AI Monitoring nella console Firebase in modo da poter monitorare la latenza delle richieste per cui è stata attivata la funzionalità di pensiero. Tieni presente che i token di pensiero non vengono ancora visualizzati nelle dashboard di monitoraggio.
Controllare il budget di pensiero
Per controllare la quantità di pensiero che il modello può utilizzare per generare la risposta, puoi specificare il numero di token del budget di pensiero che può utilizzare.
Puoi impostare manualmente il budget di pensiero nelle situazioni in cui potresti aver bisogno di più o meno token rispetto al budget di pensiero predefinito. Più avanti in questa sezione troverai indicazioni più dettagliate sulla complessità delle attività e sui budget suggeriti. Ecco alcune indicazioni di alto livello:
- Imposta un budget di pensiero basso se la latenza è importante o per attività meno complesse
- Imposta un budget di pensiero elevato per le attività più complesse
Impostare il budget di pensiero
Fai clic sul tuo fornitore Gemini API per visualizzare i contenuti e il codice specifici del fornitore in questa pagina. |
Imposta il budget di pensiero in un GenerationConfig
durante la creazione dell'istanza
GenerativeModel
. La configurazione viene mantenuta per l'intera durata dell'istanza. Se vuoi utilizzare budget di pensiero diversi per richieste diverse, crea istanze GenerativeModel
configurate con ciascun budget.
Scopri di più sui valori del budget di spesa supportati più avanti in questa sezione.
Swift
Imposta il budget di pensiero in un
GenerationConfig
durante la creazione di un'istanza GenerativeModel
.
// ...
// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
let generationConfig = GenerationConfig(
thinkingConfig: ThinkingConfig(thinkingBudget: 1024)
)
// Specify the config as part of creating the `GenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
modelName: "GEMINI_MODEL_NAME",
generationConfig: generationConfig
)
// ...
Kotlin
Imposta i valori dei parametri in un
GenerationConfig
durante la creazione di un'istanza GenerativeModel
.
// ...
// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
val generationConfig = generationConfig {
thinkingConfig = thinkingConfig {
thinkingBudget = 1024
}
}
// Specify the config as part of creating the `GenerativeModel` instance
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
modelName = "GEMINI_MODEL_NAME",
generationConfig,
)
// ...
Java
Imposta i valori dei parametri in un
GenerationConfig
durante la creazione di un'istanza GenerativeModel
.
// ...
// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
ThinkingConfig thinkingConfig = new ThinkingConfig.Builder()
.setThinkingBudget(1024)
.build();
GenerationConfig generationConfig = GenerationConfig.builder()
.setThinkingConfig(thinkingConfig)
.build();
// Specify the config as part of creating the `GenerativeModel` instance
GenerativeModelFutures model = GenerativeModelFutures.from(
FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
/* modelName */ "<var>GEMINI_MODEL_NAME</var>",
/* generationConfig */ generationConfig
);
);
// ...
Web
Imposta i valori dei parametri in un
GenerationConfig
durante la creazione di un'istanza GenerativeModel
.
// ...
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
const generationConfig = {
thinkingConfig: {
thinkingBudget: 1024
}
};
// Specify the config as part of creating the `GenerativeModel` instance
const model = getGenerativeModel(ai, { model: "GEMINI_MODEL_NAME", generationConfig });
// ...
Dart
Il supporto per l'impostazione di un budget di pensiero per Flutter sarà disponibile nella prossima release.
Unity
Il supporto per l'impostazione di un budget di pensiero per Unity sarà disponibile nella prossima release.
Valori supportati per il budget di pensiero
La tabella seguente elenca i valori del budget di pensiero che puoi impostare per ogni modello configurando thinkingBudget
del modello.
Modello | Valore predefinito | Intervallo disponibile per il budget di pensiero |
Valore per disattivare il pensiero |
Valore per favorire il pensiero dinamico |
|
---|---|---|---|---|---|
Valore minimo | Valore massimo | ||||
Gemini 2.5 Pro | 8,192 |
128 |
32,768 |
non può essere disattivato | -1 |
Gemini 2.5 Flash | 8,192 |
1 |
24,576 |
0 |
-1 |
Gemini 2.5 Flash‑Lite | 0 (il pensiero è disattivato per impostazione predefinita) |
512 |
24,576 |
0 (o non configurare il budget di pensiero) |
-1 |
Disattiva il processo elaborativo
Per alcune attività più semplici, la capacità di ragionamento non è necessaria e l'inferenza tradizionale è sufficiente. Oppure, se la riduzione della latenza è una priorità, potresti non volere che il modello impieghi più tempo del necessario per generare una risposta.
In queste situazioni, puoi disattivare (o disabilitare) la funzionalità di pensiero:
- Gemini 2.5 Pro: il pensiero non può essere disattivato
- Gemini 2.5 Flash: imposta
thinkingBudget
su0
token - Gemini 2.5 Flash-Lite: la funzionalità di pensiero è disattivata per impostazione predefinita
Attivare il pensiero dinamico
Puoi lasciare che il modello decida quando e quanto pensare (funzionalità chiamata
pensiero dinamico) impostando thinkingBudget
su -1
. Il modello può utilizzare
tutti i token che ritiene opportuno, fino al valore massimo di token
elencato sopra.
Complessità dell'attività
Attività semplici: il pensiero potrebbe essere disattivato
Richieste semplici in cui non è necessario un ragionamento complesso, ad esempio il recupero o la classificazione di fatti. Esempi:- "Dove è stata fondata DeepMind?"
- "Questa email richiede una riunione o fornisce solo informazioni?"
Attività medie: è necessario il budget predefinito o un budget di pensiero aggiuntivo
Richieste comuni che traggono vantaggio da un'elaborazione passo passo o da una comprensione più approfondita. Esempi:- "Crea un'analogia tra la fotosintesi e la crescita."
- "Confronta e contrapponi auto elettriche e auto ibride".
Attività difficili: potrebbe essere necessario il budget di pensiero massimo
Sfide davvero complesse, come la risoluzione di problemi di matematica complessi o attività di programmazione. Questi tipi di attività richiedono al modello di utilizzare tutte le sue capacità di ragionamento e pianificazione, spesso coinvolgendo molti passaggi interni prima di fornire una risposta. Esempi:- "Risolvi il problema 1 dell'AIME 2025: trova la somma di tutte le basi intere b > 9 per le quali 17b è un divisore di 97b."
- "Scrivi codice Python per un'applicazione web che visualizzi dati di mercato azionario in tempo reale, inclusa l'autenticazione utente. Rendilo il più efficiente possibile".
Prezzi e conteggio dei token di pensiero
I token di pensiero utilizzano gli stessi prezzi dei token di output di testo.
Puoi ottenere il numero totale di token di pensiero dal campo thoughtsTokenCount
nell'attributo usageMetadata
della risposta:
Swift
// ...
let response = try await model.generateContent("Why is the sky blue?")
if let usageMetadata = response.usageMetadata {
print("Thoughts Token Count: \(usageMetadata.thoughtsTokenCount)")
}
Kotlin
// ...
val response = model.generateContent("Why is the sky blue?")
response.usageMetadata?.let { usageMetadata ->
println("Thoughts Token Count: ${usageMetadata.thoughtsTokenCount}")
}
Java
// ...
ListenableFuture<GenerateContentResponse> response =
model.generateContent("Why is the sky blue?");
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
String usageMetadata = result.getUsageMetadata();
if (usageMetadata != null) {
System.out.println("Thoughts Token Count: " +
usageMetadata.getThoughtsTokenCount());
}
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
Web
// ...
const response = await model.generateContent("Why is the sky blue?");
if (response?.usageMetadata?.thoughtsTokenCount != null) {
console.log(`Thoughts Token Count: ${response.usageMetadata.thoughtsTokenCount}`);
}
Dart
Il supporto per il conteggio dei token di pensiero per Flutter sarà disponibile nella prossima release.
Unity
Il supporto per il conteggio dei token di pensiero per Unity sarà disponibile nella prossima release.
Scopri di più sui token nella guida al conteggio dei token.