Ky udhëzues ju orienton në fillim me Gemini API duke përdorur Interactions API . Do të kryeni thirrjen tuaj të parë të API-t në më pak se një minutë dhe do të eksploroni gjenerimin e tekstit, kuptimin multimodal, gjenerimin e imazheve, prodhimin e strukturuar, mjetet, thirrjen e funksioneve, agjentët dhe ekzekutimin në sfond.
API-ja e Ndërveprimeve është e disponueshme përmes SDK-ve të Python dhe JavaScript , si dhe përmes REST.
1. Merrni një çelës API
Për të përdorur Gemini API, duhet të keni një çelës API për të autentifikuar kërkesat tuaja, për të zbatuar kufijtë e sigurisë dhe për të ndjekur përdorimin e llogarisë suaj.
- Google AI Studio krijon automatikisht një projekt dhe çelës API për përdoruesit e rinj. Mund ta kopjoni nga faqja e çelësave API .
- Nëse ju nevojitet një çelës i ri, klikoni Krijo çelës API në AI Studio dhe ndiqni dialogun për të shtuar një çift të ri çelës-projekt.
Vendosni çelësin tuaj si një ndryshore mjedisi:
export GEMINI_API_KEY="YOUR_API_KEY"
Përmirëso në nivelin me pagesë
Përmirësimi në nivelin me pagesë rrit kufijtë e tarifave dhe kërkon konfigurimin e Faturimit në Cloud.
- Klikoni Konfiguro faturimin në çelësat API të AI Studio ose në faqet e Projekteve .
- Ndiqni dialogun e Faturimit në Cloud për të krijuar ose lidhur një llogari faturimi, për të shtuar një metodë pagese dhe për të parapaguar një minimum prej 10 dollarësh (ose ekuivalentin e monedhës) në kredite të paguara.
- Shikoni përdorimin e API-t tuaj në Google AI Studio nën Paneli > Përdorimi .
Shihni faqen e Faturimit për më shumë informacion.
2. Instaloni SDK-në dhe bëni thirrjen tuaj të parë
Instaloni SDK-në dhe gjeneroni tekst me një thirrje të vetme API-je.
Python
Instaloni SDK-në:
pip install -U google-genai
Inicializoni klientin dhe bëni një kërkesë:
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.7-flash",
input="Explain how AI works in a few words"
)
print(interaction.output_text)
JavaScript
Instaloni SDK-në:
npm install @google/genai
Inicializoni klientin dhe bëni një kërkesë:
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: "gemini-3.7-flash",
input: "Explain how AI works in a few words",
});
console.log(interaction.output_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.7-flash",
"input": "Explain how AI works in a few words"
}'
Përgjigje:
{
"id": "v1_ChdpQUFvYXI...",
"status": "completed",
"usage": {
"total_tokens": 197,
"total_input_tokens": 8,
"total_output_tokens": 12
},
"created": "2026-06-09T12:01:25Z",
"steps": [
{
"type": "thought",
"signature": "EvEFCu4FAQw..."
},
{
"type": "model_output",
"content": [
{
"type": "text",
"text": "AI learns patterns from data, then uses those patterns to make predictions or decisions on new data."
}
]
}
],
"object": "interaction",
"model": "gemini-3.7-flash",
}
Kur përdoret REST, API kthen burimin e plotë Interaction që përmban meta të dhëna, statistika përdorimi dhe historikun hap pas hapi të kthesës.
Ndërkohë që SDK-të e ekspozojnë përgjigjen e plotë, ato ofrojnë gjithashtu veti të përshtatshme si interaction.output_text dhe interaction.output_image për të aksesuar drejtpërdrejt rezultatet përfundimtare. Mësoni më shumë rreth strukturës së përgjigjes në përmbledhjen e Ndërveprimeve ose lexoni udhëzuesin e gjenerimit të tekstit për detaje mbi udhëzimet e sistemit dhe konfigurimin e gjenerimit.
3. Transmetoni përgjigjen
Për ndërveprime më fluide, transmetoni përgjigjen ndërsa gjenerohet. Çdo ngjarje step.delta ofron një pjesë teksti që mund ta shfaqni menjëherë.
Python
from google import genai
client = genai.Client()
stream = client.interactions.create(
model="gemini-3.7-flash",
input="Explain how AI works",
stream=True
)
for event in stream:
print(event)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const stream = await ai.interactions.create({
model: "gemini-3.7-flash",
input: "Explain how AI works",
stream: true,
});
for await (const event of stream) {
console.log(event);
}
PUSHTIM
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?alt=sse" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
--no-buffer \
-d '{
"model": "gemini-3.7-flash",
"input": "Explain how AI works",
"stream": true
}'
Gjatë transmetimit, serveri përgjigjet me një rrjedhë ngjarjesh të dërguara nga serveri (SSE). Çdo ngjarje përfshin një lloj dhe të dhëna JSON.
Përgjigje:
event: interaction.created
data: {"interaction":{"id":"v1_Chd...","status":"in_progress","model":"gemini-3.7-flash"},"event_type":"interaction.created"}
event: step.start
data: {"index":0,"step":{"type":"thought"},"event_type":"step.start"}
event: step.delta
data: {"index":0,"delta":{"signature":"EvEFCu4F...","type":"thought_signature"},"event_type":"step.delta"}
event: step.stop
data: {"index":0,"event_type":"step.stop"}
event: step.start
data: {"index":1,"step":{"type":"model_output"},"event_type":"step.start"}
event: step.delta
data: {"index":1,"delta":{"text":"AI ","type":"text"},"event_type":"step.delta"}
event: step.delta
data: {"index":1,"delta":{"text":"works ","type":"text"},"event_type":"step.delta"}
event: step.stop
data: {"index":1,"event_type":"step.stop"}
event: interaction.completed
data: {"interaction":{"id":"v1_Chd...","status":"completed","usage":{"total_tokens":197}},"event_type":"interaction.completed"}
Për një vështrim të detajuar mbi trajtimin e ngjarjeve të transmetimit dhe llojeve të deltave, shihni udhëzuesin e ndërveprimeve të transmetimit .
4. Biseda me shumë kthesa
API-ja e Ndërveprimeve mbështet biseda me shumë kthesa me dy qasje:
- Stateful (i rekomanduar) : Vazhdoni një bisedë në server duke përdorur
previous_interaction_id. Ideale për shumicën e rrjedhave të punës së bisedave dhe agjentëve ku dëshironi që serveri të menaxhojë historikun dhe të optimizojë ruajtjen në memorje. Pa shtetësi : Menaxhoni historikun e bisedës në klient duke kaluar të gjitha raundet e mëparshme (duke përfshirë mendimin e ndërmjetëm për modelin dhe hapat e mjetit) në secilën kërkesë.
I plotë (i rekomanduar)
Ndërveprimet zinxhir duke kaluar previous_interaction_id . Serveri menaxhon historikun e plotë të bisedave për ju.
Python
from google import genai
client = genai.Client()
# Server-side state (recommended)
interaction1 = client.interactions.create(
model="gemini-3.7-flash",
input="I have 2 dogs in my house.",
)
print("Response 1:", interaction1.output_text)
interaction2 = client.interactions.create(
model="gemini-3.7-flash",
input="How many paws are in my house?",
previous_interaction_id=interaction1.id,
)
print("Response 2:", interaction2.output_text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
// Server-side state (recommended)
const interaction1 = await ai.interactions.create({
model: "gemini-3.7-flash",
input: "I have 2 dogs in my house.",
});
console.log("Response 1:", interaction1.output_text);
const interaction2 = await ai.interactions.create({
model: "gemini-3.7-flash",
input: "How many paws are in my house?",
previous_interaction_id: interaction1.id,
});
console.log("Response 2:", interaction2.output_text);
PUSHTIM
RESPONSE1=$(curl -s -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.7-flash",
"input": "I have 2 dogs in my house."
}')
INTERACTION_ID=$(echo "$RESPONSE1" | jq -r '.id')
echo "Interaction 1 ID: $INTERACTION_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.7-flash",
"input": "How many paws are in my house?",
"previous_interaction_id": "'$INTERACTION_ID'"
}'
Pa shtetësi
Cakto store=false dhe menaxho historikun e bisedave në anën e klientit. Duhet të ruash dhe ridërgosh të gjithë hapat e gjeneruar nga modeli (duke përfshirë hapat e thought dhe function_call ) pikërisht ashtu siç i ke marrë.
Python
from google import genai
client = genai.Client()
history = [
{
"type": "user_input",
"content": [{"type": "text", "text": "I have 2 dogs in my house."}]
}
]
interaction1 = client.interactions.create(
model="gemini-3.7-flash",
store=False,
input=history
)
print("Response 1:", interaction1.steps[-1].content[0].text)
for step in interaction1.steps:
history.append(step.model_dump())
history.append({
"type": "user_input",
"content": [{"type": "text", "text": "How many paws are in my house?"}]
})
interaction2 = client.interactions.create(
model="gemini-3.7-flash",
store=False,
input=history
)
print("Response 2:", interaction2.steps[-1].content[0].text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const history = [
{
type: "user_input",
content: [{ type: "text", text: "I have 2 dogs in my house." }]
}
];
const interaction1 = await ai.interactions.create({
model: "gemini-3.7-flash",
store: false,
input: history
});
console.log("Response 1:", interaction1.steps.at(-1).content[0].text);
history.push(...interaction1.steps);
history.push({
type: "user_input",
content: [{ type: "text", text: "How many paws are in my house?" }]
});
const interaction2 = await ai.interactions.create({
model: "gemini-3.7-flash",
store: false,
input: history
});
console.log("Response 2:", interaction2.steps.at(-1).content[0].text);
PUSHTIM
# Turn 1: Send with store: false
RESPONSE1=$(curl -s -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.7-flash",
"store": false,
"input": [
{
"type": "user_input",
"content": "I have 2 dogs in my house."
}
]
}')
MODEL_STEPS=$(echo "$RESPONSE1" | jq '.steps')
# Turn 2: Build full history
HISTORY=$(jq -n \
--argjson first_input '[{"type": "user_input", "content": "I have 2 dogs in my house."}]' \
--argjson model_steps "$MODEL_STEPS" \
--argjson second_input '[{"type": "user_input", "content": "How many paws are in my house?"}]' \
'$first_input + $model_steps + $second_input')
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.7-flash\",
\"store\": false,
\"input\": $HISTORY
}"
Përgjigje:
{
"id": "v2_Chd...",
"status": "completed",
"usage": {
"total_tokens": 240,
"total_input_tokens": 60,
"total_output_tokens": 20
},
"steps": [
{
"type": "model_output",
"content": [
{
"type": "text",
"text": "There are 8 paws in your house. 2 dogs \u00d7 4 paws = 8 paws."
}
]
}
],
"object": "interaction",
"model": "gemini-3.7-flash"
}
Ndërveprimi i dytë kthen një objekt të plotë përgjigjeje që përfshin vetëm hapat e rinj, por bazohet në kontekstin e kthesës së mëparshme. Mësoni më shumë rreth ruajtjes së gjendjes në udhëzuesin e bisedave me shumë kthesa ose eksploroni modalitetin pa gjendje për menaxhimin e historikut nga ana e klientit.
5. Kuptimi multimodal
Modelet Gemini i kuptojnë imazhet, audion, videon dhe dokumentet në mënyrë native. Kaloni median së bashku me tekstin në një kërkesë të vetme.
Python
import base64
from google import genai
client = genai.Client()
# Load a local image
with open("sample.jpg", "rb") as f:
image_bytes = f.read()
image_b64 = base64.b64encode(image_bytes).decode("utf-8")
interaction = client.interactions.create(
model="gemini-3.7-flash",
input=[
{"type": "text", "text": "Compare this local image and this remote audio file."},
{
"type": "image",
"data": image_b64,
"mime_type": "image/jpeg"
},
{
"type": "audio",
"uri": "https://storage.googleapis.com/generativeai-downloads/data/sample.mp3",
"mime_type": "audio/mp3"
}
]
)
print(interaction.output_text)
JavaScript
import fs from "fs";
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
// Load a local image
const imageBytes = fs.readFileSync("sample.jpg");
const imageB64 = imageBytes.toString("base64");
const interaction = await ai.interactions.create({
model: "gemini-3.7-flash",
input: [
{ type: "text", text: "Compare this local image and this remote audio file." },