Udhëzuesi i Zhvilluesit për Gemini 3
Gemini 3 është familja jonë e modeleve më inteligjente deri më sot, e ndërtuar mbi një themel të arsyetimit të fjalës së fundit. Është projektuar për të sjellë në jetë çdo ide duke zotëruar rrjedhat e punës agjentike, kodimin autonom dhe detyrat komplekse multimodale. Ky udhëzues mbulon karakteristikat kryesore të familjes së modeleve Gemini 3 dhe si të përfitoni sa më shumë prej saj.
Eksploroni koleksionin tonë të aplikacioneve Gemini 3 për të parë se si modeli trajton arsyetimin e avancuar, kodimin autonom dhe detyrat komplekse multimodale.
Filloni me disa rreshta kodi:
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.1-pro-preview",
input="Find the race condition in this multi-threaded C++ snippet: [code here]",
)
print(interaction.steps[-1].content[0].text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
async function run() {
const interaction = await client.interactions.create({
model: "gemini-3.1-pro-preview",
input: "Find the race condition in this multi-threaded C++ snippet: [code here]",
});
console.log(interaction.steps.at(-1).content[0].text);
}
run();
PUSHTIM
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3.1-pro-preview",
"input": "Find the race condition in this multi-threaded C++ snippet: [code here]"
}'
Njihuni me serinë Gemini 3
Gemini 3.1 Pro është më i miri për detyra komplekse që kërkojnë njohuri të gjera të botës dhe arsyetim të avancuar në të gjitha modalitetet.
Gemini 3 Flash është modeli ynë më i fundit i serisë 3, me inteligjencë të nivelit Pro me shpejtësinë dhe çmimin e Flash.
Nano Banana Pro (i njohur edhe si Gemini 3 Pro Image) është modeli ynë i gjenerimit të imazheve me cilësinë më të lartë, dhe Nano Banana 2 (i njohur edhe si Gemini 3.1 Flash Image) është ekuivalenti me vëllim të lartë, efikasitet të lartë dhe çmim më të ulët.
Gemini 3.1 Flash-Lite është modeli ynë i fuqishëm i ndërtuar për modele me efikasitet kostoje dhe detyra me volum të lartë.
Të gjitha modelet Gemini 3 janë aktualisht në fazën paraprake.
| ID e modelit | Dritarja e Kontekstit (Hyrëse / Dalëse) | Kufiri i Njohurive | Çmimi (Input / Output)* |
|---|---|---|---|
| Gemini-3.1-Flash-Lite-Parashikim | 1M / 64k | Janar 2025 | 0,25 dollarë (tekst, imazh, video), 0,50 dollarë (audio) / 1,50 dollarë |
| Gemini-3.1-pamje-pamjeje-flash | 128 mijë / 32 mijë | Janar 2025 | 0,25 dollarë (Futje Teksti) / 0,067 dollarë (Dalje Imazhesh)** |
| Gemini-3.1-pro-pamje paraprake | 1M / 64k | Janar 2025 | $2 / $12 (<200 mijë tokenë) 4 dollarë / 18 dollarë (>200 mijë tokenë) |
| Gemini-3-flash-pamje paraprake | 1M / 64k | Janar 2025 | 0.50 dollarë / 3 dollarë |
| gemini-3-pro-pamje-pamjeje | 65 mijë / 32 mijë | Janar 2025 | 2 dollarë (Futje Teksti) / 0,134 dollarë (Dalje Imazhesh)** |
* Çmimi është për 1 milion tokena, përveç nëse përcaktohet ndryshe. ** Çmimi i imazhit ndryshon në varësi të rezolucionit. Shihni faqen e çmimeve për detaje.
Për limite të detajuara, çmime dhe informacione shtesë, shihni faqen e modeleve .
Karakteristika të reja të API-t në Gemini 3
Gemini 3 prezanton parametra të rinj të dizajnuar për t'u dhënë zhvilluesve më shumë kontroll mbi vonesën, koston dhe besnikërinë multimodale.
Niveli i të menduarit
Modelet e serisë Gemini 3 përdorin të menduarit dinamik si parazgjedhje për të arsyetuar përmes kërkesave. Mund të përdorni parametrin thinking_level , i cili kontrollon thellësinë maksimale të procesit të brendshëm të arsyetimit të modelit përpara se të prodhojë një përgjigje. Gemini 3 i trajton këto nivele si lejime relative për të menduarit dhe jo si garanci të rrepta simbolike.
Nëse thinking_level nuk specifikohet, Gemini 3 do të vendosë si parazgjedhje high . Për përgjigje më të shpejta dhe me vonesë më të ulët kur nuk kërkohet arsyetim kompleks, mund ta kufizoni nivelin e të menduarit të modelit në low .
| Niveli i të menduarit | Gemini 3.1 Pro | Gemini 3.1 Flash-Lite | Binjakët 3 Blic | Përshkrimi |
|---|---|---|---|---|
minimal | Nuk mbështetet | Mbështetur (Parazgjedhur) | Mbështetur | Përputhet me cilësimin "pa menduar" për shumicën e pyetjeve. Modeli mund të mendojë shumë minimalisht për detyra komplekse kodimi. Minimizon vonesën për aplikacionet e bisedave ose me rendiment të lartë. Vini re, minimal nuk garanton që të menduarit është i çaktivizuar. |
low | Mbështetur | Mbështetur | Mbështetur | Minimizon vonesën dhe koston. Më e mira për ndjekjen e thjeshtë të udhëzimeve, bisedën ose aplikacionet me rendiment të lartë. |
medium | Mbështetur | Mbështetur | Mbështetur | Të menduarit e ekuilibruar për shumicën e detyrave. |
high | Mbështetur (Parazgjedhur, Dinamik) | Mbështetur (Dinamike) | Mbështetur (Parazgjedhur, Dinamik) | Maksimizon thellësinë e arsyetimit. Modelit mund t'i duhet shumë më tepër kohë për të arritur një shenjë të parë rezultati (jo-menduese), por rezultati do të arsyetohet më me kujdes. |
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.1-pro-preview",
input="How does AI work?",
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.1-pro-preview",
input: "How does AI work?",
generationConfig: {
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 'Content-Type: application/json' \
-d '{
"model": "gemini-3.1-pro-preview",
"input": "How does AI work?",
"config": {
"thinking_level": "low"
}
}'
Temperatura
Për të gjitha modelet Gemini 3, ne rekomandojmë fuqimisht mbajtjen e parametrit të temperaturës në vlerën e tij të paracaktuar prej 1.0 .
Ndërsa modelet e mëparshme shpesh përfitonin nga rregullimi i temperaturës për të kontrolluar kreativitetin në vend të determinizmit, aftësitë e arsyetimit të Gemini 3 janë të optimizuara për cilësimin fillestar. Ndryshimi i temperaturës (vendosja e saj nën 1.0) mund të çojë në sjellje të papritura, të tilla si rikthimi në një cikël ose performancë të degraduar, veçanërisht në detyra komplekse matematikore ose arsyetimi.
Nënshkrimet e mendimit
Modelet Gemini 3 përdorin nënshkrime mendimi për të ruajtur kontekstin e arsyetimit nëpër thirrjet API. Këto nënshkrime janë përfaqësime të koduara të procesit të brendshëm të mendimit të modelit.
- Modaliteti i gjendjes (i rekomanduar) : Kur përdorni API-në e Ndërveprimeve në modalitetin e gjendjes (duke ofruar
previous_interaction_id), serveri menaxhon automatikisht historikun e bisedave dhe nënshkrimet e mendimeve. - Modaliteti pa shtetësi : Nëse po e menaxhoni historikun e bisedave manualisht, duhet të përfshini blloqet e mendimit me nënshkrimet e tyre në kërkesat pasuese për të vërtetuar vërtetësinë.
Për informacion të detajuar, shihni faqen e Nënshkrimeve të Mendimit .
Gjenerimi dhe redaktimi i imazhit
Për gemini-3-pro-image-preview dhe gemini-3.1-flash-image-preview , nënshkrimet e mendimit janë kritike për redaktimin bisedor. Kur i kërkoni modelit të modifikojë një imazh, ai mbështetet në signature nga kthesa e mëparshme për të kuptuar përbërjen dhe logjikën e imazhit origjinal.
- Redaktimi: Nënshkrimet janë të garantuara në pjesën e parë pas mendimeve të përgjigjes (
textoseinlineData) dhe në çdo pjesë pasueseinlineData. Ju duhet t'i ktheni të gjitha këto nënshkrime për të shmangur gabimet.
Shembuj kodi
Thirrja e Funksionit me Shumë Hapa (Sekuenciale)
Përdoruesi bën një pyetje që kërkon dy hapa të veçantë (Kontrolloni Fluturimin -> Rezervoni Taksi) në një raund të vetëm.
Hapi 1: Modeli thërret Mjetin e Fluturimit.
Modeli kthen një nënshkrim <Sig_A>
// Model Response (Turn 1, Step 1) { "id": "interaction-123", "steps": [ { "type": "function_call", "name": "check_flight", "arguments": {"flight": "AA100"}, "signature": "<Sig_A>" // SAVE THIS } ] }
Hapi 2: Përdoruesi dërgon rezultatin e fluturimit
Duhet ta dërgojmë mbrapsht <Sig_A> për të ruajtur rrjedhën e mendimeve të modelit.
// User Request (Turn 1, Step 2) { "model": "gemini-3-flash-preview", "previous_interaction_id": "interaction-123", "input": [ { "type": "function_result", "call_id": "fc_check_flight", "name": "check_flight", "result": [{ "type": "text", "text": "{\"status\": \"delayed\", \"departure_time\": \"12 PM\"}" }] } ] }
Hapi 3: Modeli i thirrjeve Taxi Tool
Modeli e mban mend vonesën e fluturimit duke përdorur <Sig_A> dhe tani vendos të rezervojë një taksi. Ai gjeneron një nënshkrim të ri <Sig_B> .
// Model Response (Turn 1, Step 3) { "id": "interaction-123", "steps": [ { "type": "function_call", "name": "book_taxi", "arguments": {"time": "10 AM"}, "signature": "<Sig_B>" // SAVE THIS } ] }
Hapi 4: Përdoruesi dërgon rezultatin e taksisë
Për të përfunduar kthesën, duhet të ktheni mbrapsht të gjithë zinxhirin: <Sig_A> DHE <Sig_B> .
// User Request (Turn 1, Step 4) { "model": "gemini-3-flash-preview", "previous_interaction_id": "interaction-123", "input": [ { "type": "function_result", "call_id": "fc_book_taxi", "name": "book_taxi", "result": [{ "type": "text", "text": "{\"booking_status\": \"success\"}" }] } ] }
Thirrja e Funksionit Paralel
Përdoruesi pyet: "Kontrolloni motin në Paris dhe Londër." Modeli kthen dy thirrje funksionesh në një përgjigje.
// Model Response { "id": "interaction-456", "steps": [ { "type": "function_call", "name": "check_weather", "arguments": { "city": "Paris" }, "signature": "<Signature_A>" // INCLUDED on First FC }, { "type": "function_call", "name": "check_weather", "arguments": { "city": "London" } } ] } // User Request (Sending Parallel Results) { "model": "gemini-3-flash-preview", "previous_interaction_id": "interaction-456", "input": [ { "type": "function_result", "call_id": "fc_paris", "name": "check_weather", "result": [{ "type": "text", "text": "15C" }] }, { "type": "function_result", "call_id": "fc_london", "name": "check_weather", "result": [{ "type": "text", "text": "12C" }] } ] }
Migrimi nga modele të tjera
Nëse po transferoni një gjurmë bisede nga një model tjetër (p.sh., Gemini 2.5) ose po injektoni një thirrje funksioni të personalizuar që nuk është gjeneruar nga Gemini 3, nuk do të keni një nënshkrim të vlefshëm.
Për të anashkaluar validimin e rreptë në këto skenarë specifikë, plotësoni fushën me këtë varg specifik fiktiv: "signature": "context_engineering_is_the_way to_go"
Rezultate të strukturuara me mjete
Modelet Gemini 3 ju lejojnë të kombinoni Daljet e Strukturuara me mjete të integruara, duke përfshirë Grounding with Google Search , URL Context , Code Execution dhe Function Calling .
Python
from google import genai
from pydantic import BaseModel, Field
from typing import List
class MatchResult(BaseModel):
winner: str = Field(description="The name of the winner.")
final_match_score: str = Field(description="The final match score.")
scorers: List[str] = Field(description="The name of the scorer.")
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.1-pro-preview",
input="Search for all details for the latest Euro.",
tools=[
{"google_search": {}},
{"url_context": {}}
],
response_format={
"type": "text",
"mime_type": "application/json",
"schema": MatchResult.model_json_schema()
},
)
result = MatchResult.model_validate_json(interaction.steps[-1].content[0].text)
print(result)
JavaScript
import { GoogleGenAI } from "@google/genai";
import { z } from "zod";
import { zodToJsonSchema } from "zod-to-json-schema";
const client = new GoogleGenAI({});
const matchSchema = z.object({
winner: z.string().describe("The name of the winner."),
final_match_score: z.string().describe("The final score."),
scorers: z.array(z.string()).describe("The name of the scorer.")
});
async function run() {
const interaction = await client.interactions.create({
model: "gemini-3.1-pro-preview",
input: "Search for all details for the latest Euro.",
tools: [
{ googleSearch: {} },
{ urlContext: {} }
],
response_format: {
type: "text",
mime_type: "application/json",
schema: zodToJsonSchema(matchSchema)
},
});
const match = matchSchema.parse(JSON.parse(interaction.steps.at(-1).content[0].text));
console.log(match);
}
run();
PUSHTIM
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3.1-pro-preview",
"input": "Search for all details for the latest Euro.",
"tools": [
{"google_search": {}},
{"url_context": {}}
],
"response_format": {
"type": "text",
"mime_type": "application/json",
"schema": {
"type": "object",
"properties": {
"winner": {"type": "string", "description": "The name of the winner."},
"final_match_score": {"type": "string", "description": "The final score."},
"scorers": {
"type": "array",
"items": {"type": "string"},
"description": "The name of the scorer."
}
},
"required": ["winner", "final_match_score", "scorers"]
}
}
}'
Gjenerimi i imazhit
Gemini 3.1 Flash Image dhe Gemini 3 Pro Image ju lejojnë të gjeneroni dhe modifikoni imazhe nga kërkesat me tekst. Ai përdor arsyetimin për të "menduar" përmes një kërkese dhe mund të nxjerrë të dhëna në kohë reale - të tilla si parashikimet e motit ose grafikët e aksioneve - përpara se të përdorë bazën e Kërkimit Google përpara se të gjenerojë imazhe me besueshmëri të lartë.
Aftësi të reja dhe të përmirësuara:
- Renderim 4K dhe teksti: Gjeneroni tekst dhe diagrama të qarta dhe të lexueshme me rezolucione deri në 2K dhe 4K.
- Gjenerimi i bazuar: Përdorni mjetin
google_searchpër të verifikuar faktet dhe për të gjeneruar imazhe bazuar në informacione nga bota reale. Bazimi me Google Image Search është i disponueshëm për Gemini 3.1 Flash Image. - Redaktimi bisedor: Redaktimi i imazhit me shumë kthesa duke kërkuar thjesht ndryshime (p.sh., "Bëjeni sfondin si perëndim dielli"). Ky rrjedhë pune mbështetet në Nënshkrimet e Mendimit për të ruajtur kontekstin vizual midis kthesave.
Për detaje të plota mbi raportet e aspektit, rrjedhat e punës së redaktimit dhe opsionet e konfigurimit, shihni udhëzuesin e Gjenerimit të Imazheve .
Python
from google import genai
import base64
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-pro-image-preview",
input="Generate an infographic of the current weather in Tokyo.",
tools=[{"google_search": {}}],
response_format={
"type": "image",
"aspect_ratio": "16:9",
"image_size": "4K"
}
)
from PIL import Image
import io
image_blocks = [content_block for content_block in interaction.steps[-1].content if content_block.type == "image"]
if image_blocks:
image_data = base64.b64decode(image_blocks[0].data)
image = Image.open(io.BytesIO(image_data))
image.save('weather_tokyo.png')
image.show()
JavaScript
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";
const client = new GoogleGenAI({});
async function run() {
const interaction = await client.interactions.create({
model: "gemini-3-pro-image-preview",
input: "Generate a visualization of the current weather in Tokyo.",
tools: [{ googleSearch: {} }],
responseFormat: {
type: "image",
aspectRatio: "16:9",
imageSize: "4K"
}
});
for (const contentBlock of interaction.steps.at(-1).content) {
if (contentBlock.type === "image") {
const buffer = Buffer.from(contentBlock.data, "base64");
fs.writeFileSync("weather_tokyo.png", buffer);
}
}
}
run();
PUSHTIM
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3-pro-image-preview",
"input": "Generate a visualization of the current weather in Tokyo.",
"tools": [{"google_search": {}}],
"response_format": {
"type": "image",
"aspect_ratio": "16:9",
"image_size": "4K"
}
}'
Shembull Përgjigjeje

Ekzekutimi i Kodit me imazhe
Gemini 3 Flash mund ta trajtojë shikimin si një hetim aktiv, jo vetëm si një vështrim statik. Duke kombinuar arsyetimin me ekzekutimin e kodit , modeli formulon një plan, pastaj shkruan dhe ekzekuton kodin Python për të zmadhuar, prerë, shënuar ose manipuluar imazhet hap pas hapi për të bazuar vizualisht përgjigjet e tij.
Rastet e përdorimit:
- Zmadhoni dhe inspektoni: Modeli zbulon në mënyrë implicite kur detajet janë shumë të vogla (p.sh., duke lexuar një matës të largët ose numër serial) dhe shkruan kod për të prerë dhe rishqyrtuar zonën me rezolucion më të lartë.
- Matematika vizuale dhe paraqitja grafike: Modeli mund të kryejë llogaritje me shumë hapa duke përdorur kod (p.sh., duke mbledhur artikujt e rreshtit në një faturë ose duke gjeneruar një grafik Matplotlib nga të dhënat e nxjerra).
- Shënimi i imazhit: Modeli mund të vizatojë shigjeta, kuti kufizuese ose shënime të tjera direkt mbi imazhe për t'iu përgjigjur pyetjeve hapësinore si "Ku duhet të shkojë ky artikull?".
Për të aktivizuar të menduarit vizual, konfiguroni Ekzekutimin e Kodit si një mjet. Modeli do të përdorë automatikisht kodin për të manipuluar imazhet kur është e nevojshme.
Python
from google import genai
from google.genai import types
import requests
from PIL import Image
import io
import base64
image_path = "https://goo.gle/instrument-img"
image_bytes = requests.get(image_path).content
image = types.Part.from_bytes(data=image_bytes, mime_type="image/jpeg")
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input=[
image,
"Zoom into the expression pedals and tell me how many pedals are there?"
],
tools=[{"code_execution": {}}],
)
from IPython.display import display
from PIL import Image
import io
for step in interaction.steps:
if step.type == "model_output":
for content_block in step.content:
if content_block.type == "text":
print(content_block.text)
elif content_block.type == "image":
display(Image.open(io.BytesIO(base64.b64decode(content_block.data))))
elif step.type == "code_execution_call":
print(step.code)
elif step.type == "code_execution_result":
print(step.output)
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
async function main() {
const imageUrl = "https://goo.gle/instrument-img";
const response = await fetch(imageUrl);
const imageArrayBuffer = await response.arrayBuffer();
const base64ImageData = Buffer.from(imageArrayBuffer).toString("base64");
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: [
{
inlineData: {
mimeType: "image/jpeg",
data: base64ImageData,
},
},
{
text: "Zoom into the expression pedals and tell me how many pedals are there?",
},
],
tools: [{ codeExecution: {} }],
});
for (const step of interaction.steps) {
if (step.type === "model_output") {
for (const contentBlock of step.content) {
if (contentBlock.type === "text") {
console.log("Text:", contentBlock.text);
}
}
} else if (step.type === "code_execution_call") {
console.log("Code:", step.code);
} else if (step.type === "code_execution_result") {
console.log("Output:", step.output);
}
}
}
main();
PUSHTIM
IMG_URL="https://goo.gle/instrument-img"
MODEL="gemini-3-flash-preview"
MIME_TYPE=$(curl -sIL "$IMG_URL" | grep -i '^content-type:' | awk -F ': ' '{print $2}' | sed 's/\r$//' | head -n 1)
if [[ -z "$MIME_TYPE" || ! "$MIME_TYPE" == image/* ]]; then
MIME_TYPE="image/jpeg"
fi
if [[ "$(uname)" == "Darwin" ]]; then
IMAGE_B64=$(curl -sL "$IMG_URL" | base64 -b 0)
elif [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
IMAGE_B64=$(curl -sL "$IMG_URL" | base64)
else
IMAGE_B64=$(curl -sL "$IMG_URL" | base64 -w0)
fi
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "'$MODEL'",
"input": [{
"parts":[
{
"inline_data": {
"mime_type":"'"$MIME_TYPE"'",
"data": "'"$IMAGE_B64"'"
}
},
{"text": "Zoom into the expression pedals and tell me how many pedals are there?"}
]
}],
"tools": [{"code_execution": {}}]
}'
Për më shumë detaje mbi ekzekutimin e kodit me imazhe, shihni Ekzekutimi i Kodit .
Përgjigjet e funksionit multimodal
Thirrja e funksioneve multimodale u lejon përdoruesve të kenë përgjigje funksionesh që përmbajnë objekte multimodale, duke lejuar shfrytëzimin e përmirësuar të aftësive të thirrjes së funksioneve të modelit. Thirrja standarde e funksioneve mbështet vetëm përgjigjet e funksioneve të bazuara në tekst:
Python
from google import genai
import requests
import base64
client = genai.Client()
# 1. Define the tool
get_image_tool = {
"type": "function",
"name": "get_image",
"description": "Retrieves the image file reference for a specific order item.",
"parameters": {
"type": "object",
"properties": {
"item_name": {
"type": "string",
"description": "The name or description of the item ordered (e.g., 'instrument')."
}
},
"required": ["item_name"],
},
}
# 2. Send the request with tools
interaction_1 = client.interactions.create(
model="gemini-3-flash-preview",
input="Show me the instrument I ordered last month.",
tools=[get_image_tool],
)
# 3. Find the function call step
fc_step = next(s for s in interaction_1.steps if s.type == "function_call")
print(f"Tool Call: {fc_step.name}({fc_step.arguments})")
# Execute tool (fetch image)
image_path = "https://goo.gle/instrument-img"
image_bytes = requests.get(image_path).content
image_b64 = base64.b64encode(image_bytes).decode("utf-8")
# 4. Send multimodal function result back
interaction_2 = client.interactions.create(
model="gemini-3-flash-preview",
previous_interaction_id=interaction_1.id,
input=[{
"type": "function_result",
"name": fc_step.name,
"call_id": fc_step.id,
"result": [
{"type": "text", "text": "instrument.jpg"},
{
"type": "image",
"mime_type": "image/jpeg",
"data": image_b64,
}
]
}],
tools=[get_image_tool],
thinking_config={"include_thoughts": True},
)
print(f"\nFinal model response: {interaction_2.steps[-1].content[0].text}")
JavaScript
import { GoogleGenAI } from '@google/genai';
const client = new GoogleGenAI({});
// 1. Define the tool
const getImageTool = {
type: 'function',
name: 'get_image',
description: 'Retrieves the image file reference for a specific order item.',
parameters: {
type: 'object',
properties: {
item_name: {
type: 'string',
description: "The name or description of the item ordered (e.g., 'instrument').",
},
},
required: ['item_name'],
},
};
// 2. Send the request with tools
const interaction1 = await client.interactions.create({
model: 'gemini-3-flash-preview',
input: 'Show me the instrument I ordered last month.',
tools: [getImageTool],
});
// 3. Find the function call step
const fcStep = interaction1.steps.find(s => s.type === 'function_call');
console.log(`Tool Call: ${fcStep.name}(${JSON.stringify(fcStep.arguments)})`);
// Execute tool (fetch image)
const imageUrl = 'https://goo.gle/instrument-img';
const response = await fetch(imageUrl);
const imageArrayBuffer = await response.arrayBuffer();
const base64ImageData = Buffer.from(imageArrayBuffer).toString('base64');
// 4. Send multimodal function result back
const interaction2 = await client.interactions.create({
model: 'gemini-3-flash-preview',
previousInteractionId: interaction1.id,
input: [{
type: 'function_result',
name: fcStep.name,
call_id: fcStep.id,
result: [
{ type: 'text', text: 'instrument.jpg' },
{
type: 'image',
mimeType: 'image/jpeg',
data: base64ImageData,
}
]
}],
tools: [getImageTool],
thinking_config: { include_thoughts: true },
});
console.log(`\nFinal model response: ${interaction2.steps.at(-1).content[0].text}`);
PUSHTIM
IMG_URL="https://goo.gle/instrument-img"
MIME_TYPE=$(curl -sIL "$IMG_URL" | grep -i '^content-type:' | awk -F ': ' '{print $2}' | sed 's/\r$//' | head -n 1)
if [[ -z "$MIME_TYPE" || ! "$MIME_TYPE" == image/* ]]; then
MIME_TYPE="image/jpeg"
fi
# Check for macOS
if [[ "$(uname)" == "Darwin" ]]; then
IMAGE_B64=$(curl -sL "$IMG_URL" | base64 -b 0)
elif [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
IMAGE_B64=$(curl -sL "$IMG_URL" | base64)
else
IMAGE_B64=$(curl -sL "$IMG_URL" | base64 -w0)
fi
# 1. First interaction (triggers function call)
# curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
# -H "x-goog-api-key: $GEMINI_API_KEY" \
# -H 'Content-Type: application/json' \
# -d '{ "model": "gemini-3-flash-preview", "input": "Show me the instrument I ordered last month.", "tools": [...] }'
# 2. Send multimodal function result back (Replace INTERACTION_ID and CALL_ID)
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3-flash-preview",
"previous_interaction_id": "INTERACTION_ID",
"input": [{
"type": "function_result",
"name": "get_image",
"call_id": "CALL_ID",
"result": [
{ "type": "text", "text": "instrument.jpg" },
{
"type": "image",
"mime_type": "'"$MIME_TYPE"'",
"data": "'"$IMAGE_B64"'"
}
]
}],
"thinking_config": { "include_thoughts": true }
}'
Kombinoni mjetet e integruara dhe thirrjen e funksioneve
Gemini 3 lejon përdorimin e mjeteve të integruara (si Kërkimi në Google, konteksti i URL-së dhe më shumë ) dhe mjeteve të personalizuara të thirrjes së funksioneve në të njëjtën thirrje API, duke lejuar rrjedha pune më komplekse.
Python
from google import genai
from google.genai import types
client = genai.Client()
getWeather = {
"type": "function",
"name": "getWeather",
"description": "Gets the weather for a requested city.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city and state, e.g. Utqiaġvik, Alaska",
},
},
"required": ["city"],
},
}
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="What is the northernmost city in the United States? What's the weather like there today?",
tools=[
{"google_search": {}},
getWeather
],
)
# Find the function call step
fc_step = next((s for s in interaction.steps if s.type == "function_call"), None)
if fc_step:
# Simulate a function result
result = {"response": "Very cold. 22 degrees Fahrenheit."}
final_interaction = client.interactions.create(
model="gemini-3-flash-preview",
input=[
{"type": "function_result", "name": fc_step.name, "call_id": fc_step.id, "result": result}
],
tools=[
{"google_search": {}},
getWeather
],
previous_interaction_id=interaction.id,
)
print(final_interaction.steps[-1].content[0].text)
JavaScript
import { GoogleGenAI, Type } from '@google/genai';
const client = new GoogleGenAI({});
const getWeatherDeclaration = {
type: 'function',
name: 'getWeather',
description: 'Gets the weather for a requested city.',
parameters: {
type: Type.OBJECT,
properties: {
city: {
type: Type.STRING,
description: 'The city and state, e.g. Utqiaġvik, Alaska',
},
},
required: ['city'],
},
};
const interaction = await client.interactions.create({
model: 'gemini-3-flash-preview',
input: "What is the northernmost city in the United States? What's the weather like there today?",
tools: [
{ googleSearch: {} },
getWeatherDeclaration
],
});
// Find the function call step
const fcStep = interaction.steps.find(s => s.type === 'function_call');
if (fcStep) {
const result = { response: "Very cold. 22 degrees Fahrenheit." };
const finalInteraction = await client.interactions.create({
model: 'gemini-3-flash-preview',
input: [
{ type: 'function_result', name: fcStep.name, call_id: fcStep.id, result: result }
],
tools: [
{ googleSearch: {} },
getWeatherDeclaration
],
previous_interaction_id: interaction.id,
});
console.log(finalInteraction.steps.at(-1).content[0].text);
}
Migrimi nga Binjakët 2.5
Gemini 3 është familja jonë model më e aftë deri më sot dhe ofron një përmirësim gradual në krahasim me Gemini 2.5. Kur migroni, merrni parasysh sa vijon:
- Të menduarit: Nëse më parë keni përdorur inxhinieri komplekse të pyetjeve (si zinxhiri i mendimit) për të detyruar Gemini 2.5 të arsyetojë, provoni Gemini 3 me
thinking_level: "high"dhe pyetje të thjeshtuara. - Cilësimet e temperaturës: Nëse kodi juaj ekzistues e vendos temperaturën në mënyrë të qartë (veçanërisht në vlera të ulëta për daljet deterministike), ne rekomandojmë heqjen e këtij parametri dhe përdorimin e parazgjedhjes 1.0 të Gemini 3 për të shmangur problemet e mundshme të cikleve ose degradimin e performancës në detyra komplekse.
- Kuptimi i PDF-ve dhe dokumenteve: Nëse jeni mbështetur në sjellje specifike për analizimin e dendur të dokumenteve, testoni cilësimin e ri
media_resolution_highpër të siguruar saktësi të vazhdueshme. - Konsumi i tokenëve: Migrimi në cilësimet fillestare të Gemini 3 mund të rrisë përdorimin e tokenëve për PDF-të, por të ulë përdorimin e tokenëve për videon. Nëse kërkesat tani tejkalojnë dritaren e kontekstit për shkak të rezolucioneve më të larta fillestare, ne rekomandojmë që të zvogëlohet në mënyrë të qartë rezolucioni i medias.
- Segmentimi i imazhit: Aftësitë e segmentimit të imazhit (kthimi i maskave në nivel pikseli për objektet) nuk mbështeten në Gemini 3 Pro ose Gemini 3 Flash. Për ngarkesat e punës që kërkojnë segmentim të integruar të imazhit, ne rekomandojmë të vazhdoni të përdorni Gemini 2.5 Flash me të menduarit të çaktivizuar ose Gemini Robotics-ER 1.6 .
- Përdorimi i Kompjuterit: Gemini 3 Pro dhe Gemini 3 Flash mbështesin Përdorimin e Kompjuterit . Ndryshe nga seria 2.5, nuk keni nevojë të përdorni një model të veçantë për të aksesuar mjetin e Përdorimit të Kompjuterit.
- Mbështetje për mjetet : Kombinimi i mjeteve të integruara me thirrjen e funksioneve tani mbështetet për modelet Gemini 3. Tokëzimi i hartave tani mbështetet gjithashtu për modelet Gemini 3.
Pajtueshmëria me OpenAI
Për përdoruesit që përdorin shtresën e përputhshmërisë OpenAI , parametrat standardë ( reasoning_effort i OpenAI) hartëzohen automatikisht në ekuivalentët Gemini ( thinking_level ).
Nxitja e praktikave më të mira
Binjakët 3 është një model arsyetimi, i cili ndryshon mënyrën se si duhet të nxitni.
- Udhëzime të sakta: Jini koncizë në udhëzimet tuaja hyrëse. Binjakët 3 i përgjigjen më së miri udhëzimeve të drejtpërdrejta dhe të qarta. Mund të analizojë tepër teknikat e hollësishme ose tepër komplekse të inxhinierisë së udhëzimeve të përdorura për modelet e vjetra.
- Fjalëkalimi i rezultateve: Si parazgjedhje, Gemini 3 është më pak i gjatë dhe preferon të ofrojë përgjigje të drejtpërdrejta dhe efikase. Nëse rasti juaj i përdorimit kërkon një personazh më bisedor ose "të hapur", duhet ta drejtoni modelin në mënyrë të qartë në kërkesë (p.sh., "Shpjegojeni këtë si një asistent miqësor dhe i hapur").
- Menaxhimi i kontekstit: Kur punoni me grupe të mëdha të dhënash (p.sh., libra të tërë, baza kodesh ose video të gjata), vendosni udhëzimet ose pyetjet tuaja specifike në fund të kërkesës, pas kontekstit të të dhënave. Ankoroni arsyetimin e modelit me të dhënat e dhëna duke e filluar pyetjen tuaj me një frazë si, "Bazuar në informacionin paraprak...".
Mësoni më shumë rreth strategjive të projektimit të shpejtë në udhëzuesin e inxhinierisë së shpejtë .
Pyetje të shpeshta
Cili është kufiri i njohurive për Gemini 3? Modelet Gemini 3 kanë një kufi njohurish në janar 2025. Për informacione më të fundit, përdorni mjetin Search Grounding .
Cilat janë kufizimet e dritares së kontekstit? Modelet Gemini 3 mbështesin një dritare konteksti hyrëse prej 1 milion tokenësh dhe deri në 64 mijë tokenësh daljeje.
A ka një nivel falas për Gemini 3? Gemini 3 Flash
gemini-3-flash-previewka një nivel falas në Gemini API. Mund të provoni Gemini 3.1 Pro dhe 3 Flash pa pagesë në Google AI Studio, por nuk ka asnjë nivel falas në dispozicion përgemini-3.1-pro-previewnë Gemini API.A do të funksionojë ende kodi im i vjetër
thinking_budget? Po,thinking_budgetmbështetet ende për pajtueshmëri me prapavijë, por ne rekomandojmë migrimin nëthinking_levelpër një performancë më të parashikueshme. Mos i përdorni të dyja në të njëjtën kërkesë.A e mbështet Gemini 3 Batch API? Po, Gemini 3 mbështet Batch API .
A mbështetet Context Caching? Po, Context Caching mbështetet për Gemini 3.
Cilat mjete mbështeten në Gemini 3? Gemini 3 mbështet Kërkimin në Google , Grounding me Google Maps , Kërkimin e Skedarëve , Ekzekutimin e Kodit dhe Kontekstin e URL-së . Ai gjithashtu mbështet Thirrjen standarde të Funksioneve për mjetet tuaja të personalizuara dhe në kombinim me mjetet e integruara .
Çfarë është
gemini-3.1-pro-preview-customtools? Nëse po përdornigemini-3.1-pro-previewdhe modeli i shpërfill mjetet tuaja të personalizuara në favor të komandave bash, provoni modelingemini-3.1-pro-preview-customtools. Më shumë informacion këtu .