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[] |
ज़रूरी नहीं. मीडिया इनपुट के लिए, इनलाइन किया गया बाइट डेटा. एक से ज़्यादा अब सेवा में नहीं है: इसके बजाय, |
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 |
ज़रूरी नहीं. यह कुकी, मॉडल के सुझाव देने की सुविधा को कॉन्फ़िगर करती है. इससे मॉडल को, इनपुट पर तुरंत जवाब देने और काम के न होने वाले इनपुट को अनदेखा करने की सुविधा मिलती है. |
historyConfig |
ज़रूरी नहीं. यह कुकी, क्लाइंट और सर्वर के बीच इतिहास को शेयर करने की सुविधा को कॉन्फ़िगर करती है. |
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 के तौर पर दिखेगा. यह अवधि, मॉडल के हिसाब से तय की गई कम से कम अवधि से कभी कम नहीं होगी. यह अवधि, मॉडल के लिए तय की गई दर की सीमाओं के साथ बताई जाएगी. |
HistoryConfig
इतिहास का कॉन्फ़िगरेशन.
इस मैसेज को सेशन कॉन्फ़िगरेशन में BidiGenerateContentSetup.historyConfig के तौर पर शामिल किया गया है. यह कुकी, इतिहास के मैसेज के एक्सचेंज को कॉन्फ़िगर करती है.
| फ़ील्ड | |
|---|---|
initialHistoryInClientContent |
ज़रूरी नहीं. अगर यह वैल्यू सही है, तो |
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_ALL_INPUT |
इसमें पिछले टर्न के बाद से, रीयलटाइम में दिया गया सभी इनपुट शामिल होता है.इसमें कोई गतिविधि न करना भी शामिल है. जैसे, ऑडियो स्ट्रीम पर कोई आवाज़ न होना. |
TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO |
इसमें ऑडियो गतिविधि और पिछली बारी से अब तक के सभी वीडियो शामिल होते हैं. गतिविधि का अपने-आप पता लगाने की सुविधा के तहत, ऑडियो गतिविधि का मतलब है बोली गई आवाज़. इसमें चुप्पी शामिल नहीं है. |
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 के बारे में ज़्यादा जानने के लिए, कॉन्टेंट जनरेट करना लेख पढ़ें.