Interactions API

Gemini के मॉडल और एजेंट की मदद से कुछ नया बनाने के लिए, Interactions API सबसे अच्छा तरीका है. यह जून 2026 से सामान्य तौर पर उपलब्ध है. साथ ही, इसे सभी नए प्रोजेक्ट के लिए इस्तेमाल करने का सुझाव दिया जाता है. हालांकि, इसे अब लेगसी माना जाता है, लेकिन ओरिजनल generateContent API अब भी पूरी तरह से काम करता है.

Interactions API का इस्तेमाल क्यों करना चाहिए?

  • सभी ऐप्लिकेशन के लिए यूनिवर्सल इंटरफ़ेस: इसे हर इस्तेमाल के उदाहरण के लिए स्टैंडर्ड इंटरफ़ेस के तौर पर डिज़ाइन किया गया है. इसमें एक बार में टेक्स्ट जनरेट करना, मल्टीमॉडल को समझना, स्ट्रक्चर्ड आउटपुट, टूल ऑर्केस्ट्रेशन, और एजेंटिक वर्कफ़्लो शामिल हैं.
  • मॉडल और एजेंट के लिए एक ही एपीआई: स्टैंडर्ड Gemini मॉडल के साथ-साथ, सीधे तौर पर खास एजेंट (जैसे, Deep Research और कस्टम मैनेज किए गए एजेंट) को कॉल करने के लिए, एक यूनीफ़ाइड एंडपॉइंट और पैटर्न.
  • नई सुविधाएं: `previous_interaction_id` का इस्तेमाल करके previous_interaction_id, सर्वर-साइड पर बातचीत की स्थिति को सेव करने की सुविधा, डीबग करने और यूज़र इंटरफ़ेस रेंडर करने के लिए, लागू करने के चरणों को देखने की सुविधा, और `background=true` का इस्तेमाल करके background=true, लंबे समय तक चलने वाले टास्क के लिए बैकग्राउंड में लागू करने की सुविधा.
  • कैश हिट रेट ज़्यादा होने से लागत कम होना: मल्टी-टर्न बातचीत का इस्तेमाल करने पर, सर्वर-साइड पर बातचीत की स्थिति को सेव करने की सुविधा, बातचीत के हर टर्न के लिए कॉन्टेक्स्ट को ज़्यादा बेहतर तरीके से कैश मेमोरी में सेव करती है. इससे टोकन की लागत कम होती है.
  • नई सुविधाएं कहां लॉन्च होंगी: आने वाले समय में, सभी नए मॉडल, मल्टीमॉडल की सुविधाएं, टूल, और एजेंटिक सुविधाएं, Interactions API पर लॉन्च होंगी.

Interactions API, डिफ़ॉल्ट रूप से अनुरोधों को सेव करता है, ताकि previous_interaction_id का इस्तेमाल करके, सर्वर-साइड पर बातचीत की स्थिति को सेव करने की सुविधाओं का फ़ायदा लिया जा सके. store=false सेट करके, स्टेटलेस व्यवहार चुना जा सकता है. ज़्यादा जानकारी के लिए, डेटा का रखरखाव सेक्शन देखें.

शुरू करें

सुविधा की गाइड

इन गाइड की मदद से, Interactions API की खास क्षमताओं के बारे में जानें. इन पेजों पर मौजूद टॉगल का इस्तेमाल करके, generateContent और Interactions API के बीच स्विच किया जा सकता है:

Interactions API के काम करने का तरीका

Interactions API, मुख्य संसाधन Interaction पर आधारित है. कोई Interaction, बातचीत या टास्क के पूरे टर्न को दिखाता है. यह सेशन रिकॉर्ड के तौर पर काम करता है. इसमें, लागू करने के चरणों के क्रम के तौर पर, इंटरैक्शन का पूरा इतिहास शामिल होता है. इन चरणों में मॉडल के विचार, सर्वर-साइड या क्लाइंट-साइड टूल कॉल और नतीजे (जैसे, function_call और function_result), और फ़ाइनल model_output शामिल हैं. सेव किए गए संसाधन (interactions.get के ज़रिए वापस पाया गया) में, पूरे कॉन्टेक्स्ट के लिए user_input चरण भी शामिल होते हैं. हालांकि, interactions.create का जवाब सिर्फ़ मॉडल से जनरेट किए गए चरण दिखाता है.

interactions.create को कॉल करने पर, नया Interaction संसाधन बनाया जाता है:

Python

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input="Tell me a short story about a time-traveling lighthouse."
)

print(interaction.output_text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI();

const interaction = await client.interactions.create({
  model: "gemini-3.8-flash",
  input: "Tell me a short story about a time-traveling lighthouse.",
});

console.log(interaction.output_text);

Java

import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;

Client client = new Client();

CreateModelInteraction params =
    CreateModelInteraction.builder()
        .model(Model.of("gemini-3.8-flash"))
        .input(InteractionsInput.of("Tell me a short story about a time-traveling lighthouse."))
        .build();

Interaction interaction =
    client.interactions.create(CreateInteractionRequestBody.of(params)).interaction().get();

System.out.println(interaction.outputText().orElse(""));

ऐप पर जाएं

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/genai"
    "google.golang.org/genai/interactions/models/interactions"
    "google.golang.org/genai/interactions/models/operations"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
        Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
            Model: interactions.Model("gemini-3.8-flash"),
            Input: interactions.NewInteractionsInput("Tell me a short story about a time-traveling lighthouse."),
        }),
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.Interaction.OutputText != nil {
        fmt.Println(*res.Interaction.OutputText)
    }
}

आराम का समय

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -d '{
    "model": "gemini-3.8-flash",
    "input": "Tell me a short story about a time-traveling lighthouse."
  }'

सर्वर-साइड पर बातचीत की स्थिति को सेव करने की सुविधा

बातचीत जारी रखने के लिए, previous_interaction_id पैरामीटर का इस्तेमाल करके, बाद में किए जाने वाले कॉल में, पूरे हो चुके इंटरैक्शन के id का इस्तेमाल किया जा सकता है. सर्वर इस आईडी का इस्तेमाल करके, बातचीत का इतिहास वापस पाता है. इससे आपको चैट का पूरा इतिहास दोबारा भेजने की ज़रूरत नहीं पड़ती:

Python

from google import genai

client = genai.Client()

# 1. First turn
turn1 = client.interactions.create(
    model="gemini-3.8-flash",
    input="Hi, my name is Phil."
)

# 2. Second turn (chained using previous_interaction_id)
turn2 = client.interactions.create(
    model="gemini-3.8-flash",
    input="What is my name?",
    previous_interaction_id=turn1.id
)

print(turn2.output_text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI();

// 1. First turn
const turn1 = await client.interactions.create({
  model: "gemini-3.8-flash",
  input: "Hi, my name is Phil.",
});

// 2. Second turn (chained using previous_interaction_id)
const turn2 = await client.interactions.create({
  model: "gemini-3.8-flash",
  input: "What is my name?",
  previous_interaction_id: turn1.id,
});

console.log(turn2.output_text);

Java

import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;

Client client = new Client();

// 1. First turn
Interaction turn1 =
    client
        .interactions
        .create(
            CreateInteractionRequestBody.of(
                CreateModelInteraction.builder()
                    .model(Model.of("gemini-3.8-flash"))
                    .input(InteractionsInput.of("Hi, my name is Phil."))
                    .build()))
        .interaction()
        .get();

// 2. Second turn (chained using previousInteractionId)
Interaction turn2 =
    client
        .interactions
        .create(
            CreateInteractionRequestBody.of(
                CreateModelInteraction.builder()
                    .model(Model.of("gemini-3.8-flash"))
                    .input(InteractionsInput.of("What is my name?"))
                    .previousInteractionId(turn1.id().get())
                    .build()))
        .interaction()
        .get();

System.out.println(turn2.outputText().orElse(""));

ऐप पर जाएं

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/genai"
    "google.golang.org/genai/interactions/models/interactions"
    "google.golang.org/genai/interactions/models/operations"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    // 1. First turn
    turn1, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
        Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
            Model: interactions.Model("gemini-3.8-flash"),
            Input: interactions.NewInteractionsInput("Hi, my name is Phil."),
        }),
    })
    if err != nil {
        log.Fatal(err)
    }

    // 2. Second turn (chained using PreviousInteractionID)
    turn2, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
        Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
            Model:                 interactions.Model("gemini-3.8-flash"),
            Input:                 interactions.NewInteractionsInput("What is my name?"),
            PreviousInteractionID: turn1.Interaction.ID,
        }),
    })
    if err != nil {
        log.Fatal(err)
    }
    if turn2.Interaction.OutputText != nil {
        fmt.Println(*turn2.Interaction.OutputText)
    }
}

आराम का समय

# Replace PREVIOUS_INTERACTION_ID with the id returned from the first turn
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -d '{
    "model": "gemini-3.8-flash",
    "input": "What is my name?",
    "previous_interaction_id": "PREVIOUS_INTERACTION_ID"
  }'

previous_interaction_id पैरामीटर, previous_interaction_id का इस्तेमाल करके, सिर्फ़ बातचीत का इतिहास (इनपुट और आउटपुट) सेव करता है. अन्य पैरामीटर इंटरैक्शन-स्कोप होते हैं और सिर्फ़ उस इंटरैक्शन पर लागू होते हैं जिसे फ़िलहाल जनरेट किया जा रहा है:

  • tools
  • system_instruction
  • generation_config (जिसमें thinking_level, temperature वगैरह शामिल हैं)

इसका मतलब है कि अगर आपको इन पैरामीटर को लागू करना है, तो आपको हर नए इंटरैक्शन में इन्हें फिर से बताना होगा. सर्वर-साइड पर बातचीत की स्थिति को सेव करने की सुविधा वैकल्पिक है. हर अनुरोध में बातचीत का पूरा इतिहास भेजकर, स्टेटलेस मोड में भी काम किया जा सकता है.

डेटा सेव करना और उसका रखरखाव

एपीआई, डिफ़ॉल्ट रूप से सभी इंटरैक्शन ऑब्जेक्ट (store=true) सेव करता है, ताकि सर्वर-साइड पर स्टेट मैनेजमेंट की सुविधाओं (previous_interaction_id के साथ), बैकग्राउंड में प्रोग्राम चलाने की सुविधा (background=true का इस्तेमाल करके) और जांचने की क्षमता के मकसद से, इनका इस्तेमाल आसान बनाया जा सके.

  • पैसे चुकाकर ली जाने वाली सेवा: सिस्टम, इंटरैक्शन को 55 दिनों तक सेव रखता है.
  • फ़्री टियर: सिस्टम, इंटरैक्शन को एक दिन तक सेव रखता है.

अगर आपको यह नहीं चाहिए, तो अपने अनुरोध में store=false सेट किया जा सकता है. यह कंट्रोल, बातचीत की स्थिति को सेव करने की सुविधा से अलग है. किसी भी इंटरैक्शन के लिए, सेव करने की सुविधा बंद की जा सकती है. हालांकि, ध्यान दें कि store=false के साथ काम नहीं करता है और बाद के टर्न के लिए previous_interaction_id का इस्तेमाल करने से रोकता है.

पैसे चुकाकर ली जाने वाली सेवा के प्रोजेक्ट के लिए, AI Studio में रखरखाव की अवधि कॉन्फ़िगर की जा सकती है, ताकि 7, 14, 28 या 55 दिनों के बाद, प्रोजेक्ट स्टोरेज से लॉग को मिटाने के लिए अपने-आप मार्क किया जा सके. कम समय के लिए डेटा सेव करने पर, पिछली बातचीत को वापस पाने में समस्या आ सकती है.

`delete` तरीके का इस्तेमाल करके, सेव किए गए इंटरैक्शन को किसी भी समय मिटाया जा सकता है. delete इसके लिए, इंटरैक्शन आईडी की ज़रूरत होती है. AI Studioमें, सेव किए गए इंटरैक्शन के लॉग देखे और मैनेज किए जा सकते हैं. इनमें प्रोजेक्ट स्टोरेज से मिटाने की सुविधा भी शामिल है.

डेटा सेव करने की अवधि खत्म होने के बाद, आपका डेटा अपने-आप मिट जाएगा.

इंटरैक्शन ऑब्जेक्ट को शर्तों के मुताबिक प्रोसेस किया जाता है.

AI Studio में इंटरैक्शन देखना

एपीआई, पैसे चुकाकर ली जाने वाली सेवा के प्रोजेक्ट के लिए, store=true के साथ लागू किए गए Interactions API के अनुरोधों को सेव करता है. इन्हें सीधे Google AI Studio में, लॉग पेज से देखा जा सकता है. ज़्यादा जानकारी के लिए, लॉग की गाइड देखें.

सबसे सही तरीके

  • कैश हिट रेट: स्टेटफ़ुल और स्टेटलेस, दोनों मोड में, इंप्लिसिट कैश मेमोरी में सेव करने की सुविधा उपलब्ध है (क्विकस्टार्ट देखें). previous_interaction_id (बातचीत जारी रखने की सुविधा) का इस्तेमाल करके बातचीत जारी रखने पर, सिस्टम बातचीत के इतिहास के लिए, इंप्लिसिट कैश मेमोरी में सेव करने की सुविधा का ज़्यादा आसानी से इस्तेमाल कर पाता है. इससे परफ़ॉर्मेंस बेहतर होती है और लागत कम होती है.
  • इंटरैक्शन को मिक्स करना: बातचीत में, एजेंट और मॉडल के इंटरैक्शन को मिक्स और मैच किया जा सकता है. उदाहरण के लिए, शुरुआती डेटा कलेक्शन के लिए, Deep Research एजेंट जैसे खास एजेंट का इस्तेमाल किया जा सकता है. इसके बाद, फ़ॉलो-अप टास्क के लिए, स्टैंडर्ड Gemini मॉडल का इस्तेमाल किया जा सकता है. जैसे, खास जानकारी देना या फ़ॉर्मैट बदलना. इन चरणों को previous_interaction_id से लिंक किया जा सकता है.

इस्तेमाल किए जा सकने वाले मॉडल और एजेंट

मॉडल का नाम टाइप मॉडल आईडी
Gemini 4 Argon मॉडल gemini-4-argon
Gemini 3.8 Flash मॉडल gemini-3.8-flash
Gemini 3.6 Flash मॉडल gemini-3.6-flash
Gemini 3.1 Pro की झलक मॉडल gemini-3.1-pro-preview
Gemini 3.5 Flash-Lite मॉडल gemini-3.5-flash-lite
Gemini 3.1 Flash-Lite मॉडल gemini-3.1-flash-lite
Gemini 3 Flash की झलक मॉडल gemini-3-flash-preview
Gemini 2.5 Pro मॉडल gemini-2.5-pro
Gemini 2.5 Flash मॉडल gemini-2.5-flash
Gemini 2.5 Flash-lite मॉडल gemini-2.5-flash-lite
Gemini 3 Pro Image मॉडल gemini-3-pro-image
Gemini 3.1 Flash Image मॉडल gemini-3.1-flash-image
Gemini 3.1 Flash TTS की झलक मॉडल gemini-3.1-flash-tts-preview
Gemma 4 31B IT मॉडल gemma-4-31b-it
Gemma 4 26B MoE IT मॉडल gemma-4-26b-a4b-it
Lyria 3.5 मॉडल lyria-3.5
Lyria 3 Clip की झलक मॉडल lyria-3-clip-preview
Lyria 3 Pro की झलक मॉडल lyria-3-pro-preview
Deep Research की झलक एजेंट deep-research-preview-04-2026
Deep Research की झलक एजेंट deep-research-max-preview-04-2026
Antigravity की झलक एजेंट antigravity-preview-09-2026

एसडीके

Interactions API को ऐक्सेस करने के लिए, Google GenAI SDK के सबसे नए वर्शन का इस्तेमाल किया जा सकता है.

  • Python पर, यह 2.3.0 वर्शन या इसके बाद के वर्शन से, google-genai पैकेज है.
  • JavaScript पर, यह 2.3.0 वर्शन या इसके बाद के वर्शन से, @google/genai पैकेज है.
  • Go पर, यह google.golang.org/genai पैकेज है.
  • Java पर, यह com.google.genai:google-genai पैकेज है.

लाइब्रेरी पेज पर जाकर, एसडीके इंस्टॉल करने के बारे में ज़्यादा जाना जा सकता है.

सीमाएं

  • रिमोट MCP: Gemini 3, रिमोट MCP के साथ काम नहीं करता. यह सुविधा जल्द आ रही है.
  • मल्टी-टर्न मॉडल की कंपैटिबिलिटी: बातचीत में अलग-अलग मॉडल (बातचीत की स्थिति को सेव करने या न करने वाले मोड में) को मिक्स करने पर, बाद के मॉडल को इनपुट के तौर पर, पिछले मॉडल के आउटपुट मोड के साथ काम करना होगा. उदाहरण के लिए, अगर gemini-3.1-flash-image का इस्तेमाल करके कोई इमेज जनरेट की जाती है, तो उस बातचीत को ऐसे मॉडल के साथ जारी नहीं रखा जा सकता जो इमेज इनपुट स्वीकार नहीं करता. जैसे, सिर्फ़ टेक्स्ट वाला मॉडल या Lyria जैसे संगीत जनरेट करने वाला मॉडल.

generateContent API, इन सुविधाओं के साथ काम करता है, लेकिन ये सुविधाएं Interactions API में अब तक उपलब्ध नहीं हैं:

सुझाव/राय दें या शिकायत करें

Interactions API को बेहतर बनाने के लिए, आपका सुझाव, शिकायत या राय अहम है. Google AI डेवलपर कम्यूनिटी फ़ोरम पर, अपने विचार शेयर करें, गड़बड़ियों की शिकायत करें या सुविधाओं का अनुरोध करें.

आगे क्या करना है