Gemini 2.5-Modelle können einen internen „Denkprozess“ nutzen, der ihre Fähigkeiten in Bezug auf logisches Denken und mehrstufige Planung erheblich verbessert. Dadurch eignen sie sich hervorragend für komplexe Aufgaben wie Programmieren, fortgeschrittene Mathematik und Datenanalyse.
Sie können mit einem Thinking-Budget konfigurieren, wie viel ein Modell denken darf. Diese Konfiguration ist besonders wichtig, wenn Sie die Latenz oder die Kosten senken möchten. Sehen Sie sich auch den Vergleich der Schwierigkeitsgrade von Aufgaben an, um zu entscheiden, wie stark ein Modell seine Denkfähigkeit einsetzen muss.
Denkmodell verwenden
Verwenden Sie ein Denkmodell wie jedes andere Gemini-Modell. Initialisieren Sie den ausgewählten Gemini API-Anbieter, erstellen Sie eine GenerativeModel
-Instanz usw.
Diese Modelle können für Aufgaben zur Text- oder Codeerstellung verwendet werden, z. B. zum Generieren strukturierter Ausgaben oder zum Analysieren multimodaler Eingaben wie Bilder, Videos, Audiodateien oder PDFs.
Sie können Denkmodelle sogar verwenden, wenn Sie die Ausgabe streamen.
Unterstützte Modelle
Diese Funktion wird nur von Gemini 2.5-Modellen unterstützt.
gemini-2.5-pro
gemini-2.5-flash
gemini-2.5-flash-lite-preview-06-17
Best Practices für die Verwendung von Denkmodellen
Wir empfehlen, Ihren Prompt in Google AI Studio oder Vertex AI Studio zu testen, da Sie dort den gesamten Denkprozess sehen können. So können Sie Bereiche identifizieren, in denen das Modell möglicherweise vom richtigen Weg abgekommen ist, und Ihre Prompts verfeinern, um konsistentere und genauere Antworten zu erhalten.
Beginnen Sie mit einem allgemeinen Prompt, der das gewünschte Ergebnis beschreibt, und beobachten Sie, wie das Modell seine Antwort bestimmt. Wenn die Antwort nicht wie erwartet ausfällt, können Sie dem Modell helfen, eine bessere Antwort zu generieren, indem Sie eine der folgenden Prompting-Techniken verwenden:
- Detaillierte Anleitung
- Mehrere Beispiele für Eingabe/Ausgabe-Paare angeben
- Geben Sie an, wie die Ausgabe und die Antworten formuliert und formatiert werden sollen.
- Genaue Bestätigungsschritte angeben
Zusätzlich zu Prompts können Sie auch die folgenden Empfehlungen berücksichtigen:
Legen Sie Systemanweisungen fest. Diese sind wie eine „Präambel“, die Sie hinzufügen, bevor das Modell für weitere Anweisungen aus dem Prompt oder vom Endnutzer freigegeben wird. Damit können Sie das Verhalten des Modells entsprechend Ihren spezifischen Anforderungen und Anwendungsfällen steuern.
Legen Sie ein Thinking-Budget fest, um zu konfigurieren, wie viel das Modell überlegen darf. Wenn Sie ein niedriges Budget festlegen, wird das Modell seine Antwort nicht „überdenken“. Wenn Sie ein hohes Budget festlegen, kann das Modell bei Bedarf mehr Zeit für die Antwort aufwenden. Wenn Sie ein Thinking-Budget festlegen, wird auch mehr des gesamten Tokenausgabelimits für die eigentliche Antwort reserviert.
(bei Verwendung der Vertex AI Gemini API): Aktivieren Sie KI-Monitoring in der Firebase-Konsole, damit Sie die Latenz Ihrer Anfragen mit aktivierter Denkfunktion überwachen können. Hinweis: Denkmuster werden noch nicht in den Monitoring-Dashboards angezeigt.
Budget für Denkprozesse steuern
Sie können festlegen, wie viele Tokens für das Budget für Denkprozesse das Modell verwenden darf, um seine Antwort zu generieren.
Sie können das Budget für Denkprozesse manuell festlegen, wenn Sie mehr oder weniger Tokens als das Standardbudget für Denkprozesse benötigen. Weitere Informationen zur Komplexität von Aufgaben und zu vorgeschlagenen Budgets finden Sie weiter unten in diesem Abschnitt. Hier einige allgemeine Hinweise:
- Niedriges Budget für Denkprozesse festlegen, wenn Latenz wichtig ist oder für weniger komplexe Aufgaben
- Hohes Budget für Denkprozesse für komplexere Aufgaben festlegen
Budget für Denkprozesse festlegen
Klicken Sie auf Ihren Gemini API-Anbieter, um anbieterspezifische Inhalte und Code auf dieser Seite aufzurufen. |
Legen Sie das Budget für Denkprozesse in einem GenerationConfig
fest, wenn Sie die GenerativeModel
-Instanz erstellen. Die Konfiguration wird für die gesamte Lebensdauer der Instanz beibehalten. Wenn Sie für verschiedene Anfragen unterschiedliche Denkbudgets verwenden möchten, erstellen Sie GenerativeModel
-Instanzen, die mit dem jeweiligen Budget konfiguriert sind.
Unterstützte Werte für das Thinking-Budget finden Sie weiter unten in diesem Abschnitt.
Swift
Legen Sie das Budget für Denkprozesse in einem GenerationConfig
fest, wenn Sie eine GenerativeModel
-Instanz erstellen.
// ...
// 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
Legen Sie die Werte der Parameter in einem GenerationConfig
fest, wenn Sie eine GenerativeModel
-Instanz erstellen.
// ...
// 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
Legen Sie die Werte der Parameter in einem GenerationConfig
fest, wenn Sie eine GenerativeModel
-Instanz erstellen.
// ...
// 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
Legen Sie die Werte der Parameter in einem GenerationConfig
fest, wenn Sie eine GenerativeModel
-Instanz erstellen.
// ...
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
Die Unterstützung für die Festlegung eines Denkbudgets für Flutter wird in der nächsten Version eingeführt.
Einheit
Die Unterstützung für die Festlegung eines Denkbudgets für Unity wird im nächsten Release eingeführt.
Unterstützte Werte für das Budget für Denkprozesse
In der folgenden Tabelle sind die Werte für das Denkbudget aufgeführt, die Sie für jedes Modell festlegen können, indem Sie die thinkingBudget
des Modells konfigurieren.
Modell | Standardwert | Verfügbarer Bereich für das Budget für Denkprozesse |
Wert zum Deaktivieren des Denkens |
Wert für dynamisches Denken |
|
---|---|---|---|---|---|
Mindestwert | Höchstwert | ||||
Gemini 2.5 Pro | 8,192 |
128 |
32,768 |
Kann nicht deaktiviert werden | -1 |
Gemini 2.5 Flash | 8,192 |
1 |
24,576 |
0 |
-1 |
Gemini 2.5 Flash‑Lite | 0 (thinking is disabled by default) |
512 |
24,576 |
0 oder konfigurieren Sie das Budget für Denkprozesse gar nicht |
-1 |
Gedankengang deaktivieren
Für einige einfachere Aufgaben ist die Denkfähigkeit nicht erforderlich und die herkömmliche Inferenz reicht aus. Wenn die Latenz reduziert werden soll, sollte das Modell nicht mehr Zeit als nötig für die Generierung einer Antwort benötigen.
In diesen Fällen können Sie das Denken deaktivieren:
- Gemini 2.5 Pro: Die Denkphase kann nicht deaktiviert werden.
- Gemini 2.5 Flash:
thinkingBudget
auf0
Tokens festgelegt - Gemini 2.5 Flash-Lite: Die Funktion „Thinking“ ist standardmäßig deaktiviert.
Dynamisches Denken fördern
Sie können das Modell entscheiden lassen, wann und wie viel es denkt (dynamisches Denken), indem Sie thinkingBudget
auf -1
setzen. Das Modell kann so viele Tokens verwenden, wie es für angemessen hält, bis zum oben aufgeführten maximalen Token-Wert.
Aufgabenkomplexität
Einfache Aufgaben – Denken kann deaktiviert werden
Unkomplizierte Anfragen, bei denen keine komplexen Überlegungen erforderlich sind, z. B. das Abrufen von Fakten oder die Klassifizierung. Beispiele:- „Where was DeepMind founded?“ (Wo wurde DeepMind gegründet?)
- „Wird in dieser E‑Mail um ein Treffen gebeten oder werden nur Informationen bereitgestellt?“
Mittelgroße Aufgaben – Standardbudget oder zusätzliches Budget für das Durchdenken erforderlich
Häufige Anfragen, die von einer schrittweisen Verarbeitung oder einem tieferen Verständnis profitieren. Beispiele:- „Erstelle eine Analogie zwischen Photosynthese und Erwachsenwerden.“
- „Vergleiche Elektroautos und Hybridautos und stelle sie gegenüber.“
Schwierige Aufgaben – maximales Denkbudget erforderlich
Wirklich komplexe Aufgaben, z. B. das Lösen komplexer mathematischer Probleme oder Programmieraufgaben. Bei diesen Arten von Aufgaben muss das Modell seine gesamten Denk- und Planungsfähigkeiten einsetzen. Oft sind viele interne Schritte erforderlich, bevor eine Antwort gegeben wird. Beispiele:- „Löse Aufgabe 1 des AIME 2025: Finde die Summe aller ganzzahligen Basen b > 9, für die 17b ein Teiler von 97b ist.“
- „Schreibe Python-Code für eine Webanwendung, die Echtzeit-Börsendaten visualisiert, einschließlich der Nutzerauthentifizierung. Mache es so effizient wie möglich.“
Preise und Zählen von Thinking-Tokens
Für Thinking-Tokens gilt dieselbe Preisgestaltung wie für Text-Output-Tokens.
Die Gesamtzahl der Thinking-Tokens finden Sie im Feld thoughtsTokenCount
des Attributs usageMetadata
der Antwort:
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
Die Unterstützung für das Zählen von „Thinking“-Tokens für Flutter ist in der nächsten Version verfügbar.
Einheit
Die Unterstützung für das Zählen von Thinking-Tokens für Unity wird im nächsten Release eingeführt.
Weitere Informationen zu Tokens