Live API - WebSockets API reference

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

সেশন

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

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

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

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

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

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

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

আপনি অধিবেশন চলাকালীন মডেল ছাড়া কনফিগারেশন পরামিতি পরিবর্তন করতে পারেন.

নিম্নলিখিত উদাহরণ কনফিগারেশন দেখুন. মনে রাখবেন যে SDK-তে নামের আবরণ পরিবর্তিত হতে পারে। আপনি এখানে পাইথন 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 দেখুন।

বার্তা পাঠান

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


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

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

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

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

বার্তা গ্রহণ

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

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

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 জুড়ে আন্তঃলিপ্ত ডেটা মিশ্রিত করার প্রয়োজন হলে, সার্ভারটি সর্বোত্তম প্রতিক্রিয়ার জন্য অপ্টিমাইজ করার চেষ্টা করে, কিন্তু কোন গ্যারান্টি নেই।
  • টার্নের শেষ স্পষ্টভাবে নির্দিষ্ট করা হয়নি, বরং ব্যবহারকারীর কার্যকলাপ থেকে উদ্ভূত হয়েছে (উদাহরণস্বরূপ, বক্তৃতার শেষ)।
  • এমনকি পালা শেষ হওয়ার আগে, মডেল থেকে প্রতিক্রিয়া দ্রুত শুরু করার জন্য অপ্টিমাইজ করার জন্য ডেটা ক্রমবর্ধমানভাবে প্রক্রিয়া করা হয়।
ক্ষেত্র
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'-এর মধ্য দিয়ে যাবে।

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

turnComplete

bool

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

interrupted

bool

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

groundingMetadata

GroundingMetadata

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

inputTranscription

BidiGenerateContentTranscription

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

outputTranscription

BidiGenerateContentTranscription

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

urlContextMetadata

UrlContextMetadata

modelTurn

Content

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

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

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

ক্ষেত্র
usageMetadata

UsageMetadata

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

ইউনিয়ন ক্ষেত্রের 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

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

ক্ষেত্র
ids[]

string

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

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

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

উল্লেখ্য যে ইউনারি এবং সার্ভার-স্ট্রিমিং GenerateContent API-এ ফাংশন কলিং হয় Content অংশ বিনিময়ের মাধ্যমে, যখন বিডিতে GenerateContent APIs ফাংশন কলিং এই উত্সর্গীকৃত বার্তাগুলির উপর ঘটে।

ক্ষেত্র
functionResponses[]

FunctionResponse

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

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

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

ক্ষেত্র
text

string

প্রতিলিপি পাঠ্য।

ContextWindowCompressionConfig

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

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

SlidingWindow

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

triggerTokens

int64

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

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

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

শেষ সংবেদনশীলতা

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

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

GoAway

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

ক্ষেত্র
timeLeft

Duration

সংযোগের আগে বাকি সময়টি ABORTED হিসাবে বন্ধ করা হবে।

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

Proactivity Config

সক্রিয়তা বৈশিষ্ট্য জন্য কনফিগার.

ক্ষেত্র
proactiveAudio

bool

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

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

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

ক্ষেত্র
automaticActivityDetection

AutomaticActivityDetection

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

activityHandling

ActivityHandling

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

turnCoverage

TurnCoverage

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

SessionResumptionConfig

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

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

ক্ষেত্র
handle

string

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

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

সেশন রিজাম্পশন আপডেট

সেশন পুনঃসূচনা অবস্থার আপডেট।

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

ক্ষেত্র
newHandle

string

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

resumable

bool

বর্তমান অধিবেশন এই সময়ে পুনরায় শুরু করা যেতে পারে যদি সত্য.

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

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

স্লাইডিংউইন্ডো পদ্ধতিটি প্রসঙ্গ উইন্ডোর শুরুতে বিষয়বস্তু বাতিল করে কাজ করে। ফলাফল প্রসঙ্গ সর্বদা একটি 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 ব্যবহারকারীরা শেষ পালা থেকে সমস্ত রিয়েলটাইম ইনপুট অন্তর্ভুক্ত করে, নিষ্ক্রিয়তা সহ (যেমন অডিও স্ট্রীমে নীরবতা)।

UrlContextMetadata

url প্রসঙ্গ পুনরুদ্ধার টুল সম্পর্কিত মেটাডেটা।

ক্ষেত্র
urlMetadata[]

UrlMetadata

url প্রসঙ্গের তালিকা।

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

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

ক্ষেত্র
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 ক্যোয়ারী প্যারামিটারে টোকেন পাস করে, অথবা " Token প্রিফিক্স" সহ একটি HTTP Authorization শিরোনামে।

CreateAuthTokenRequest

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

ক্ষেত্র
authToken

AuthToken

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

অথটোকেন

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

ক্ষেত্র
name

string

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

expireTime

Timestamp

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

যদি সেট না করা হয় তাহলে ভবিষ্যতে এটি 30 মিনিটে ডিফল্ট হবে। যদি সেট করা থাকে, তাহলে এই মানটি ভবিষ্যতে 20 ঘণ্টার কম হতে হবে।

newSessionExpireTime

Timestamp

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

যদি ভবিষ্যতে এই ডিফল্ট 60 সেকেন্ড সেট না করা হয়. যদি সেট করা থাকে, তাহলে এই মানটি ভবিষ্যতে 20 ঘণ্টার কম হতে হবে।

fieldMask

FieldMask

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

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

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

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

BidiGenerateContentSetup

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

uses

int32

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

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

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