Live API - WebSockets API reference

লাইভ এপিআই হলো একটি স্টেটফুল এপিআই যা ওয়েবসকেট ব্যবহার করে। এই বিভাগে, আপনি ওয়েবসকেট এপিআই সম্পর্কিত অতিরিক্ত তথ্য পাবেন।

সেশন

একটি ওয়েবসকেট সংযোগ ক্লায়েন্ট এবং জেমিনি সার্ভারের মধ্যে একটি সেশন স্থাপন করে। একটি ক্লায়েন্ট একটি নতুন সংযোগ শুরু করার পরে সেশনটি সার্ভারের সাথে বার্তা বিনিময় করতে পারে:

  • জেমিনি সার্ভারে টেক্সট, অডিও বা ভিডিও পাঠান।
  • জেমিনি সার্ভার থেকে অডিও, টেক্সট, অথবা ফাংশন কলের অনুরোধ গ্রহণ করুন।

ওয়েবসকেট সংযোগ

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

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

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

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

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

নিচের উদাহরণের কনফিগারেশনটি দেখুন। মনে রাখবেন যে 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
  },
  "systemInstruction": string,
  "tools": [object]
}

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

বার্তা পাঠান

ওয়েবসকেট সংযোগের মাধ্যমে বার্তা আদান-প্রদানের জন্য, ক্লায়েন্টকে একটি খোলা ওয়েবসকেট সংযোগের মাধ্যমে একটি JSON অবজেক্ট পাঠাতে হবে। JSON অবজেক্টে নিম্নলিখিত অবজেক্ট সেট থেকে ঠিক একটি ক্ষেত্র থাকতে হবে:


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

সমর্থিত ক্লায়েন্ট বার্তা

নিম্নলিখিত টেবিলে সমর্থিত ক্লায়েন্ট বার্তাগুলি দেখুন:

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

বার্তা গ্রহণ করুন

জেমিনি থেকে বার্তা পেতে, ওয়েবসকেট 'বার্তা' ইভেন্টটি শুনুন, এবং তারপর সমর্থিত সার্ভার বার্তাগুলির সংজ্ঞা অনুসারে ফলাফলটি বিশ্লেষণ করুন।

নিম্নলিখিতগুলি দেখুন:

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-এ প্রকাশ করা হয় না তাই ক্ষেত্রটি বার্তার শীর্ষ-স্তরে প্রদর্শিত হবে।)

বার্তা এবং ইভেন্ট

কার্যকলাপ সমাপ্তি

এই ধরণের কোনও ক্ষেত্র নেই।

ব্যবহারকারীর কার্যকলাপের সমাপ্তি চিহ্নিত করে।

কার্যকলাপ পরিচালনা

ব্যবহারকারীর কার্যকলাপ পরিচালনার বিভিন্ন উপায়।

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

অ্যাক্টিভিটিস্টার্ট

এই ধরণের কোনও ক্ষেত্র নেই।

ব্যবহারকারীর কার্যকলাপের শুরু চিহ্নিত করে।

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

এই ধরণের কোনও ক্ষেত্র নেই।

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

স্বয়ংক্রিয় কার্যকলাপ সনাক্তকরণ

কার্যকলাপের স্বয়ংক্রিয় সনাক্তকরণ কনফিগার করে।

ক্ষেত্র
disabled

bool

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

startOfSpeechSensitivity

StartSensitivity

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

prefixPaddingMs

int32

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

endOfSpeechSensitivity

EndSensitivity

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

silenceDurationMs

int32

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

বিডিজেনারেট কনটেন্ট ক্লায়েন্ট কনটেন্ট

ক্লায়েন্টের কাছ থেকে বর্তমান কথোপকথনের ক্রমবর্ধমান আপডেট। এখানে সমস্ত কন্টেন্ট নিঃশর্তভাবে কথোপকথনের ইতিহাসে যুক্ত করা হয়েছে এবং মডেলের কন্টেন্ট তৈরির প্রম্পটের অংশ হিসেবে ব্যবহৃত হয়েছে।

এখানে একটি বার্তা যেকোনো বর্তমান মডেল জেনারেশনকে ব্যাহত করবে।

ক্ষেত্র
turns[]

Content

ঐচ্ছিক। মডেলের সাথে বর্তমান কথোপকথনে বিষয়বস্তু সংযুক্ত করা হয়েছে।

একক-পালা প্রশ্নের জন্য, এটি একটি একক উদাহরণ। বহু-পালা প্রশ্নের জন্য, এটি একটি পুনরাবৃত্তি ক্ষেত্র যেখানে কথোপকথনের ইতিহাস এবং সর্বশেষ অনুরোধ থাকে।

turnComplete

bool

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

বিডিজেনারেট কনটেন্ট রিয়েলটাইম ইনপুট

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

বিভিন্ন পদ্ধতি (অডিও, ভিডিও এবং টেক্সট) সমসাময়িক স্ট্রিম হিসেবে পরিচালিত হয়। এই স্ট্রিমগুলিতে ক্রম নিশ্চিত করা হয় না।

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

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

Blob

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

বন্ধ করা হয়েছে: পরিবর্তে audio , video , অথবা text ব্যবহার করুন।

audio

Blob

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

video

Blob

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

activityStart

ActivityStart

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

activityEnd

ActivityEnd

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

audioStreamEnd

bool

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

এটি কেবল তখনই পাঠানো উচিত যখন স্বয়ংক্রিয় কার্যকলাপ সনাক্তকরণ সক্ষম করা থাকে (যা ডিফল্ট)।

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

text

string

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

বিডিজেনারেট কনটেন্ট সার্ভার কন্টেন্ট

ক্লায়েন্ট বার্তাগুলির প্রতিক্রিয়ায় মডেল দ্বারা উত্পন্ন বর্ধিত সার্ভার আপডেট।

কন্টেন্ট যত তাড়াতাড়ি সম্ভব তৈরি করা হয়, রিয়েল টাইমে নয়। ক্লায়েন্টরা রিয়েল টাইমে এটি বাফার করে প্লে আউট করতে পারেন।

ক্ষেত্র
generationComplete

bool

শুধুমাত্র আউটপুট। যদি সত্য হয়, তাহলে বোঝাবে যে মডেলটি তৈরি করা সম্পন্ন হয়েছে।

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

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

turnComplete

bool

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

interrupted

bool

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

groundingMetadata

GroundingMetadata

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

inputTranscription

BidiGenerateContentTranscription

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

outputTranscription

BidiGenerateContentTranscription

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

urlContextMetadata

UrlContextMetadata

modelTurn

Content

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

বিডিজেনারেট কনটেন্ট সার্ভার মেসেজ

BidiGenerateContent কলের জন্য প্রতিক্রিয়া বার্তা।

ক্ষেত্র
usageMetadata

UsageMetadata

শুধুমাত্র আউটপুট। প্রতিক্রিয়া(গুলি) সম্পর্কে ব্যবহারের মেটাডেটা।

Union ক্ষেত্র messageType । বার্তার ধরণ । messageType নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
setupComplete

BidiGenerateContentSetupComplete

শুধুমাত্র আউটপুট। সেটআপ সম্পূর্ণ হলে ক্লায়েন্টের কাছ থেকে আসা একটি BidiGenerateContentSetup বার্তার প্রতিক্রিয়ায় পাঠানো হয়েছে।

serverContent

BidiGenerateContentServerContent

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

toolCall

BidiGenerateContentToolCall

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

toolCallCancellation

BidiGenerateContentToolCallCancellation

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

goAway

GoAway

শুধুমাত্র আউটপুট। সার্ভার শীঘ্রই সংযোগ বিচ্ছিন্ন হবে এমন একটি বিজ্ঞপ্তি।

sessionResumptionUpdate

SessionResumptionUpdate

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

বিডিজেনারেটকন্টেন্টসেটআপ

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

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

ক্ষেত্র
model

string

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

বিন্যাস: models/{model}

generationConfig

GenerationConfig

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

নিম্নলিখিত ক্ষেত্রগুলি সমর্থিত নয়:

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

Content

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

দ্রষ্টব্য: অংশে শুধুমাত্র লেখা ব্যবহার করা উচিত এবং প্রতিটি অংশের বিষয়বস্তু পৃথক অনুচ্ছেদে থাকবে।

tools[]

Tool

ঐচ্ছিক। পরবর্তী প্রতিক্রিয়া তৈরি করতে মডেলটি যে Tools ব্যবহার করতে পারে তার একটি তালিকা।

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

realtimeInputConfig

RealtimeInputConfig

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

sessionResumption

SessionResumptionConfig

ঐচ্ছিক। সেশন পুনঃসূচনা প্রক্রিয়া কনফিগার করে।

যদি অন্তর্ভুক্ত করা হয়, সার্ভারটি SessionResumptionUpdate বার্তা পাঠাবে।

contextWindowCompression

ContextWindowCompressionConfig

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

যদি অন্তর্ভুক্ত করা হয়, তাহলে কনটেক্সটের আকার কনটেক্সটের দৈর্ঘ্য অতিক্রম করলে সার্ভার স্বয়ংক্রিয়ভাবে কমিয়ে দেবে।

inputAudioTranscription

AudioTranscriptionConfig

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

outputAudioTranscription

AudioTranscriptionConfig

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

proactivity

ProactivityConfig

ঐচ্ছিক। মডেলের সক্রিয়তা কনফিগার করে।

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

বিডি জেনারেট কনটেন্ট সেটআপ সম্পূর্ণ

এই ধরণের কোনও ক্ষেত্র নেই।

ক্লায়েন্টের কাছ থেকে আসা একটি BidiGenerateContentSetup বার্তার জবাবে পাঠানো হয়েছে।

বিডিজেনারেটকন্টেন্টটুলকল

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

ক্ষেত্র
functionCalls[]

FunctionCall

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

BidiGenerateContentToolCallCancellation

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

ক্ষেত্র
ids[]

string

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

বিডিজেনারেট কনটেন্ট টুল রেসপন্স

সার্ভার থেকে প্রাপ্ত একটি ToolCall এর জন্য ক্লায়েন্ট জেনারেটেড রেসপন্স। id ফিল্ডের মাধ্যমে পৃথক FunctionResponse অবজেক্টগুলিকে সংশ্লিষ্ট FunctionCall অবজেক্টের সাথে মেলানো হয়।

মনে রাখবেন যে unary এবং সার্ভার-স্ট্রিমিং GenerateContent API-তে ফাংশন কলিং Content অংশগুলি বিনিময়ের মাধ্যমে ঘটে, অন্যদিকে bidi-তে GenerateContent API-তে ফাংশন কলিং এই ডেডিকেটেড বার্তাগুলির সেটের মাধ্যমে ঘটে।

ক্ষেত্র
functionResponses[]

FunctionResponse

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

বিডিজেনারেট কনটেন্ট ট্রান্সক্রিপশন

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

ক্ষেত্র
text

string

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

কনটেক্সটউইন্ডোকম্প্রেশনকনফিগ

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

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

SlidingWindow

একটি স্লাইডিং-জানালা প্রক্রিয়া।

triggerTokens

int64

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

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

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

এন্ডসেনসিটিভিটি

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

এনামস
END_SENSITIVITY_UNSPECIFIED ডিফল্ট হল END_SENSITIVITY_HIGH।
END_SENSITIVITY_HIGH স্বয়ংক্রিয় সনাক্তকরণ প্রায়শই বক্তৃতা শেষ করে।
END_SENSITIVITY_LOW স্বয়ংক্রিয় সনাক্তকরণ কম ঘন ঘন কথা বলা বন্ধ করে।

GoAway সম্পর্কে

সার্ভারটি শীঘ্রই সংযোগ বিচ্ছিন্ন হবে বলে একটি বিজ্ঞপ্তি।

ক্ষেত্র
timeLeft

Duration

সংযোগের আগে অবশিষ্ট সময় বাতিল হিসাবে বন্ধ করা হবে।

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

প্রোঅ্যাক্টিভিটি কনফিগ

সক্রিয়তা বৈশিষ্ট্যগুলির জন্য কনফিগারেশন।

ক্ষেত্র
proactiveAudio

bool

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

রিয়েলটাইমইনপুটকনফিগ

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

ক্ষেত্র
automaticActivityDetection

AutomaticActivityDetection

ঐচ্ছিক। যদি সেট না করা থাকে, তাহলে স্বয়ংক্রিয় কার্যকলাপ সনাক্তকরণ ডিফল্টরূপে সক্ষম থাকে। যদি স্বয়ংক্রিয় ভয়েস সনাক্তকরণ অক্ষম থাকে, তাহলে ক্লায়েন্টকে কার্যকলাপ সংকেত পাঠাতে হবে।

activityHandling

ActivityHandling

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

turnCoverage

TurnCoverage

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

সেশন রিজাম্পশন কনফিগ

সেশন পুনরায় শুরু করার কনফিগারেশন।

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

ক্ষেত্র
handle

string

পূর্ববর্তী সেশনের হ্যান্ডেল। যদি উপস্থিত না থাকে তবে একটি নতুন সেশন তৈরি করা হয়।

সেশন হ্যান্ডেলগুলি পূর্ববর্তী সংযোগগুলিতে SessionResumptionUpdate.token মান থেকে আসে।

সেশন পুনঃসূচনা আপডেট

সেশন পুনরায় শুরু হওয়ার অবস্থা আপডেট।

শুধুমাত্র BidiGenerateContentSetup.sessionResumption সেট করা থাকলেই পাঠানো হবে।

ক্ষেত্র
newHandle

string

নতুন হ্যান্ডেল যা এমন একটি অবস্থা প্রতিনিধিত্ব করে যা পুনরায় শুরু করা যেতে পারে। resumable গেলে খালি = মিথ্যা।

resumable

bool

এই মুহূর্তে যদি বর্তমান অধিবেশন পুনরায় শুরু করা যায়, তাহলে সত্য।

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

স্লাইডিং উইন্ডো

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

ক্ষেত্র
targetTokens

int64

রাখার জন্য লক্ষ্য টোকেনের সংখ্যা। ডিফল্ট মান হল trigger_tokens/2।

প্রসঙ্গ উইন্ডোর কিছু অংশ বাদ দিলে অস্থায়ী বিলম্ব বৃদ্ধি পায়, তাই ঘন ঘন কম্প্রেশন অপারেশন এড়াতে এই মানটি ক্যালিব্রেট করা উচিত।

স্টার্ট সেনসিটিভিটি

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

এনামস
START_SENSITIVITY_UNSPECIFIED ডিফল্ট হল START_SENSITIVITY_HIGH।
START_SENSITIVITY_HIGH স্বয়ংক্রিয় সনাক্তকরণ আরও ঘন ঘন বক্তৃতা শুরু সনাক্ত করবে।
START_SENSITIVITY_LOW স্বয়ংক্রিয় সনাক্তকরণের ফলে কথা শুরু হওয়ার সময় কম শনাক্ত করা যাবে।

টার্নকভারেজ

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

এনামস
TURN_COVERAGE_UNSPECIFIED যদি নির্দিষ্ট না করা থাকে, তাহলে ডিফল্ট আচরণ হল TURN_INCLUDES_ONLY_ACTIVITY
TURN_INCLUDES_ONLY_ACTIVITY ব্যবহারকারীর পালা শুধুমাত্র শেষ পালা থেকে কার্যকলাপ অন্তর্ভুক্ত করে, নিষ্ক্রিয়তা বাদ দিয়ে (যেমন অডিও স্ট্রিমটিতে নীরবতা)। এটি ডিফল্ট আচরণ।
TURN_INCLUDES_ALL_INPUT ব্যবহারকারীর পালায় শেষ পালা থেকে সমস্ত রিয়েলটাইম ইনপুট অন্তর্ভুক্ত থাকে, যার মধ্যে নিষ্ক্রিয়তা (যেমন অডিও স্ট্রিমটিতে নীরবতা) অন্তর্ভুক্ত থাকে।

UrlContextমেটাডেটা

ইউআরএল প্রসঙ্গ পুনরুদ্ধার টুলের সাথে সম্পর্কিত মেটাডেটা।

ক্ষেত্র
urlMetadata[]

UrlMetadata

ইউআরএল প্রসঙ্গের তালিকা।

ব্যবহারমেটাডেটা

প্রতিক্রিয়া(গুলি) সম্পর্কে ব্যবহারের মেটাডেটা।

ক্ষেত্র
promptTokenCount

int32

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

cachedContentTokenCount

int32

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

responseTokenCount

int32

শুধুমাত্র আউটপুট। সমস্ত জেনারেট করা প্রতিক্রিয়া প্রার্থীদের মধ্যে মোট টোকেনের সংখ্যা।

toolUsePromptTokenCount

int32

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

thoughtsTokenCount

int32

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

totalTokenCount

int32

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

promptTokensDetails[]

ModalityTokenCount

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

cacheTokensDetails[]

ModalityTokenCount

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

responseTokensDetails[]

ModalityTokenCount

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

toolUsePromptTokensDetails[]

ModalityTokenCount

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

ক্ষণস্থায়ী প্রমাণীকরণ টোকেন

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

CreateAuthTokenRequest সম্পর্কে

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

ক্ষেত্র
authToken

AuthToken

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

AuthToken সম্পর্কে

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

ক্ষেত্র
name

string

শুধুমাত্র আউটপুট। শনাক্তকারী। টোকেন নিজেই।

expireTime

Timestamp

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

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

newSessionExpireTime

Timestamp

ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। এই অনুরোধের ফলে টোকেন ব্যবহার করে নতুন লাইভ API সেশনগুলি যে সময়ের পরে প্রত্যাখ্যান করা হবে।

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

fieldMask

FieldMask

ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। যদি field_mask খালি থাকে, এবং bidiGenerateContentSetup উপস্থিত না থাকে, তাহলে কার্যকর BidiGenerateContentSetup বার্তাটি লাইভ API সংযোগ থেকে নেওয়া হয়।

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

যদি field_mask খালি না থাকে, তাহলে bidiGenerateContentSetup থেকে সংশ্লিষ্ট ক্ষেত্রগুলি লাইভ API সংযোগে সেটআপ বার্তা থেকে ক্ষেত্রগুলিকে ওভাররাইট করবে।

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

BidiGenerateContentSetup

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

uses

int32

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

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

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