इस गाइड की मदद से, Interactions API का इस्तेमाल करके Gemini API को शुरू किया जा सकता है. एक मिनट से भी कम समय में, आप पहली बार एपीआई कॉल करेंगे और टेक्स्ट जनरेट करने, अलग-अलग सोर्स से जानकारी समझने, इमेज जनरेट करने, स्ट्रक्चर्ड आउटपुट, टूल, फ़ंक्शन कॉल करने, एजेंट, और बैकग्राउंड में एक्ज़ीक्यूशन की प्रोसेस के बारे में जानेंगे.
Interactions API, Python और JavaScript SDK के साथ-साथ REST के ज़रिए भी उपलब्ध है.
1. एपीआई पासकोड पाना
Gemini API का इस्तेमाल करने के लिए, आपको एपीआई पासकोड की ज़रूरत होगी. शुरू करने के लिए, मुफ़्त में एक पासकोड बनाएं:
इसके बाद, इसे एनवायरमेंट वैरिएबल के तौर पर सेट करें:
export GEMINI_API_KEY="YOUR_API_KEY"
2. एसडीके इंस्टॉल करना और पहली बार कॉल करना
एसडीके इंस्टॉल करें और एपीआई को एक बार कॉल करके टेक्स्ट जनरेट करें.
Python
एसडीके इंस्टॉल करें:
pip install -U google-genai
क्लाइंट को शुरू करें और अनुरोध करें:
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.5-flash",
input="Explain how AI works in a few words"
)
print(interaction.output_text)
JavaScript
एसडीके इंस्टॉल करें:
npm install @google/genai
क्लाइंट को शुरू करें और अनुरोध करें:
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: "gemini-3.5-flash",
input: "Explain how AI works in a few words",
});
console.log(interaction.output_text);
REST
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.5-flash",
"input": "Explain how AI works in a few words"
}'
रिस्पॉन्स:
{
"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.5-flash",
}
REST का इस्तेमाल करने पर, एपीआई Interaction रिसॉर्स की पूरी जानकारी दिखाता है. इसमें मेटाडेटा, इस्तेमाल के आंकड़े, और हर टर्न का सिलसिलेवार इतिहास शामिल होता है.
एसडीके, पूरा रिस्पॉन्स दिखाते हैं. साथ ही, ये interaction.output_text और interaction.output_image जैसी प्रॉपर्टी भी उपलब्ध कराते हैं, ताकि फ़ाइनल आउटपुट को सीधे ऐक्सेस किया जा सके. Interactions की खास जानकारी में, रिस्पॉन्स के स्ट्रक्चर के बारे में ज़्यादा जानें. इसके अलावा, सिस्टम के निर्देशों और जनरेशन कॉन्फ़िगरेशन के बारे में जानकारी पाने के लिए, टेक्स्ट जनरेट करने से जुड़ी गाइड पढ़ें.
3. रिस्पॉन्स को स्ट्रीम करना
बेहतर इंटरैक्शन के लिए, रिस्पॉन्स जनरेट होने के साथ-साथ उसे स्ट्रीम करें. step.delta का हर इवेंट, टेक्स्ट का एक हिस्सा डिलीवर करता है. इसे तुरंत दिखाया जा सकता है.
Python
from google import genai
client = genai.Client()
stream = client.interactions.create(
model="gemini-3.5-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.5-flash",
input: "Explain how AI works",
stream: true,
});
for await (const event of stream) {
console.log(event);
}
REST
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.5-flash",
"input": "Explain how AI works",
"stream": true
}'
स्ट्रीमिंग के दौरान, सर्वर, सर्वर-सेंट इवेंट (एसएसई) की स्ट्रीम के साथ जवाब देता है. हर इवेंट में एक टाइप और JSON डेटा शामिल होता है.
रिस्पॉन्स:
event: interaction.created
data: {"interaction":{"id":"v1_Chd...","status":"in_progress","model":"gemini-3.5-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"}
स्ट्रीमिंग इवेंट और डेल्टा टाइप को मैनेज करने के बारे में ज़्यादा जानने के लिए, स्ट्रीमिंग इंटरैक्शन से जुड़ी गाइड देखें.
4. सिलसिलेवार बातचीत
Interactions API, सिलसिलेवार बातचीत के लिए दो तरीके उपलब्ध कराता है:
- स्टेटफ़ुल (सुझाया गया):
previous_interaction_idका इस्तेमाल करके, सर्वर पर बातचीत जारी रखें. यह सुविधा, चैट और एजेंटिक वर्कफ़्लो के लिए सबसे सही है. इसमें सर्वर, इतिहास को मैनेज करता है और कैश मेमोरी को ऑप्टिमाइज़ करता है. स्टेटलेस: हर अनुरोध में, पिछले सभी टर्न (इंटरमीडिएट मॉडल के थॉट और टूल के चरणों सहित) पास करके, क्लाइंट पर बातचीत के इतिहास को मैनेज करें.
स्टेटफ़ुल (सुझाया गया)
previous_interaction_id पास करके, इंटरैक्शन को चेन करें. सर्वर, बातचीत के पूरे इतिहास को मैनेज करता है.
Python
from google import genai
client = genai.Client()
# Server-side state (recommended)
interaction1 = client.interactions.create(
model="gemini-3.5-flash",
input="I have 2 dogs in my house.",
)
print("Response 1:", interaction1.output_text)
interaction2 = client.interactions.create(
model="gemini-3.5-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.5-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.5-flash",
input: "How many paws are in my house?",
previous_interaction_id: interaction1.id,
});
console.log("Response 2:", interaction2.output_text);
REST
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.5-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.5-flash",
"input": "How many paws are in my house?",
"previous_interaction_id": "'$INTERACTION_ID'"
}'
स्टेटलेस
store=false सेट करें और क्लाइंट साइड पर बातचीत के इतिहास को मैनेज करें. मॉडल से जनरेट किए गए सभी चरणों (इनमें thought और function_call चरण शामिल हैं) को उसी तरह सेव करें और फिर से भेजें.
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.5-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.5-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.5-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.5-flash",
store: false,
input: history
});
console.log("Response 2:", interaction2.steps.at(-1).content[0].text);
REST
# 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.5-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.5-flash\",
\"store\": false,
\"input\": $HISTORY
}"
रिस्पॉन्स:
{
"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.5-flash"
}
दूसरे इंटरैक्शन में, पूरा रिस्पॉन्स ऑब्जेक्ट मिलता है. इसमें सिर्फ़ नए चरण शामिल होते हैं. हालांकि, यह पिछले टर्न के कॉन्टेक्स्ट पर आधारित होता है. मल्टी-टर्न बातचीत से जुड़ी गाइड में, स्टेट बनाए रखने के बारे में ज़्यादा जानें. इसके अलावा, क्लाइंट-साइड इतिहास को मैनेज करने के लिए, स्टेटलेस मोड के बारे में जानें.
5. अलग-अलग सोर्स से जानकारी समझना
Gemini मॉडल, इमेज, ऑडियो, वीडियो, और दस्तावेज़ों को आसानी से समझ सकते हैं. एक ही अनुरोध में, टेक्स्ट के साथ-साथ मीडिया भी पास करें.
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.5-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.5-flash",
input: [
{ type: "text", text: "Compare this local image and this remote audio file." },
{
type: "image",
data: imageB64,
mime_type: "image/jpeg"
},
{
type: "audio",
uri: "https://storage.googleapis.com/generativeai-downloads/data/sample.mp3",
mime_type: "audio/mp3"
}
],
});
console.log(interaction.output_text);
REST
# Base64-encode local image
BASE64_IMAGE=$(base64 -w 0 sample.jpg)
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" -H "x-goog-api-key: $GEMINI_API_KEY" -H 'Content-Type: application/json' -H "Api-Revision: 2026-05-20" -d '{
"model": "gemini-3.5-flash",
"input": [
{
"type": "text",
"text": "Compare this local image and this remote audio file."
},
{
"type": "image",
"data": "'$BASE64_IMAGE'",
"mime_type": "image/jpeg"
},
{
"type": "audio",
"uri": "https://storage.googleapis.com/generativeai-downloads/data/sample.mp3",
"mime_type": "audio/mp3"
}
]
}'
रिस्पॉन्स:
{
"id": "v1_Chd...",
"status": "completed",
"usage": {
"total_tokens": 300
},
"steps": [
{
"type": "model_output",
"content": [
{
"type": "text",
"text": "The local image displays a pipe organ while the remote audio file is a sample MP3 clip..."
}
]
}
],
"object": "interaction",
"model": "gemini-3.5-flash",
}
इमेज की बारीक़ी से पहचान करने से जुड़ी गाइड में, इमेज, वीडियो, और ऑडियो फ़ाइलें पास करने का तरीका जानें.
ऑडियो की बारीक़ी से पहचान
ऑडियो फ़ाइलों को लेख में बदलें, उनकी खास जानकारी पाएं या उनसे जुड़े सवालों के जवाब पाएं.
वीडियो की बारीक़ी से पहचान
वीडियो के कॉन्टेंट का विश्लेषण करें, इवेंट ढूंढें, और कार्रवाइयों के बारे में जानकारी पाएं.
दस्तावेज़ की प्रोसेसिंग
पीडीएफ़ और अन्य फ़ॉर्मैट वाले दस्तावेज़ों से जानकारी निकालें.
6. मल्टीमोडल जनरेशन
Gemini, Nano Banana इमेज मॉडल का इस्तेमाल करके, इमेज जनरेट कर सकता है.
Python
import base64
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.1-flash-image",
input="Generate an image of a futuristic city skyline at sunset",
)
with open("generated_image.png", "wb") as f:
f.write(base64.b64decode(interaction.output_image.data))
JavaScript
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: "gemini-3.1-flash-image",
input: "Generate an image of a futuristic city skyline at sunset",
});
const generatedImage = interaction.output_image;
if (generatedImage) {
const buffer = Buffer.from(generatedImage.data, "base64");
fs.writeFileSync("generated_image.png", buffer);
}
REST
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.1-flash-image",
"input": [
{"type": "text", "text": "Generate an image of a futuristic city skyline at sunset"}
]
}'
रिस्पॉन्स:
{
"id": "v1_Chd...",
"status": "completed",
"steps": [
{
"type": "model_output",
"content": [
{
"type": "image",
"data": "BASE64_ENCODED_IMAGE",
"mime_type": "image/png"
}
]
}
],
"object": "interaction",
"model": "gemini-3.1-flash-image",
}
मॉडल से इमेज जनरेट होने पर, यह steps ऐरे में मौजूद किसी चरण में, base64-encoded इमेज डेटा दिखाता है. साथ ही, यह output_image प्रॉपर्टी के ज़रिए भी डेटा दिखाता है. आस्पेक्ट रेशियो, इमेज में बदलाव करने, और रेफ़रंस के बारे में जानने के लिए, इमेज जनरेट करने से जुड़ी गाइड देखें.
स्पीच जनरेशन
Gemini 3.1 Flash TTS की मदद से, अलग-अलग आवाज़ों में और भावों के साथ स्पीच जनरेट करें.
संगीत जनरेट करने की सुविधा
Lyria 3 की मदद से, क्लिप और पूरे गाने बनाएं.
7. स्ट्रक्चर्ड आउटपुट का इस्तेमाल करना
मॉडल को JSON दिखाने के लिए कॉन्फ़िगर करें. यह JSON, आपके तय किए गए स्कीमा से मेल खाता हो. स्ट्रक्चर्ड आउटपुट, Pydantic (Python) और Zod (JavaScript) के साथ काम करता है.
Python
from google import genai
from pydantic import BaseModel, Field
from typing import List, Optional
class Recipe(BaseModel):
recipe_name: str = Field(description="Name of the recipe.")
ingredients: List[str] = Field(description="List of ingredients.")
prep_time_minutes: Optional[int] = Field(description="Prep time in minutes.")
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.5-flash",
input="Give me a recipe for banana bread",
response_format={
"type": "text",
"mime_type": "application/json",
"schema": Recipe.model_json_schema()
},
)
recipe = Recipe.model_validate_json(interaction.output_text)
print(recipe)
JavaScript
import { GoogleGenAI } from "@google/genai";
import * as z from "zod";
const ai = new GoogleGenAI({});
const recipeJsonSchema = {
type: "object",
properties: {
recipe_name: { type: "string", description: "Name of the recipe." },
ingredients: {
type: "array",
items: { type: "string" },
description: "List of ingredients."
},
prep_time_minutes: {
type: "integer",
description: "Prep time in minutes."
}
},
required: ["recipe_name", "ingredients"]
};
const recipeSchema = z.fromJSONSchema(recipeJsonSchema);
const interaction = await ai.interactions.create({
model: "gemini-3.5-flash",
input: "Give me a recipe for banana bread",
response_format: {
type: "text",
mime_type: "application/json",
schema: recipeJsonSchema
},
});
const recipe = recipeSchema.parse(JSON.parse(interaction.output_text));
console.log(recipe);
REST
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.5-flash",
"input": "Give me a recipe for banana bread",
"response_format": {
"type": "text",
"mime_type": "application/json",
"schema": {
"type": "object",
"properties": {
"recipe_name": { "type": "string", "description": "Name of the recipe." },
"ingredients": {
"type": "array",
"items": { "type": "string" },
"description": "List of ingredients."
},
"prep_time_minutes": {
"type": "integer",
"description": "Prep time in minutes."
}
},
"required": ["recipe_name", "ingredients"]
}
}
}'
रिस्पॉन्स:
{
"id": "v1_Chd...",
"status": "completed",
"steps": [
{
"type": "model_output",
"content": [
{
"type": "text",
"text": "{\n \"recipe_name\": \"Classic Banana Bread\",\n \"ingredients\": [\n \"3 ripe bananas, mashed\",\n \"1/3 cup melted butter\",\n \"3/4 cup sugar\",\n \"1 egg, beaten\",\n \"1 teaspoon vanilla extract\",\n \"1 teaspoon baking soda\",\n \"Pinch of salt\",\n \"1.5 cups all-purpose flour\"\n ],\n \"prep_time_minutes\": 15\n}"
}
]
}
],
"object": "interaction",
"model": "gemini-3.5-flash",
}
आउटपुट टेक्स्ट ब्लॉक में, मान्य JSON स्ट्रिंग होती है. यह स्ट्रिंग, अनुरोध किए गए स्कीमा के मुताबिक होती है. ज़्यादा कॉम्प्लेक्स स्ट्रक्चर और रिकर्सिव स्कीमा तय करने का तरीका जानने के लिए, स्ट्रक्चर्ड आउटपुट से जुड़ी गाइड देखें.
8. टूल इस्तेमाल करना
Google Search की मदद से, मॉडल के रिस्पॉन्स को रीयल-टाइम जानकारी पर आधारित करें. एपीआई, अपने-आप खोज करता है, नतीजों को प्रोसेस करता है, और साइटेशन दिखाता है.
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.5-flash",
input="Who won the euro 2024?",
tools=[{"type": "google_search"}]
)
print(interaction.output_text)
# Print citations
for step in interaction.steps:
if step.type == "model_output":
for content_block in step.content:
if content_block.type == "text" and content_block.annotations:
print("\nCitations:")
for annotation in content_block.annotations:
if annotation.type == "url_citation":
print(f" [{annotation.title}]({annotation.url})")
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: "gemini-3.5-flash",
input: "Who won the euro 2024?",
tools: [{ type: "google_search" }]
});
console.log(interaction.output_text);
// Print citations
for (const step of interaction.steps) {
if (step.type === "model_output") {
for (const contentBlock of step.content) {
if (contentBlock.type === "text" && contentBlock.annotations) {
console.log("\nCitations:");
for (const annotation of contentBlock.annotations) {
if (annotation.type === "url_citation") {
console.log(` [${annotation.title}](${annotation.url})`);
}
}
}
}
}
}
REST
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.5-flash",
"input": "Who won the euro 2024?",
"tools": [{"type": "google_search"}]
}'
रिस्पॉन्स:
{
"id": "v1_Chd...",
"status": "completed",
"steps": [
{
"type": "thought",
"signature": "EvEFCu4F..."
},
{
"type": "google_search_call",
"arguments": {
"queries": ["UEFA Euro 2024 winner"]
}
},
{
"type": "google_search_result",
"call_id": "search_001",
"result": [
{
"search_suggestions": "<!-- HTML and CSS search widget -->"
}
]
},
{
"type": "model_output",
"content": [
{
"type": "text",
"text": "Spain won Euro 2024, defeating England 2-1 in the final.",
"annotations": [
{
"type": "url_citation",
"url": "https://www.uefa.com/euro2024",
"title": "uefa.com",
"start_index": 0,
"end_index": 56
}
]
}
]
}
],
"object": "interaction",
"model": "gemini-3.5-flash",
}
खोज के चरणों की पूरी जानकारी, इंटरैक्शन के इतिहास में मौजूद होती है. साथ ही, फ़ाइनल आउटपुट में, वेब सोर्स की ओर इशारा करने वाले इनलाइन साइटेशन शामिल होते हैं.
Google Search की मदद से, साइटेशन निकालने का तरीका जानने के लिए, Google Search की मदद से साइटेशन निकालने से जुड़ी गाइड देखें. इसके अलावा, एक से ज़्यादा टूल को एक साथ इस्तेमाल करने का तरीका जानने के लिए, एक से ज़्यादा टूल को एक साथ इस्तेमाल करने से जुड़ी गाइड देखें.
कोड एक्ज़ीक्यूशन
Python कोड को सुरक्षित सैंडबॉक्स वाले Borg एनवायरमेंट में चलाएं.
यूआरएल कॉन्टेक्स्ट
वेबपेज के कॉन्टेंट में रिस्पॉन्स को आधार देने के लिए, सार्वजनिक वेब यूआरएल सीधे पास करें.
फ़ाइल खोजने की सुविधा
अपलोड किए गए दस्तावेज़ों और मीडिया फ़ाइलों को इंडेक्स करें और उनमें खोजें.
Google Maps
रिस्पॉन्स को रीयल-वर्ल्ड जियोस्पेशल और जगह की जानकारी वाले डेटा पर आधारित करें.
कंप्यूटर का इस्तेमाल
ब्राउज़र ऑटोमेशन और स्क्रीन इंटरैक्शन.
9. अपने फ़ंक्शन कॉल करना
फ़ंक्शन कॉल करने की सुविधा की मदद से, मॉडल को अपने कोड से कनेक्ट किया जा सकता है. इसमें फ़ंक्शन का नाम और पैरामीटर तय किए जाते हैं. मॉडल तय करता है कि इसे कब कॉल करना है और स्ट्रक्चर्ड आर्ग्युमेंट दिखाता है. इसके बाद, इसे स्थानीय तौर पर एक्ज़ीक्यूट किया जाता है और नतीजे वापस भेजे जाते हैं.
स्टेटफ़ुल (सुझाया गया)
Python
import json
from google import genai
client = genai.Client()
weather_tool = {
"type": "function",
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name, e.g. San Francisco",
},
},
"required": ["location"],
},
}
available_functions = {
"get_current_temperature": lambda location: {
"location": location, "temperature": "22", "unit": "celsius"
},
}
user_input = "What is the temperature in London?"
previous_id = None
while True:
interaction = client.interactions.create(
model="gemini-3.5-flash",
input=user_input,
tools=[weather_tool],
previous_interaction_id=previous_id,
)
function_results = []
for step in interaction.steps:
if step.type == "function_call":
result = available_functions[step.name](**step.arguments)
print(f"Called {step.name}({step.arguments}) → {result}")
function_results.append({
"type": "function_result",
"name": step.name,
"call_id": step.id,
"result": [{"type": "text", "text": json.dumps(result)}],
})
if not function_results:
break
user_input = function_results
previous_id = interaction.id
print(interaction.output_text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const weatherTool = {
type: "function",
name: "get_current_temperature",
description: "Gets the current temperature for a given location.",
parameters: {
type: "object",
properties: {
location: {
type: "string",
description: "The city name, e.g. San Francisco",
},
},
required: ["location"],
},
};
const availableFunctions = {
get_current_temperature: ({ location }) => ({
location, temperature: "22", unit: "celsius"
}),
};
let input = "What is the temperature in London?";
let previousId = null;
let interaction;
while (true) {
interaction = await ai.interactions.create({
model: "gemini-3.5-flash",
input,
tools: [weatherTool],
previous_interaction_id: previousId,
});
const functionResults = [];
for (const step of interaction.steps) {
if (step.type === "function_call") {
const result = availableFunctions[step.name](step.arguments);
console.log(`Called ${step.name}(${JSON.stringify(step.arguments)}) →`, result);
functionResults.push({
type: "function_result",
name: step.name,
call_id: step.id,
result: [{ type: "text", text: JSON.stringify(result) }],
});
}
}
if (functionResults.length === 0) break;
input = functionResults;
previousId = interaction.id;
}
console.log(interaction.output_text);
REST
# Turn 1: Send prompt with function declaration
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.5-flash",
"input": "What is the temperature in London?",
"tools": [{
"type": "function",
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city name"}
},
"required": ["location"]
}
}]
}')
INTERACTION_ID=$(echo "$RESPONSE1" | jq -r '.id')
FC_NAME=$(echo "$RESPONSE1" | jq -r '.steps[] | select(.type=="function_call") | .name')
FC_ID=$(echo "$RESPONSE1" | jq -r '.steps[] | select(.type=="function_call") | .id')
echo "Function: $FC_NAME, Call ID: $FC_ID"
# Turn 2: Send function result back
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.5-flash",
"previous_interaction_id": "'$INTERACTION_ID'",
"input": [{
"type": "function_result",
"name": "'$FC_NAME'",
"call_id": "'$FC_ID'",
"result": [{"type": "text", "text": "{\"location\": \"London\", \"temperature\": \"22\", \"unit\": \"celsius\"}"}]
}],
"tools": [{
"type": "function",
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city name"}
},
"required": ["location"]
}
}]
}'
स्टेटलेस
स्टेटलेस मोड में भी फ़ंक्शन कॉल करने की सुविधा का इस्तेमाल किया जा सकता है. इसके लिए, क्लाइंट साइड पर बातचीत के इतिहास को मैनेज करें और store=false सेट करें. स्टेटलेस मोड में, बाद के हर अनुरोध के input फ़ील्ड में, बातचीत का पूरा इतिहास पास करना ज़रूरी है. इस इतिहास में ये चीज़ें शामिल होनी चाहिए:
user_inputका शुरुआती चरण.- टर्न 1 में मॉडल से जनरेट किए गए सभी चरण (इनमें
thoughtऔरfunction_callचरण शामिल हैं) उसी तरह सेव करें और फिर से भेजें. function_resultचरण. इसमें, एक्ज़ीक्यूट किए गए फ़ंक्शन का आउटपुट शामिल होता है.
Python
import json
from google import genai
client = genai.Client()
weather_tool = {
"type": "function",
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name, e.g. San Francisco",
},
},
"required": ["location"],
},
}
available_functions = {
"get_current_temperature": lambda location: {
"location": location, "temperature": "22", "unit": "celsius"
},
}
history = [
{
"type": "user_input",
"content": [{"type": "text", "text": "What is the temperature in London?"}]
}
]
while True:
interaction = client.interactions.create(
model="gemini-3.5-flash",
store=False,
input=history,
tools=[weather_tool],
)
function_results = []
for step in interaction.steps:
history.append(step.model_dump())
if step.type == "function_call":
result = available_functions[step.name](**step.arguments)
print(f"Called {step.name}({step.arguments}) → {result}")
fn_result = {
"type": "function_result",
"name": step.name,
"call_id": step.id,
"result": [{"type": "text", "text": json.dumps(result)}],
}
function_results.append(fn_result)
history.append(fn_result)
if not function_results:
break
print(interaction.output_text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const weatherTool = {
type: "function",
name: "get_current_temperature",
description: "Gets the current temperature for a given location.",
parameters: {
type: "object",
properties: {
location: {
type: "string",
description: "The city name, e.g. San Francisco",
},
},
required: ["location"],
},
};
const availableFunctions = {
get_current_temperature: ({ location }) => ({
location, temperature: "22", unit: "celsius"
}),
};
const history = [
{
type: "user_input",
content: [{ type: "text", text: "What is the temperature in London?" }]
}
];
let interaction;
while (true) {
interaction = await ai.interactions.create({
model: "gemini-3.5-flash",
store: false,
input: history,
tools: [weatherTool],
});
const functionResults = [];
for (const step of interaction.steps) {
history.push(step);
if (step.type === "function_call") {
const result = availableFunctions[step.name](step.arguments);
console.log(`Called ${step.name}(${JSON.stringify(step.arguments)}) →`, result);
const fnResult = {
type: "function_result",
name: step.name,
call_id: step.id,
result: [{ type: "text", text: JSON.stringify(result) }],
};
functionResults.push(fnResult);
history.push(fnResult);
}
}
if (functionResults.length === 0) break;
}
console.log(interaction.output_text);
REST
# Turn 1: Send request with tools and 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.5-flash",
"store": false,
"input": [
{
"type": "user_input",
"content": "What is the temperature in London?"
}
],
"tools": [{
"type": "function",
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city name"}
},
"required": ["location"]
}
}]
}')
# Extract model steps (thought, function_call)
MODEL_STEPS=$(echo "$RESPONSE1" | jq '.steps')
FC_NAME=$(echo "$RESPONSE1" | jq -r '.steps[] | select(.type=="function_call") | .name')
FC_ID=$(echo "$RESPONSE1" | jq -r '.steps[] | select(.type=="function_call") | .id')
echo "Function: $FC_NAME, Call ID: $FC_ID"
# Assume local execution returns:
RESULT="{\"location\": \"London\", \"temperature\": \"22\", \"unit\": \"celsius\"}"
# Reconstruct history for Turn 2
HISTORY=$(jq -n \
--argjson first_input '[{"type": "user_input", "content": "What is the temperature in London?"}]' \
--argjson model_steps "$MODEL_STEPS" \
--arg fc_name "$FC_NAME" \
--arg fc_id "$FC_ID" \
--arg result "$RESULT" \
'$first_input + $model_steps + [{"type": "function_result", "name": $fc_name, "call_id": $fc_id, "result": [{"type": "text", "text": $result}]}]')
# Turn 2: Send the full history
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.5-flash\",
\"store\": false,
\"input\": $HISTORY,
\"tools\": [{
\"type\": \"function\",
\"name\": \"get_current_temperature\",
\"description\": \"Gets the current temperature for a given location.\",
\"parameters\": {
\"type\": \"object\",
\"properties\": {
\"location\": {\"type\": \"string\", \"description\": \"The city name\"}
},
\"required\": [\"location\"]
}
}]
}"
रिस्पॉन्स:
टर्न 1 के दौरान, मॉडल, requires_action स्टेटस और function_call चरण के साथ रिस्पॉन्स दिखाता है:
{
"id": "v1_Chd...",
"status": "requires_action",
"steps": [
{
"type": "function_call",
"id": "call_abc123",
"name": "get_current_temperature",
"arguments": {
"location": "London"
}
}
],
"object": "interaction",
"model": "gemini-3.5-flash"
}
फ़ंक्शन को स्थानीय तौर पर चलाने और नतीजे सबमिट करने (टर्न 2) के बाद, पूरा हो चुका फ़ाइनल इंटरैक्शन यह दिखाता है:
{
"id": "v1_Chd...",
"status": "completed",
"steps": [
{
"type": "function_call",
"id": "call_abc123",
"name": "get_current_temperature",
"arguments": {
"location": "London"
}
},
{
"type": "model_output",
"content": [
{
"type": "text",
"text": "The temperature in London is currently 22°C."
}
]
}
],
"object": "interaction",
"model": "gemini-3.5-flash",
}
पैरलल फ़ंक्शन कॉल करने या फ़ंक्शन चॉइस मोड जैसी ऐडवांस सुविधाओं के बारे में जानने के लिए, फ़ंक्शन कॉल करने से जुड़ी गाइड देखें.
10. मैनेज किए गए एजेंट को चलाना
मैनेज किए गए एजेंट, रिमोट सैंडबॉक्स में चलते हैं. इनके पास कोड एक्ज़ीक्यूशन और फ़ाइल मैनेजमेंट जैसे टूल का ऐक्सेस होता है. model के बजाय agent पास करें और environment="remote" सेट करें.
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
agent="antigravity-preview-05-2026",
input="Write a Python script that generates the first 20 Fibonacci numbers and saves them to fibonacci.txt. Then read the file and print its contents.",
environment="remote",
)
print(f"Environment: {interaction.environment_id}")
print(interaction.output_text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
agent: "antigravity-preview-05-2026",
input: "Write a Python script that generates the first 20 Fibonacci numbers and saves them to fibonacci.txt. Then read the file and print its contents.",
environment: "remote",
});
console.log(`Environment: ${interaction.environment_id}`);
console.log(interaction.output_text);
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"agent": "antigravity-preview-05-2026",
"input": "Write a Python script that generates the first 20 Fibonacci numbers and saves them to fibonacci.txt. Then read the file and print its contents.",
"environment": "remote"
}'
आपके पास अपनी ज़रूरत के हिसाब से कस्टम एजेंट तय करने और सेव करने का विकल्प भी है. इनमें आपके निर्देश, स्किल, और डेटा सोर्स शामिल हो सकते हैं.
क्विकस्टार्ट
एजेंट को पहली बार कॉल करें, रिस्पॉन्स स्ट्रीम करें, और अपनी ज़रूरत के हिसाब से एजेंट बनाएं.
ऐंटिग्रैविटी एजेंट
डिफ़ॉल्ट एजेंट के लिए केपबिलिटी, टूल, मल्टीमोडल इनपुट, और कीमत.
AI Studio में एजेंट
बिना कोड लिखे एजेंट का प्रोटोटाइप बनाने के लिए, विज़ुअल प्लेग्राउंड.
11. बैकग्राउंड में टास्क चलाना
लंबे टास्क को एसिंक्रोनस तरीके से चलाने के लिए, background=True सेट करें. interactions.get() की मदद से, नतीजों के लिए पोल करें. ज़्यादा जानकारी के लिए, बैकग्राउंड में एक्ज़ीक्यूशन से जुड़ी गाइड देखें.
Python
import time
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.5-flash",
input="Write a detailed analysis of the impact of artificial intelligence on modern healthcare.",
background=True,
)
print(f"Started background task: {interaction.id}")
print(f"Status: {interaction.status}")
# Poll for completion
while True:
result = client.interactions.get(interaction.id)
print(f"Status: {result.status}")
if result.status == "completed":
print(f"\nResult:\n{result.output_text}")
break
elif result.status == "failed":
print(f"Failed: {result.error}")
break
time.sleep(5)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: "gemini-3.5-flash",
input: "Write a detailed analysis of the impact of artificial intelligence on modern healthcare.",
background: true,
});
console.log(`Started background task: ${interaction.id}`);
console.log(`Status: ${interaction.status}`);
// Poll for completion
while (true) {
const result = await ai.interactions.get(interaction.id);
console.log(`Status: ${result.status}`);
if (result.status === "completed") {
console.log(`\nResult:\n${result.output_text}`);
break;
} else if (result.status === "failed") {
console.log(`Failed: ${result.error}`);
break;
}
await new Promise(r => setTimeout(r, 5000));
}
REST
# Start a background task
RESPONSE=$(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.5-flash",
"input": "Write a detailed analysis of the impact of artificial intelligence on modern healthcare.",
"background": true
}')
INTERACTION_ID=$(echo "$RESPONSE" | jq -r '.id')
echo "Started background task: $INTERACTION_ID"
# Poll for completion
while true; do
RESULT=$(curl -s "https://generativelanguage.googleapis.com/v1beta/interactions/$INTERACTION_ID" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Api-Revision: 2026-05-20")
STATUS=$(echo "$RESULT" | jq -r '.status')
echo "Status: $STATUS"
if [ "$STATUS" = "completed" ]; then
echo "$RESULT" | jq -r '.steps[] | select(.type=="model_output") | .content[] | select(.type=="text") | .text'
break
elif [ "$STATUS" = "failed" ]; then
echo "Failed"
break
fi
sleep 5
done
रिस्पॉन्स:
शुरुआती रिस्पॉन्स, in_progress स्टेटस के साथ तुरंत मिलता है:
{
"id": "v1_abc123",
"status": "in_progress",
"object": "interaction",
"model": "gemini-3.5-flash"
}
बैकग्राउंड में टास्क पूरी तरह से एक्ज़ीक्यूट होने के बाद, इंटरैक्शन की स्थिति की जांच करने पर यह दिखता है:
{
"id": "v1_abc123",
"status": "completed",
"steps": [
{
"type": "model_output",
"content": [
{
"type": "text",
"text": "Artificial intelligence has transformed modern healthcare in several..."
}
]
}
],
"object": "interaction",
"model": "gemini-3.5-flash",
}
बैकग्राउंड में एसिंक्रोनस तरीके से मॉडल और एजेंट चलाने के बारे में जानने के लिए, बैकग्राउंड में एक्ज़ीक्यूशन से जुड़ी गाइड देखें.
आगे क्या करना है
- बैकग्राउंड में एक्ज़ीक्यूशन: लंबे समय तक चलने वाले टास्क को एसिंक्रोनस तरीके से चलाएं और स्टेट मैनेज करें.
- टेक्स्ट जनरेशन: सिस्टम के निर्देश, जनरेशन कॉन्फ़िगरेशन, और टेक्स्ट के ऐडवांस पैटर्न.
- इमेज जनरेशन: आस्पेक्ट रेशियो, इमेज में बदलाव करने, और स्टाइल रेफ़रंस.
- इमेज की बारीक़ी से पहचान: क्लासिफ़िकेशन, ऑब्जेक्ट का पता लगाने की सुविधा, और विज़ुअल सवाल-जवाब.
- Thinking: The user wants me to translate the source text "Thinking: Use chain-of-thought reasoning for complex tasks." into Hindi, adapting the provided example translation "थिंकिंग: मुश्किल टास्क के लिए, चेन-ऑफ़-थॉट रीज़निंग का इस्तेमाल करें." and preserving the placeholder and . 1. **Identify the source text:** "Thinking: Use chain-of-thought reasoning for complex tasks." 2. **Identify the example source:** "Thinking: Use chain-of-thought reasoning for complex tasks." 3. **Identify the example translation:** "थिंकिंग: मुश्किल टास्क के लिए, चेन-ऑफ़-थॉट रीज़निंग का इस्तेमाल करें." 4. **Compare source and example source:** The source has placeholders and around "Thinking". The example source does not. 5. **Compare example source and example translation:** "Thinking" is translated as "थिंकिंग". "Use chain-of-thought reasoning for complex tasks" is translated as "मुश्किल टास्क के लिए, चेन-ऑफ़-थॉट रीज़निंग का इस्तेमाल करें." 6. **Apply the translation logic to the source:** * The source has "Thinking". Based on the example, "Thinking" translates to "थिंकिंग". The placeholders and must be preserved. So, "Thinking" translates to "थिंकिंग". * The rest of the source ": Use chain-of-thought reasoning for complex tasks." is the same as the example source. The example translation for this part is ": मुश्किल टास्क के लिए, चेन-ऑफ़-थॉट रीज़निंग का इस्तेमाल करें." 7. **Combine the translated parts:** "थिंकिंग: मुश्किल टास्क के लिए, चेन-ऑफ़-थॉट रीज़निंग का इस्तेमाल करें." 8. **Check for line breaks:** The final translation does not contain line breaks. 9. **Final Translation:** थिंकिंग: मुश्किल टास्क के लिए, चेन-ऑफ़-थॉट रीज़निंग का इस्तेमाल करें.<ctrl95>थिंकिंग: मुश्किल टास्क के लिए, चेन-ऑफ़-थॉट रीज़निंग का इस्तेमाल करें.
- फ़ंक्शन कॉल करने की सुविधा: पैरलल, कंपोज़िशनल, और कंस्ट्रेंट फ़ंक्शन मोड.
- Google Search: ग्राउंडिंग, साइटेशन, और खोज सुझाव.
- मैनेज किए गए एजेंट: पहले से बने एजेंट. इनमें कोड एक्ज़ीक्यूशन और फ़ाइल मैनेजमेंट की सुविधा होती है.
- Deep Research: प्लानिंग और सिंथेसिस के साथ, कई चरणों में अपने-आप रिसर्च करने की सुविधा.
- स्ट्रक्चर्ड आउटपुट: JSON स्कीमा, एनम, और रिकर्सिव टाइप की परिभाषाएं.