Live API - WebSockets API reference

Live API হল একটি স্টেটফুল API যা WebSockets ব্যবহার করে। এই বিভাগে, আপনি WebSockets API সম্পর্কিত অতিরিক্ত বিবরণ পাবেন।

সেশন

WebSocket কানেকশন ক্লায়েন্ট ও Gemini সার্ভারের মধ্যে একটি সেশন তৈরি করে। ক্লায়েন্ট নতুন কানেকশন শুরু করার পরে, সেশনটি সার্ভারের সাথে মেসেজ আদানপ্রদান করতে পারে:

  • Gemini সার্ভারে টেক্সট, অডিও বা ভিডিও পাঠান।
  • Gemini সার্ভার থেকে অডিও, টেক্সট বা ফাংশন কল সংক্রান্ত অনুরোধ পান।

WebSocket কানেকশন

সেশন শুরু করতে, এই ওয়েবসকেট এন্ডপয়েন্টে কানেক্ট করুন:

wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent

সেশন কনফিগারেশন

WebSocket কানেকশন স্থাপন করার পরে পাঠানো প্রাথমিক মেসেজটি সেশন কনফিগারেশন সেট করে, যার মধ্যে মডেল, জেনারেশন প্যারামিটার, সিস্টেম নির্দেশাবলী এবং টুল অন্তর্ভুক্ত থাকে।

কানেকশন খোলা থাকাকালীন আপনি কনফিগারেশন আপডেট করতে পারবেন না। তবে, সেশন আবার চালু করার মেকানিজম-এর মাধ্যমে পজ ও আবার চালু করার সময়, মডেল ছাড়া আপনি কনফিগারেশন প্যারামিটার পরিবর্তন করতে পারবেন।

নিচে কনফিগারেশনের উদাহরণ দেখুন। মনে রাখবেন, SDK-তে নামের কেসিং আলাদা হতে পারে। আপনি Python SDK কনফিগারেশন বিকল্প এখানে দেখতে পারেন।


{
  "model": string,
  "generationConfig": {
    "candidateCount": integer,
    "maxOutputTokens": integer,
    "temperature": number,
    "topP": number,
    "topK": integer,
    "presencePenalty": number,
    "frequencyPenalty": number,
    "responseModalities": [string],
    "speechConfig": object,
    "mediaResolution": object,
    "translationConfig": object
  },
  "systemInstruction": string,
  "tools": [object]
}

API ফিল্ড সম্পর্কে আরও তথ্যের জন্য, generationConfig দেখুন।

বার্তা পাঠান

WebSocket কানেকশনের মাধ্যমে মেসেজ আদানপ্রদান করতে, ক্লায়েন্টকে অবশ্যই খোলা WebSocket কানেকশনের মাধ্যমে JSON অবজেক্ট পাঠাতে হবে। JSON অবজেক্টে নিম্নলিখিত অবজেক্ট সেট থেকে ঠিক একটি ফিল্ড থাকতে হবে:


{
  "setup": BidiGenerateContentSetup,
  "clientContent": BidiGenerateContentClientContent,
  "realtimeInput": BidiGenerateContentRealtimeInput,
  "toolResponse": BidiGenerateContentToolResponse
}

কাজ করে এমন ক্লায়েন্ট মেসেজ

নিচের সারণীতে কাজ করে এমন ক্লায়েন্ট মেসেজ দেখুন:

মেসেজ বিবরণ
BidiGenerateContentSetup প্রথম মেসেজে সেশন কনফিগারেশন পাঠাতে হবে
BidiGenerateContentClientContent ক্লায়েন্টের থেকে পাওয়া বর্তমান কথোপকথনের ইনক্রিমেন্টাল কন্টেন্ট আপডেট
BidiGenerateContentRealtimeInput রিয়েল-টাইম অডিও, ভিডিও বা টেক্সট ইনপুট
BidiGenerateContentToolResponse সার্ভারের থেকে পাওয়া ToolCallMessage-এর উত্তর

মেসেজ পাওয়া

Gemini-র থেকে মেসেজ পেতে, WebSocket 'message' ইভেন্ট শুনুন, এবং তারপরে কাজ করে এমন সার্ভার মেসেজের সংজ্ঞা অনুযায়ী ফলাফল পার্স করুন।

এগুলি দেখুন:

async with client.aio.live.connect(model='...', config=config) as session:
    await session.send(input='Hello world!', end_of_turn=True)
    async for message in session.receive():
        print(message)

সার্ভার মেসেজে usageMetadata ফিল্ড থাকতে পারে, তবে BidiGenerateContentServerMessage মেসেজ থেকে অন্য ফিল্ডের মধ্যে ঠিক একটি ফিল্ড অন্তর্ভুক্ত থাকবে। (messageType ইউনিয়ন JSON-এ প্রকাশ করা হয় না, তাই ফিল্ডটি মেসেজের সবচেয়ে উপরের লেভেলে দেখা যাবে।)

মেসেজ ও ইভেন্ট

ActivityEnd

এই ধরনের কোনও ফিল্ড নেই।

ব্যবহারকারীর অ্যাক্টিভিটি শেষ হয়েছে বলে চিহ্নিত করে।

ActivityHandling

ব্যবহারকারীর অ্যাক্টিভিটি ম্যানেজ করার বিভিন্ন উপায়।

Enums
ACTIVITY_HANDLING_UNSPECIFIED নির্দিষ্ট না করা থাকলে, ডিফল্ট আচরণ হল START_OF_ACTIVITY_INTERRUPTS।
START_OF_ACTIVITY_INTERRUPTS সত্য হলে, অ্যাক্টিভিটি শুরু হলে মডেলের উত্তর দেওয়ার প্রসেস বাধা পাবে (এটি "বর্জ ইন" নামেও পরিচিত)। বাধা পাওয়ার সময় মডেলের বর্তমান উত্তরটি কেটে যাবে। এটি হল ডিফল্ট অ্যাকশন।
NO_INTERRUPTION মডেলের উত্তর দেওয়ার সময় কোনও বাধা দেওয়া হবে না।

ActivityStart

এই ধরনের কোনও ফিল্ড নেই।

ব্যবহারকারীর অ্যাক্টিভিটি শুরু হওয়ার সময়কে চিহ্নিত করে।

AudioTranscriptionConfig

অডিও ট্রান্সক্রিপশন কনফিগারেশন।

ফিল্ড
languageCodes[]

string

ঐচ্ছিক। BCP-47 ভাষা কোড অডিওতে উপস্থিত ভাষা সম্পর্কে ইঙ্গিত প্রদান করে। এটি বাদ দিলে বা খালি রাখলে, ডিফল্ট হিসেবে অটোমেটিক ভাষা শনাক্তকরণ ব্যবহার করা হয়।

customVocabulary[]

string

ঐচ্ছিক। নির্দিষ্ট শব্দ (প্রোডাক্টের নাম, বিশেষ্য, কঠিন পরিভাষা) শনাক্ত করার ব্যাপারে স্পিচ শনাক্তকরণ মডেলকে পক্ষপাতদুষ্ট করে তোলার জন্য কাস্টম শব্দভাণ্ডারের বাক্যাংশের তালিকা।

wordTimestamp

bool

ঐচ্ছিক। শব্দ-লেভেল টাইমস্ট্যাম্প তৈরি করা কনফিগার করে।

diarization

bool

ঐচ্ছিক। স্পিকার ডায়ারাইজেশন কনফিগার করে।

mode

Mode

ঐচ্ছিক। ট্রান্সক্রিপশন মোড কনফিগার করে। সাপোর্ট করা ভ্যালু: VERBATIM, SMART. নির্দিষ্ট না করা থাকলে, ডিফল্ট হিসেবে VERBATIM ট্রান্সক্রিপশন সেট করা থাকে। SMART মোডে, মডেলটি ডিসফ্লুয়েন্সি সরিয়ে দেয় (ফিলার শব্দ, পুনরাবৃত্তি এবং ভুল শুরু বাদ দেয়), হালকা ব্যাকরণগত পরিষ্করণ, অটোমেটিক ফর্ম্যাটিং (প্যারাগ্রাফ, বুলেট পয়েন্ট, সংখ্যাযুক্ত তালিকা) এবং ব্যবহারকারীর করা ছোটখাটো এডিট (ইনলাইন সেল্ফ-কারেকশন) করে। টাইমস্ট্যাম্প ও ডায়েরাইজেশন মোড SMART-এর সাথে মানানসই নয়।

মোড

ট্রান্সক্রিপশন মোড।

Enums
MODE_UNSPECIFIED অনুল্লিখিত ট্রান্সক্রিপশন মোড।
VERBATIM আক্ষরিক ট্রান্সক্রিপশন মোড।
SMART স্মার্ট ট্রান্সক্রিপশন মোড।

AutomaticActivityDetection

অ্যাক্টিভিটি অটোমেটিক শনাক্ত করার সুবিধা কনফিগার করে।

ফিল্ড
disabled

bool

ঐচ্ছিক। চালু করা থাকলে (ডিফল্ট), শনাক্ত করা ভয়েস ও টেক্সট ইনপুটকে অ্যাক্টিভিটি হিসেবে গণ্য করা হয়। বন্ধ করা থাকলে, ক্লায়েন্টকে অবশ্যই অ্যাক্টিভিটি সিগন্যাল পাঠাতে হবে।

startOfSpeechSensitivity

StartSensitivity

ঐচ্ছিক। স্পিচ শনাক্ত করার সম্ভাবনা কতটা তা নির্ধারণ করে।

prefixPaddingMs

int32

ঐচ্ছিক। স্পিচ শুরু হওয়ার আগে শনাক্ত করা স্পিচের প্রয়োজনীয় সময়সীমা। এই মান যত কম হবে, স্পিচ শনাক্ত করার শুরুটা তত বেশি সংবেদনশীল হবে এবং ছোট ছোট স্পিচ শনাক্ত করা যাবে। তবে, এর ফলে ফলস পজিটিভের সম্ভাবনাও বেড়ে যায়।

endOfSpeechSensitivity

EndSensitivity

ঐচ্ছিক। শনাক্ত করা স্পিচ কতটা সম্ভাবনা নিয়ে শেষ হয়েছে তা নির্ধারণ করে।

silenceDurationMs

int32

ঐচ্ছিক। স্পিচ শেষ হওয়ার আগে শনাক্ত করা স্পিচ নয় এমন কন্টেন্টের (যেমন, নীরবতা) প্রয়োজনীয় সময়সীমা। এই ভ্যালু যত বড় হবে, ব্যবহারকারীর অ্যাক্টিভিটি বাধা না দিয়েই স্পিচ গ্যাপ তত বেশি দীর্ঘ হতে পারবে, তবে এর ফলে মডেলের লেটেন্সি বেড়ে যাবে।

BidiGenerateContentClientContent

ক্লায়েন্টের থেকে পাওয়া বর্তমান কথোপকথনের ইনক্রিমেন্টাল আপডেট। এখানে থাকা সব কন্টেন্ট কথোপকথনের ইতিহাসে শর্তহীনভাবে যোগ করা হয় এবং কন্টেন্ট তৈরি করার জন্য মডেলকে দেওয়া প্রম্পটের অংশ হিসেবে ব্যবহার করা হয়।

এখানে কোনও মেসেজ লিখলে, বর্তমান মডেল জেনারেশন বাধা পাবে।

ফিল্ড
turns[]

Content

ঐচ্ছিক। মডেলের সাথে বর্তমান কথোপকথনে যোগ করা কন্টেন্ট।

সিঙ্গেল-টার্ন কোয়েরির ক্ষেত্রে, এটি একটি সিঙ্গেল ইনস্ট্যান্স। মাল্টি-টার্ন কোয়েরির ক্ষেত্রে, এটি একটি রিপিট করা ফিল্ড যাতে কথোপকথনের ইতিহাস ও লেটেস্ট অনুরোধ থাকে।

turnComplete

bool

ঐচ্ছিক। সত্য হলে, এটি ইঙ্গিত করে যে সার্ভার কন্টেন্ট জেনারেশনকে বর্তমানে জমা হওয়া প্রম্পট দিয়ে শুরু করতে হবে। অন্যথায়, জেনারেশন শুরু করার আগে সার্ভার অতিরিক্ত মেসেজের জন্য অপেক্ষা করে।

BidiGenerateContentRealtimeInput

রিয়েল-টাইমে পাঠানো ব্যবহারকারীর ইনপুট।

বিভিন্ন মোডালিটি (অডিও, ভিডিও ও টেক্সট) কনকারেন্ট স্ট্রিম হিসেবে ম্যানেজ করা হয়। এইসব স্ট্রিম জুড়ে অর্ডার করার বিষয়টি নিশ্চিত করা যায় না।

এটি BidiGenerateContentClientContent থেকে কয়েকটি উপায়ে আলাদা:

  • মডেল জেনারেশনে কোনও বাধা না দিয়েই একটানা পাঠানো যেতে পারে।
  • BidiGenerateContentClientContent এবং BidiGenerateContentRealtimeInput জুড়ে ইন্টারলিভ করা ডেটা মিক্স করার প্রয়োজন হলে, সার্ভার সেরা উত্তরের জন্য অপ্টিমাইজ করার চেষ্টা করে, তবে এর কোনও গ্যারান্টি নেই।
  • পালা শেষ হওয়ার বিষয়টি স্পষ্টভাবে উল্লেখ করা নেই, বরং ব্যবহারকারীর অ্যাক্টিভিটি থেকে তা বোঝা যায় (যেমন, বক্তব্য শেষ হওয়া)।
  • এমনকি টার্ন শেষ হওয়ার আগেই, মডেলের থেকে দ্রুত উত্তর পাওয়ার জন্য ডেটা ইনক্রিমেন্টাল প্রসেস করা হয়।
ফিল্ড
mediaChunks[]

Blob

ঐচ্ছিক। মিডিয়া ইনপুটের জন্য ইনলাইন করা বাইট ডেটা। একাধিক mediaChunks কাজ করে না, প্রথমটি ছাড়া বাকি সব উপেক্ষা করা হবে।

পুরনো হয়ে গেছে: এর পরিবর্তে audio, video বা text-এর মধ্যে একটি ব্যবহার করুন।

audio

Blob

ঐচ্ছিক। এগুলি রিয়েল-টাইম অডিও ইনপুট স্ট্রিম তৈরি করে।

video

Blob

ঐচ্ছিক। এগুলি রিয়েল-টাইম ভিডিও ইনপুট স্ট্রিম তৈরি করে।

activityStart

ActivityStart

ঐচ্ছিক। ব্যবহারকারীর অ্যাক্টিভিটি শুরু হওয়ার সময়কে চিহ্নিত করে। অটোমেটিক (অর্থাৎ, সার্ভার-সাইড) অ্যাক্টিভিটি শনাক্তকরণ বন্ধ করা থাকলে তবেই এটি পাঠানো যাবে।

activityEnd

ActivityEnd

ঐচ্ছিক। ব্যবহারকারীর অ্যাক্টিভিটি শেষ হয়েছে বলে চিহ্নিত করে। অটোমেটিক (অর্থাৎ, সার্ভার-সাইড) অ্যাক্টিভিটি শনাক্তকরণ বন্ধ করা থাকলে তবেই এটি পাঠানো যাবে।

mediaResolution

MediaResolution

ঐচ্ছিক। ব্যবহার করার জন্য মিডিয়ার রেজোলিউশন। উল্লেখ করা না থাকলে, setup.generationConfig.mediaResolution ব্যবহার করা হয় অথবা সেট-আপ প্রদান করা না হলে ডিফল্ট ব্যবহার করা হয়।

audioStreamEnd

bool

ঐচ্ছিক। এটি ইঙ্গিত করে যে অডিও স্ট্রিম শেষ হয়ে গেছে, যেমন, মাইক্রোফোন বন্ধ করে দেওয়া হয়েছে।

অটোমেটিক অ্যাক্টিভিটি শনাক্তকরণ চালু থাকলে (যা ডিফল্ট হিসেবে থাকে) তবেই এটি পাঠানো উচিত।

ক্লায়েন্ট অডিও মেসেজ পাঠিয়ে স্ট্রিম আবার খুলতে পারে।

text

string

ঐচ্ছিক। এগুলি রিয়েল-টাইম টেক্সট ইনপুট স্ট্রিম তৈরি করে।

BidiGenerateContentServerContent

ক্লায়েন্টের মেসেজের উত্তরে মডেলের তৈরি করা ইনক্রিমেন্টাল সার্ভার আপডেট।

কন্টেন্ট যত দ্রুত সম্ভব জেনারেট করা হয়, তবে রিয়েল টাইমে নয়। ক্লায়েন্টরা চাইলে বাফার করতে এবং রিয়েল টাইমে চালাতে পারেন।

ফিল্ড
generationComplete

bool

শুধুমাত্র আউটপুট। সত্য হলে, এটি বোঝায় যে মডেলের জেনারেশন প্রসেস সম্পূর্ণ হয়ে গেছে।

জেনারেট করার সময় মডেল বাধা পেলে, বাধা পাওয়া টার্নে কোনও 'generation_complete' মেসেজ থাকবে না, এটি 'interrupted > turn_complete' প্রসেসের মধ্যে দিয়ে যাবে।

মডেল যখন রিয়েলটাইম প্লেব্যাক অনুমান করে, তখন generation_complete এবং turn_complete-এর মধ্যে বিলম্ব হবে যা প্লেব্যাক শেষ হওয়ার জন্য মডেলের অপেক্ষা করার কারণে ঘটে।

turnComplete

bool

শুধুমাত্র আউটপুট। সত্য হলে, এটি বোঝায় যে মডেলটি তার পালা সম্পূর্ণ করেছে। অতিরিক্ত ক্লায়েন্ট মেসেজের উত্তর হিসেবেই শুধু জেনারেশন শুরু হবে। মনে রাখবেন, প্লেব্যাক স্ট্যাটাস রিপোর্টিং চালু করা থাকলে, প্লেব্যাক স্ট্যাটাস প্লেব্যাক সম্পূর্ণ হয়েছে বলে ইঙ্গিত করলেই শুধুমাত্র এটি এমিট করা হয়। একই জেনারেশনের ভবিষ্যতের প্লেব্যাক স্ট্যাটাস উপেক্ষা করা হবে।

interrupted

bool

শুধুমাত্র আউটপুট। সত্য হলে, এটি ইঙ্গিত করে যে ক্লায়েন্ট মেসেজ বর্তমান মডেল জেনারেশনে বাধা দিয়েছে। ক্লায়েন্ট যদি রিয়েল-টাইমে কন্টেন্ট প্লে করে, তাহলে এটি একটি ভাল সিগন্যাল যা বর্তমান প্লেব্যাক সারি বন্ধ করে খালি করে দেয়।

groundingMetadata

GroundingMetadata

শুধুমাত্র আউটপুট। জেনারেট করা কন্টেন্টের জন্য গ্রাউন্ডিং মেটাডেটা।

inputTranscription

BidiGenerateContentTranscription

শুধুমাত্র আউটপুট। ইনপুট অডিও ট্রান্সক্রিপশন। ট্রান্সক্রিপশন অন্যান্য সার্ভার মেসেজ থেকে আলাদাভাবে পাঠানো হয় এবং কোনও নির্দিষ্ট ক্রমে পাঠানো হয় না।

interimInputTranscription

BidiGenerateContentTranscription

শুধুমাত্র আউটপুট। ব্যবহারকারী কথা বলার সময় কম লেটেন্সি ট্রান্সক্রিপশন আপডেট করা হয়। এই ফিল্ডটি ঘন ঘন আপডেট করা হয়।

outputTranscription

BidiGenerateContentTranscription

শুধুমাত্র আউটপুট। আউটপুট অডিও ট্রান্সক্রিপশন। এইসব ট্রান্সক্রিপশন হল সার্ভারের জেনারেশন আউটপুটের অংশ। generationComplete বা interrupted-এর আগে এই টার্নের শেষ আউটপুট ট্রান্সক্রিপশন পাঠানো হয়, যার পরে turnComplete থাকে। ট্রান্সক্রিপশন ও অন্যান্য modelTurn আউটপুটের মধ্যে কোনও গ্যারান্টিযুক্ত সঠিক ক্রম নেই, তবে সার্ভার সংশ্লিষ্ট অডিও আউটপুটের কাছাকাছি ট্রান্সক্রিপ্ট পাঠানোর চেষ্টা করে।

urlContextMetadata

UrlContextMetadata

waitingForInput

bool

শুধুমাত্র আউটপুট। এটি 'true' হলে, বুঝতে হবে যে মডেলটি কন্টেন্ট তৈরি করছে না কারণ এটি ব্যবহারকারীর থেকে আরও ইনপুট পাওয়ার জন্য অপেক্ষা করছে, যেমন, এটি আশা করছে যে ব্যবহারকারী কথা বলা চালিয়ে যাবেন।

interactionStatus

InteractionStatus

শুধুমাত্র আউটপুট। লাইভ সেশনের বর্তমান অ্যাক্টিভিটি স্ট্যাটাস। turnComplete-এর সাথে সবসময় পাঠানো হয়।

modelTurn

Content

শুধুমাত্র আউটপুট। ব্যবহারকারীর সাথে বর্তমান কথোপকথনের অংশ হিসেবে মডেলের তৈরি করা কন্টেন্ট।

BidiGenerateContentServerMessage

BidiGenerateContent কলের জন্য উত্তর মেসেজ।

ফিল্ড
usageMetadata

UsageMetadata

শুধুমাত্র আউটপুট। উত্তর সম্পর্কিত ব্যবহার সংক্রান্ত মেটাডেটা।

voiceActivity

VoiceActivity

শুধুমাত্র আউটপুট। অডিও স্ট্রিমে ভয়েস অ্যাক্টিভিটি শনাক্ত করা হয়েছে।

ইউনিয়ন ফিল্ড messageType। মেসেজের ধরন। messageType শুধুমাত্র নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
setupComplete

BidiGenerateContentSetupComplete

শুধুমাত্র আউটপুট। সেট-আপ সম্পূর্ণ হয়ে গেলে ক্লায়েন্টের BidiGenerateContentSetup মেসেজের উত্তরে পাঠানো হয়।

serverContent

BidiGenerateContentServerContent

শুধুমাত্র আউটপুট। ক্লায়েন্টের মেসেজের উত্তরে মডেলের তৈরি করা কন্টেন্ট।

toolCall

BidiGenerateContentToolCall

শুধুমাত্র আউটপুট। ক্লায়েন্টকে functionCalls এক্সিকিউট করতে এবং ম্যাচ করা id সহ উত্তরগুলি ফেরত দিতে অনুরোধ করুন।

toolCallCancellation

BidiGenerateContentToolCallCancellation

শুধুমাত্র আউটপুট। ক্লায়েন্টকে বিজ্ঞপ্তি দিয়ে জানানো যে নির্দিষ্ট id সহ আগে ইস্যু করা ToolCallMessage বাতিল করতে হবে।

goAway

GoAway

শুধুমাত্র আউটপুট। সার্ভার শীঘ্রই ডিসকানেক্ট হয়ে যাবে, এমন বিজ্ঞপ্তি।

sessionResumptionUpdate

SessionResumptionUpdate

শুধুমাত্র আউটপুট। সেশন আবার শুরু করার স্ট্যাটাস আপডেট।

BidiGenerateContentSetup

প্রথম BidiGenerateContentClientMessage-এ (এবং শুধুমাত্র প্রথম BidiGenerateContentClientMessage-এ) মেসেজ পাঠাতে হবে। স্ট্রিমিং RPC চলাকালীন প্রযোজ্য হবে এমন কনফিগারেশন থাকে।

ক্লায়েন্টদের অতিরিক্ত মেসেজ পাঠানোর আগে BidiGenerateContentSetupComplete মেসেজের জন্য অপেক্ষা করা উচিত।

ফিল্ড
model

string

প্রয়োজনীয়। মডেলের রিসোর্স নাম। এটি মডেলের ব্যবহার করার জন্য আইডি হিসেবে কাজ করে।

ফর্ম্যাট: models/{model}

generationConfig

GenerationConfig

ঐচ্ছিক। জেনারেট করার কনফিগারেশন।

নিম্নলিখিত ফিল্ড কাজ করে না:

  • responseLogprobs
  • responseMimeType
  • logprobs
  • responseSchema
  • responseJsonSchema
  • stopSequence
  • skipResponseCache
  • routingConfig
  • audioTimestamp
systemInstruction

Content

ঐচ্ছিক। ব্যবহারকারী মডেলের জন্য সিস্টেম নির্দেশাবলী দিয়েছেন।

মনে রাখবেন: পার্টে শুধুমাত্র টেক্সট ব্যবহার করা যাবে এবং প্রতিটি পার্টের কন্টেন্ট আলাদা আলাদা প্যারাগ্রাফে থাকবে।

tools[]

Tool

ঐচ্ছিক। পরবর্তী উত্তর জেনারেট করার জন্য মডেলটি ব্যবহার করতে পারে এমন Tools তালিকার একটি অংশ।

Tool হল কোডের একটি অংশ যা সিস্টেমকে এমন অ্যাকশন বা অ্যাকশনের সেট পারফর্ম করার জন্য এক্সটার্নাল সিস্টেমের সাথে ইন্টার‍্যাক্ট করতে সক্ষম করে যা মডেলের জ্ঞান ও স্কোপের বাইরে।

realtimeInputConfig

RealtimeInputConfig

ঐচ্ছিক। রিয়েলটাইম ইনপুট হ্যান্ডেল করার বিষয়টি কনফিগার করে।

sessionResumption

SessionResumptionConfig

ঐচ্ছিক। সেশন আবার চালু করার মেকানিজম কনফিগার করে।

অন্তর্ভুক্ত করা হলে, সার্ভার SessionResumptionUpdate মেসেজ পাঠাবে।

contextWindowCompression

ContextWindowCompressionConfig

ঐচ্ছিক। কন্টেক্সট উইন্ডো কম্প্রেশন মেকানিজম কনফিগার করে।

অন্তর্ভুক্ত করা হলে, কনফিগার করা দৈর্ঘ্য অতিক্রম করলে সার্ভার অটোমেটিক প্রসঙ্গ ছোট করে দেবে।

inputAudioTranscription

AudioTranscriptionConfig

ঐচ্ছিক। সেট করা থাকলে, ভয়েস ইনপুট ট্রান্সক্রিপশন চালু করে। কনফিগার করা থাকলে, ট্রান্সক্রিপশন ইনপুট অডিও ভাষার সাথে মানানসই হয়।

outputAudioTranscription

AudioTranscriptionConfig

ঐচ্ছিক। সেট করা থাকলে, মডেলের অডিও আউটপুটের ট্রান্সক্রিপশন চালু করে। কনফিগার করা থাকলে, আউটপুট অডিওর জন্য নির্দিষ্ট করা ভাষা কোডের সাথে ট্রান্সক্রিপশন অ্যালাইন করে।

proactivity

ProactivityConfig

ঐচ্ছিক। মডেলের প্রোঅ্যাক্টিভিটি কনফিগার করে।

এটি মডেলকে ইনপুটের ব্যাপারে আগে থেকে উত্তর দিতে এবং অপ্রাসঙ্গিক ইনপুট উপেক্ষা করতে সাহায্য করে।

historyConfig

HistoryConfig

ঐচ্ছিক। ক্লায়েন্ট ও সার্ভারের মধ্যে ইতিহাস এক্সচেঞ্জ করার বিষয়টি কনফিগার করে।

labels

map<string, string>

ঐচ্ছিক। অনুরোধের জন্য ব্যবহারকারীর সংজ্ঞায়িত মেটাডেটা সহ লেবেল।

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

ব্যবহার: - অ্যাগ্রিগেটরদের থেকে পাওয়া নিরাপত্তা শনাক্তকারী: safety_identifier কী ব্যবহার করুন (যেমন, {"safety_identifier": "user_session_123"})

BidiGenerateContentSetupComplete

এই ধরনের কোনও ফিল্ড নেই।

ক্লায়েন্টের পাঠানো BidiGenerateContentSetup মেসেজের উত্তরে পাঠানো হয়েছে।

BidiGenerateContentToolCall

ক্লায়েন্টকে functionCalls এক্সিকিউট করতে এবং ম্যাচ করা id সহ উত্তরগুলি ফেরত দিতে অনুরোধ করুন।

ফিল্ড
functionCalls[]

FunctionCall

শুধুমাত্র আউটপুট। যে ফাংশন কল এক্সিকিউট করতে হবে।

BidiGenerateContentToolCallCancellation

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

ফিল্ড
ids[]

string

শুধুমাত্র আউটপুট। বাতিল করতে হবে এমন টুল কলের আইডি।

BidiGenerateContentToolResponse

সার্ভার থেকে পাওয়া ToolCall-এর জন্য ক্লায়েন্ট উত্তর জেনারেট করেছে। id ফিল্ডের মাধ্যমে আলাদা আলাদা FunctionResponse অবজেক্টকে সংশ্লিষ্ট FunctionCall অবজেক্টের সাথে ম্যাচ করা হয়।

মনে রাখবেন, unary ও সার্ভার-স্ট্রিমিং GenerateContent API-তে Content পার্ট এক্সচেঞ্জ করার মাধ্যমে ফাংশন কলিং হয়, অন্যদিকে bidi GenerateContent API-তে মেসেজের এই নির্দিষ্ট সেটের মাধ্যমে ফাংশন কলিং হয়।

ফিল্ড
functionResponses[]

FunctionResponse

ঐচ্ছিক। ফাংশন কলের উত্তর।

BidiGenerateContentTranscription

অডিওর ট্রান্সক্রিপশন (ইনপুট বা আউটপুট)।

ফিল্ড
text

string

ট্রান্সক্রিপশন টেক্সট।

languageCode

string

ট্রান্সক্রিপশনের BCP-47 ভাষা কোড।

startOffset

Duration

ঐচ্ছিক। অডিও শুরুর সাপেক্ষে ট্রান্সক্রিপশনের সময় শুরু অফসেট।

endOffset

Duration

ঐচ্ছিক। অডিওর শুরু থেকে ট্রান্সক্রিপশনের শেষ পর্যন্ত অফসেট।

ContextWindowCompressionConfig

কনটেক্সট উইন্ডো কম্প্রেশন চালু করে — এটি মডেলের কনটেক্সট উইন্ডো ম্যানেজ করার একটি মেকানিজম, যাতে এটি নির্দিষ্ট দৈর্ঘ্যের বেশি না হয়।

ফিল্ড
ইউনিয়ন ফিল্ড compressionMechanism। ব্যবহৃত কন্টেক্সট উইন্ডো কম্প্রেশন মেকানিজম। compressionMechanism শুধুমাত্র নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
slidingWindow

SlidingWindow

স্লাইডিং-উইন্ডো মেকানিজম।

triggerTokens

int64

কনটেক্সট উইন্ডো কম্প্রেশন ট্রিগার করার জন্য প্রয়োজনীয় টোকেনের সংখ্যা (টার্ন চালানোর আগে)।

এটি লেটেন্সির বিপরীতে কোয়ালিটি ব্যালেন্স করতে ব্যবহার করা যেতে পারে, কারণ ছোট কনটেক্সট উইন্ডো ব্যবহার করলে মডেলের উত্তর দেওয়ার সময় কম লাগতে পারে। তবে, কোনও কম্প্রেশন অপারেশন সাময়িকভাবে লেটেন্সি বাড়িয়ে দেয়, তাই সেগুলি ঘন ঘন ট্রিগার করা উচিত নয়।

সেট করা না থাকলে, মডেলের কনটেক্সট উইন্ডো সীমার ৮০% ডিফল্ট হিসেবে সেট করা হয়। এর ফলে পরবর্তী ব্যবহারকারীর অনুরোধ/মডেল উত্তরের জন্য ২০% জায়গা খালি থাকে।

EndSensitivity

স্পিচ শেষ হয়েছে কিনা তা কীভাবে শনাক্ত করা হবে তা নির্ধারণ করে।

Enums
END_SENSITIVITY_UNSPECIFIED ডিফল্ট হল END_SENSITIVITY_HIGH.
END_SENSITIVITY_HIGH অটোমেটিক শনাক্তকরণ স্পিচকে আরও বেশি বার শেষ করে দেয়।
END_SENSITIVITY_LOW অটোমেটিক শনাক্তকরণ কমই স্পিচ শেষ করে।

GoAway

সার্ভার শীঘ্রই ডিসকানেক্ট হয়ে যাবে, এমন বিজ্ঞপ্তি।

ফিল্ড
timeLeft

Duration

কানেকশন ABORTED হিসেবে চিহ্নিত করার আগে বাকি থাকা সময়।

এই সময়সীমা কখনই মডেল-নির্দিষ্ট সর্বনিম্ন সময়ের থেকে কম হবে না, যা মডেলের জন্য রেট লিমিটের সাথে একসাথে নির্দিষ্ট করা হবে।

HistoryConfig

ইতিহাসের কনফিগারেশন।

এই মেসেজটি সেশন কনফিগারেশনে BidiGenerateContentSetup.historyConfig হিসেবে অন্তর্ভুক্ত করা হয়েছে। ইতিহাস মেসেজ আদানপ্রদান করার বিষয়টি কনফিগার করে।

ফিল্ড
initialHistoryInClientContent

bool

ঐচ্ছিক। সত্য হলে, setupComplete পাঠানোর পরে, সার্ভার অপেক্ষা করবে এবং প্রথমে clientContent মেসেজ প্রসেস করবে যতক্ষণ না turnComplete true হয়। এই প্রাথমিক ইতিহাস কোনও মডেল কল ট্রিগার করবে না এবং MODEL রোলের মাধ্যমে শেষ হতে পারে। turnComplete true হয়ে গেলে, ক্লায়েন্ট realtimeInput-এর মাধ্যমে রিয়েল-টাইম কথোপকথন শুরু করতে পারবে।

InteractionStatus

লাইভ সেশনের বিভিন্ন অ্যাক্টিভিটি স্টেট। সার্ভার সমস্ত প্রসেসিং সম্পূর্ণ করেছে কিনা তা বোঝাতে এই ফিল্ডটি সবসময় turnComplete-এর সাথে একসাথে পাঠানো হয়।

Enums
INTERACTION_STATUS_UNSPECIFIED ইন্টার‍্যাকশনের স্ট্যাটাস উল্লেখ করা নেই।
IN_PROGRESS সার্ভার এখনও ব্যবহারকারীর ইনপুট প্রসেস করছে বা ব্যাকগ্রাউন্ডে যুক্তি প্রয়োগ করছে। আরও মডেল আউটপুট দেখানো হতে পারে।
REQUIRES_ACTION

বন্ধ করা হয়েছে: এর পরিবর্তে IDLE ব্যবহার করুন।

IDLE সার্ভার সব প্রসেসিং ও ব্যাকগ্রাউন্ড রিজনিং সম্পূর্ণ করেছে।

ProactivityConfig

প্রোঅ্যাক্টিভিটি ফিচারের জন্য কনফিগারেশন।

ফিল্ড
proactiveAudio

bool

ঐচ্ছিক। চালু করা থাকলে, মডেলটি শেষ প্রম্পটের উত্তর দিতে অস্বীকার করতে পারে। যেমন, এটি মডেলকে প্রসঙ্গ বহির্ভূত কথা উপেক্ষা করতে বা ব্যবহারকারী এখনও কোনও অনুরোধ না করে থাকলে চুপ করে থাকতে দেয়।

RealtimeInputConfig

BidiGenerateContent-এ রিয়েল-টাইম ইনপুট আচরণ কনফিগার করে।

ফিল্ড
automaticActivityDetection

AutomaticActivityDetection

ঐচ্ছিক। সেট করা না থাকলে, ডিফল্ট হিসেবে অটোমেটিক অ্যাক্টিভিটি শনাক্তকরণ চালু থাকে। অটোমেটিক ভয়েস শনাক্তকরণ বন্ধ করা থাকলে, ক্লায়েন্টকে অ্যাক্টিভিটি সিগন্যাল পাঠাতে হবে।

activityHandling

ActivityHandling

ঐচ্ছিক। অ্যাক্টিভিটির প্রভাব কী তা নির্ধারণ করে।

turnCoverage

TurnCoverage

ঐচ্ছিক। ব্যবহারকারীর টার্নে কোন ইনপুট অন্তর্ভুক্ত করা হবে তা নির্ধারণ করে।

interimTranscriptTimestampEnabled

bool

ঐচ্ছিক। অন্তর্বর্তীকালীন ট্রানস্ক্রিপ্টের টাইমস্ট্যাম্প কনফিগার করে।

SessionResumptionConfig

সেশন আবার চালু করার কনফিগারেশন।

এই মেসেজটি সেশন কনফিগারেশনে BidiGenerateContentSetup.sessionResumption হিসেবে অন্তর্ভুক্ত করা হয়েছে। কনফিগার করা থাকলে, সার্ভার SessionResumptionUpdate মেসেজ পাঠাবে।

ফিল্ড
handle

string

আগের সেশনের হ্যান্ডেল। সেটি না থাকলে, একটি নতুন সেশন তৈরি করা হয়।

আগের কানেকশনের SessionResumptionUpdate.token ভ্যালু থেকে সেশন হ্যান্ডেল আসে।

SessionResumptionUpdate

সেশন আবার শুরু করার স্ট্যাটাস আপডেট।

BidiGenerateContentSetup.sessionResumption সেট করা থাকলে তবেই পাঠানো হয়।

ফিল্ড
newHandle

string

নতুন হ্যান্ডেল যা এমন একটি স্টেটকে উপস্থাপন করে যা আবার চালু করা যেতে পারে। resumable=false হলে ফাঁকা থাকে।

resumable

bool

বর্তমান সেশন এই পয়েন্টে আবার চালু করা গেলে, এর মান 'সত্য' হবে।

সেশনের কিছু পয়েন্টে আবার শুরু করা সম্ভব নয়। যেমন, মডেল যখন ফাংশন কল এক্সিকিউট করছে বা জেনারেট করছে। এই ধরনের অবস্থায় সেশন আবার চালু করলে (পুরনো সেশন টোকেন ব্যবহার করে) কিছু ডেটা হারিয়ে যেতে পারে। এইসব ক্ষেত্রে, newHandle খালি থাকবে এবং resumable false হবে।

SlidingWindow

স্লাইডিং উইন্ডো পদ্ধতি কন্টেক্সট উইন্ডোর শুরুতে কন্টেন্ট বাদ দিয়ে কাজ করে। ফলাফলস্বরূপ প্রসঙ্গ সবসময় ব্যবহারকারীর রোল টার্নের শুরুতেই শুরু হবে। সিস্টেম নির্দেশাবলী এবং যেকোনও BidiGenerateContentSetup.prefixTurns সবসময় ফলাফলের শুরুতে থাকবে।

ফিল্ড
targetTokens

int64

যতগুলি টোকেন রাখতে হবে তার টার্গেট সংখ্যা। ডিফল্ট ভ্যালু হল trigger_tokens/2.

কনটেক্সট উইন্ডোর অংশ বাদ দিলে সাময়িক লেটেন্সি বেড়ে যায়, তাই ঘন ঘন কম্প্রেশন অপারেশন এড়াতে এই ভ্যালু ক্যালিব্রেট করা উচিত।

StartSensitivity

স্পিচ শুরু হওয়া কীভাবে শনাক্ত করা হবে তা নির্ধারণ করে।

Enums
START_SENSITIVITY_UNSPECIFIED ডিফল্ট মান হল START_SENSITIVITY_HIGH.
START_SENSITIVITY_HIGH অটোমেটিক শনাক্তকরণ, স্পিচের শুরু আরও ঘন ঘন শনাক্ত করবে।
START_SENSITIVITY_LOW অটোমেটিক শনাক্তকরণ ফিচার স্পিচের শুরু কম শনাক্ত করবে।

TurnCoverage

ব্যবহারকারীর টার্নে কোন ইনপুট অন্তর্ভুক্ত করা হবে সেই সংক্রান্ত বিকল্প।

Enums
TURN_COVERAGE_UNSPECIFIED নির্দিষ্ট না করা থাকলে, মডেলের উপর ভিত্তি করে ডিফল্ট আচরণ বেছে নেওয়া হয়। যেমন, Gemini 2.5-এর জন্য ডিফল্ট হল TURN_INCLUDES_ONLY_ACTIVITY, তবে Gemini 3.1 ও তার পরের যেকোনও ভার্সনের জন্য এটি হল TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO।
TURN_INCLUDES_ONLY_ACTIVITY শেষবার বলার পর থেকে হওয়া অ্যাক্টিভিটি অন্তর্ভুক্ত থাকে, তবে নিষ্ক্রিয়তা (যেমন, অডিও স্ট্রিমে কোনও শব্দ না থাকা) বাদ দেওয়া হয়।
TURN_INCLUDES_ALL_INPUT শেষ টার্ন থেকে সমস্ত রিয়েল-টাইম ইনপুট অন্তর্ভুক্ত করে, যার মধ্যে নিষ্ক্রিয়তাও রয়েছে (যেমন, অডিও স্ট্রিমে নীরবতা)।
TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO শেষবার টার্ন নেওয়ার পর থেকে অডিও অ্যাক্টিভিটি ও সব ভিডিও অন্তর্ভুক্ত। অটোমেটিক অ্যাক্টিভিটি শনাক্তকরণের মাধ্যমে, অডিও অ্যাক্টিভিটি বলতে স্পিচ বোঝায় এবং এর মধ্যে নীরবতা অন্তর্ভুক্ত থাকে না।

TranslationConfig

অনুবাদ ফিচারের জন্য কনফিগারেশন।

ফিল্ড
targetLanguageCode

string

প্রয়োজনীয়। অনুবাদনের জন্য টার্গেট ভাষা। BCP-47 ভাষা কোড (যেমন, "en", "es", "fr") ব্যবহার করা যায়।

echoTargetLanguage

bool

ঐচ্ছিক। এটি 'ট্রু' হলে, টার্গেট ভাষা বলা হলে মডেল অডিও জেনারেট করবে, মূলত এটি ইনপুটকে অনুকরণ করবে। ফলস হলে, আমরা টার্গেট ভাষার জন্য অডিও তৈরি করব না।

UrlContextMetadata

URL কন্টেক্সট রিট্রিভাল টুল সম্পর্কিত মেটাডেটা।

ফিল্ড
urlMetadata[]

UrlMetadata

URL কন্টেক্সটের তালিকা।

UsageMetadata

উত্তর সম্পর্কিত ব্যবহার সংক্রান্ত মেটাডেটা।

ফিল্ড
promptTokenCount

int32

শুধুমাত্র আউটপুট। প্রম্পটে টোকেনের সংখ্যা। cachedContent সেট করা থাকলেও, এটিই হল মোট কার্যকর প্রম্পটের সাইজ, অর্থাৎ এর মধ্যে ক্যাশে করা কন্টেন্টের টোকেনের সংখ্যা অন্তর্ভুক্ত থাকে।

cachedContentTokenCount

int32

প্রম্পটের ক্যাশে করা অংশে (ক্যাশে করা কন্টেন্ট) টোকেনের সংখ্যা

responseTokenCount

int32

শুধুমাত্র আউটপুট। জেনারেট করা সম্ভাব্য উত্তর জুড়ে টোকেনের মোট সংখ্যা।

toolUsePromptTokenCount

int32

শুধুমাত্র আউটপুট। টুল-ব্যবহার সংক্রান্ত প্রম্পটে টোকেনের সংখ্যা।

thoughtsTokenCount

int32

শুধুমাত্র আউটপুট। থিঙ্কিং মডেলের জন্য চিন্তাভাবনার টোকেনের সংখ্যা।

totalTokenCount

int32

শুধুমাত্র আউটপুট। জেনারেট করার অনুরোধের জন্য মোট টোকেনের সংখ্যা (প্রম্পট + সম্ভাব্য উত্তর)।

promptTokensDetails[]

ModalityTokenCount

শুধুমাত্র আউটপুট। অনুরোধ ইনপুটে প্রসেস করা মোডালিটির তালিকা।

cacheTokensDetails[]

ModalityTokenCount

শুধুমাত্র আউটপুট। অনুরোধ ইনপুটে ক্যাশে করা কন্টেন্টের মোডালিটির তালিকা।

responseTokensDetails[]

ModalityTokenCount

শুধুমাত্র আউটপুট। উত্তরে ফেরত দেওয়া মোডালিটির তালিকা।

toolUsePromptTokensDetails[]

ModalityTokenCount

শুধুমাত্র আউটপুট। টুল-ব্যবহারের অনুরোধ ইনপুটের জন্য প্রসেস করা মোডালিটির তালিকা।

VoiceActivity

অডিও স্ট্রিমে ভয়েস অ্যাক্টিভিটি শনাক্ত করা হয়েছে।

ফিল্ড
type

Type

শুধুমাত্র আউটপুট। VAD(ভয়েস অ্যাক্টিভিটি শনাক্তকরণ) সিগন্যালের ধরন।

audioOffset

Duration

শুধুমাত্র আউটপুট। অডিও স্ট্রিম শুরু হওয়ার সময় থেকে অডিও টাইমে ভয়েস অ্যাক্টিভিটি শনাক্ত করার সময়।

ধরন

VAD সিগন্যালের ধরন।

Enums
TYPE_UNSPECIFIED ডিফল্ট হল UNSPECIFIED.
ACTIVITY_START বাক্যের শুরুতে সিগন্যাল।
ACTIVITY_END বাক্যের শেষে ব্যবহৃত চিহ্ন।

ক্ষণস্থায়ী যাচাইকরণ টোকেন

এফিমেরাল যাচাইকরণ টোকেন AuthTokenService.CreateToken কল করে পাওয়া যেতে পারে এবং তারপরে GenerativeService.BidiGenerateContentConstrained-এর সাথে ব্যবহার করা যেতে পারে, টোকেনটি access_token কোয়েরি প্যারামিটারে অথবা HTTP Authorization হেডারে "Token" প্রিফিক্স সহ পাস করে এটি করা যেতে পারে।

CreateAuthTokenRequest

ক্ষণস্থায়ী যাচাইকরণ টোকেন তৈরি করুন।

ফিল্ড
authToken

AuthToken

প্রয়োজনীয়। তৈরি করার টোকেন।

AuthToken

ক্ষণস্থায়ী যাচাইকরণ টোকেন তৈরি করার অনুরোধ।

ফিল্ড
name

string

শুধুমাত্র আউটপুট। আইডেন্টিফায়ার। টোকেনটি।

expireTime

Timestamp

ঐচ্ছিক। শুধুমাত্র ইনপুট। পরিবর্তন করা যায় না। একটি ঐচ্ছিক সময় যার পরে, ফলাফল টোকেন ব্যবহার করার সময়, BidiGenerateContent সেশনের মেসেজ বাতিল করা হবে। (Gemini এই সময়ের পরে সেশনটি আগে থেকেই বন্ধ করে দিতে পারে।)

সেট করা না থাকলে, এটি ডিফল্ট হিসেবে ভবিষ্যতে ৩০ মিনিট সেট হয়ে যায়। সেট করা থাকলে, এই ভ্যালু অবশ্যই ভবিষ্যতে ২০ ঘণ্টার কম হতে হবে।

newSessionExpireTime

Timestamp

ঐচ্ছিক। শুধুমাত্র ইনপুট। পরিবর্তন করা যায় না। এই অনুরোধের ফলে পাওয়া টোকেন ব্যবহার করে নতুন Live API সেশন শুরু করলে, কতক্ষণ পরে তা বাতিল করা হবে।

এটি সেট করা না থাকলে, ভবিষ্যতে ডিফল্ট হিসেবে ৬০ সেকেন্ড সেট হয়ে যাবে। সেট করা থাকলে, এই ভ্যালু অবশ্যই ভবিষ্যতে ২০ ঘণ্টার কম হতে হবে।

fieldMask

FieldMask

ঐচ্ছিক। শুধুমাত্র ইনপুট। পরিবর্তন করা যায় না। field_mask খালি থাকলে এবং bidiGenerateContentSetup না থাকলে, Live API কানেকশন থেকে কার্যকর BidiGenerateContentSetup মেসেজ নেওয়া হয়।

field_mask খালি থাকলে এবং bidiGenerateContentSetup উপস্থিত থাকলে, এই অনুরোধে কার্যকর BidiGenerateContentSetup মেসেজটি সম্পূর্ণভাবে bidiGenerateContentSetup থেকে নেওয়া হয়। Live API কানেকশন থেকে সেট-আপ মেসেজ উপেক্ষা করা হয়।

field_mask খালি না থাকলে, Live API কানেকশনে সেট-আপ মেসেজের ফিল্ড bidiGenerateContentSetup-এর সংশ্লিষ্ট ফিল্ড দিয়ে ওভাররাইট করা হবে।

ইউনিয়ন ফিল্ড config। ফলাফল হিসেবে প্রাপ্ত টোকেনের জন্য পদ্ধতি-নির্দিষ্ট কনফিগারেশন। config শুধুমাত্র নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
bidiGenerateContentSetup

BidiGenerateContentSetup

ঐচ্ছিক। শুধুমাত্র ইনপুট। পরিবর্তন করা যায় না। BidiGenerateContent-এর জন্য নির্দিষ্ট কনফিগারেশন।

uses

int32

ঐচ্ছিক। শুধুমাত্র ইনপুট। পরিবর্তন করা যায় না। টোকেনটি কতবার ব্যবহার করা যাবে। এই ভ্যালু শূন্য হলে কোনও সীমা প্রয়োগ করা হয় না। Live API সেশন আবার চালু করাকে ব্যবহার হিসেবে গণ্য করা হয় না। নির্দিষ্ট করা না থাকলে, ডিফল্ট মান হল ১।

সাধারণ ধরন সম্পর্কে আরও তথ্য

সাধারণত ব্যবহৃত API রিসোর্স টাইপ Blob, Content, FunctionCall, FunctionResponse, GenerationConfig, GroundingMetadata, ModalityTokenCount এবং Tool সম্পর্কে আরও জানতে, কন্টেন্ট তৈরি করা দেখুন।