Binjakët mendojnë
Modelet e serive Gemini 3 dhe 2.5 përdorin një "proces të të menduarit" 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.
Kur përdorni një model të të menduarit, Gemini arsyeton nga brenda përpara se të përgjigjet. API-ja Interactions e nxjerr në pah këtë arsyetim nëpërmjet hapave thought , hapave të dedikuar që shfaqen kronologjikisht së bashku me thirrjet e funksioneve, inputet e përdoruesit ose daljet e modelit në vargun e steps .
Çdo hap i menduar përmban dy fusha:
| Fushë | E detyrueshme | Përshkrimi |
|---|---|---|
signature | ✅ Po | Një përfaqësim i enkriptuar i gjendjes së arsyetimit të brendshëm të modelit. Gjithmonë i pranishëm, edhe kur modeli kryen arsyetim minimal. |
summary | ❌ Jo | Një grup përmbajtjesh (tekst dhe/ose imazhe) që përmbledhin arsyetimin. Mund të jetë bosh në varësi të konfigurimit thinking_summaries , nëse modeli ka kryer mjaftueshëm arsyetim ose llojit të përmbajtjes (për shembull, imazhet latente mund të mos kenë përmbledhje teksti). |
Ndërveprimet me të menduarit
Fillimi i një bashkëveprimi me një model të të menduarit është i ngjashëm me çdo kërkesë tjetër bashkëveprimi. Specifikoni një nga modelet me mbështetje të të menduarit në fushën e model :
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="Explain the concept of Occam's Razor and provide a simple, everyday example."
)
print(interaction.steps[-1].content[0].text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: "Explain the concept of Occam's Razor and provide a simple, everyday example."
});
console.log(interaction.steps.at(-1).content[0].text);
PUSHTIM
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Api-Revision: 2026-05-20" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3-flash-preview",
"input": "Explain the concept of Occam'\''s Razor and provide a simple example."
}'
Përmbledhje mendimesh
Përmbledhjet e mendimeve ofrojnë njohuri mbi procesin e brendshëm të arsyetimit të modelit. Si parazgjedhje, kthehet vetëm rezultati përfundimtar. Mund të aktivizoni përmbledhjet e mendimeve me thinking_summaries :
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="What is the sum of the first 50 prime numbers?",
generation_config={
"thinking_summaries": "auto"
}
)
for step in interaction.steps:
if step.type == "thought":
print("Thought summary:")
for content_block in step.summary:
if content_block.type == "text":
print(content_block.text)
print()
elif step.type == "model_output":
for content_block in step.content:
if content_block.type == "text":
print("Answer:")
print(content_block.text)
print()
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: "What is the sum of the first 50 prime numbers?",
generation_config: {
thinking_summaries: "auto"
}
});
for (const step of interaction.steps) {
if (step.type === "thought") {
console.log("Thought summary:");
for (const contentBlock of step.summary) {
if (contentBlock.type === "text") console.log(contentBlock.text);
}
} else if (step.type === "model_output") {
for (const contentBlock of step.content) {
if (contentBlock.type === "text") {
console.log("Answer:");
console.log(contentBlock.text);
}
}
}
}
PUSHTIM
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Api-Revision: 2026-05-20" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3-flash-preview",
"input": "What is the sum of the first 50 prime numbers?",
"generation_config": {
"thinking_summaries": "auto"
}
}'
Një bllok mendimi mund të përmbajë vetëm një nënshkrim pa përmbledhje në këto raste:
- Kërkesa të thjeshta, ku modeli nuk kishte arsye të mjaftueshme për të gjeneruar një përmbledhje
-
thinking_summaries: "none", ku përmbledhjet janë të çaktivizuara në mënyrë të qartë - Disa lloje përmbajtjeje mendimi, siç janë imazhet, mund të mos kenë përmbledhje teksti.
Kodi juaj duhet të trajtojë gjithmonë blloqe mendimi ku summary është bosh ose mungon.
Transmetim me mendim
Përdorni transmetimin për të marrë përmbledhje të mendimeve në rritje gjatë gjenerimit. Blloqet e mendimeve dorëzohen duke përdorur Ngjarjet e Dërguara nga Serveri (SSE) me dy lloje të dallueshme deltash:
| Lloji delta | Përmban | Kur dërgohet |
|---|---|---|
thought_summary | Përmbajtje përmbledhëse me tekst ose imazh | Një ose më shumë delta me përmbledhje rritëse |
thought_signature | Nënshkrimi kriptografik | delta e fundit para step.stop |
Python
from google import genai
client = genai.Client()
prompt = """
Alice, Bob, and Carol each live in a different house on the same street: red, green, and blue.
Alice does not live in the red house.
Bob does not live in the green house.
Carol does not live in the red or green house.
Which house does each person live in?
"""
thoughts = ""
answer = ""
stream = client.interactions.create(
model="gemini-3-flash-preview",
input=prompt,
generation_config={
"thinking_summaries": "auto"
},
stream=True
)
for event in stream:
if event.event_type == "step.delta":
if event.delta.type == "thought_summary":
if not thoughts:
print("Thinking...")
summary_text = event.delta.content.get('text', '') if hasattr(event.delta, 'content') else getattr(event.delta, 'text', '')
print(f"[Thought] {summary_text}", end="")
thoughts += summary_text
elif event.delta.type == "text" and event.delta.text:
if not answer:
print("\nAnswer:")
print(event.delta.text, end="")
answer += event.delta.text
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const prompt = `Alice, Bob, and Carol each live in a different house on the same
street: red, green, and blue. Alice does not live in the red house.
Bob does not live in the green house.
Carol does not live in the red or green house.
Which house does each person live in?`;
let thoughts = "";
let answer = "";
const stream = await client.interactions.create({
model: "gemini-3-flash-preview",
input: prompt,
generation_config: {
thinking_summaries: "auto"
},
stream: true
});
for await (const event of stream) {
if (event.event_type === "step.delta") {
if (event.delta.type === "thought_summary") {
if (!thoughts) console.log("Thinking...");
const text = event.delta.content?.text || "";
process.stdout.write(`[Thought] ${text}`);
thoughts += text;
} else if (event.delta.type === "text" && event.delta.text) {
if (!answer) console.log("\nAnswer:");
process.stdout.write(event.delta.text);
answer += event.delta.text;
}
}
}
PUSHTIM
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Api-Revision: 2026-05-20" \
-H 'Content-Type: application/json' \
--no-buffer \
-d '{
"model": "gemini-3-flash-preview",
"input": "Alice, Bob, and Carol each live in a different house on the same street: red, green, and blue. Alice does not live in the red house. Bob does not live in the green house. Carol does not live in the red or green house. Which house does each person live in?",
"generation_config": {
"thinking_summaries": "auto"
},
"stream": true
}'
Përgjigja e transmetimit përdor Ngjarjet e Dërguara nga Serveri (SSE) dhe përbëhet nga hapa dhe ngjarje. Shih shembullin më poshtë.
event: interaction.created
data: {"interaction":{"id":"v1_xxx","status":"in_progress","object":"interaction","model":"gemini-3-flash-preview"},"event_type":"interaction.created"}
event: step.start
data: {"index":0,"step":{"signature":"","summary":[{"text":"**Evaluating the clues**\n\nI'm considering...","type":"text"}],"type":"thought"},"event_type":"step.start"}
event: step.delta
data: {"index":0,"delta":{"signature":"EpoGCpcGAXLI2nx/...","type":"thought_signature"},"event_type":"step.delta"}
event: step.stop
data: {"index":0,"event_type":"step.stop"}
event: step.start
data: {"index":1,"step":{"content":[{"text":"Based on the clues provided, here","type":"text"}],"type":"model_output"},"event_type":"step.start"}
event: step.delta
data: {"index":1,"delta":{"text":" is the answer to your question...","type":"text"},"event_type":"step.delta"}
event: step.stop
data: {"index":1,"event_type":"step.stop"}
event: interaction.completed
data: {"interaction":{"id":"v1_xxx","status":"completed","usage":{"total_tokens":530,"total_input_tokens":62,"total_output_tokens":171,"total_thought_tokens":297}},"event_type":"interaction.completed"}
event: done
data: [DONE]
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. Ju mund ta kontrolloni këtë sjellje duke përdorur parametrin thinking_level .
| Model | Mendimi i paracaktuar | Nivelet e Mbështetura |
|---|---|---|
| Gemini-3.1-pro-pamje paraprake | Ndezur (i lartë) | i ulët, mesatar, i lartë |
| Gemini-3-flash-pamje paraprake | Ndezur (i lartë) | minimal, i ulët, mesatar, i lartë |
| Gemini-3-Pro-Parashikim | Ndezur (i lartë) | i ulët, i lartë |
| gemini-2.5-pro | Aktiv | i ulët, mesatar, i lartë |
| binjakët-2.5-shpërthim | Aktiv | i ulët, mesatar, i lartë |
| gemini-2.5-flash-lite | Joaktiv | i ulët, mesatar, i lartë |
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="Provide a list of 3 famous physicists and their key contributions",
generation_config={
"thinking_level": "low"
}
)
print(interaction.steps[-1].content[0].text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: "Provide a list of 3 famous physicists and their key contributions",
generation_config: {
thinking_level: "low"
}
});
console.log(interaction.steps.at(-1).content[0].text);
PUSHTIM
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Api-Revision: 2026-05-20" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3-flash-preview",
"input": "Provide a list of 3 famous physicists and their key contributions",
"generation_config": {
"thinking_level": "low"
}
}'
Nënshkrimet e mendimit
Nënshkrimet e mendimit janë përfaqësime të koduara të arsyetimit të brendshëm të modelit. Ato kërkohen për të ruajtur vazhdimësinë e arsyetimit përgjatë ndërveprimeve me shumë kthesa.
API-ja e Ndërveprimeve e bën trajtimin e nënshkrimeve të mendimit shumë më të thjeshtë sesa API-ja generateContent .
Modaliteti i gjendjes (i rekomanduar)
Si parazgjedhje, kur përdorni API-në e Ndërveprimeve në modalitetin stateful (duke vendosur store: true dhe duke kaluar previous_interaction_id në kthesat pasuese), serveri menaxhon automatikisht gjendjen e bisedës, duke përfshirë të gjitha blloqet e mendimit dhe nënshkrimet. Në këtë modalitet, nuk keni nevojë të bëni asgjë në lidhje me nënshkrimet. Ato trajtohen tërësisht në anën e serverit.
Modaliteti pa shtetësi
Nëse po e menaxhoni vetë gjendjen e bisedës (modaliteti pa gjendje) dhe po i kaloni historikun e plotë të inputeve dhe daljeve në secilën kërkesë:
- Gjithmonë DUHET t’i ridërgoni të gjitha blloqet e
thoughtpikërisht ashtu siç i keni marrë nga modeli. - NUK duhet të hiqni ose modifikoni blloqet e mendimit nga historiku, pasi ato përmbajnë nënshkrimet e nevojshme që modeli të vazhdojë arsyetimin e tij.
- Kur ndërroni modele brenda një sesioni, duhet të ridërgoni blloqet e mendimit të modelit të mëparshëm. Sistemi backend menaxhon përputhshmërinë.
Ç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 total_thought_tokens .
Python
# ...
print("Thoughts tokens:", interaction.usage.total_thought_tokens)
print("Output tokens:", interaction.usage.total_output_tokens)
JavaScript
// ...
console.log(`Thoughts tokens: ${interaction.usage.total_thought_tokens}`);
console.log(`Output tokens: ${interaction.usage.total_output_tokens}`);
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. Çmimi bazohet në tokenët e plotë të të menduarit që modeli duhet të gjenerojë, 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
Përdorni modelet e të menduarit në mënyrë efikase duke ndjekur këto udhëzime.
- Rishikimi i arsyetimit : Analizoni përmbledhjet e mendimeve për të kuptuar dështimet dhe për të përmirësuar nxitjet.
- Kontrolloni buxhetin e të menduarit : Nxitni modelin të mendojë më pak për rezultate të gjata për të kursyer tokena.
- Detyra të thjeshta : Përdorni të menduarit minimal për nxjerrjen ose klasifikimin e fakteve (p.sh., "Ku u themelua DeepMind?").
- Detyra të moderuara : Përdorni të menduarit standard për krahasimin e koncepteve ose arsyetimin krijues (p.sh., Krahasoni makinat elektrike dhe hibride).
- Detyra komplekse : Përdorni të menduarit maksimal për kodim të avancuar, matematikë ose planifikim me shumë hapa (p.sh., zgjidhni problemet matematikore AIME).
Çfarë vjen më pas
- Gjenerimi i tekstit : Përgjigjet themelore me tekst
- Thirrja e funksionit : Lidhu me mjetet
- Udhëzuesi Gemini 3 : Karakteristikat specifike të modelit