Modelet e serive Gemini 3 dhe 2.5 përdorin një "proces të të menduarit" të brendshëm që përmirëson ndjeshëm aftësitë e tyre të arsyetimit dhe planifikimit me shumë hapa, duke i bërë ato shumë efektive për detyra komplekse siç janë kodimi, matematika e avancuar dhe analiza e të dhënave.
Ky udhëzues ju tregon se si të punoni me aftësitë e të menduarit të Gemini duke përdorur Gemini API.
Gjenerimi i përmbajtjes duke menduar
Fillimi i një kërkese me një model të të menduarit është i ngjashëm me çdo kërkesë tjetër për gjenerimin e përmbajtjes. Dallimi kryesor qëndron në specifikimin e njërit prej modeleve me mbështetje të të menduarit në fushën e model , siç demonstrohet në shembullin e mëposhtëm të gjenerimit të tekstit :
Python
from google import genai
client = genai.Client()
prompt = "Explain the concept of Occam's Razor and provide a simple, everyday example."
response = client.models.generate_content(
model="gemini-2.5-pro",
contents=prompt
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const prompt = "Explain the concept of Occam's Razor and provide a simple, everyday example.";
const response = await ai.models.generateContent({
model: "gemini-2.5-pro",
contents: prompt,
});
console.log(response.text);
}
main();
Shko
package main
import (
"context"
"fmt"
"log"
"os"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
prompt := "Explain the concept of Occam's Razor and provide a simple, everyday example."
model := "gemini-2.5-pro"
resp, _ := client.Models.GenerateContent(ctx, model, genai.Text(prompt), nil)
fmt.Println(resp.Text())
}
PUSHTIM
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Explain the concept of Occam\'s Razor and provide a simple, everyday example."
}
]
}
]
}'
```
Përmbledhje mendimesh
Përmbledhjet e mendimeve janë versione të sintetizuara të mendimeve të papërpunuara të modelit dhe ofrojnë njohuri mbi procesin e brendshëm të arsyetimit të modelit. Vini re se nivelet e të menduarit dhe buxhetet zbatohen për mendimet e papërpunuara të modelit dhe jo për përmbledhjet e mendimeve.
Mund të aktivizoni përmbledhjet e mendimeve duke e vendosur includeThoughts në true në konfigurimin e kërkesës suaj. Pastaj mund të qaseni në përmbledhje duke iteruar parts e parametrit response dhe duke kontrolluar vlerën booleane thought .
Ja një shembull që demonstron se si të aktivizoni dhe të merrni përmbledhjet e mendimeve pa transmetim, i cili kthen një përmbledhje të vetme dhe përfundimtare të mendimit me përgjigjen:
Python
from google import genai
from google.genai import types
client = genai.Client()
prompt = "What is the sum of the first 50 prime numbers?"
response = client.models.generate_content(
model="gemini-2.5-pro",
contents=prompt,
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(
include_thoughts=True
)
)
)
for part in response.candidates[0].content.parts:
if not part.text:
continue
if part.thought:
print("Thought summary:")
print(part.text)
print()
else:
print("Answer:")
print(part.text)
print()
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const response = await ai.models.generateContent({
model: "gemini-2.5-pro",
contents: "What is the sum of the first 50 prime numbers?",
config: {
thinkingConfig: {
includeThoughts: true,
},
},
});
for (const part of response.candidates[0].content.parts) {
if (!part.text) {
continue;
}
else if (part.thought) {
console.log("Thoughts summary:");
console.log(part.text);
}
else {
console.log("Answer:");
console.log(part.text);
}
}
}
main();
Shko
package main
import (
"context"
"fmt"
"google.golang.org/genai"
"os"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
contents := genai.Text("What is the sum of the first 50 prime numbers?")
model := "gemini-2.5-pro"
resp, _ := client.Models.GenerateContent(ctx, model, contents, &genai.GenerateContentConfig{
ThinkingConfig: &genai.ThinkingConfig{
IncludeThoughts: true,
},
})
for _, part := range resp.Candidates[0].Content.Parts {
if part.Text != "" {
if part.Thought {
fmt.Println("Thoughts Summary:")
fmt.Println(part.Text)
} else {
fmt.Println("Answer:")
fmt.Println(part.Text)
}
}
}
}
Dhe ja një shembull duke përdorur të menduarit me transmetim, i cili kthen përmbledhje graduale dhe të vazhdueshme gjatë gjenerimit:
Python
from google import genai
from google.genai import types
client = genai.Client()
prompt = """
Alice, Bob, and Carol each live in a different house on the same street: red, green, and blue.
The person who lives in the red house owns a cat.
Bob does not live in the green house.
Carol owns a dog.
The green house is to the left of the red house.
Alice does not own a cat.
Who lives in each house, and what pet do they own?
"""
thoughts = ""
answer = ""
for chunk in client.models.generate_content_stream(
model="gemini-2.5-pro",
contents=prompt,
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(
include_thoughts=True
)
)
):
for part in chunk.candidates[0].content.parts:
if not part.text:
continue
elif part.thought:
if not thoughts:
print("Thoughts summary:")
print(part.text)
thoughts += part.text
else:
if not answer:
print("Answer:")
print(part.text)
answer += part.text
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const prompt = `Alice, Bob, and Carol each live in a different house on the same
street: red, green, and blue. The person who lives in the red house owns a cat.
Bob does not live in the green house. Carol owns a dog. The green house is to
the left of the red house. Alice does not own a cat. Who lives in each house,
and what pet do they own?`;
let thoughts = "";
let answer = "";
async function main() {
const response = await ai.models.generateContentStream({
model: "gemini-2.5-pro",
contents: prompt,
config: {
thinkingConfig: {
includeThoughts: true,
},
},
});
for await (const chunk of response) {
for (const part of chunk.candidates[0].content.parts) {
if (!part.text) {
continue;
} else if (part.thought) {
if (!thoughts) {
console.log("Thoughts summary:");
}
console.log(part.text);
thoughts = thoughts + part.text;
} else {
if (!answer) {
console.log("Answer:");
}
console.log(part.text);
answer = answer + part.text;
}
}
}
}
await main();
Shko
package main
import (
"context"
"fmt"
"log"
"os"
"google.golang.org/genai"
)
const prompt = `
Alice, Bob, and Carol each live in a different house on the same street: red, green, and blue.
The person who lives in the red house owns a cat.
Bob does not live in the green house.
Carol owns a dog.
The green house is to the left of the red house.
Alice does not own a cat.
Who lives in each house, and what pet do they own?
`
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
contents := genai.Text(prompt)
model := "gemini-2.5-pro"
resp := client.Models.GenerateContentStream(ctx, model, contents, &genai.GenerateContentConfig{
ThinkingConfig: &genai.ThinkingConfig{
IncludeThoughts: true,
},
})
for chunk := range resp {
for _, part := range chunk.Candidates[0].Content.Parts {
if len(part.Text) == 0 {
continue
}
if part.Thought {
fmt.Printf("Thought: %s\n", part.Text)
} else {
fmt.Printf("Answer: %s\n", part.Text)
}
}
}
}
Kontrollimi i të menduarit
Modelet Gemini angazhohen në të menduarit dinamik si parazgjedhje, duke rregulluar automatikisht sasinë e përpjekjes së arsyetimit bazuar në kompleksitetin e kërkesës së përdoruesit. Megjithatë, nëse keni kufizime specifike të latencës ose kërkoni që modeli të angazhohet në arsyetim më të thellë se zakonisht, mund të përdorni opsionalisht parametra për të kontrolluar sjelljen e të menduarit.
Nivelet e të menduarit (Gemini 3 Pro)
Parametri thinkingLevel , i rekomanduar për modelet Gemini 3 e lart, ju lejon të kontrolloni sjelljen e arsyetimit. Mund ta vendosni nivelin e të menduarit në "low" ose "high" . Nëse nuk specifikoni një nivel të të menduarit, Gemini do të përdorë nivelin e parazgjedhur të të menduarit dinamik të modelit, "high" , për Gemini 3 Pro Preview.
Python
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents="Provide a list of 3 famous physicists and their key contributions",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_level="low")
),
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const response = await ai.models.generateContent({
model: "gemini-3-pro-preview",
contents: "Provide a list of 3 famous physicists and their key contributions",
config: {
thinkingConfig: {
thinkingLevel: "low",
},
},
});
console.log(response.text);
}
main();
Shko
package main
import (
"context"
"fmt"
"google.golang.org/genai"
"os"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
thinkingLevelVal := "low"
contents := genai.Text("Provide a list of 3 famous physicists and their key contributions")
model := "gemini-3-pro-preview"
resp, _ := client.Models.GenerateContent(ctx, model, contents, &genai.GenerateContentConfig{
ThinkingConfig: &genai.ThinkingConfig{
ThinkingLevel: &thinkingLevelVal,
},
})
fmt.Println(resp.Text())
}
PUSHTIM
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Provide a list of 3 famous physicists and their key contributions"
}
]
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "low"
}
}
}'
Nuk mund ta çaktivizosh funksionin e të menduarit për Gemini 3 Pro. Modelet e serisë Gemini 2.5 nuk e mbështesin thinkingLevel ; përdor në vend të kësaj thinkingBudget .
Buxhetet e të menduarit
Parametri thinkingBudget , i prezantuar me serinë Gemini 2.5, e udhëzon modelin mbi numrin specifik të tokenëve të të menduarit që duhen përdorur për arsyetim.
Më poshtë janë detajet e konfigurimit të thinkingBudget për secilin lloj modeli. Mund ta çaktivizoni thinkingBudget duke e vendosur thinkingBudget në 0. Vendosja e thinkingBudget në -1 aktivizon thinking dinamik , që do të thotë se modeli do ta rregullojë buxhetin bazuar në kompleksitetin e kërkesës.
| Model | Cilësimi i parazgjedhur (Duke menduar se buxheti nuk është përcaktuar) | Diapazoni | Çaktivizo të menduarit | Aktivizoni të menduarit dinamik |
|---|---|---|---|---|
| 2.5 Pro | Të menduarit dinamik: Modeli vendos kur dhe sa të mendosh | 128 deri në 32768 | N/A: Nuk mund të çaktivizohet të menduarit | thinkingBudget = -1 |
| 2.5 Blic | Të menduarit dinamik: Modeli vendos kur dhe sa të mendosh | 0 deri në 24576 | thinkingBudget = 0 | thinkingBudget = -1 |
| 2.5 Pamje paraprake e menjëhershme | Të menduarit dinamik: Modeli vendos kur dhe sa të mendosh | 0 deri në 24576 | thinkingBudget = 0 | thinkingBudget = -1 |
| 2.5 Flash Lite | Modelja nuk mendon | 512 deri në 24576 | thinkingBudget = 0 | thinkingBudget = -1 |
| Pamje paraprake e Flash Lite 2.5 | Modelja nuk mendon | 512 deri në 24576 | thinkingBudget = 0 | thinkingBudget = -1 |
| Pamje paraprake e Robotics-ER 1.5 | Të menduarit dinamik: Modeli vendos kur dhe sa të mendosh | 0 deri në 24576 | thinkingBudget = 0 | thinkingBudget = -1 |
| 2.5 Pamje paraprake e audios së drejtpërdrejtë Flash (09-2025) | Të menduarit dinamik: Modeli vendos kur dhe sa të mendosh | 0 deri në 24576 | thinkingBudget = 0 | thinkingBudget = -1 |
Python
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-2.5-pro",
contents="Provide a list of 3 famous physicists and their key contributions",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_budget=1024)
# Turn off thinking:
# thinking_config=types.ThinkingConfig(thinking_budget=0)
# Turn on dynamic thinking:
# thinking_config=types.ThinkingConfig(thinking_budget=-1)
),
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const response = await ai.models.generateContent({
model: "gemini-2.5-pro",
contents: "Provide a list of 3 famous physicists and their key contributions",
config: {
thinkingConfig: {
thinkingBudget: 1024,
// Turn off thinking:
// thinkingBudget: 0
// Turn on dynamic thinking:
// thinkingBudget: -1
},
},
});
console.log(response.text);
}
main();
Shko
package main
import (
"context"
"fmt"
"google.golang.org/genai"
"os"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
thinkingBudgetVal := int32(1024)
contents := genai.Text("Provide a list of 3 famous physicists and their key contributions")
model := "gemini-2.5-pro"
resp, _ := client.Models.GenerateContent(ctx, model, contents, &genai.GenerateContentConfig{
ThinkingConfig: &genai.ThinkingConfig{
ThinkingBudget: &thinkingBudgetVal,
// Turn off thinking:
// ThinkingBudget: int32(0),
// Turn on dynamic thinking:
// ThinkingBudget: int32(-1),
},
})
fmt.Println(resp.Text())
}
PUSHTIM
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Provide a list of 3 famous physicists and their key contributions"
}
]
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingBudget": 1024
}
}
}'
Në varësi të kërkesës, modeli mund ta tejkalojë ose ta tejkalojë buxhetin e tokenëve.
Nënshkrimet e mendimit
API-ja Gemini është pa gjendje, kështu që modeli trajton çdo kërkesë API në mënyrë të pavarur dhe nuk ka qasje në kontekstin e mendimit nga kthesat e mëparshme në ndërveprimet me shumë kthesa.
Për të mundësuar ruajtjen e kontekstit të mendimit përgjatë ndërveprimeve me shumë kthesa, Gemini kthen nënshkrimet e mendimit, të cilat janë përfaqësime të koduara të procesit të brendshëm të mendimit të modelit.
- Modelet Gemini 2.5 kthejnë nënshkrime mendimi kur të menduarit është i aktivizuar dhe kërkesa përfshin thirrjen e funksionit , konkretisht deklarimet e funksionit .
- Modelet Gemini 3 mund të kthejnë nënshkrime mendimesh për të gjitha llojet e pjesëve . Ne ju rekomandojmë që gjithmonë t'i kaloni të gjitha nënshkrimet ashtu siç i keni marrë, por kjo është e detyrueshme për nënshkrimet e thirrjes së funksioneve. Lexoni faqen e Nënshkrimeve të Mendimeve për të mësuar më shumë.
SDK-ja Google GenAI merret automatikisht me kthimin e nënshkrimeve të mendimeve për ju. Ju duhet të menaxhoni nënshkrimet e mendimeve manualisht vetëm nëse po modifikoni historikun e bisedave ose po përdorni API-n REST.
Kufizime të tjera përdorimi që duhen marrë në konsideratë me thirrjen e funksioneve përfshijnë:
- Nënshkrimet kthehen nga modeli brenda pjesëve të tjera në përgjigje, për shembull, gjatë thirrjes së funksionit ose pjesëve të tekstit. Kthejeni të gjithë përgjigjen me të gjitha pjesët përsëri te modeli në kthesat pasuese.
- Mos i bashkoni pjesët me nënshkrime së bashku.
- Mos e bashkoni një pjesë me një nënshkrim me një pjesë tjetër pa nënshkrim.
Çmimet
Kur aktivizohet funksioni i të menduarit, çmimi i përgjigjes është shuma e tokenëve të daljes dhe tokenëve të të menduarit. Mund të merrni numrin total të tokenëve të të menduarit të gjeneruar nga fusha thoughtsTokenCount .
Python
# ...
print("Thoughts tokens:",response.usage_metadata.thoughts_token_count)
print("Output tokens:",response.usage_metadata.candidates_token_count)
JavaScript
// ...
console.log(`Thoughts tokens: ${response.usageMetadata.thoughtsTokenCount}`);
console.log(`Output tokens: ${response.usageMetadata.candidatesTokenCount}`);
Shko
// ...
usageMetadata, err := json.MarshalIndent(response.UsageMetadata, "", " ")
if err != nil {
log.Fatal(err)
}
fmt.Println("Thoughts tokens:", string(usageMetadata.thoughts_token_count))
fmt.Println("Output tokens:", string(usageMetadata.candidates_token_count))
Modelet e të menduarit gjenerojnë mendime të plota për të përmirësuar cilësinë e përgjigjes përfundimtare dhe më pas nxjerrin përmbledhje për të dhënë një pasqyrë të procesit të të menduarit. Pra, çmimi bazohet në tokenët e plotë të të menduarit që modeli duhet të gjenerojë për të krijuar një përmbledhje, pavarësisht se vetëm përmbledhja del nga API.
Mund të mësoni më shumë rreth tokenave në udhëzuesin e numërimit të tokenave .
Praktikat më të mira
Ky seksion përfshin disa udhëzime për përdorimin efikas të modeleve të të menduarit. Si gjithmonë, ndjekja e udhëzimeve tona nxitëse dhe praktikave më të mira do t'ju sjellë rezultatet më të mira.
Debugging dhe drejtim
Rishikimi i arsyetimit : Kur nuk po merrni përgjigjen e pritur nga modelet e të menduarit, mund të jetë e dobishme të analizoni me kujdes përmbledhjet e mendimit të Gemini. Mund të shihni se si e ka analizuar detyrën dhe ka arritur në përfundimin e saj, dhe ta përdorni atë informacion për të korrigjuar drejt rezultateve të duhura.
Jepni Udhëzime në Arsyetim : Nëse shpresoni për një rezultat veçanërisht të gjatë, mund të dëshironi të jepni udhëzime në kërkesën tuaj për të kufizuar sasinë e të menduarit që përdor modeli. Kjo ju lejon të rezervoni më shumë nga rezultati i tokenit për përgjigjen tuaj.
Kompleksiteti i detyrës
- Detyra të Lehta (Mund të Mendosh Çaktivizohet): Për kërkesa të drejtpërdrejta ku nuk kërkohet arsyetim kompleks, siç është nxjerrja e fakteve ose klasifikimi, nuk kërkohet të mendosh. Shembujt përfshijnë:
- "Ku u themelua DeepMind?"
- "A po kërkon ky email një takim apo thjesht po jep informacion?"
- Detyra të Mesme (Parazgjedhur/Pak Mendime): Shumë kërkesa të zakonshme përfitojnë nga një shkallë përpunimi hap pas hapi ose një kuptim më i thellë. Binjakët mund ta përdorin në mënyrë fleksibile aftësinë e të menduarit për detyra si:
- Analogjoni fotosintezën dhe rritjen.
- Krahasoni dhe bëni dallimin midis makinave elektrike dhe makinave hibride.
- Detyra të Vështira (Aftësi Maksimale e të Menduarit): Për sfida vërtet komplekse, siç është zgjidhja e problemeve komplekse matematikore ose detyrave të kodimit, ne rekomandojmë caktimin e një buxheti të lartë të të menduarit. Këto lloje detyrash kërkojnë që modeli të angazhojë të gjitha aftësitë e tij të arsyetimit dhe planifikimit, shpesh duke përfshirë shumë hapa të brendshëm përpara se të japë një përgjigje. Shembujt përfshijnë:
- Zgjidhni problemin 1 në AIME 2025: Gjeni shumën e të gjitha bazave të numrave të plotë b > 9 për të cilat 17b është pjesëtues i 97b .
- Shkruani kod Python për një aplikacion web që vizualizon të dhënat e tregut të aksioneve në kohë reale, duke përfshirë vërtetimin e përdoruesit. Bëjeni sa më efikas të jetë e mundur.
Modele, mjete dhe aftësi të mbështetura
Karakteristikat e të menduarit mbështeten në të gjitha modelet e serisë 3 dhe 2.5. Mund t'i gjeni të gjitha aftësitë e modelit në faqen e përmbledhjes së modelit .
Modelet e të menduarit funksionojnë me të gjitha mjetet dhe aftësitë e Gemini-t. Kjo u lejon modeleve të bashkëveprojnë me sisteme të jashtme, të ekzekutojnë kod ose të qasen në informacion në kohë reale, duke i përfshirë rezultatet në arsyetimin dhe përgjigjen e tyre përfundimtare.
Mund të provoni shembuj të përdorimit të mjeteve me modele të të menduarit në librin e gatimit “Të menduarit” .
Çfarë vjen më pas?
- Mbulimi i të menduarit është i disponueshëm në udhëzuesin tonë të përputhshmërisë me OpenAI .