জেমিনি ৩.৫ ফ্ল্যাশে নতুন কী আছে

৩.৬ ফ্ল্যাশ এবং ৩.৫ ফ্ল্যাশ-লাইট এই পৃষ্ঠা

জেমিনি ৩.৫ ফ্ল্যাশ এখন সর্বসাধারণের জন্য উপলব্ধ (GA) , স্থিতিশীল এবং বৃহৎ পরিসরে প্রোডাকশন ব্যবহারের জন্য প্রস্তুত। আমাদের সবচেয়ে বুদ্ধিমান ফ্ল্যাশ মডেল হিসেবে, এটি এজেন্টিক এক্সিকিউশন, কোডিং এবং বৃহৎ পরিসরে দীর্ঘমেয়াদী কাজগুলোতে ধারাবাহিক ও অত্যাধুনিক পারফরম্যান্স প্রদান করে।

এই নির্দেশিকায় জেমিনি ৩.৫ ফ্ল্যাশ-এর ​​উন্নয়নসমূহ, এপিআই পরিবর্তনসমূহ এবং মাইগ্রেশন নির্দেশনার একটি সংক্ষিপ্ত বিবরণ রয়েছে।

নতুন মডেল

মডেল মডেল আইডি বর্ণনা
জেমিনি ৩.৫ ফ্ল্যাশ gemini-3.5-flash এজেন্টিক এবং কোডিং কার্যক্রমে ধারাবাহিক অগ্রণী পারফরম্যান্সের জন্য আমাদের সবচেয়ে বুদ্ধিমান মডেল।

জেমিনি ৩.৫ ফ্ল্যাশ ১এম টোকেন কনটেক্সট উইন্ডো, ৬৫কে সর্বোচ্চ আউটপুট টোকেন, থিঙ্কিং এবং জেমিনি ৩ ফ্ল্যাশের মতোই একই ধরনের টুলস ও প্ল্যাটফর্ম ফিচার সমর্থন করে, যার মধ্যে কম্পিউটার ইউজ (প্রিভিউ) অন্তর্ভুক্ত।

সম্পূর্ণ স্পেসিফিকেশনের জন্য, মডেল ওভারভিউ দেখুন। মূল্যের জন্য, প্রাইসিং পেজ দেখুন।

কুইকস্টার্ট

এই নির্দেশিকার সমস্ত উদাহরণে ইন্টারঅ্যাকশনস এপিআই (Interactions API) ব্যবহার করা হয়েছে। জেনারেটকন্টেন্ট এপিআই (GenerateContent API)-ও সমর্থিত; একই কনফিগারেশন বিকল্প এবং সুপারিশগুলো এক্ষেত্রেও প্রযোজ্য।

পাইথন

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3.5-flash",
    input="Explain how parallel agentic execution works in three sentences."
)
print(interaction.output_text)

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

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

const client = new GoogleGenAI({});

async function main() {
  const interaction = await client.interactions.create({
    model: "gemini-3.5-flash",
    input: "Explain how parallel agentic execution works in three sentences.",
  });
  console.log(interaction.output_text);
}

main();

জাভা

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.5-flash"))
        .input(
            InteractionsInput.of(
                "Explain how parallel agentic execution works in three sentences."))
        .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.5-flash"),
            Input: interactions.NewInteractionsInput("Explain how parallel agentic execution works in three sentences."),
        }),
    })
    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 "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gemini-3.5-flash",
    "input": "Explain how parallel agentic execution works in three sentences."
  }'

নতুন কি আছে

  • ধারাবাহিক অত্যাধুনিক কর্মক্ষমতা: আমাদের সবচেয়ে বুদ্ধিমান ফ্ল্যাশ মডেল, যা বৃহৎ পরিসরে এজেন্টিক এবং কোডিং কাজের জন্য অপ্টিমাইজ করা হয়েছে।
  • সক্রিয় কার্য সম্পাদন: উপ-এজেন্ট মোতায়েন, সমস্যা সমাধান, এবং বৃহৎ পরিসরে দ্রুত সক্রিয় চক্র।
  • কোডিং: পুনরাবৃত্তিমূলক কোডিং চক্র, দ্রুত অন্বেষণ, এবং বিকল্প পথ পরীক্ষা করতে ও গতিশীলভাবে সমাধান খুঁজে বের করতে প্রোটোটাইপিং।
  • দীর্ঘমেয়াদী পরিকল্পনা: বহু-ধাপের কর্মপ্রবাহ এবং বৃহৎ পরিসরে টুলের ব্যবহার।
  • চিন্তা সংরক্ষণ: মডেলটি একাধিক পালাবিশিষ্ট কথোপকথন জুড়ে স্বয়ংক্রিয়ভাবে মধ্যবর্তী যুক্তি বজায় রাখে। কোনো API পরিবর্তনের প্রয়োজন নেই।
  • নতুন ডিফল্ট প্রচেষ্টা স্তর: ডিফল্ট চিন্তন প্রচেষ্টা ' high থেকে medium পরিবর্তন করা হয়েছে। বিস্তারিত জানতে 'নতুন ডিফল্ট প্রচেষ্টা স্তর' দেখুন।
  • উন্নত low থিঙ্কিং: কোড এবং এজেন্টিক টাস্কের জন্য low এখন উল্লেখযোগ্যভাবে উন্নত হয়েছে, যার জন্য কম ধাপের প্রয়োজন হয় এবং এটি কম লেটেন্সি ও খরচে শক্তিশালী গুণমান প্রদান করে।
  • GA রিলিজ: বৃহৎ পরিসরে উৎপাদনের জন্য স্থিতিশীল মডেল।

সঠিক ফ্ল্যাশ মডেল নির্বাচন করা

জেমিনি ৩.৫ ফ্ল্যাশ হলো আমাদের সবচেয়ে বুদ্ধিমান এবং সক্ষম ফ্ল্যাশ মডেল। তবে, বিভিন্ন ব্যবহারের ক্ষেত্রে খরচ এবং ল্যাটেন্সির প্রয়োজনীয়তা ভিন্ন হতে পারে।

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

আচরণগত পরিবর্তন

নতুন ডিফল্ট প্রচেষ্টা স্তর: medium

ডিফল্ট চিন্তার প্রচেষ্টা এখন medium , যা জেমিনি ৩ ফ্ল্যাশ প্রিভিউতে high ছিল। medium বিভিন্ন ধরনের কাজে খুব ভালো ফলাফল দেয় এবং এটি দ্রুততর ও অধিক সাশ্রয়ী। জটিল সমস্যার ক্ষেত্রে, high মডেলটিকে আরও গভীরভাবে চিন্তা করতে উৎসাহিত করে।

প্রচেষ্টার স্তর কখন ব্যবহার করবেন
minimal দ্রুত প্রতিক্রিয়ার জন্য অপ্টিমাইজ করা হয়েছে। চ্যাটের মতো ব্যবহারের সুবিধা, দ্রুত ও তথ্যভিত্তিক উত্তর এবং আরও সহজ টুল কল।
low কোড এবং এজেন্টিক টাস্ক, যেগুলোর জন্য কম ল্যাটেন্সি ও কম ধাপের প্রয়োজন হয়। এছাড়াও বিশ্লেষণ এবং লেখার কাজ, যেগুলোর জন্য কিছুটা চিন্তাভাবনার প্রয়োজন হয়, সেগুলোর জন্যও এটি ভালোভাবে কাজ করে।
medium (ডিফল্ট) অধিকাংশ কাজের জন্য সর্বোত্তম গুণমান। জটিল কোড এবং এজেন্টিক ব্যবহারের ক্ষেত্রে সুপারিশকৃত।
high মডেলের চিন্তা করার এবং টুল ব্যবহার করার ক্ষমতাকে সর্বোচ্চ করে তোলে। জটিল যুক্তি, কঠিন গণিত এবং সবচেয়ে কঠিন কোড বা এজেন্ট টাস্কের জন্য সর্বোত্তম। বিস্তারিত চিন্তা এবং ফাংশন কল করার সুযোগ দেয়।

ডিফল্টটি পরিবর্তন করতে, আপনার কনফিগে thinking_level সেট করুন:

পাইথন

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3.5-flash",
    input="Prove that the square root of 2 is irrational.",
    generation_config={"thinking_level": "high"},
)
print(interaction.output_text)

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

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

const client = new GoogleGenAI({});

async function main() {
  const interaction = await client.interactions.create({
    model: "gemini-3.5-flash",
    input: "Prove that the square root of 2 is irrational.",
    generationConfig: { thinkingLevel: "high" },
  });
  console.log(interaction.output_text);
}

main();

জাভা

import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.GenerationConfig;
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.interactions.ThinkingLevel;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;

Client client = new Client();

CreateModelInteraction params =
    CreateModelInteraction.builder()
        .model(Model.of("gemini-3.5-flash"))
        .input(InteractionsInput.of("Prove that the square root of 2 is irrational."))
        .generationConfig(GenerationConfig.builder().thinkingLevel(ThinkingLevel.HIGH).build())
        .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.5-flash"),
            Input: interactions.NewInteractionsInput("Prove that the square root of 2 is irrational."),
            GenerationConfig: &interactions.GenerationConfig{
                ThinkingLevel: interactions.ThinkingLevelHigh.ToPointer(),
            },
        }),
    })
    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 "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gemini-3.5-flash",
    "input": "Prove that the square root of 2 is irrational.",
    "generation_config": {"thinking_level": "high"}
  }'

নিম্নলিখিত সারণিতে দেখানো হয়েছে যে প্রতিটি মডেলে কোন কোন চিন্তার স্তর সমর্থিত:

চিন্তার স্তর জেমিনি ৩.৫ ফ্ল্যাশ জেমিনি ৩.১ প্রো জেমিনি ৩.১ ফ্ল্যাশ-লাইট জেমিনি ৩ ফ্ল্যাশ বর্ণনা
minimal সমর্থিত সমর্থিত নয় সমর্থিত (ডিফল্ট) সমর্থিত বেশিরভাগ কোয়েরির জন্য এটি 'চিন্তাহীন' সেটিংয়ের সাথে মেলে। উল্লেখ্য, minimal ' মানেই যে চিন্তা বন্ধ থাকবে, তা নয়; জটিল কাজের ক্ষেত্রে মডেলটি খুব ন্যূনতম যুক্তি প্রয়োগ করতে পারে।
low সমর্থিত সমর্থিত সমর্থিত সমর্থিত বিলম্ব ও খরচ হ্রাস করে।
medium সমর্থিত (ডিফল্ট) সমর্থিত সমর্থিত সমর্থিত অধিকাংশ কাজের জন্য ভারসাম্যপূর্ণ চিন্তাভাবনা।
high সমর্থিত (গতিশীল) সমর্থিত (ডিফল্ট, ডাইনামিক) সমর্থিত (গতিশীল) সমর্থিত (ডিফল্ট, ডাইনামিক) যুক্তির গভীরতা সর্বাধিক করে।

চিন্তা সংরক্ষণ

মডেলটি একাধিক পালাবিশিষ্ট কথোপকথন জুড়ে স্বয়ংক্রিয়ভাবে অন্তর্বর্তী যুক্তি বজায় রাখে। কথোপকথনের ইতিহাসে উপস্থিত থাকলে, যুক্তির প্রেক্ষাপটটি সামনে এগিয়ে যায়, যা পুনরাবৃত্তিমূলক ডিবাগিং এবং কোড রিফ্যাক্টরিং-এর মতো জটিল বহু-ধাপের কাজগুলিতে কর্মক্ষমতা উন্নত করে। কোনো API পরিবর্তনের প্রয়োজন নেই:

  • ইন্টারঅ্যাকশন এপিআই : চিন্তাভাবনা স্বয়ংক্রিয়ভাবে সংরক্ষিত থাকে। আচরণে কোনো পরিবর্তন হয় না।
  • GenerateContent API : Gemini 3.5 Flash থেকে শুরু করে, কথোপকথনের ইতিহাসে থট সিগনেচার উপস্থিত থাকলে মডেলটি পূর্ববর্তী সমস্ত টার্নের রিজনিং কনটেক্সট ব্যবহার করে। এটি সক্রিয় করতে, contents এ সম্পূর্ণ, অপরিবর্তিত কথোপকথনের ইতিহাস ( থট সিগনেচার সহ) পাস করুন। SDK-গুলো এটি স্বয়ংক্রিয়ভাবে পরিচালনা করে।

জেমিনি ৩.x-এ প্যারামিটার আপডেট এবং সর্বোত্তম অনুশীলন

জেমিনি ৩.৫ ফ্ল্যাশ সহ সকল জেমিনি ৩.x মডেলের ক্ষেত্রে নিম্নলিখিত বিষয়গুলো প্রযোজ্য।

  • temperature , top_p , top_k : আমরা ডিফল্ট মানগুলো পরিবর্তন না করার জন্য দৃঢ়ভাবে সুপারিশ করছি। জেমিনি ৩-এর যুক্তি প্রদানের ক্ষমতা ডিফল্ট সেটিংসের জন্য অপ্টিমাইজ করা হয়েছে।
  • thinking_budget এর পরিবর্তে thinking_level ব্যবহার করুন।
  • ফাংশন কলিং রেসপন্স মেলানোর ক্ষেত্রে : id , name , এবং response count অবশ্যই পূর্ববর্তী কলগুলোর সাথে মিলতে হবে।
  • মাল্টিমোডাল ফাংশন রেসপন্স : ফাংশন রেসপন্সের ভিতরে মাল্টিমোডাল কন্টেন্ট অন্তর্ভুক্ত করুন, বাইরে নয়।
  • ফাংশন প্রতিক্রিয়ার ইনলাইন নির্দেশাবলী : ফাংশন প্রতিক্রিয়ার মূল লেখার সাথে যুক্ত হয়, আলাদা অংশ হিসেবে নয়।
  • অপ্রয়োজনীয় টুল কল হ্রাস করুন : এজেন্টিক ওয়ার্কফ্লোতে টুল কল কমাতে নিম্ন স্তরের চিন্তাভাবনা ব্যবহার করুন অথবা সিস্টেম নির্দেশাবলী নিয়ে পরীক্ষা-নিরীক্ষা করুন।

আপনার কোড কীভাবে আপডেট করবেন, তা জানতে নিচের বিভাগগুলো দেখুন।

স্যাম্পলিং প্যারামিটার (আর সুপারিশ করা হয় না)

temperature , top_p , এবং top_k এখন আর কোনো Gemini 3.x মডেলের জন্য সুপারিশ করা হয় না। Gemini 3-এর যুক্তি প্রদানের ক্ষমতা ডিফল্ট সেটিংসের জন্য অপ্টিমাইজ করা হয়েছে। সমস্ত অনুরোধ থেকে এই প্যারামিটারগুলো সরিয়ে ফেলুন।

# ⚠️ Remove these parameters (not recommended)
generation_config = {
    "temperature": 0.7,
    "top_p": 0.9,
    "top_k": 40,
}

সুনির্দিষ্টতা নিশ্চিত করার জন্য, আমরা আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রের জন্য সুস্পষ্ট নিয়মসহ একটি সিস্টেম নির্দেশনা সংজ্ঞায়িত করার পরামর্শ দিই।

thinking_budget (আর সুপারিশ করা হয় না)

সমস্ত Gemini 3.x মডেলে সরাসরি সাংখ্যিক thinking_budget প্যারামিটারটি আর ব্যবহার করার সুপারিশ করা হয় না। এর পরিবর্তে thinking_level স্ট্রিং enum ব্যবহার করুন।

# ⚠️ Before (not recommended)
generation_config = {
    "thinking": {"thinking_budget": 7500},
}

# ✅ After
generation_config = {
    "thinking": {"thinking_level": "medium"},
}

উপলব্ধ মানগুলি: minimal , low , medium (ডিফল্ট), এবং high ।

ফাংশন কলিং: কঠোর প্রতিক্রিয়া মিলকরণ

ইন্টারঅ্যাকশনস এপিআই (Interactions API) ইতোমধ্যেই অমিল ফাংশন রেসপন্সের জন্য এরর দেখায়। জেনারেটকন্টেন্ট এপিআই (GenerateContent API) এখনও এরর দেখায় না, কিন্তু অমিল রেসপন্সের কারণে মডেলটি বেশিরভাগ ক্ষেত্রে finish_reason: STOP সহ খালি রেসপন্স ফেরত দেয়। সর্বদা এই নিয়মগুলো অনুসরণ করুন:

প্রয়োজনীয়তা বিস্তারিত
id অন্তর্ভুক্ত করুন প্রতিটি FunctionResponse অবশ্যই সংশ্লিষ্ট FunctionCall এর id অন্তর্ভুক্ত থাকতে হবে।
ম্যাচের name উত্তরে থাকা name কলে থাকা name সাথে অবশ্যই মিলতে হবে।
ম্যাচ গণনা প্রাপ্ত প্রতিটি FunctionCall জন্য ঠিক একটি FunctionResponse ফেরত দিন

পাইথন

# ✅ Include matching call_id and name in the function_result
final_interaction = client.interactions.create(
    model="gemini-3.5-flash",
    previous_interaction_id=interaction.id,
    tools=[my_tool],
    input=[{
        "type": "function_result",
        "name": fc_step.name,
        "call_id": fc_step.id,
        "result": [{"type": "text", "text": json.dumps(result)}],
    }],
)

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

// ✅ Include matching call_id and name in the function_result
const finalInteraction = await client.interactions.create({
  model: "gemini-3.5-flash",
  previousInteractionId: interaction.id,
  tools: [myTool],
  input: [{
    type: "function_result",
    name: fcStep.name,
    call_id: fcStep.id,
    result: [{ type: "text", text: JSON.stringify(result) }],
  }],
});

জাভা

import java.util.Arrays;
import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.Function;
import com.google.genai.gaos.models.interactions.FunctionResultStep;
import com.google.genai.gaos.models.interactions.FunctionResultStepResultUnion;
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.interactions.TextContent;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
import java.util.List;

Client client = new Client();

// Assumes interactionId, callId, functionName, myTool, and resultJson from previous step
String interactionId = "interaction-id-123";
String callId = "call-id-123";
String functionName = "get_weather";
Function myTool = Function.builder().name(functionName).build();
String resultJson = "{\"temperature\": \"72F\"}";

// ✅ Include matching callId and name in the FunctionResultStep
FunctionResultStep functionResult =
    FunctionResultStep.builder()
        .name(functionName)
        .callId(callId)
        .result(
            FunctionResultStepResultUnion.of(
                Arrays.asList(TextContent.builder().text(resultJson).build())))
        .build();

CreateModelInteraction params =
    CreateModelInteraction.builder()
        .model(Model.of("gemini-3.5-flash"))
        .previousInteractionId(interactionId)
        .tools(Arrays.asList(myTool))
        .input(InteractionsInput.ofStep(Arrays.asList(functionResult)))
        .build();

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

যান

package main

import (
    "context"
    "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)
    }

    // Assumes interactionID, callID, functionName, myTool, and resultJSON from previous step
    interactionID := "interaction-id-123"
    callID := "call-id-123"
    functionName := "get_weather"
    myTool := interactions.NewTool(interactions.Function{Name: genai.Ptr(functionName)})
    resultJSON := `{"temperature": "72F"}`

    // ✅ Include matching CallID and Name in the FunctionResultStep
    functionResult := interactions.NewStep(interactions.FunctionResultStep{
        Name:   genai.Ptr(functionName),
        CallID: callID,
        Result: interactions.NewFunctionResultStepResultUnion([]interactions.FunctionResultSubcontent{
            interactions.NewFunctionResultSubcontent(interactions.TextContent{Text: resultJSON}),
        }),
    })

    finalRes, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
        Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
            Model:                 interactions.Model("gemini-3.5-flash"),
            PreviousInteractionID: genai.Ptr(interactionID),
            Tools:                 []interactions.Tool{myTool},
            Input:                 interactions.NewInteractionsInput([]interactions.Step{functionResult}),
        }),
    })
    if err != nil {
        log.Fatal(err)
    }
    _ = finalRes
}

বিশ্রাম

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>",
    "tools": [...],
    "input": [{
      "type": "function_result",
      "name": "my_function",
      "call_id": "<CALL_ID>",
      "result": [{"type": "text", "text": "..."}]
    }]
  }'

মাল্টিমোডাল ফাংশন প্রতিক্রিয়া

আমরা প্রায়শই দেখি ক্লায়েন্টরা ফাংশন রেসপন্সের বাইরে ছবি দিয়ে থাকেন। এর ফলে মডেলে অপ্রত্যাশিত আচরণ (যেমন চিন্তার প্রকাশ) হতে পারে এবং আউটপুটের মান কমে যেতে পারে। এর পরিবর্তে মাল্টিমোডাল ফাংশন রেসপন্স এপিআই ডক্সের সুপারিশ অনুসরণ করুন এবং মডেলে পাঠানো ফাংশন রেসপন্সের অংশগুলিতে মাল্টিমোডাল কন্টেন্ট অন্তর্ভুক্ত করুন। মডেল তার পরবর্তী ধাপে এই মাল্টিমোডাল কন্টেন্ট প্রসেস করে আরও তথ্যসমৃদ্ধ একটি রেসপন্স তৈরি করতে পারবে।

পাইথন

# ✅ Include multimodal content in the function response
final_interaction = client.interactions.create(
    model="gemini-3.5-flash",
    previous_interaction_id=interaction.id,
    input=[
        {
            "type": "function_result",
            "name": tool_call.name,
            "call_id": tool_call.id,
            "result": [
                {"type": "text", "text": "instrument.jpg"},
                {
                    "type": "image",
                    "mime_type": "image/jpeg",
                    "data": base64_image_data,
                },
            ],
        }
    ],
)

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

// ✅ Include multimodal content in the function response
const finalInteraction = await client.interactions.create({
  model: "gemini-3.5-flash",
  previousInteractionId: interaction.id,
  input: [{
    type: "function_result",
    name: toolCall.name,
    call_id: toolCall.id,
    result: [
      { type: "text", text: "instrument.jpg" },
      {
        type: "image",
        mime_type: "image/jpeg",
        data: base64ImageData,
      },
    ],
  }],
});

জাভা

import java.util.Arrays;
import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.FunctionResultStep;
import com.google.genai.gaos.models.interactions.FunctionResultStepResultUnion;
import com.google.genai.gaos.models.interactions.ImageContent;
import com.google.genai.gaos.models.interactions.ImageContentMimeType;
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.interactions.TextContent;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
import java.util.List;

Client client = new Client();

// Assumes interactionId, callId, functionName, and base64ImageData from previous step
String interactionId = "interaction-id-123";
String callId = "call-id-123";
String functionName = "get_instrument_image";
String base64ImageData = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=";

// ✅ Include multimodal content in the function response
FunctionResultStep functionResult =
    FunctionResultStep.builder()
        .name(functionName)
        .callId(callId)
        .result(
            FunctionResultStepResultUnion.of(
                Arrays.asList(
                    TextContent.builder().text("instrument.jpg").build(),
                    ImageContent.builder()
                        .mimeType(ImageContentMimeType.IMAGE_JPEG)
                        .data(base64ImageData)
                        .build())))
        .build();

CreateModelInteraction params =
    CreateModelInteraction.builder()
        .model(Model.of("gemini-3.5-flash"))
        .previousInteractionId(interactionId)
        .input(InteractionsInput.ofStep(Arrays.asList(functionResult)))
        .build();

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

যান

package main

import (
    "context"
    "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)
    }

    // Assumes interactionID, callID, functionName, and base64ImageData from previous step
    interactionID := "interaction-id-123"
    callID := "call-id-123"
    functionName := "get_instrument_image"
    base64ImageData := "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII="

    // ✅ Include multimodal content in the function response
    functionResult := interactions.NewStep(interactions.FunctionResultStep{
        Name:   genai.Ptr(functionName),
        CallID: callID,
        Result: interactions.NewFunctionResultStepResultUnion([]interactions.FunctionResultSubcontent{
            interactions.NewFunctionResultSubcontent(interactions.TextContent{
                Text: "instrument.jpg",
            }),
            interactions.NewFunctionResultSubcontent(interactions.ImageContent{
                MimeType: interactions.ImageContentMimeType("image/jpeg").ToPointer(),
                Data:     genai.Ptr(base64ImageData),
            }),
        }),
    })

    finalRes, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
        Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
            Model:                 interactions.Model("gemini-3.5-flash"),
            PreviousInteractionID: genai.Ptr(interactionID),
            Input:                 interactions.NewInteractionsInput([]interactions.Step{functionResult}),
        }),
    })
    if err != nil {
        log.Fatal(err)
    }
    _ = finalRes
}

ফাংশন প্রতিক্রিয়াগুলিতে ইনলাইন নির্দেশাবলী

আমরা প্রায়শই দেখি ক্লায়েন্টরা ফাংশন রেসপন্সের সাথে পরবর্তী Parts হিসেবে অতিরিক্ত নির্দেশনা দিয়ে থাকেন। এর ফলে মডেলে অপ্রত্যাশিত আচরণ (যেমন চিন্তার বিচ্যুতি) দেখা দিতে পারে এবং আউটপুটের মান কমে যেতে পারে। এর পরিবর্তে, যেকোনো অতিরিক্ত নির্দেশনা ফাংশন রেসপন্স টেক্সটের শেষে দুটি নিউলাইন দিয়ে আলাদা করে যুক্ত করুন।

পাইথন

# ✅ Append inline instructions to the end of the function response separated by two newlines
result_text = f"{json.dumps(result)}\n\n<your inline instructions>"

final_interaction = client.interactions.create(
    model="gemini-3.5-flash",
    previous_interaction_id=interaction.id,
    tools=[my_tool],
    input=[{
        "type": "function_result",
        "name": fc_step.name,
        "call_id": fc_step.id,
        "result": [{"type": "text", "text": result_text}],
    }],
)

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

// ✅ Append inline instructions to the end of the function response separated by two newlines
const resultText = `${JSON.stringify(result)}\n\n<your inline instructions>`;

const finalInteraction = await client.interactions.create({
  model: "gemini-3.5-flash",
  previousInteractionId: interaction.id,
  tools: [myTool],
  input: [{
    type: "function_result",
    name: fcStep.name,
    call_id: fcStep.id,
    result: [{ type: "text", text: resultText }],
  }],
});

জাভা

import java.util.Arrays;
import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.Function;
import com.google.genai.gaos.models.interactions.FunctionResultStep;
import com.google.genai.gaos.models.interactions.FunctionResultStepResultUnion;
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.interactions.TextContent;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
import java.util.List;

Client client = new Client();

// Assumes interactionId, callId, functionName, myTool, and resultJson from previous step
String interactionId = "interaction-id-123";
String callId = "call-id-123";
String functionName = "get_weather";
Function myTool = Function.builder().name(functionName).build();
String resultJson = "{\"temperature\": \"72F\"}";

// ✅ Append inline instructions to the end of the function response separated by two newlines
String resultText = resultJson + "\n\n<your inline instructions>";

FunctionResultStep functionResult =
    FunctionResultStep.builder()
        .name(functionName)
        .callId(callId)
        .result(
            FunctionResultStepResultUnion.of(
                Arrays.asList(TextContent.builder().text(resultText).build())))
        .build();

CreateModelInteraction params =
    CreateModelInteraction.builder()
        .model(Model.of("gemini-3.5-flash"))
        .previousInteractionId(interactionId)
        .tools(Arrays.asList(myTool))
        .input(InteractionsInput.ofStep(Arrays.asList(functionResult)))
        .build();

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

যান

package main

import (
    "context"
    "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)
    }

    // Assumes interactionID, callID, functionName, myTool, and resultJSON from previous step
    interactionID := "interaction-id-123"
    callID := "call-id-123"
    functionName := "get_weather"
    myTool := interactions.NewTool(interactions.Function{Name: genai.Ptr(functionName)})
    resultJSON := `{"temperature": "72F"}`

    // ✅ Append inline instructions to the end of the function response separated by two newlines
    resultText := resultJSON + "\n\n<your inline instructions>"

    functionResult := interactions.NewStep(interactions.FunctionResultStep{
        Name:   genai.Ptr(functionName),
        CallID: callID,
        Result: interactions.NewFunctionResultStepResultUnion([]interactions.FunctionResultSubcontent{
            interactions.NewFunctionResultSubcontent(interactions.TextContent{Text: resultText}),
        }),
    })

    finalRes, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
        Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
            Model:                 interactions.Model("gemini-3.5-flash"),
            PreviousInteractionID: genai.Ptr(interactionID),
            Tools:                 []interactions.Tool{myTool},
            Input:                 interactions.NewInteractionsInput([]interactions.Step{functionResult}),
        }),
    })
    if err != nil {
        log.Fatal(err)
    }
    _ = finalRes
}

অপ্রয়োজনীয় টুল কল কমানো

যদি আপনি টুল কলের অতিরিক্ত ব্যবহার অনুভব করেন, তবে দুটি কৌশল তা কমাতে সাহায্য করে:

  1. চিন্তার স্তর কমিয়ে ( medium , low বা minimal ) শুরু করুন: উচ্চ চিন্তার স্তর মডেলটিকে অন্বেষণ ও যাচাই করার জন্য আরও বেশি সরঞ্জাম ব্যবহার করতে উৎসাহিত করে, তাই স্তর কমালে সরঞ্জামের ব্যবহার কমে যেতে পারে।

  2. একটি সিস্টেম নির্দেশনা যোগ করুন: চিন্তার স্তর সামঞ্জস্য করার পরেও যদি অতিরিক্ত ব্যবহার অব্যাহত থাকে, তবে এমন একটি প্রম্পট বিবেচনা করুন যা টুলের ব্যবহার সীমিত করে। উদাহরণস্বরূপ:

    You have a limited action budget of <n> tool calls. Use them efficiently.
    

অভিবাসন চেকলিস্ট

আমরা google-genai SDK v2.0.0 বা তার পরবর্তী সংস্করণে আপডেট করার জন্য দৃঢ়ভাবে সুপারিশ করছি। এই সংস্করণে ইন্টারঅ্যাকশনস এপিআই-তে বড় ধরনের পরিবর্তন আনা হয়েছে। বিস্তারিত জানতে বড় ধরনের পরিবর্তন সংক্রান্ত মাইগ্রেশন গাইডটি দেখুন।

জেমিনি ৩ ফ্ল্যাশ প্রিভিউ থেকে মাইগ্রেট করুন

  • মডেলের নাম আপডেট করুন: gemini-3-flash-preview → gemini-3.5-flash
  • মূল্য পর্যালোচনা করুন। Gemini 3.5 Flash, Gemini 3 Flash Preview-এর চেয়ে বেশি দামী। যদি আপনার ব্যবহারের ক্ষেত্রে খরচের বিষয়টি অত্যন্ত গুরুত্বপূর্ণ হয়, তবে এর পরিবর্তে Gemini 3.1 Flash-Lite- এ স্থানান্তরিত হওয়ার কথা বিবেচনা করুন। বিস্তারিত জানতে মূল্য তালিকা পৃষ্ঠাটি দেখুন।
  • আপনার কনফিগ থেকে temperature , top_p , top_k সরিয়ে ফেলুন (এখন আর সুপারিশ করা হয় না)।
  • thinking_budget thinking_level দিয়ে প্রতিস্থাপন করুন।
  • FunctionResponse সকল অংশে id এবং তার সাথে সামঞ্জস্যপূর্ণ name যোগ করুন।
  • আপনার প্রম্পটগুলো পরীক্ষা করুন। ডিফল্ট প্রচেষ্টা high থেকে medium পরিবর্তন করা হয়েছে; গুণমান, গতি এবং খরচ যাচাই করুন।
  • চিন্তা সংরক্ষণ এখন ডিফল্টরূপে চালু আছে। যুক্তির প্রেক্ষাপট এক পালা থেকে অন্য পালায় বাহিত হয়, যা কর্মক্ষমতা উন্নত করে কিন্তু টোকেনের ব্যবহার বাড়িয়ে দিতে পারে।
  • অপ্রয়োজনীয় টুল কল হ্রাস করুন: প্রথমে চিন্তার স্তর কমিয়ে ( medium , low বা minimal ) শুরু করুন; অতিরিক্ত ব্যবহার অব্যাহত থাকলে টুলের ব্যবহার সীমিত করার জন্য একটি সিস্টেম নির্দেশনা যোগ করুন।
  • কম্পিউটার ব্যবহার সমর্থিত।

জেমিনি ২.৫ থেকে মাইগ্রেট করুন

উপরের সবকিছুর সাথে আরও যা যা থাকছে:

  • প্রম্পটগুলো সরল করুন। যদি আপনি যুক্তি প্রয়োগে বাধ্য করার জন্য চিন্তার ধারাবাহিকতা বিষয়ক প্রম্পট কৌশল ব্যবহার করে থাকেন, তাহলে এর পরিবর্তে আরও সরল প্রম্পটসহ thinking_level: "medium" বা "high" ব্যবহার করে দেখুন।
  • পিডিএফ এবং মিডিয়া ওয়ার্কলোড পরীক্ষা করুন। আপনি যদি ডেন্স ডকুমেন্ট পার্সিংয়ের জন্য নির্দিষ্ট আচরণের উপর নির্ভর করে থাকেন, তবে ধারাবাহিক নির্ভুলতা নিশ্চিত করতে media_resolution_high সেটিংটি পরীক্ষা করুন। Gemini 3-এর ডিফল্ট সেটিংসে মাইগ্রেট করলে পিডিএফ-এর জন্য টোকেন ব্যবহার বাড়তে পারে কিন্তু ভিডিওর জন্য তা কমতে পারে; যদি রিকোয়েস্টগুলো কনটেক্সট উইন্ডো অতিক্রম করে, তবে media_resolution স্পষ্টভাবে কমিয়ে দিন। বিস্তারিত জানতে মিডিয়া রেজোলিউশন ডকুমেন্টেশন দেখুন।
  • টুলগুলোর সম্মিলিত ব্যবহারের সুবিধা নিন। একই অনুরোধে গুগল সার্চ, ইউআরএল কনটেক্সট, কোড এক্সিকিউশন এবং কাস্টম ফাংশন ব্যবহার করা যেতে পারে।
  • মাল্টিমোডাল ফাংশন রেসপন্স ব্যবহার করলে, মাল্টিমোডাল কন্টেন্টকে ফাংশন রেসপন্স পার্টগুলোর পাশে না রেখে, সেগুলোর ভেতরে রাখুন।
  • ফাংশন রেসপন্সের সাথে ইনলাইন ইনস্ট্রাকশন ব্যবহার করলে, সেগুলোকে আলাদা অংশ হিসেবে না রেখে, দুটি নিউলাইন দিয়ে পৃথক করে ফাংশন রেসপন্স টেক্সটের সাথে যুক্ত করুন।
  • জেমিনি ৩.x-এ ইমেজ সেগমেন্টেশন সমর্থিত নয়। সেগমেন্টেশন সংক্রান্ত কাজের জন্য, ‘thinking’ বন্ধ রেখে জেমিনি ২.৫ ফ্ল্যাশ ব্যবহার করা চালিয়ে যান।
  • আপনার কনফিগ থেকে candidate_count সরিয়ে ফেলুন (Gemini 3.x-এ সমর্থিত নয়)

মিথুন ৩ পরিবারের বৈশিষ্ট্য

জেমিনি ৩.৫ ফ্ল্যাশ, কম্পিউটার ব্যবহার সহ জেমিনি ৩ সিরিজের সমস্ত ক্ষমতা উত্তরাধিকারসূত্রে পেয়েছে। জেমিনি ৩-এ প্রবর্তিত যে বৈশিষ্ট্যগুলো পরবর্তী সংস্করণেও থাকছে:

  • চিন্তাভাবনা : এপিআই কল জুড়ে এনক্রিপ্টেড যুক্তির প্রেক্ষাপট সংরক্ষিত থাকে। ইন্টারঅ্যাকশনস এপিআই-তে এটি স্বয়ংক্রিয়; জেনারেটকন্টেন্ট-এ অন্তর্নিহিত।
  • টুলের সাহায্যে কাঠামোগত আউটপুট : JSON মোডকে বিল্ট-ইন টুলের (সার্চ, URL কনটেক্সট, কোড এক্সিকিউশন, ফাংশন কলিং) সাথে একত্রিত করুন।
  • মাল্টিমোডাল ফাংশন রেসপন্স : ফাংশন কলের ফলাফলে ছবি, অডিও এবং অন্যান্য মিডিয়া ফেরত দেয়।
  • ছবি সহ কোড নির্বাহ : এমন কোড নির্বাহ করুন যা ছবি প্রক্রিয়াকরণ ও তৈরি করে।
  • সম্মিলিত টুল ব্যবহার : একই অনুরোধে বিল্ট-ইন টুল এবং কাস্টম ফাংশন কলিং ব্যবহার করুন।
  • মিডিয়া রেজোলিউশন : ছবি, ভিডিও এবং পিডিএফ ইনপুটের জন্য টোকেন বরাদ্দের উপর সূক্ষ্ম নিয়ন্ত্রণ। জেমিনি ৩ মডেলগুলো মিশ্র-মানের প্রম্পটের জন্য প্রতিটি কন্টেন্ট-আইটেমের আলাদা রেজোলিউশন সেটিংস ( low , medium , high , ultra_high ) সমর্থন করে।
  • চিন্তার স্বাক্ষর : মডেলের অভ্যন্তরীণ যুক্তির এনক্রিপ্টেড উপস্থাপনা। স্টেটলেস মোডে মাল্টি-টার্ন ফাংশন কলিংয়ের জন্য এটি আবশ্যক; ইন্টারঅ্যাকশনস এপিআই এবং অফিসিয়াল এসডিকে দ্বারা এটি স্বয়ংক্রিয়ভাবে পরিচালিত হয়।

সর্বোত্তম অনুশীলনকে উৎসাহিত করা

জেমিনি ৩.এক্স মডেলগুলো হলো যুক্তিনির্ভর মডেল, যা আপনার প্রশ্ন করার পদ্ধতি পরিবর্তন করে দেয়।

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

প্রম্পট ডিজাইন কৌশল সম্পর্কে আরও জানতে প্রম্পট ইঞ্জিনিয়ারিং গাইডটি পড়ুন।

সীমাবদ্ধতা

  • জেমিনি ৩.x-এ ইমেজ সেগমেন্টেশন সমর্থিত নয়। সেগমেন্টেশন সংক্রান্ত কাজের জন্য, ‘thinking’ বন্ধ রেখে জেমিনি ২.৫ ফ্ল্যাশ ব্যবহার করা চালিয়ে যান।

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

  1. জেমিনি ৩.৫ ফ্ল্যাশ-এর ​​জন্য জ্ঞানের শেষ তারিখ কবে? জেমিনি ৩.৫ ফ্ল্যাশ-এর ​​জ্ঞানের শেষ তারিখ হলো জানুয়ারি ২০২৫। আরও সাম্প্রতিক তথ্যের জন্য, সার্চ গ্রাউন্ডিং টুলটি ব্যবহার করুন।

  2. কন্টেক্সট উইন্ডোর সীমা কত? জেমিনি ৩.৫ ফ্ল্যাশ ১০ লক্ষ টোকেনের একটি ইনপুট কন্টেক্সট উইন্ডো এবং সর্বোচ্চ ৬৫ হাজার আউটপুট টোকেন সমর্থন করে।

  3. আমার পুরোনো thinking_budget কোড কি এখনও কাজ করবে? হ্যাঁ, ব্যাকওয়ার্ড কম্প্যাটিবিলিটির জন্য thinking_budget এখনও সমর্থিত, কিন্তু আরও অনুমানযোগ্য পারফরম্যান্সের জন্য আমরা thinking_level এ স্থানান্তরিত হওয়ার পরামর্শ দিই। একই অনুরোধে উভয়ই ব্যবহার করবেন না।

  4. জেমিনি ৩.৫ ফ্ল্যাশ কি ব্যাচ এপিআই সমর্থন করে? হ্যাঁ। বিস্তারিত জানতে ব্যাচ এপিআই নির্দেশিকা দেখুন।

  5. কনটেক্সট ক্যাশিং কি সমর্থিত? হ্যাঁ, কনটেক্সট ক্যাশিং সমর্থিত।

  6. কোন কোন টুল সমর্থিত? জেমিনি ৩.৫ ফ্ল্যাশ গুগল সার্চ , গুগল ম্যাপস-এর মাধ্যমে গ্রাউন্ডিং , ফাইল সার্চ , কোড এক্সিকিউশন , ইউআরএল কনটেক্সট , এবং স্ট্যান্ডার্ড ফাংশন কলিং (যৌথ টুল ব্যবহার সহ) ও কম্পিউটার ব্যবহার সমর্থন করে।

পরবর্তী পদক্ষেপ