Interactions API

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

Interactions API কেন ব্যবহার করবেন?

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

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

শুরু করুন

  • আপনার কোডিং এজেন্ট সেট-আপ করুন: Gemini Docs MCP-এর সাথে কানেক্ট করুন এবং লেটেস্ট ডেভেলপার ডকুমেন্ট ও পেশাদার পদ্ধতি সরাসরি অ্যাক্সেস করার জন্য আপনার অ্যাসিস্ট্যান্টকে gemini-api-dev স্কিল দিন। বিস্তারিত ধাপের জন্য, আপনার কোডিং এজেন্ট গাইড সেট-আপ করুন দেখুন
  • generateContent থেকে মাইগ্রেট করা: আপনার আগে থেকে কোনও ইন্টিগ্রেশন থাকলে, Interactions API-তে ট্রানজিশন করতে মাইগ্রেশন গাইড অনুসরণ করুন।
  • শুরু করা: Interactions API শুরু করার নির্দেশিকাতে উল্লেখ করা ধাপগুলি অনুসরণ করুন।

ফিচার গাইড

এইসব গাইডের মাধ্যমে 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)

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

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."
  }'

সার্ভার-সাইড স্টেট ম্যানেজমেন্ট

কথোপকথন চালিয়ে যেতে, পরবর্তী কলে সম্পূর্ণ হওয়া ইন্টার‍্যাকশনের id-এর সাথে previous_interaction_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)

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

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 ইত্যাদি সহ)

অর্থাৎ, আপনি যদি চান যে এই প্যারামিটারগুলি প্রতিটি নতুন ইন্টার‍্যাকশনে প্রযোজ্য হোক, তাহলে আপনাকে সেগুলি আবার উল্লেখ করতে হবে। এই সার্ভার-সাইড স্টেট ম্যানেজমেন্ট ঐচ্ছিক; আপনি প্রতিটি অনুরোধে সম্পূর্ণ কথোপকথনের ইতিহাস পাঠিয়ে স্টেটলেস মোডেও কাজ করতে পারেন।

ডেটা স্টোরেজ ও রেকর্ড রাখা

ডিফল্ট হিসেবে, API সব ইন্টার‍্যাকশন অবজেক্ট (store=true) স্টোর করে যাতে সার্ভার-সাইড স্টেট ম্যানেজমেন্ট ফিচারের (previous_interaction_id সহ), ব্যাকগ্রাউন্ড এক্সিকিউশন (background=true ব্যবহার করে) এবং অবজার্ভেবিলিটি সংক্রান্ত উদ্দেশ্য পূরণ করা যায়।

  • পেড টিয়ার: সিস্টেম ৫৫ দিনের জন্য ইন্টার‍্যাকশন রেখে দেয়।
  • ফ্রি টিয়ার: সিস্টেম ১ দিন পর্যন্ত ইন্টার‍্যাকশন রেখে দেয়।

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

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

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

ডেটা ধরে রাখার সময়সীমা শেষ হয়ে গেলে, আপনার ডেটা অটোমেটিক মুছে দেওয়া হবে।

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

AI Studio-তে ইন্টার‍্যাকশন দেখা

API, পেড টিয়ারে প্রোজেক্টের জন্য 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 ইমেজ মডেল 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 ক্লিপ প্রিভিউ মডেল 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

SDK

আপনি ইন্ট্যার‍্যাকশন API অ্যাক্সেস করতে Google GenAI SDK-এর লেটেস্ট ভার্সন ব্যবহার করতে পারবেন।

  • Python-এ, এটি 2.3.0 ভার্সন থেকে google-genai প্যাকেজ।
  • JavaScript-এ, এটি @google/genai ভার্সন 2.3.0 থেকে শুরু করে।
  • On Go-তে, এটি হল google.golang.org/genai প্যাকেজ।
  • Java-তে এটি com.google.genai:google-genai প্যাকেজ।

লাইব্রেরি পৃষ্ঠা থেকে SDK কীভাবে ইনস্টল করতে হয় সেই সম্পর্কে আরও জানতে পারবেন।

সীমাবদ্ধতা

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

নিম্নলিখিত ফিচারগুলি generateContent API-তে কাজ করে কিন্তু Interactions API-তে এখনও উপলভ্য নয়:

মতামত

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

এর পরে কী করতে হবে