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-এর মধ্যে পরিবর্তন করতে, আপনি এইসব পৃষ্ঠায় টগল ব্যবহার করতে পারবেন:
- টেক্সট জেনারেশন
- ইমেজ জেনারেশন
- ছবি বুঝতে পারা
- অডিও বোঝা
- ভিডিও বোঝা
- ডকুমেন্ট প্রসেস করা
- ফাংশন কলিং
- স্ট্রাকচার্ড আউটপুট
- Deep Research এজেন্ট
- Flex inference
- প্রায়োরিটি ইনফারেন্স
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 ব্যবহার করে কথোপকথনের ইতিহাস (ইনপুট ও আউটপুট)
সংরক্ষণ করে। অন্যান্য প্যারামিটারগুলি ইন্টার্যাকশন-স্কোপড
এবং আপনি বর্তমানে যে নির্দিষ্ট ইন্টার্যাকশন তৈরি করছেন শুধুমাত্র সেটির ক্ষেত্রে প্রযোজ্য:
toolssystem_instructiongeneration_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-তে এখনও
উপলভ্য নয়:
- Batch API
- অটোমেটিক ফাংশন কলিং (Python)
- এক্সপ্লিসিট ক্যাশিং: মনে রাখবেন যে Interactions API-তে সার্ভার-সাইড ইমপ্লিসিট ক্যাশিং উপলভ্য
previous_interaction_id-এর মাধ্যমে। - নিরাপত্তা সেটিংস: Interactions API-তে কাস্টম নিরাপত্তা সেটিংস কাজ করে না।
মতামত
Interactions API-এর ডেভেলপমেন্টের জন্য আপনার মতামত খুবই গুরুত্বপূর্ণ। আমাদের Google AI ডেভেলপার কমিউনিটি ফোরামে আপনার মতামত শেয়ার করুন, সমস্যা সম্পর্কে অভিযোগ জানান অথবা ফিচার অনুরোধ করুন।
এর পরে কী করতে হবে
- Interactions API ক্যুইকস্টার্ট নোটবুক ব্যবহার করে দেখুন।
- Gemini Deep Research এজেন্ট সম্পর্কে আরও জানুন।