Live API, स्टेटफ़ुल एपीआई है. यह WebSockets का इस्तेमाल करता है. इस सेक्शन में, आपको WebSockets API के बारे में ज़्यादा जानकारी मिलेगी.
सेशन
WebSocket कनेक्शन, क्लाइंट और Gemini सर्वर के बीच एक सेशन बनाता है. जब कोई क्लाइंट नया कनेक्शन शुरू करता है, तो सेशन सर्वर के साथ ये काम करने के लिए मैसेज भेज सकता है:
- Gemini के सर्वर पर टेक्स्ट, ऑडियो या वीडियो भेजना.
- Gemini सर्वर से ऑडियो, टेक्स्ट या फ़ंक्शन कॉल के अनुरोध पाना.
WebSocket कनेक्शन
सेशन शुरू करने के लिए, इस वेबसॉकेट एंडपॉइंट से कनेक्ट करें:
wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent
सेशन कॉन्फ़िगरेशन
WebSocket कनेक्शन सेट अप करने के बाद भेजा गया शुरुआती मैसेज, सेशन कॉन्फ़िगरेशन सेट करता है. इसमें मॉडल, जनरेशन पैरामीटर, सिस्टम के निर्देश, और टूल शामिल होते हैं.
कनेक्शन खुला होने पर, कॉन्फ़िगरेशन अपडेट नहीं किया जा सकता. हालांकि, सेशन फिर से शुरू करने की सुविधा का इस्तेमाल करके, मॉडल को छोड़कर कॉन्फ़िगरेशन पैरामीटर बदले जा सकते हैं.
कॉन्फ़िगरेशन का यह उदाहरण देखें. ध्यान दें कि एसडीके में नाम के केस अलग-अलग हो सकते हैं. 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]
}
एपीआई फ़ील्ड के बारे में ज़्यादा जानकारी के लिए, 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
इस टाइप के लिए कोई फ़ील्ड नहीं है.
ऑडियो को टेक्स्ट में बदलने की सुविधा का कॉन्फ़िगरेशन.
AutomaticActivityDetection
यह कुकी, गतिविधि का अपने-आप पता लगने की सुविधा को कॉन्फ़िगर करती है.
| फ़ील्ड | |
|---|---|
disabled |
ज़रूरी नहीं. अगर यह सेटिंग चालू है (डिफ़ॉल्ट रूप से चालू रहती है), तो आवाज़ और टेक्स्ट इनपुट को गतिविधि के तौर पर गिना जाता है. अगर यह सुविधा बंद है, तो क्लाइंट को गतिविधि के सिग्नल भेजने होंगे. |
startOfSpeechSensitivity |
ज़रूरी नहीं. इससे यह तय होता है कि बोली का पता लगने की संभावना कितनी है. |
prefixPaddingMs |
ज़रूरी नहीं. आवाज़ का पता चलने से पहले, आवाज़ की ज़रूरी अवधि. इस वैल्यू के कम होने पर, बोलने की शुरुआत का पता लगाने की सुविधा ज़्यादा संवेदनशील होती है. साथ ही, कम समय तक बोले गए शब्दों को भी पहचाना जा सकता है. हालांकि, इससे फ़ॉल्स पॉज़िटिव की संभावना भी बढ़ जाती है. |
endOfSpeechSensitivity |
ज़रूरी नहीं. इससे यह तय होता है कि पहचानी गई आवाज़ कब खत्म होगी. |
silenceDurationMs |
ज़रूरी नहीं. बातचीत खत्म होने का पता चलने से पहले, आवाज़ न होने (जैसे कि चुप्पी) का पता चलने की ज़रूरी अवधि. इस वैल्यू के ज़्यादा होने पर, उपयोगकर्ता की गतिविधि में रुकावट डाले बिना, स्पीच के बीच ज़्यादा समय तक खामोशी हो सकती है. हालांकि, इससे मॉडल की लेटेन्सी बढ़ जाएगी. |
BidiGenerateContentClientContent
क्लाइंट से मिली मौजूदा बातचीत का इंक्रीमेंटल अपडेट. यहां मौजूद सभी कॉन्टेंट को, बातचीत के इतिहास में बिना किसी शर्त के जोड़ दिया जाता है. साथ ही, इसका इस्तेमाल मॉडल को प्रॉम्प्ट देने के लिए किया जाता है, ताकि वह कॉन्टेंट जनरेट कर सके.
यहां कोई मैसेज मिलने पर, मॉडल जनरेट करने की मौजूदा प्रोसेस रुक जाएगी.
| फ़ील्ड | |
|---|---|
turns[] |
ज़रूरी नहीं. मॉडल के साथ मौजूदा बातचीत में जोड़ा गया कॉन्टेंट. सिंगल-टर्न क्वेरी के लिए, यह एक इंस्टेंस होता है. एक से ज़्यादा बार की जाने वाली क्वेरी के लिए, यह दोहराया गया फ़ील्ड है. इसमें बातचीत का इतिहास और हाल ही का अनुरोध शामिल होता है. |
turnComplete |
ज़रूरी नहीं. अगर यह वैल्यू सही है, तो इसका मतलब है कि सर्वर को, फ़िलहाल इकट्ठा किए गए प्रॉम्प्ट से कॉन्टेंट जनरेट करना शुरू करना चाहिए. इसके अलावा, सर्वर जनरेट करने की प्रोसेस शुरू करने से पहले, अन्य मैसेज का इंतज़ार करता है. |
BidiGenerateContentRealtimeInput
उपयोगकर्ता का इनपुट, जिसे रीयल टाइम में भेजा जाता है.
अलग-अलग मोड (ऑडियो, वीडियो, और टेक्स्ट) को एक साथ स्ट्रीम के तौर पर हैंडल किया जाता है. इन स्ट्रीम में वीडियो के क्रम की कोई गारंटी नहीं है.
यह BidiGenerateContentClientContent से इन मामलों में अलग है:
- इसे मॉडल जनरेट करने के दौरान, बिना किसी रुकावट के लगातार भेजा जा सकता है.
- अगर
BidiGenerateContentClientContentऔरBidiGenerateContentRealtimeInputके बीच इंटरलीव किए गए डेटा को मिक्स करने की ज़रूरत होती है, तो सर्वर सबसे अच्छा जवाब देने के लिए ऑप्टिमाइज़ करने की कोशिश करता है. हालांकि, इसकी कोई गारंटी नहीं है. - टर्न के खत्म होने के बारे में साफ़ तौर पर नहीं बताया गया है. हालाँकि, इसे उपयोगकर्ता की गतिविधि से पता लगाया जा सकता है. उदाहरण के लिए, बातचीत खत्म होने पर.
- टर्न खत्म होने से पहले भी, डेटा को धीरे-धीरे प्रोसेस किया जाता है, ताकि मॉडल से जवाब मिलने में कम समय लगे.
| फ़ील्ड | |
|---|---|
mediaChunks[] |
ज़रूरी नहीं. मीडिया इनपुट के लिए, इनलाइन किया गया बाइट डेटा. एक से ज़्यादा DEPRECATED: इसके बजाय, |
audio |
ज़रूरी नहीं. ये रीयलटाइम ऑडियो इनपुट स्ट्रीम बनाते हैं. |
video |
ज़रूरी नहीं. ये रीयलटाइम वीडियो इनपुट स्ट्रीम बनाते हैं. |
activityStart |
ज़रूरी नहीं. यह कुकी, उपयोगकर्ता की गतिविधि की शुरुआत को मार्क करती है. इसे सिर्फ़ तब भेजा जा सकता है, जब गतिविधि का अपने-आप (यानी कि सर्वर-साइड) पता लगाने की सुविधा बंद हो. |
activityEnd |
ज़रूरी नहीं. यह कुकी, उपयोगकर्ता गतिविधि के खत्म होने का समय मार्क करती है. इसे सिर्फ़ तब भेजा जा सकता है, जब गतिविधि का अपने-आप (यानी कि सर्वर-साइड) पता लगाने की सुविधा बंद हो. |
audioStreamEnd |
ज़रूरी नहीं. इससे पता चलता है कि ऑडियो स्ट्रीम खत्म हो गई है. जैसे, माइक्रोफ़ोन बंद कर दिया गया था. इसे सिर्फ़ तब भेजा जाना चाहिए, जब गतिविधि का अपने-आप पता लगने की सुविधा चालू हो. यह सुविधा डिफ़ॉल्ट रूप से चालू होती है. क्लाइंट, ऑडियो मैसेज भेजकर स्ट्रीम को फिर से खोल सकता है. |
text |
ज़रूरी नहीं. ये रीयलटाइम टेक्स्ट इनपुट स्ट्रीम बनाते हैं. |
BidiGenerateContentServerContent
क्लाइंट के मैसेज के जवाब में, मॉडल के जनरेट किए गए इंक्रीमेंटल सर्वर अपडेट.
कॉन्टेंट को जल्द से जल्द जनरेट किया जाता है, न कि रीयल टाइम में. क्लाइंट, इसे बफ़र करके रीयल टाइम में चला सकते हैं.
| फ़ील्ड | |
|---|---|
generationComplete |
सिर्फ़ आउटपुट के लिए. अगर सही है, तो इसका मतलब है कि मॉडल ने जवाब जनरेट कर दिया है. जवाब जनरेट करते समय मॉडल के रुक जाने पर, 'generation_complete' मैसेज नहीं दिखेगा. इसके बजाय, 'interrupted > turn_complete' मैसेज दिखेगा. जब मॉडल रीयलटाइम प्लेबैक की सुविधा का इस्तेमाल करता है, तब generation_complete और turn_complete के बीच देरी होती है. ऐसा इसलिए होता है, क्योंकि मॉडल प्लेबैक के खत्म होने का इंतज़ार करता है. |
turnComplete |
सिर्फ़ आउटपुट के लिए. अगर सही है, तो इससे पता चलता है कि मॉडल ने अपना जवाब दे दिया है. क्लाइंट के अतिरिक्त मैसेज मिलने पर ही जवाब जनरेट होना शुरू होगा. |
interrupted |
सिर्फ़ आउटपुट के लिए. अगर यह वैल्यू सही है, तो इसका मतलब है कि क्लाइंट के मैसेज की वजह से, मौजूदा मॉडल जनरेशन में रुकावट आई है. अगर क्लाइंट, कॉन्टेंट को रीयल टाइम में चला रहा है, तो यह एक अच्छा सिग्नल है. इससे मौजूदा प्लेबैक क्यू को रोका जा सकता है और उसे खाली किया जा सकता है. |
groundingMetadata |
सिर्फ़ आउटपुट के लिए. जनरेट किए गए कॉन्टेंट के लिए ग्राउंडिंग मेटाडेटा. |
inputTranscription |
सिर्फ़ आउटपुट के लिए. ऑडियो को टेक्स्ट में बदलने की सुविधा के लिए इनपुट. ट्रांसक्रिप्शन को सर्वर के अन्य मैसेज से अलग भेजा जाता है. साथ ही, इसके क्रम की कोई गारंटी नहीं होती. |
outputTranscription |
सिर्फ़ आउटपुट के लिए. ऑडियो ट्रांसक्रिप्शन का आउटपुट. ट्रांसक्रिप्शन को सर्वर के अन्य मैसेज से अलग भेजा जाता है. साथ ही, यह ज़रूरी नहीं है कि मैसेज उसी क्रम में भेजे जाएं. खास तौर पर, |
urlContextMetadata |
|
modelTurn |
सिर्फ़ आउटपुट के लिए. ऐसा कॉन्टेंट जिसे मॉडल ने उपयोगकर्ता के साथ मौजूदा बातचीत के दौरान जनरेट किया है. |
BidiGenerateContentServerMessage
BidiGenerateContent कॉल के लिए जवाब का मैसेज.
| फ़ील्ड | |
|---|---|
usageMetadata |
सिर्फ़ आउटपुट के लिए. जवाबों के इस्तेमाल से जुड़ा मेटाडेटा. |
यूनियन फ़ील्ड messageType. मैसेज किस तरह का है. messageType इनमें से सिर्फ़ एक हो सकता है: |
|
setupComplete |
सिर्फ़ आउटपुट के लिए. यह मैसेज, सेटअप पूरा होने पर क्लाइंट से मिले |
serverContent |
सिर्फ़ आउटपुट के लिए. क्लाइंट के मैसेज के जवाब में मॉडल से जनरेट किया गया कॉन्टेंट. |
toolCall |
सिर्फ़ आउटपुट के लिए. क्लाइंट से |
toolCallCancellation |
सिर्फ़ आउटपुट के लिए. क्लाइंट को सूचना दी जाती है कि पहले जारी किए गए |
goAway |
सिर्फ़ आउटपुट के लिए. सूचना कि सर्वर जल्द ही डिसकनेक्ट हो जाएगा. |
sessionResumptionUpdate |
सिर्फ़ आउटपुट के लिए. सेशन फिर से शुरू होने की स्थिति अपडेट की गई. |
BidiGenerateContentSetup
पहले BidiGenerateContentClientMessage में भेजा जाने वाला मैसेज. इसमें ऐसा कॉन्फ़िगरेशन होता है जो स्ट्रीमिंग आरपीसी के दौरान लागू होगा.
क्लाइंट को कोई और मैसेज भेजने से पहले, BidiGenerateContentSetupComplete मैसेज का इंतज़ार करना चाहिए.
| फ़ील्ड | |
|---|---|
model |
ज़रूरी है. मॉडल के संसाधन का नाम. यह मॉडल के लिए आईडी के तौर पर काम करता है. फ़ॉर्मैट: |
generationConfig |
ज़रूरी नहीं. जनरेट करने का कॉन्फ़िगरेशन. ये फ़ील्ड काम नहीं करते:
|
systemInstruction |
ज़रूरी नहीं. उपयोगकर्ता ने मॉडल के लिए सिस्टम के निर्देश दिए हैं. ध्यान दें: जवाब के हर हिस्से में सिर्फ़ टेक्स्ट का इस्तेमाल किया जाना चाहिए. साथ ही, हर हिस्से का कॉन्टेंट अलग पैराग्राफ़ में होना चाहिए. |
tools[] |
ज़रूरी नहीं.
|
realtimeInputConfig |
ज़रूरी नहीं. यह कुकी, रीयलटाइम इनपुट को मैनेज करने के लिए कॉन्फ़िगर की जाती है. |
sessionResumption |
ज़रूरी नहीं. यह कुकी, सेशन को फिर से शुरू करने के तरीके को कॉन्फ़िगर करती है. अगर यह शामिल है, तो सर्वर |
contextWindowCompression |
ज़रूरी नहीं. यह कुकी, कॉन्टेक्स्ट विंडो को कंप्रेस करने के तरीके को कॉन्फ़िगर करती है. अगर इसे शामिल किया जाता है, तो कॉन्फ़िगर की गई लंबाई से ज़्यादा होने पर सर्वर, कॉन्टेक्स्ट का साइज़ अपने-आप कम कर देगा. |
inputAudioTranscription |
ज़रूरी नहीं. अगर यह सेट है, तो आवाज़ से दिए गए इनपुट को लेख में बदलने की सुविधा चालू हो जाती है. अगर ऑडियो को टेक्स्ट में बदलने की सुविधा कॉन्फ़िगर की गई है, तो ऑडियो को टेक्स्ट में बदलने की सुविधा, ऑडियो की भाषा के हिसाब से काम करती है. |
outputAudioTranscription |
ज़रूरी नहीं. अगर यह विकल्प सेट है, तो मॉडल के ऑडियो आउटपुट को ट्रांसक्राइब करने की सुविधा चालू हो जाती है. अगर कॉन्फ़िगर किया गया है, तो ट्रांसक्रिप्ट, आउटपुट ऑडियो के लिए तय किए गए भाषा कोड के मुताबिक होती है. |
proactivity |
ज़रूरी नहीं. यह कुकी, मॉडल के सुझाव देने की सुविधा को कॉन्फ़िगर करती है. इससे मॉडल को, इनपुट का तुरंत जवाब देने और काम के न होने वाले इनपुट को अनदेखा करने की सुविधा मिलती है. |
BidiGenerateContentSetupComplete
इस टाइप के लिए कोई फ़ील्ड नहीं है.
यह क्लाइंट से मिले BidiGenerateContentSetup मैसेज के जवाब में भेजा जाता है.
BidiGenerateContentToolCall
क्लाइंट से functionCalls को लागू करने का अनुरोध करें. साथ ही, मैच करने वाले functionCalls के साथ जवाब दिखाएं.id
| फ़ील्ड | |
|---|---|
functionCalls[] |
सिर्फ़ आउटपुट के लिए. वह फ़ंक्शन कॉल जिसे एक्ज़ीक्यूट करना है. |
BidiGenerateContentToolCallCancellation
क्लाइंट को सूचना दी जाती है कि पहले जारी किया गया ToolCallMessage, तय किए गए id के साथ लागू नहीं किया जाना चाहिए और इसे रद्द कर दिया जाना चाहिए. अगर टूल कॉल के कुछ साइड इफ़ेक्ट हुए हैं, तो क्लाइंट टूल कॉल को पहले जैसा करने की कोशिश कर सकते हैं. यह मैसेज सिर्फ़ उन मामलों में दिखता है जहां क्लाइंट, सर्वर के टर्न में रुकावट डालते हैं.
| फ़ील्ड | |
|---|---|
ids[] |
सिर्फ़ आउटपुट के लिए. रद्द किए जाने वाले टूल कॉल के आईडी. |
BidiGenerateContentToolResponse
क्लाइंट ने सर्वर से मिले ToolCall का जवाब जनरेट किया. id फ़ील्ड की मदद से, हर FunctionResponse ऑब्जेक्ट का मिलान उससे जुड़े FunctionCall ऑब्जेक्ट से किया जाता है.
ध्यान दें कि यूनेरी और सर्वर-स्ट्रीमिंग GenerateContent API में, फ़ंक्शन कॉलिंग Content पार्ट को बदलकर की जाती है. वहीं, बिडी GenerateContent API में, फ़ंक्शन कॉलिंग मैसेज के इस खास सेट के ज़रिए की जाती है.
| फ़ील्ड | |
|---|---|
functionResponses[] |
ज़रूरी नहीं. फ़ंक्शन कॉल का जवाब. |
BidiGenerateContentTranscription
ऑडियो (इनपुट या आउटपुट) की ट्रांसक्रिप्शन.
| फ़ील्ड | |
|---|---|
text |
ट्रांसक्रिप्शन टेक्स्ट. |
ContextWindowCompressionConfig
इस विकल्प से कॉन्टेक्स्ट विंडो कंप्रेस करने की सुविधा चालू होती है. यह मॉडल की कॉन्टेक्स्ट विंडो को मैनेज करने का एक तरीका है, ताकि यह तय की गई लंबाई से ज़्यादा न हो.
| फ़ील्ड | |
|---|---|
यूनियन फ़ील्ड compressionMechanism. कॉन्टेक्स्ट विंडो को कंप्रेस करने के लिए इस्तेमाल किया गया सिस्टम. compressionMechanism इनमें से सिर्फ़ एक हो सकता है: |
|
slidingWindow |
स्लाइडिंग-विंडो मैकेनिज़्म. |
triggerTokens |
कॉन्टेक्स्ट विंडो कंप्रेस करने के लिए, टर्न शुरू होने से पहले ज़रूरी टोकन की संख्या. इसका इस्तेमाल, क्वालिटी और लेटेन्सी के बीच संतुलन बनाने के लिए किया जा सकता है. ऐसा इसलिए, क्योंकि कॉन्टेक्स्ट विंडो छोटी होने पर मॉडल के जवाब जल्दी मिल सकते हैं. हालांकि, कंप्रेस करने की किसी भी कार्रवाई से, कुछ समय के लिए लेटेन्सी बढ़ जाएगी. इसलिए, इन्हें बार-बार ट्रिगर नहीं किया जाना चाहिए. अगर इसे सेट नहीं किया जाता है, तो डिफ़ॉल्ट रूप से यह मॉडल की कॉन्टेक्स्ट विंडो की सीमा का 80% होता है. इससे, अगले उपयोगकर्ता के अनुरोध/मॉडल के जवाब के लिए 20% टोकन बचते हैं. |
EndSensitivity
इससे यह तय होता है कि बोली कब खत्म हुई, इसका पता कैसे लगाया जाए.
| Enums | |
|---|---|
END_SENSITIVITY_UNSPECIFIED |
डिफ़ॉल्ट रूप से, END_SENSITIVITY_HIGH पर सेट होता है. |
END_SENSITIVITY_HIGH |
अपने-आप पहचान होने की सुविधा, बोली को ज़्यादा बार बंद कर देती है. |
END_SENSITIVITY_LOW |
अपने-आप पहचान होने की सुविधा, बोली को कम बार बंद करती है. |
GoAway
सूचना कि सर्वर जल्द ही डिसकनेक्ट हो जाएगा.
| फ़ील्ड | |
|---|---|
timeLeft |
कनेक्शन बंद होने से पहले का समय, ABORTED के तौर पर दिखेगा. यह अवधि, मॉडल के हिसाब से तय की गई कम से कम अवधि से कभी कम नहीं होगी. यह अवधि, मॉडल के लिए तय की गई दर की सीमाओं के साथ बताई जाएगी. |
ProactivityConfig
यह कुकी, सक्रियता से जुड़ी सुविधाओं के लिए कॉन्फ़िगरेशन करती है.
| फ़ील्ड | |
|---|---|
proactiveAudio |
ज़रूरी नहीं. इस सुविधा के चालू होने पर, मॉडल आखिरी प्रॉम्प्ट का जवाब देने से मना कर सकता है. उदाहरण के लिए, इससे मॉडल को कॉन्टेक्स्ट से बाहर की स्पीच को अनदेखा करने या उपयोगकर्ता की ओर से अब तक कोई अनुरोध न किए जाने पर चुप रहने की अनुमति मिलती है. |
RealtimeInputConfig
यह कुकी, BidiGenerateContent में रीयलटाइम इनपुट के व्यवहार को कॉन्फ़िगर करती है.
| फ़ील्ड | |
|---|---|
automaticActivityDetection |
ज़रूरी नहीं. अगर इसे सेट नहीं किया जाता है, तो गतिविधि का अपने-आप पता चलने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. अगर आवाज़ का अपने-आप पता चलने की सुविधा बंद है, तो क्लाइंट को गतिविधि के सिग्नल भेजने होंगे. |
activityHandling |
ज़रूरी नहीं. इससे पता चलता है कि गतिविधि का क्या असर हुआ. |
turnCoverage |
ज़रूरी नहीं. इससे यह तय होता है कि उपयोगकर्ता के टर्न में कौनसी जानकारी शामिल की जाएगी. |
SessionResumptionConfig
सेशन फिर से शुरू करने का कॉन्फ़िगरेशन.
इस मैसेज को सेशन कॉन्फ़िगरेशन में BidiGenerateContentSetup.sessionResumption के तौर पर शामिल किया गया है. अगर इसे कॉन्फ़िगर किया गया है, तो सर्वर SessionResumptionUpdate मैसेज भेजेगा.
| फ़ील्ड | |
|---|---|
handle |
पिछले सेशन का हैंडल. अगर यह कुकी मौजूद नहीं है, तो नया सेशन बनाया जाता है. सेशन हैंडल, पिछले कनेक्शन में मौजूद |
SessionResumptionUpdate
सेशन फिर से शुरू होने की स्थिति अपडेट की गई.
यह कुकी सिर्फ़ तब भेजी जाती है, जब BidiGenerateContentSetup.sessionResumption सेट किया गया हो.
| फ़ील्ड | |
|---|---|
newHandle |
नया हैंडल, जो ऐसी स्थिति को दिखाता है जिसे फिर से शुरू किया जा सकता है. अगर |
resumable |
अगर मौजूदा सेशन को इस समय फिर से शुरू किया जा सकता है, तो यह वैल्यू सही होती है. सेशन के कुछ हिस्सों में, वीडियो को फिर से शुरू नहीं किया जा सकता. उदाहरण के लिए, जब मॉडल फ़ंक्शन कॉल कर रहा हो या जनरेट कर रहा हो. इस स्थिति में, सेशन को फिर से शुरू करने (पिछले सेशन टोकन का इस्तेमाल करके) से कुछ डेटा का नुकसान होगा. ऐसे मामलों में, |
SlidingWindow
स्लाइडिंग विंडो का तरीका, कॉन्टेक्स्ट विंडो की शुरुआत में मौजूद कॉन्टेंट को हटाकर काम करता है. जवाब में शामिल जानकारी हमेशा USER की भूमिका के टर्न की शुरुआत से शुरू होगी. सिस्टम के निर्देश और कोई भी BidiGenerateContentSetup.prefixTurns, जवाब की शुरुआत में हमेशा मौजूद रहेगा.
| फ़ील्ड | |
|---|---|
targetTokens |
टोकन की टारगेट संख्या, जिसे बनाए रखना है. डिफ़ॉल्ट वैल्यू trigger_tokens/2 होती है. कॉन्टेक्स्ट विंडो के कुछ हिस्सों को हटाने से, कुछ समय के लिए लेटेन्सी बढ़ जाती है. इसलिए, इस वैल्यू को कैलिब्रेट किया जाना चाहिए, ताकि बार-बार कंप्रेशन की कार्रवाइयों से बचा जा सके. |
StartSensitivity
इससे यह तय होता है कि आवाज़ की शुरुआत का पता कैसे लगाया जाए.
| Enums | |
|---|---|
START_SENSITIVITY_UNSPECIFIED |
डिफ़ॉल्ट वैल्यू START_SENSITIVITY_HIGH होती है. |
START_SENSITIVITY_HIGH |
अपने-आप पहचान करने की सुविधा, बोली की शुरुआत का पता ज़्यादा बार लगाएगी. |
START_SENSITIVITY_LOW |
अपने-आप पहचान होने की सुविधा, बोली की शुरुआत का पता कम बार लगाएगी. |
TurnCoverage
उपयोगकर्ता के टर्न में कौनसे इनपुट शामिल किए गए हैं, इस बारे में विकल्प.
| Enums | |
|---|---|
TURN_COVERAGE_UNSPECIFIED |
अगर इसे तय नहीं किया जाता है, तो डिफ़ॉल्ट तरीका TURN_INCLUDES_ONLY_ACTIVITY होता है. |
TURN_INCLUDES_ONLY_ACTIVITY |
उपयोगकर्ताओं की बारी में, सिर्फ़ पिछली बारी के बाद की गतिविधि शामिल होती है.इसमें कोई गतिविधि न होने की अवधि शामिल नहीं होती. उदाहरण के लिए, ऑडियो स्ट्रीम पर चुप्पी. यह डिफ़ॉल्ट व्यवहार है. |
TURN_INCLUDES_ALL_INPUT |
उपयोगकर्ताओं के टर्न में, पिछली बार से लेकर अब तक का सभी रीयलटाइम इनपुट शामिल होता है.इसमें कोई गतिविधि न होना भी शामिल है. उदाहरण के लिए, ऑडियो स्ट्रीम पर कोई आवाज़ न होना. |
UrlContextMetadata
यूआरएल के कॉन्टेक्स्ट को फिर से पाने वाले टूल से जुड़ा मेटाडेटा.
| फ़ील्ड | |
|---|---|
urlMetadata[] |
यूआरएल के कॉन्टेक्स्ट की सूची. |
UsageMetadata
जवाबों के इस्तेमाल से जुड़ा मेटाडेटा.
| फ़ील्ड | |
|---|---|
promptTokenCount |
सिर्फ़ आउटपुट के लिए. प्रॉम्प्ट में टोकन की संख्या. |
cachedContentTokenCount |
प्रॉम्प्ट के कैश मेमोरी में सेव किए गए हिस्से (कैश मेमोरी में सेव किया गया कॉन्टेंट) में मौजूद टोकन की संख्या |
responseTokenCount |
सिर्फ़ आउटपुट के लिए. जनरेट किए गए जवाब के सभी संभावित विकल्पों में मौजूद टोकन की कुल संख्या. |
toolUsePromptTokenCount |
सिर्फ़ आउटपुट के लिए. टूल का इस्तेमाल करने के बारे में दिए गए प्रॉम्प्ट में मौजूद टोकन की संख्या. |
thoughtsTokenCount |
सिर्फ़ आउटपुट के लिए. सूझ-बूझ वाले मॉडल के लिए, आइडिया के टोकन की संख्या. |
totalTokenCount |
सिर्फ़ आउटपुट के लिए. जनरेट करने के अनुरोध (प्रॉम्प्ट + जवाब के संभावित विकल्प) के लिए टोकन की कुल संख्या. |
promptTokensDetails[] |
सिर्फ़ आउटपुट के लिए. अनुरोध के इनपुट में प्रोसेस की गई मॉडेलिटी की सूची. |
cacheTokensDetails[] |
सिर्फ़ आउटपुट के लिए. अनुरोध के इनपुट में मौजूद, कैश मेमोरी में सेव किए गए कॉन्टेंट के मोड की सूची. |
responseTokensDetails[] |
सिर्फ़ आउटपुट के लिए. जवाब में मिली मोडल की सूची. |
toolUsePromptTokensDetails[] |
सिर्फ़ आउटपुट के लिए. टूल इस्तेमाल करने के अनुरोध के इनपुट के लिए प्रोसेस की गई मॉडेलिटी की सूची. |
कुछ समय के लिए पुष्टि करने वाले टोकन
अस्थायी पुष्टि करने वाले टोकन पाने के लिए, AuthTokenService.CreateToken को कॉल करें. इसके बाद, GenerativeService.BidiGenerateContentConstrained के साथ इनका इस्तेमाल करें. इसके लिए, टोकन को access_token क्वेरी पैरामीटर में पास करें या एचटीटीपी Authorization हेडर में "Token" प्रीफ़िक्स के साथ पास करें.
CreateAuthTokenRequest
कुछ समय के लिए मान्य ऑथेंटिकेशन टोकन बनाएं.
| फ़ील्ड | |
|---|---|
authToken |
ज़रूरी है. बनाने के लिए टोकन. |
AuthToken
यह कुछ समय के लिए मान्य रहने वाला ऑथेंटिकेशन टोकन बनाने का अनुरोध है.
| फ़ील्ड | |
|---|---|
name |
सिर्फ़ आउटपुट के लिए. आइडेंटिफ़ायर. टोकन. |
expireTime |
ज़रूरी नहीं. सिर्फ़ इनपुट के लिए. इम्यूटेबल. यह एक वैकल्पिक समय है. इसके बाद, इस टोकन का इस्तेमाल करने पर, BidiGenerateContent सेशन में मौजूद मैसेज अस्वीकार कर दिए जाएंगे. (Gemini, इस समय के बाद सेशन को पहले से ही बंद कर सकता है.) अगर इसे सेट नहीं किया जाता है, तो आने वाले समय में यह डिफ़ॉल्ट रूप से 30 मिनट पर सेट हो जाएगा. अगर यह वैल्यू सेट की जाती है, तो यह मौजूदा समय से 20 घंटे बाद से पहले की होनी चाहिए. |
newSessionExpireTime |
ज़रूरी नहीं. सिर्फ़ इनपुट के लिए. इम्यूटेबल. यह वह समय है जिसके बाद, इस अनुरोध से मिले टोकन का इस्तेमाल करके बनाए गए नए Live API सेशन अस्वीकार कर दिए जाएंगे. अगर इसे सेट नहीं किया जाता है, तो आने वाले समय में इसकी डिफ़ॉल्ट वैल्यू 60 सेकंड होगी. अगर यह वैल्यू सेट की जाती है, तो यह मौजूदा समय से 20 घंटे बाद से पहले की होनी चाहिए. |
fieldMask |
ज़रूरी नहीं. सिर्फ़ इनपुट के लिए. इम्यूटेबल. अगर field_mask खाली है और अगर field_mask खाली है और अगर field_mask खाली नहीं है, तो |
यूनियन फ़ील्ड config. नतीजे के तौर पर मिले टोकन के लिए, तरीके के हिसाब से कॉन्फ़िगरेशन. config इनमें से सिर्फ़ एक हो सकता है: |
|
bidiGenerateContentSetup |
ज़रूरी नहीं. सिर्फ़ इनपुट के लिए. इम्यूटेबल. |
uses |
ज़रूरी नहीं. सिर्फ़ इनपुट के लिए. इम्यूटेबल. टोकन का इस्तेमाल कितनी बार किया जा सकता है. इस वैल्यू के शून्य होने पर, कोई सीमा लागू नहीं होती. लाइव एपीआई सेशन को फिर से शुरू करने को इस्तेमाल नहीं माना जाता. अगर इसे तय नहीं किया गया है, तो डिफ़ॉल्ट वैल्यू 1 होती है. |
सामान्य टाइप के बारे में ज़्यादा जानकारी
आम तौर पर इस्तेमाल किए जाने वाले एपीआई रिसॉर्स टाइप Blob,
Content, FunctionCall, FunctionResponse, GenerationConfig,
GroundingMetadata, ModalityTokenCount, और Tool के बारे में ज़्यादा जानने के लिए, कॉन्टेंट जनरेट करना लेख पढ़ें.