ইন্টারঅ্যাকশন API

জেমিনি মডেল এবং এজেন্ট দিয়ে কিছু তৈরি করার জন্য ইন্টারঅ্যাকশনস এপিআই হলো সেরা উপায়। জুন ২০২৬ থেকে এটি সর্বসাধারণের জন্য উপলব্ধ এবং সকল নতুন প্রোজেক্টের জন্য এটি ব্যবহারের পরামর্শ দেওয়া হয়। যদিও এটিকে এখন লিগ্যাসি হিসেবে বিবেচনা করা হয়, মূল generateContent এপিআই-টি এখনও সম্পূর্ণরূপে সমর্থিত।

ইন্টারঅ্যাকশন এপিআই কেন ব্যবহার করবেন?

  • সকল অ্যাপ্লিকেশনের জন্য সার্বজনীন ইন্টারফেস : প্রতিটি ব্যবহারের ক্ষেত্রের জন্য আদর্শ ইন্টারফেস হিসেবে ডিজাইন করা হয়েছে, যার মধ্যে রয়েছে একক-টার্ন টেক্সট জেনারেশন, মাল্টিমোডাল আন্ডারস্ট্যান্ডিং, স্ট্রাকচার্ড আউটপুট, টুল অর্কেস্ট্রেশন এবং এজেন্টিক ওয়ার্কফ্লো।
  • মডেল এবং এজেন্টদের জন্য একক এপিআই : স্ট্যান্ডার্ড জেমিনি মডেলের পাশাপাশি বিশেষায়িত এজেন্টদের (যেমন ডিপ রিসার্চ এবং কাস্টম পরিচালিত এজেন্ট) সরাসরি কল করার জন্য একটি সমন্বিত এন্ডপয়েন্ট এবং প্যাটার্ন।
  • ডিফল্টভাবেই নতুন কিছু সুবিধা : যেমন previous_interaction_id ব্যবহার করে ঐচ্ছিক সার্ভার-সাইড কথোপকথনের অবস্থা, ডিবাগিং ও UI রেন্ডারিংয়ের জন্য পর্যবেক্ষণযোগ্য এক্সিকিউশন স্টেপ, এবং background=true ব্যবহার করে দীর্ঘ সময় ধরে চলা টাস্কের ব্যাকগ্রাউন্ড এক্সিকিউশন ।
  • উচ্চতর ক্যাশ হিট রেটের সাথে কম খরচ : একাধিক পালা জুড়ে কথোপকথন ব্যবহার করার সময়, ঐচ্ছিক সার্ভার-সাইড স্টেট ম্যানেজমেন্ট পালাক্রমে আরও কার্যকর কনটেক্সট ক্যাশিং সক্ষম করে, যা টোকেনের খরচ কমিয়ে দেয়।
  • নতুন ফিচারগুলো কোথায় চালু হবে : এখন থেকে, সমস্ত নতুন মডেল, মাল্টিমোডাল সক্ষমতা, টুল এবং এজেন্টিক ফিচারগুলো ইন্টারঅ্যাকশনস এপিআই-তে চালু করা হবে।

ডিফল্টরূপে, ইন্টারঅ্যাকশনস এপিআই অনুরোধগুলো সংরক্ষণ করে, তাই আপনি previous_interaction_id ব্যবহার করে সার্ভার-সাইড স্টেট ম্যানেজমেন্ট বৈশিষ্ট্যগুলো কাজে লাগাতে পারেন। store=false সেট করে আপনি স্টেটলেস আচরণ বেছে নিতে পারেন। বিস্তারিত জানতে ডেটা রিটেনশন বিভাগটি দেখুন।

শুরু করুন

বৈশিষ্ট্য নির্দেশিকা

এই গাইডগুলির মাধ্যমে ইন্টারঅ্যাকশনস এপিআই (Interactions API)-এর নির্দিষ্ট ক্ষমতাগুলি সম্পর্কে জানুন। আপনি এই পৃষ্ঠাগুলিতে থাকা টগল ব্যবহার করে জেনারেটকন্টেন্ট (generateContent) এবং ইন্টারঅ্যাকশনস এপিআই (Interactions API)-এর মধ্যে পরিবর্তন করতে পারেন:

ইন্টারঅ্যাকশন এপিআই কীভাবে কাজ করে

ইন্টারঅ্যাকশনস এপিআই একটি মূল রিসোর্সকে কেন্দ্র করে গঠিত: Interaction । একটি Interaction কোনো কথোপকথন বা কাজের একটি সম্পূর্ণ পালাকে উপস্থাপন করে। এটি একটি সেশন রেকর্ড হিসেবে কাজ করে, যেখানে একটি ইন্টারঅ্যাকশনের সম্পূর্ণ ইতিহাস তার সম্পাদনের ধাপগুলোর কালানুক্রমিক অনুক্রম হিসেবে থাকে। এই ধাপগুলোর মধ্যে রয়েছে মডেলের ভাবনা, সার্ভার-সাইড বা ক্লায়েন্ট-সাইড টুলের কল এবং তার ফলাফল (যেমন function_call এবং function_result ), এবং চূড়ান্ত model_output । সংরক্ষিত রিসোর্সটিতে (যা interactions.get এর মাধ্যমে পাওয়া যায়) সম্পূর্ণ প্রেক্ষাপটের জন্য user_input ধাপগুলোও অন্তর্ভুক্ত থাকে, যদিও interactions.create রেসপন্সটি শুধুমাত্র মডেল-জেনারেটেড ধাপগুলোই ফেরত দেয়।

যখন আপনি interactions.create কল করেন, তখন আপনি একটি নতুন Interaction রিসোর্স তৈরি করছেন:

পাইথন

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)

জাভাস্ক্রিপ্ট

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);

জাভা

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 ব্যবহার করতে পারেন। সার্ভার এই আইডিটি ব্যবহার করে কথোপকথনের ইতিহাস পুনরুদ্ধার করে, ফলে আপনাকে সম্পূর্ণ চ্যাট ইতিহাস পুনরায় পাঠাতে হয় না।

পাইথন

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)

জাভাস্ক্রিপ্ট

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);

জাভা

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 ব্যবহার করে) এবং পর্যবেক্ষণযোগ্যতার উদ্দেশ্যগুলো সহজ হয়।

  • পেইড টিয়ার : সিস্টেমটি ৫৫ দিনের জন্য ইন্টারঅ্যাকশন সংরক্ষণ করে।
  • ফ্রি টিয়ার : সিস্টেমটি ১ দিনের জন্য ইন্টারঅ্যাকশন সংরক্ষণ করে।

আপনি যদি এটি না চান, তাহলে আপনার অনুরোধে store=false সেট করতে পারেন। এই নিয়ন্ত্রণটি স্টেট ম্যানেজমেন্ট থেকে আলাদা; আপনি যেকোনো ইন্টারঅ্যাকশনের জন্য স্টোরেজ বাদ দিতে পারেন। তবে, মনে রাখবেন যে store=false ব্যাকগ্রাউন্ড এক্সিকিউশনের সাথে সামঞ্জস্যপূর্ণ নয় এবং পরবর্তী টার্নগুলোর জন্য previous_interaction_id ব্যবহার করতে বাধা দেয়।

পেইড টিয়ার প্রোজেক্টের জন্য, আপনি এআই স্টুডিওতে রিটেনশন উইন্ডো কনফিগার করতে পারেন, যাতে ৭, ১৪, ২৮ বা ৫৫ দিন পর প্রোজেক্ট স্টোরেজ থেকে লগগুলো স্বয়ংক্রিয়ভাবে মুছে ফেলার জন্য চিহ্নিত করা হয়। এর চেয়ে কম সময়ের রিটেনশন অতীতের কথোপকথন পুনরুদ্ধারে সমস্যা তৈরি করতে পারে।

আপনি প্রোগ্রাম্যাটিকভাবে delete মেথড ব্যবহার করে যেকোনো সময় সংরক্ষিত ইন্টারঅ্যাকশনগুলো মুছে ফেলতে পারেন, যার জন্য ইন্টারঅ্যাকশন আইডি প্রয়োজন। এছাড়াও, আপনি এআই স্টুডিও -তে সংরক্ষিত ইন্টারঅ্যাকশনের লগগুলো দেখতে ও পরিচালনা করতে পারেন, যার মধ্যে প্রজেক্ট স্টোরেজ থেকে মুছে ফেলাও অন্তর্ভুক্ত।

সংরক্ষণের সময়সীমা শেষ হওয়ার পর আপনার ডেটা স্বয়ংক্রিয়ভাবে মুছে যাবে।

ইন্টারঅ্যাকশন অবজেক্টগুলো শর্তাবলী অনুযায়ী প্রক্রিয়াজাত করা হয়।

এআই স্টুডিওতে মিথস্ক্রিয়াগুলি দেখুন

এপিআই পেইড টিয়ারে থাকা প্রোজেক্টগুলোর জন্য store=true দিয়ে সম্পাদিত ইন্টারঅ্যাকশন এপিআই রিকোয়েস্টগুলো সংরক্ষণ করে। আপনি Google AI Studio-এর লগস পেজ থেকে সরাসরি সেগুলো দেখতে পারেন। আরও তথ্যের জন্য লগস গাইড দেখুন।

সর্বোত্তম অনুশীলন

  • ক্যাশ হিট রেট : স্টেটফুল এবং স্টেটলেস উভয় মোডেই ইমপ্লিসিট ক্যাশিং সমর্থিত ( কুইকস্টার্ট দেখুন)। কথোপকথন চালিয়ে যাওয়ার জন্য previous_interaction_id (স্টেটফুল) ব্যবহার করলে সিস্টেমটি কথোপকথনের ইতিহাসের জন্য ইমপ্লিসিট ক্যাশিং আরও সহজে ব্যবহার করতে পারে, যা পারফরম্যান্স উন্নত করে এবং খরচ কমায়।
  • ইন্টারঅ্যাকশনের মিশ্রণ : একটি কথোপকথনের মধ্যে এজেন্ট এবং মডেলের ইন্টারঅ্যাকশনগুলোকে আপনার পছন্দমতো মিলিয়ে ব্যবহার করার স্বাধীনতা আপনার রয়েছে। উদাহরণস্বরূপ, আপনি প্রাথমিক ডেটা সংগ্রহের জন্য ডিপ রিসার্চ এজেন্টের মতো একটি বিশেষায়িত এজেন্ট ব্যবহার করতে পারেন এবং তারপরে সারসংক্ষেপ করা বা পুনঃবিন্যাস করার মতো ফলো-আপ কাজগুলোর জন্য একটি স্ট্যান্ডার্ড জেমিনি মডেল ব্যবহার করতে পারেন, এই ধাপগুলোকে previous_interaction_id সাথে লিঙ্ক করে।

সমর্থিত মডেল এবং এজেন্ট

মডেলের নাম প্রকার মডেল আইডি
জেমিনি ৩.৮ ফ্ল্যাশ মডেল gemini-3.8-flash
জেমিনি ৩.৭ ফ্ল্যাশ মডেল gemini-3.7-flash
জেমিনি ৩.৬ ফ্ল্যাশ মডেল gemini-3.6-flash
জেমিনি ৩.৫ ফ্ল্যাশ মডেল gemini-3.5-flash
জেমিনি ৩.১ প্রো প্রিভিউ মডেল gemini-3.1-pro-preview
জেমিনি ৩.৫ ফ্ল্যাশ-লাইট মডেল gemini-3.5-flash-lite
জেমিনি ৩.১ ফ্ল্যাশ-লাইট মডেল gemini-3.1-flash-lite
জেমিনি ৩ ফ্ল্যাশ প্রিভিউ মডেল gemini-3-flash-preview
জেমিনি ২.৫ প্রো মডেল gemini-2.5-pro
জেমিনি ২.৫ ফ্ল্যাশ মডেল gemini-2.5-flash
জেমিনি ২.৫ ফ্ল্যাশ-লাইট মডেল gemini-2.5-flash-lite
জেমিনি ৩ প্রো ইমেজ মডেল gemini-3-pro-image
জেমিনি ৩.১ ফ্ল্যাশ ইমেজ মডেল gemini-3.1-flash-image
জেমিনি ৩.১ ফ্ল্যাশ টিটিএস প্রিভিউ মডেল gemini-3.1-flash-tts-preview
জেমা ৪ ৩১বি আইটি মডেল gemma-4-31b-it
জেমা ৪ ২৬বি শিক্ষা মন্ত্রণালয় আইটি মডেল gemma-4-26b-a4b-it
লিরিয়া ৩.৫ মডেল lyria-3.5
লিরিয়া ৩ ক্লিপ প্রিভিউ মডেল lyria-3-clip-preview
লাইরিয়া ৩ প্রো প্রিভিউ মডেল lyria-3-pro-preview
গভীর গবেষণা পূর্বরূপ এজেন্ট deep-research-preview-04-2026
গভীর গবেষণা পূর্বরূপ এজেন্ট deep-research-max-preview-04-2026
অ্যান্টিগ্র্যাভিটি প্রিভিউ এজেন্ট antigravity-preview-09-2026

এসডিকে

ইন্টারঅ্যাকশনস এপিআই অ্যাক্সেস করার জন্য আপনি গুগল জেনএআই এসডিকে-এর সর্বশেষ সংস্করণ ব্যবহার করতে পারেন।

  • পাইথনে, 2.3.0 সংস্করণ থেকে এটি হলো google-genai প্যাকেজ।
  • জাভাস্ক্রিপ্টে, 2.3.0 সংস্করণ থেকে এটি হলো @google/genai প্যাকেজ।
  • Go-তে, এটি হলো google.golang.org/genai প্যাকেজ।
  • জাভাতে, এটি হলো com.google.genai:google-genai প্যাকেজ।

লাইব্রেরি পেজে আপনি এসডিকেগুলো কীভাবে ইনস্টল করবেন সে সম্পর্কে আরও জানতে পারবেন।

সীমাবদ্ধতা

  • রিমোট এমসিপি : জেমিনি ৩ রিমোট এমসিপি সমর্থন করে না, এটি শীঘ্রই আসছে।
  • একাধিক টার্নে মডেলের সামঞ্জস্যতা : একটি কথোপকথনে বিভিন্ন মডেল (স্টেটফুল বা স্টেটলেস) মিশ্রিত করার সময়, পরবর্তী মডেলগুলোকে অবশ্যই পূর্ববর্তী মডেলগুলোর আউটপুট মোডালিটিগুলোকে ইনপুট হিসেবে সমর্থন করতে হবে। উদাহরণস্বরূপ, আপনি যদি gemini-3.1-flash-image ব্যবহার করে একটি ছবি তৈরি করেন, তাহলে আপনি এমন কোনো মডেল দিয়ে সেই কথোপকথনটি চালিয়ে যেতে পারবেন না যা ছবির ইনপুট গ্রহণ করে না (যেমন শুধুমাত্র টেক্সট-ভিত্তিক মডেল বা Lyria-এর মতো সঙ্গীত তৈরির মডেল)।

নিম্নলিখিত বৈশিষ্ট্যগুলি generateContent API দ্বারা সমর্থিত, কিন্তু Interactions API-তে এখনও উপলব্ধ নয় :

প্রতিক্রিয়া

ইন্টারঅ্যাকশনস এপিআই-এর উন্নয়নের জন্য আপনার মতামত অত্যন্ত গুরুত্বপূর্ণ। আমাদের গুগল এআই ডেভেলপার কমিউনিটি ফোরামে আপনার ভাবনা শেয়ার করুন, বাগ রিপোর্ট করুন, অথবা নতুন ফিচারের জন্য অনুরোধ জানান।

এরপর কী?