লাইভ এপিআই হলো একটি স্টেটফুল এপিআই যা ওয়েবসকেট ব্যবহার করে। এই বিভাগে, আপনি ওয়েবসকেট এপিআই সম্পর্কিত অতিরিক্ত তথ্য পাবেন।
সেশন
একটি ওয়েবসকেট সংযোগ ক্লায়েন্ট এবং জেমিনি সার্ভারের মধ্যে একটি সেশন স্থাপন করে। একটি ক্লায়েন্ট একটি নতুন সংযোগ শুরু করার পরে সেশনটি সার্ভারের সাথে বার্তা বিনিময় করতে পারে:
- জেমিনি সার্ভারে টেক্সট, অডিও বা ভিডিও পাঠান।
- জেমিনি সার্ভার থেকে অডিও, টেক্সট, অথবা ফাংশন কলের অনুরোধ গ্রহণ করুন।
ওয়েবসকেট সংযোগ
একটি সেশন শুরু করতে, এই ওয়েবসকেট এন্ডপয়েন্টের সাথে সংযোগ করুন:
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 | ঐচ্ছিক। যদি সক্রিয় থাকে (ডিফল্ট), সনাক্ত করা ভয়েস এবং টেক্সট ইনপুট কার্যকলাপ হিসাবে গণ্য হবে। যদি অক্ষম থাকে, তাহলে ক্লায়েন্টকে কার্যকলাপ সংকেত পাঠাতে হবে। |
startOfSpeechSensitivity | ঐচ্ছিক। বক্তৃতা শনাক্ত করার সম্ভাবনা কতটা তা নির্ধারণ করে। |
prefixPaddingMs | ঐচ্ছিক। বক্তৃতা শুরুর আগে শনাক্তকৃত বক্তৃতার প্রয়োজনীয় সময়কাল নির্ধারণ করা হয়। এই মান যত কম হবে, বক্তৃতা শুরুর শনাক্তকরণ তত বেশি সংবেদনশীল হবে এবং বক্তৃতা কম শনাক্ত করা যাবে। তবে, এটি মিথ্যা ইতিবাচক ফলাফলের সম্ভাবনাও বাড়িয়ে দেয়। |
endOfSpeechSensitivity | ঐচ্ছিক। শনাক্ত করা বক্তৃতা কতটা শেষ হওয়ার সম্ভাবনা তা নির্ধারণ করে। |
silenceDurationMs | ঐচ্ছিক। বক্তৃতা শেষ হওয়ার আগে শনাক্ত করা অ-বক্তৃতা (যেমন নীরবতা) এর প্রয়োজনীয় সময়কাল। এই মান যত বড় হবে, ব্যবহারকারীর কার্যকলাপে বাধা না দিয়ে বক্তৃতা ব্যবধান তত বেশি হতে পারে তবে এটি মডেলের ল্যাটেন্সি বৃদ্ধি করবে। |
বিডিজেনারেট কনটেন্ট ক্লায়েন্ট কনটেন্ট
ক্লায়েন্টের কাছ থেকে বর্তমান কথোপকথনের ক্রমবর্ধমান আপডেট। এখানে সমস্ত কন্টেন্ট নিঃশর্তভাবে কথোপকথনের ইতিহাসে যুক্ত করা হয়েছে এবং মডেলের কন্টেন্ট তৈরির প্রম্পটের অংশ হিসেবে ব্যবহৃত হয়েছে।
এখানে একটি বার্তা যেকোনো বর্তমান মডেল জেনারেশনকে ব্যাহত করবে।
| ক্ষেত্র | |
|---|---|
turns[] | ঐচ্ছিক। মডেলের সাথে বর্তমান কথোপকথনে বিষয়বস্তু সংযুক্ত করা হয়েছে। একক-পালা প্রশ্নের জন্য, এটি একটি একক উদাহরণ। বহু-পালা প্রশ্নের জন্য, এটি একটি পুনরাবৃত্তি ক্ষেত্র যেখানে কথোপকথনের ইতিহাস এবং সর্বশেষ অনুরোধ থাকে। |
turnComplete | ঐচ্ছিক। যদি সত্য হয়, তাহলে বোঝাবে যে সার্ভারের কন্টেন্ট তৈরির কাজ বর্তমানে জমা হওয়া প্রম্পট দিয়ে শুরু হওয়া উচিত। অন্যথায়, তৈরি শুরু করার আগে সার্ভার অতিরিক্ত বার্তার জন্য অপেক্ষা করবে। |
বিডিজেনারেট কনটেন্ট রিয়েলটাইম ইনপুট
ব্যবহারকারীর ইনপুট যা রিয়েল টাইমে পাঠানো হয়।
বিভিন্ন পদ্ধতি (অডিও, ভিডিও এবং টেক্সট) সমসাময়িক স্ট্রিম হিসেবে পরিচালিত হয়। এই স্ট্রিমগুলিতে ক্রম নিশ্চিত করা হয় না।
এটি কয়েকটি দিক থেকে BidiGenerateContentClientContent থেকে আলাদা:
- মডেল জেনারেশনে কোনও বাধা ছাড়াই ক্রমাগত পাঠানো যেতে পারে।
- যদি
BidiGenerateContentClientContentএবংBidiGenerateContentRealtimeInputজুড়ে ইন্টারলিভ করা ডেটা মিশ্রিত করার প্রয়োজন হয়, তাহলে সার্ভারটি সর্বোত্তম প্রতিক্রিয়ার জন্য অপ্টিমাইজ করার চেষ্টা করে, কিন্তু কোনও গ্যারান্টি নেই। - "End of turn" স্পষ্টভাবে নির্দিষ্ট করা হয়নি, বরং ব্যবহারকারীর কার্যকলাপ (যেমন, বক্তৃতার সমাপ্তি) থেকে উদ্ভূত হয়েছে।
- এমনকি পালা শেষ হওয়ার আগেই, মডেল থেকে দ্রুত প্রতিক্রিয়া শুরু করার জন্য অপ্টিমাইজ করার জন্য ডেটা ক্রমবর্ধমানভাবে প্রক্রিয়া করা হয়।
| ক্ষেত্র | |
|---|---|
mediaChunks[] | ঐচ্ছিক। মিডিয়া ইনপুটের জন্য ইনলাইন করা বাইট ডেটা। একাধিক বন্ধ করা হয়েছে: পরিবর্তে |
audio | ঐচ্ছিক। এগুলো রিয়েলটাইম অডিও ইনপুট স্ট্রিম গঠন করে। |
video | ঐচ্ছিক। এগুলো রিয়েলটাইম ভিডিও ইনপুট স্ট্রিম গঠন করে। |
activityStart | ঐচ্ছিক। ব্যবহারকারীর কার্যকলাপের শুরু চিহ্নিত করে। এটি কেবল তখনই পাঠানো যেতে পারে যদি স্বয়ংক্রিয় (অর্থাৎ সার্ভার-সাইড) কার্যকলাপ সনাক্তকরণ অক্ষম থাকে। |
activityEnd | ঐচ্ছিক। ব্যবহারকারীর কার্যকলাপের সমাপ্তি চিহ্নিত করে। এটি কেবল তখনই পাঠানো যেতে পারে যদি স্বয়ংক্রিয় (অর্থাৎ সার্ভার-সাইড) কার্যকলাপ সনাক্তকরণ অক্ষম থাকে। |
audioStreamEnd | ঐচ্ছিক। নির্দেশ করে যে অডিও স্ট্রিম শেষ হয়ে গেছে, যেমন মাইক্রোফোন বন্ধ ছিল। এটি কেবল তখনই পাঠানো উচিত যখন স্বয়ংক্রিয় কার্যকলাপ সনাক্তকরণ সক্ষম করা থাকে (যা ডিফল্ট)। ক্লায়েন্ট একটি অডিও বার্তা পাঠিয়ে স্ট্রিমটি পুনরায় খুলতে পারেন। |
text | ঐচ্ছিক। এগুলো রিয়েলটাইম টেক্সট ইনপুট স্ট্রিম গঠন করে। |
বিডিজেনারেট কনটেন্ট সার্ভার কন্টেন্ট
ক্লায়েন্ট বার্তাগুলির প্রতিক্রিয়ায় মডেল দ্বারা উত্পন্ন বর্ধিত সার্ভার আপডেট।
কন্টেন্ট যত তাড়াতাড়ি সম্ভব তৈরি করা হয়, রিয়েল টাইমে নয়। ক্লায়েন্টরা রিয়েল টাইমে এটি বাফার করে প্লে আউট করতে পারেন।
| ক্ষেত্র | |
|---|---|
generationComplete | শুধুমাত্র আউটপুট। যদি সত্য হয়, তাহলে বোঝাবে যে মডেলটি তৈরি করা সম্পন্ন হয়েছে। যখন মডেল তৈরি করার সময় বাধাগ্রস্ত হয়, তখন বাধাগ্রস্ত পালাক্রমে কোনও 'generation_complete' বার্তা থাকবে না, এটি 'interrupted > turn_complete' এর মধ্য দিয়ে যাবে। যখন মডেল রিয়েলটাইম প্লেব্যাক ধরে নেয়, তখন generation_complete এবং turn_complete এর মধ্যে বিলম্ব হবে যা মডেল প্লেব্যাক শেষ হওয়ার জন্য অপেক্ষা করার কারণে ঘটে। |
turnComplete | শুধুমাত্র আউটপুট। যদি সত্য হয়, তাহলে বোঝাবে যে মডেলটি তার পালা সম্পন্ন করেছে। কেবলমাত্র অতিরিক্ত ক্লায়েন্ট বার্তার প্রতিক্রিয়ায় জেনারেশন শুরু হবে। |
interrupted | শুধুমাত্র আউটপুট। যদি সত্য হয়, তাহলে বোঝাবে যে একটি ক্লায়েন্ট বার্তা বর্তমান মডেল জেনারেশনে বাধা সৃষ্টি করেছে। যদি ক্লায়েন্ট রিয়েল টাইমে কন্টেন্টটি চালাচ্ছে, তাহলে বর্তমান প্লেব্যাক সারিটি বন্ধ করে খালি করার জন্য এটি একটি ভাল সংকেত। |
groundingMetadata | শুধুমাত্র আউটপুট। তৈরি করা কন্টেন্টের জন্য গ্রাউন্ডিং মেটাডেটা। |
inputTranscription | শুধুমাত্র আউটপুট। অডিও ট্রান্সক্রিপশন ইনপুট করুন। ট্রান্সক্রিপশনটি অন্যান্য সার্ভার বার্তা থেকে স্বাধীনভাবে পাঠানো হয় এবং এর কোনও গ্যারান্টিযুক্ত অর্ডার নেই। |
outputTranscription | শুধুমাত্র আউটপুট। আউটপুট অডিও ট্রান্সক্রিপশন। ট্রান্সক্রিপশনটি অন্যান্য সার্ভার বার্তা থেকে স্বাধীনভাবে পাঠানো হয় এবং কোনও গ্যারান্টিযুক্ত ক্রম নেই, বিশেষ করে |
urlContextMetadata | |
modelTurn | শুধুমাত্র আউটপুট। ব্যবহারকারীর সাথে বর্তমান কথোপকথনের অংশ হিসেবে মডেলটি যে কন্টেন্ট তৈরি করেছে। |
বিডিজেনারেট কনটেন্ট সার্ভার মেসেজ
BidiGenerateContent কলের জন্য প্রতিক্রিয়া বার্তা।
| ক্ষেত্র | |
|---|---|
usageMetadata | শুধুমাত্র আউটপুট। প্রতিক্রিয়া(গুলি) সম্পর্কে ব্যবহারের মেটাডেটা। |
Union ক্ষেত্র messageType । বার্তার ধরণ । messageType নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে: | |
setupComplete | শুধুমাত্র আউটপুট। সেটআপ সম্পূর্ণ হলে ক্লায়েন্টের কাছ থেকে আসা একটি |
serverContent | শুধুমাত্র আউটপুট। ক্লায়েন্ট বার্তাগুলির প্রতিক্রিয়ায় মডেল দ্বারা তৈরি সামগ্রী। |
toolCall | শুধুমাত্র আউটপুট। ক্লায়েন্টকে |
toolCallCancellation | শুধুমাত্র আউটপুট। ক্লায়েন্টের জন্য বিজ্ঞপ্তি যে নির্দিষ্ট |
goAway | শুধুমাত্র আউটপুট। সার্ভার শীঘ্রই সংযোগ বিচ্ছিন্ন হবে এমন একটি বিজ্ঞপ্তি। |
sessionResumptionUpdate | শুধুমাত্র আউটপুট। সেশন পুনরায় শুরু হওয়ার অবস্থা আপডেট। |
বিডিজেনারেটকন্টেন্টসেটআপ
প্রথম (এবং শুধুমাত্র প্রথমটিতে) BidiGenerateContentClientMessage এ বার্তা পাঠানো হবে। এতে এমন কনফিগারেশন রয়েছে যা স্ট্রিমিং RPC এর সময়কালের জন্য প্রযোজ্য হবে।
ক্লায়েন্টদের অতিরিক্ত কোনও বার্তা পাঠানোর আগে একটি BidiGenerateContentSetupComplete বার্তার জন্য অপেক্ষা করা উচিত।
| ক্ষেত্র | |
|---|---|
model | প্রয়োজনীয়। মডেলের রিসোর্স নাম। এটি মডেলের ব্যবহারের জন্য একটি আইডি হিসেবে কাজ করে। বিন্যাস: |
generationConfig | ঐচ্ছিক। জেনারেশন কনফিগারেশন। নিম্নলিখিত ক্ষেত্রগুলি সমর্থিত নয়:
|
systemInstruction | ঐচ্ছিক। ব্যবহারকারী মডেলটির জন্য সিস্টেম নির্দেশাবলী প্রদান করেছেন। দ্রষ্টব্য: অংশে শুধুমাত্র লেখা ব্যবহার করা উচিত এবং প্রতিটি অংশের বিষয়বস্তু পৃথক অনুচ্ছেদে থাকবে। |
tools[] | ঐচ্ছিক। পরবর্তী প্রতিক্রিয়া তৈরি করতে মডেলটি যে একটি |
realtimeInputConfig | ঐচ্ছিক। রিয়েলটাইম ইনপুট পরিচালনা কনফিগার করে। |
sessionResumption | ঐচ্ছিক। সেশন পুনঃসূচনা প্রক্রিয়া কনফিগার করে। যদি অন্তর্ভুক্ত করা হয়, সার্ভারটি |
contextWindowCompression | ঐচ্ছিক। একটি প্রসঙ্গ উইন্ডো কম্প্রেশন প্রক্রিয়া কনফিগার করে। যদি অন্তর্ভুক্ত করা হয়, তাহলে কনটেক্সটের আকার কনটেক্সটের দৈর্ঘ্য অতিক্রম করলে সার্ভার স্বয়ংক্রিয়ভাবে কমিয়ে দেবে। |
inputAudioTranscription | ঐচ্ছিক। যদি সেট করা থাকে, তাহলে ভয়েস ইনপুটের ট্রান্সক্রিপশন সক্ষম করে। কনফিগার করা থাকলে, ট্রান্সক্রিপশনটি ইনপুট অডিও ভাষার সাথে সামঞ্জস্যপূর্ণ হয়। |
outputAudioTranscription | ঐচ্ছিক। যদি সেট করা থাকে, তাহলে মডেলের অডিও আউটপুটের ট্রান্সক্রিপশন সক্ষম করে। কনফিগার করা থাকলে, ট্রান্সক্রিপশনটি আউটপুট অডিওর জন্য নির্দিষ্ট ভাষা কোডের সাথে সামঞ্জস্যপূর্ণ হয়। |
proactivity | ঐচ্ছিক। মডেলের সক্রিয়তা কনফিগার করে। এটি মডেলটিকে ইনপুটের প্রতি সক্রিয়ভাবে সাড়া দিতে এবং অপ্রাসঙ্গিক ইনপুট উপেক্ষা করতে সহায়তা করে। |
বিডি জেনারেট কনটেন্ট সেটআপ সম্পূর্ণ
এই ধরণের কোনও ক্ষেত্র নেই।
ক্লায়েন্টের কাছ থেকে আসা একটি BidiGenerateContentSetup বার্তার জবাবে পাঠানো হয়েছে।
বিডিজেনারেটকন্টেন্টটুলকল
ক্লায়েন্টকে functionCalls কার্যকর করার জন্য অনুরোধ করুন এবং মিলিত id সহ প্রতিক্রিয়াগুলি ফেরত দিন।
| ক্ষেত্র | |
|---|---|
functionCalls[] | শুধুমাত্র আউটপুট। ফাংশন কলটি কার্যকর করা হবে। |
BidiGenerateContentToolCallCancellation
ক্লায়েন্টের জন্য বিজ্ঞপ্তি যে পূর্বে জারি করা ToolCallMessage নির্দিষ্ট id সহ কার্যকর করা উচিত ছিল না এবং বাতিল করা উচিত। যদি সেই টুল কলগুলিতে পার্শ্ব প্রতিক্রিয়া থাকে, তাহলে ক্লায়েন্টরা টুল কলগুলি পূর্বাবস্থায় ফেরানোর চেষ্টা করতে পারে। এই বার্তাটি কেবল তখনই আসে যখন ক্লায়েন্টরা সার্ভারের টার্নিংয়ে বাধা দেয়।
| ক্ষেত্র | |
|---|---|
ids[] | শুধুমাত্র আউটপুট। টুল কলের আইডি বাতিল করতে হবে। |
বিডিজেনারেট কনটেন্ট টুল রেসপন্স
সার্ভার থেকে প্রাপ্ত একটি ToolCall এর জন্য ক্লায়েন্ট জেনারেটেড রেসপন্স। id ফিল্ডের মাধ্যমে পৃথক FunctionResponse অবজেক্টগুলিকে সংশ্লিষ্ট FunctionCall অবজেক্টের সাথে মেলানো হয়।
মনে রাখবেন যে unary এবং সার্ভার-স্ট্রিমিং GenerateContent API-তে ফাংশন কলিং Content অংশগুলি বিনিময়ের মাধ্যমে ঘটে, অন্যদিকে bidi-তে GenerateContent API-তে ফাংশন কলিং এই ডেডিকেটেড বার্তাগুলির সেটের মাধ্যমে ঘটে।
| ক্ষেত্র | |
|---|---|
functionResponses[] | ঐচ্ছিক। ফাংশন কলের প্রতিক্রিয়া। |
বিডিজেনারেট কনটেন্ট ট্রান্সক্রিপশন
অডিওর ট্রান্সক্রিপশন (ইনপুট বা আউটপুট)।
| ক্ষেত্র | |
|---|---|
text | ট্রান্সক্রিপশন টেক্সট। |
কনটেক্সটউইন্ডোকম্প্রেশনকনফিগ
কনটেক্সট উইন্ডো কম্প্রেশন সক্ষম করে — মডেলের কনটেক্সট উইন্ডো পরিচালনা করার একটি প্রক্রিয়া যাতে এটি একটি নির্দিষ্ট দৈর্ঘ্য অতিক্রম না করে।
| ক্ষেত্র | |
|---|---|
ইউনিয়ন ফিল্ড compressionMechanism । ব্যবহৃত কনটেক্সট উইন্ডো কম্প্রেশন মেকানিজম। compressionMechanism নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে: | |
slidingWindow | একটি স্লাইডিং-জানালা প্রক্রিয়া। |
triggerTokens | একটি কনটেক্সট উইন্ডো কম্প্রেশন ট্রিগার করার জন্য প্রয়োজনীয় টোকেনের সংখ্যা (একটি টার্ন চালানোর আগে)। এটি ল্যাটেন্সির সাথে মানের ভারসাম্য বজায় রাখতে ব্যবহার করা যেতে পারে কারণ ছোট কনটেক্সট উইন্ডোগুলির ফলে দ্রুত মডেল প্রতিক্রিয়া দেখা দিতে পারে। তবে, যেকোনো কম্প্রেশন অপারেশনের ফলে সাময়িক ল্যাটেন্সি বৃদ্ধি পাবে, তাই এগুলি ঘন ঘন ট্রিগার করা উচিত নয়। যদি সেট না করা থাকে, তাহলে ডিফল্ট মান মডেলের প্রসঙ্গ উইন্ডো সীমার ৮০%। এর ফলে পরবর্তী ব্যবহারকারীর অনুরোধ/মডেল প্রতিক্রিয়ার জন্য ২০% অবশিষ্ট থাকে। |
এন্ডসেনসিটিভিটি
কথার শেষ কীভাবে সনাক্ত করা হয় তা নির্ধারণ করে।
| এনামস | |
|---|---|
END_SENSITIVITY_UNSPECIFIED | ডিফল্ট হল END_SENSITIVITY_HIGH। |
END_SENSITIVITY_HIGH | স্বয়ংক্রিয় সনাক্তকরণ প্রায়শই বক্তৃতা শেষ করে। |
END_SENSITIVITY_LOW | স্বয়ংক্রিয় সনাক্তকরণ কম ঘন ঘন কথা বলা বন্ধ করে। |
GoAway সম্পর্কে
সার্ভারটি শীঘ্রই সংযোগ বিচ্ছিন্ন হবে বলে একটি বিজ্ঞপ্তি।
| ক্ষেত্র | |
|---|---|
timeLeft | সংযোগের আগে অবশিষ্ট সময় বাতিল হিসাবে বন্ধ করা হবে। এই সময়কাল কখনই মডেল-নির্দিষ্ট ন্যূনতমের কম হবে না, যা মডেলের জন্য হারের সীমার সাথে একত্রে নির্দিষ্ট করা হবে। |
প্রোঅ্যাক্টিভিটি কনফিগ
সক্রিয়তা বৈশিষ্ট্যগুলির জন্য কনফিগারেশন।
| ক্ষেত্র | |
|---|---|
proactiveAudio | ঐচ্ছিক। যদি সক্ষম করা থাকে, তাহলে মডেলটি শেষ প্রম্পটে সাড়া দেওয়া প্রত্যাখ্যান করতে পারে। উদাহরণস্বরূপ, এটি মডেলটিকে প্রসঙ্গের বাইরের বক্তৃতা উপেক্ষা করার বা ব্যবহারকারী যদি এখনও কোনও অনুরোধ না করে থাকে তবে নীরব থাকার অনুমতি দেয়। |
রিয়েলটাইমইনপুটকনফিগ
BidiGenerateContent এ রিয়েলটাইম ইনপুট আচরণ কনফিগার করে।
| ক্ষেত্র | |
|---|---|
automaticActivityDetection | ঐচ্ছিক। যদি সেট না করা থাকে, তাহলে স্বয়ংক্রিয় কার্যকলাপ সনাক্তকরণ ডিফল্টরূপে সক্ষম থাকে। যদি স্বয়ংক্রিয় ভয়েস সনাক্তকরণ অক্ষম থাকে, তাহলে ক্লায়েন্টকে কার্যকলাপ সংকেত পাঠাতে হবে। |
activityHandling | ঐচ্ছিক। কার্যকলাপের প্রভাব কী তা নির্ধারণ করে। |
turnCoverage | ঐচ্ছিক। ব্যবহারকারীর পালায় কোন ইনপুট অন্তর্ভুক্ত করা হবে তা নির্ধারণ করে। |
সেশন রিজাম্পশন কনফিগ
সেশন পুনরায় শুরু করার কনফিগারেশন।
এই বার্তাটি সেশন কনফিগারেশনে BidiGenerateContentSetup.sessionResumption হিসেবে অন্তর্ভুক্ত করা হয়েছে। কনফিগার করা হলে, সার্ভার SessionResumptionUpdate বার্তা পাঠাবে।
| ক্ষেত্র | |
|---|---|
handle | পূর্ববর্তী সেশনের হ্যান্ডেল। যদি উপস্থিত না থাকে তবে একটি নতুন সেশন তৈরি করা হয়। সেশন হ্যান্ডেলগুলি পূর্ববর্তী সংযোগগুলিতে |
সেশন পুনঃসূচনা আপডেট
সেশন পুনরায় শুরু হওয়ার অবস্থা আপডেট।
শুধুমাত্র BidiGenerateContentSetup.sessionResumption সেট করা থাকলেই পাঠানো হবে।
| ক্ষেত্র | |
|---|---|
newHandle | নতুন হ্যান্ডেল যা এমন একটি অবস্থা প্রতিনিধিত্ব করে যা পুনরায় শুরু করা যেতে পারে। |
resumable | এই মুহূর্তে যদি বর্তমান অধিবেশন পুনরায় শুরু করা যায়, তাহলে সত্য। সেশনের কিছু কিছু স্থানে পুনঃসূচনা সম্ভব হয় না। উদাহরণস্বরূপ, যখন মডেলটি ফাংশন কল সম্পাদন করছে বা জেনারেট করছে। এই অবস্থায় (পূর্ববর্তী সেশন টোকেন ব্যবহার করে) সেশন পুনরায় শুরু করলে কিছু ডেটা ক্ষতি হবে। এই ক্ষেত্রে, |
স্লাইডিং উইন্ডো
SlidingWindow পদ্ধতিটি কনটেক্সট উইন্ডোর শুরুতে কন্টেন্ট বাতিল করে কাজ করে। ফলে কনটেক্সট সর্বদা USER রোল টার্নের শুরুতে শুরু হবে। সিস্টেম নির্দেশাবলী এবং যেকোনো BidiGenerateContentSetup.prefixTurns সর্বদা ফলাফলের শুরুতে থাকবে।
| ক্ষেত্র | |
|---|---|
targetTokens | রাখার জন্য লক্ষ্য টোকেনের সংখ্যা। ডিফল্ট মান হল 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[] | ইউআরএল প্রসঙ্গের তালিকা। |
ব্যবহারমেটাডেটা
প্রতিক্রিয়া(গুলি) সম্পর্কে ব্যবহারের মেটাডেটা।
| ক্ষেত্র | |
|---|---|
promptTokenCount | শুধুমাত্র আউটপুট। প্রম্পটে টোকেনের সংখ্যা। যখন |
cachedContentTokenCount | প্রম্পটের ক্যাশে করা অংশে (ক্যাশে করা কন্টেন্ট) টোকেনের সংখ্যা |
responseTokenCount | শুধুমাত্র আউটপুট। সমস্ত জেনারেট করা প্রতিক্রিয়া প্রার্থীদের মধ্যে মোট টোকেনের সংখ্যা। |
toolUsePromptTokenCount | শুধুমাত্র আউটপুট। টুল-ব্যবহার প্রম্পটে উপস্থিত টোকেনের সংখ্যা। |
thoughtsTokenCount | শুধুমাত্র আউটপুট। চিন্তাভাবনা মডেলের জন্য চিন্তার টোকেনের সংখ্যা। |
totalTokenCount | শুধুমাত্র আউটপুট। জেনারেশন রিকোয়েস্টের মোট টোকেন সংখ্যা (প্রম্পট + রেসপন্স ক্যান্ডিডেট)। |
promptTokensDetails[] | শুধুমাত্র আউটপুট। অনুরোধ ইনপুটে প্রক্রিয়া করা পদ্ধতিগুলির তালিকা। |
cacheTokensDetails[] | শুধুমাত্র আউটপুট। অনুরোধ ইনপুটে ক্যাশেড কন্টেন্টের পদ্ধতির তালিকা। |
responseTokensDetails[] | শুধুমাত্র আউটপুট। প্রতিক্রিয়ায় ফেরত পাঠানো পদ্ধতির তালিকা। |
toolUsePromptTokensDetails[] | শুধুমাত্র আউটপুট। টুল-ব্যবহারের অনুরোধ ইনপুটগুলির জন্য প্রক্রিয়াজাতকরণের পদ্ধতিগুলির তালিকা। |
ক্ষণস্থায়ী প্রমাণীকরণ টোকেন
AuthTokenService.CreateToken কল করে এবং তারপর GenerativeService.BidiGenerateContentConstrained এর সাথে ব্যবহার করে ক্ষণস্থায়ী প্রমাণীকরণ টোকেন পাওয়া যেতে পারে, হয় টোকেনটি একটি access_token কোয়েরি প্যারামিটারে পাস করে, অথবা একটি HTTP Authorization হেডারে যার সাথে " Token " প্রিফিক্স থাকে।
CreateAuthTokenRequest সম্পর্কে
একটি ক্ষণস্থায়ী প্রমাণীকরণ টোকেন তৈরি করুন।
| ক্ষেত্র | |
|---|---|
authToken | প্রয়োজনীয়। তৈরি করার জন্য টোকেন। |
AuthToken সম্পর্কে
একটি ক্ষণস্থায়ী প্রমাণীকরণ টোকেন তৈরি করার অনুরোধ।
| ক্ষেত্র | |
|---|---|
name | শুধুমাত্র আউটপুট। শনাক্তকারী। টোকেন নিজেই। |
expireTime | ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। ঐচ্ছিক সময় যার পরে, ফলাফল টোকেন ব্যবহার করার সময়, BidiGenerateContent সেশনের বার্তাগুলি প্রত্যাখ্যান করা হবে। (এই সময়ের পরে Gemini আগে থেকেই সেশনটি বন্ধ করে দিতে পারে।) যদি সেট না করা থাকে, তাহলে ভবিষ্যতে এটি ডিফল্টভাবে ৩০ মিনিটে নির্ধারিত হবে। যদি সেট করা থাকে, তাহলে ভবিষ্যতে এই মান অবশ্যই ২০ ঘন্টার কম হতে হবে। |
newSessionExpireTime | ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। এই অনুরোধের ফলে টোকেন ব্যবহার করে নতুন লাইভ API সেশনগুলি যে সময়ের পরে প্রত্যাখ্যান করা হবে। যদি সেট না করা হয়, তাহলে ভবিষ্যতে এটি ডিফল্টভাবে ৬০ সেকেন্ডে সেট করা হবে। যদি সেট করা থাকে, তাহলে ভবিষ্যতে এই মান অবশ্যই ২০ ঘন্টার কম হতে হবে। |
fieldMask | ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। যদি field_mask খালি থাকে, এবং যদি field_mask খালি থাকে, এবং যদি field_mask খালি না থাকে, তাহলে |
Union ফিল্ড config । ফলাফল টোকেনের জন্য পদ্ধতি-নির্দিষ্ট কনফিগারেশন। config নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে: | |
bidiGenerateContentSetup | ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। |
uses | ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। টোকেনটি কতবার ব্যবহার করা যেতে পারে তার সংখ্যা। যদি এই মান শূন্য হয় তবে কোনও সীমা প্রযোজ্য নয়। একটি লাইভ API সেশন পুনরায় শুরু করা ব্যবহার হিসাবে গণনা করা হয় না। যদি নির্দিষ্ট না করা থাকে, তাহলে ডিফল্ট হল 1। |
সাধারণ প্রকার সম্পর্কে আরও তথ্য
সাধারণভাবে ব্যবহৃত API রিসোর্স প্রকার Blob , Content , FunctionCall , FunctionResponse , GenerationConfig , GroundingMetadata , ModalityTokenCount এবং Tool সম্পর্কে আরও তথ্যের জন্য, কন্টেন্ট তৈরি করা দেখুন।