Live API - WebSockets API reference

Live API एक स्टेटफ़ुल एपीआई है, जो WebSockets का इस्तेमाल करता है. इस सेक्शन में, आपको WebSockets API के बारे में ज़्यादा जानकारी मिलेगी.

सेशन

WebSocket कनेक्शन, क्लाइंट और Gemini सर्वर के बीच सेशन बनाता है. जब कोई क्लाइंट नया कनेक्शन शुरू करता है, तो सेशन सर्वर के साथ मैसेज एक्सचेंज कर सकता है, ताकि:

  • Gemini सर्वर पर टेक्स्ट, ऑडियो या वीडियो भेजना.
  • Gemini सर्वर से ऑडियो, टेक्स्ट या फ़ंक्शन कॉल के अनुरोध पाना.

WebSocket कनेक्शन

सेशन शुरू करने के लिए, इस वेबसोकेट एंडपॉइंट से कनेक्ट करें:

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]
}

एपीआई फ़ील्ड के बारे में ज़्यादा जानकारी के लिए, 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

bool

ज़रूरी नहीं. अगर यह सेटिंग चालू है (डिफ़ॉल्ट रूप से), तो बोली और टेक्स्ट इनपुट को गतिविधि के तौर पर गिना जाता है. अगर यह सुविधा बंद है, तो क्लाइंट को गतिविधि के सिग्नल भेजने होंगे.

startOfSpeechSensitivity

StartSensitivity

ज़रूरी नहीं. इससे यह तय होता है कि बोली का पता लगाने की संभावना कितनी है.

prefixPaddingMs

int32

ज़रूरी नहीं. बोली शुरू होने से पहले, बोली की पहचान करने के लिए ज़रूरी समय. यह वैल्यू जितनी कम होगी, बोली शुरू होने का पता लगाने की सुविधा उतनी ही संवेदनशील होगी और कम शब्दों वाली बोली को पहचाना जा सकेगा. हालांकि, इससे फ़ॉल्स पॉज़िटिव की संभावना भी बढ़ जाती है.

endOfSpeechSensitivity

EndSensitivity

ज़रूरी नहीं. इससे यह तय होता है कि बोली का पता चलने के बाद, उसे कैसे खत्म किया जाए.

silenceDurationMs

int32

ज़रूरी नहीं. बोली खत्म होने की जानकारी सेव करने से पहले, बिना बोली वाली अवधि (जैसे, चुप्पी) की ज़रूरी अवधि. इस वैल्यू को जितना ज़्यादा सेट किया जाता है, उपयोगकर्ता की गतिविधि में रुकावट डाले बिना बोली के बीच के अंतराल को उतना ही लंबा किया जा सकता है. हालांकि, इससे मॉडल के इंतज़ार का समय बढ़ जाएगा.

BidiGenerateContentClientContent

क्लाइंट से डिलीवर की गई मौजूदा बातचीत का इंक्रीमेंटल अपडेट. यहां मौजूद सारा कॉन्टेंट, बातचीत के इतिहास में बिना किसी शर्त के जोड़ दिया जाता है. साथ ही, कॉन्टेंट जनरेट करने के लिए मॉडल के प्रॉम्प्ट के हिस्से के तौर पर इसका इस्तेमाल किया जाता है.

यहां कोई मैसेज भेजने पर, मॉडल बनाने की मौजूदा प्रोसेस में रुकावट आएगी.

फ़ील्ड
turns[]

Content

ज़रूरी नहीं. मॉडल के साथ मौजूदा बातचीत में जोड़ा गया कॉन्टेंट.

एक बार में पूछी गई क्वेरी के लिए, यह एक इंस्टेंस है. एक से ज़्यादा बार की गई क्वेरी के लिए, यह एक दोहराया जाने वाला फ़ील्ड है. इसमें बातचीत का इतिहास और नया अनुरोध शामिल होता है.

turnComplete

bool

ज़रूरी नहीं. अगर यह सही है, तो इसका मतलब है कि सर्वर पर कॉन्टेंट जनरेशन, इकट्ठा किए गए मौजूदा प्रॉम्प्ट से शुरू होना चाहिए. ऐसा न करने पर, सर्वर जनरेशन शुरू करने से पहले अन्य मैसेज का इंतज़ार करता है.

BidiGenerateContentRealtimeInput

उपयोगकर्ता का ऐसा इनपुट जो रीयल टाइम में भेजा जाता है.

अलग-अलग मोड (ऑडियो, वीडियो, और टेक्स्ट) को एक साथ चलने वाली स्ट्रीम के तौर पर मैनेज किया जाता है. इस बात की कोई गारंटी नहीं है कि इन स्ट्रीम में वीडियो का क्रम एक जैसा रहेगा.

यह BidiGenerateContentClientContent से कुछ तरीकों से अलग है:

  • मॉडल जनरेशन के लिए, बिना किसी रुकावट के लगातार भेजा जा सकता है.
  • अगर BidiGenerateContentClientContent और BidiGenerateContentRealtimeInput के बीच इंटरलीव किए गए डेटा को मिलाने की ज़रूरत पड़ती है, तो सर्वर सबसे अच्छे जवाब के लिए ऑप्टिमाइज़ करने की कोशिश करता है. हालांकि, इसकी कोई गारंटी नहीं है.
  • बातचीत खत्म होने का समय साफ़ तौर पर नहीं बताया जाता. यह समय, उपयोगकर्ता की गतिविधि (जैसे, बोली खत्म होने पर) से तय होता है.
  • मॉडल से तुरंत जवाब पाने के लिए, टर्न खत्म होने से पहले ही डेटा को धीरे-धीरे प्रोसेस किया जाता है.
फ़ील्ड
mediaChunks[]

Blob

ज़रूरी नहीं. मीडिया इनपुट के लिए इनलाइन किया गया बाइट डेटा. एक से ज़्यादा mediaChunks का इस्तेमाल नहीं किया जा सकता. पहले mediaChunks को छोड़कर, बाकी सभी को अनदेखा कर दिया जाएगा.

अब काम नहीं करती: इसके बजाय, audio, video या text में से किसी एक का इस्तेमाल करें.

audio

Blob

ज़रूरी नहीं. ये रीयल-टाइम ऑडियो इनपुट स्ट्रीम बनाते हैं.

video

Blob

ज़रूरी नहीं. ये रीयल टाइम वीडियो इनपुट स्ट्रीम बनाते हैं.

activityStart

ActivityStart

ज़रूरी नहीं. उपयोगकर्ता गतिविधि की शुरुआत को मार्क करता है. यह सिर्फ़ तब भेजा जा सकता है, जब गतिविधि का अपने-आप पता चलने की सुविधा (यानी सर्वर-साइड) बंद हो.

activityEnd

ActivityEnd

ज़रूरी नहीं. उपयोगकर्ता गतिविधि के खत्म होने का निशान लगाता है. यह सिर्फ़ तब भेजा जा सकता है, जब गतिविधि का अपने-आप पता चलने की सुविधा (यानी सर्वर-साइड) बंद हो.

audioStreamEnd

bool

ज़रूरी नहीं. इससे पता चलता है कि ऑडियो स्ट्रीम खत्म हो गई है. जैसे, माइक्रोफ़ोन बंद होने की वजह से.

यह सिर्फ़ तब भेजा जाना चाहिए, जब गतिविधि का अपने-आप पता चलने की सुविधा चालू हो. यह सुविधा डिफ़ॉल्ट रूप से चालू होती है.

क्लाइंट, ऑडियो मैसेज भेजकर स्ट्रीम को फिर से खोल सकता है.

text

string

ज़रूरी नहीं. ये रीयल टाइम टेक्स्ट इनपुट स्ट्रीम बनाते हैं.

BidiGenerateContentServerContent

क्लाइंट मैसेज के जवाब में, मॉडल से जनरेट किया गया इंक्रीमेंटल सर्वर अपडेट.

कॉन्टेंट रीयल टाइम में नहीं, बल्कि जल्द से जल्द जनरेट होता है. क्लाइंट, रीयल टाइम में बफ़र करके वीडियो चला सकते हैं.

फ़ील्ड
generationComplete

bool

सिर्फ़ आउटपुट के लिए. अगर यह सही है, तो इसका मतलब है कि मॉडल जनरेट हो गया है.

मॉडल जनरेट करने के दौरान रुकावट आने पर, रुकावट वाले टर्न में 'generation_complete' मैसेज नहीं दिखेगा. यह 'interrupted > turn_complete' से होकर गुज़रेगा.

जब मॉडल रीयल टाइम प्लेबैक का अनुमान लगाता है, तो generation_complete और turn_complete के बीच देरी होगी. इसकी वजह यह है कि मॉडल, प्लेबैक खत्म होने का इंतज़ार करता है.

turnComplete

bool

सिर्फ़ आउटपुट के लिए. अगर यह सही है, तो इसका मतलब है कि मॉडल की बारी पूरी हो गई है. जनरेशन सिर्फ़ क्लाइंट के अन्य मैसेज के जवाब में शुरू होगा.

interrupted

bool

सिर्फ़ आउटपुट के लिए. अगर यह 'सही' है, तो इसका मतलब है कि किसी क्लाइंट मैसेज की वजह से, मॉडल जनरेशन की मौजूदा प्रोसेस में रुकावट आई है. अगर क्लाइंट, कॉन्टेंट को रीयल टाइम में चला रहा है, तो यह मौजूदा वीडियो चलाने की सूची को रोकने और खाली करने का एक अच्छा संकेत है.

groundingMetadata

GroundingMetadata

सिर्फ़ आउटपुट के लिए. जनरेट किए गए कॉन्टेंट के लिए ग्राउंडिंग मेटाडेटा.

outputTranscription

BidiGenerateContentTranscription

सिर्फ़ आउटपुट के लिए. ऑडियो की ट्रांसक्रिप्ट आउटपुट करना. ऑडियो को लेख में बदलने की सुविधा, सर्वर के अन्य मैसेज से अलग से भेजी जाती है. साथ ही, यह गारंटी नहीं है कि serverContent और इस outputTranscription के बीच ऑडियो को लेख में बदलने की सुविधा का मैसेज पहले आएगा या बाद में.

modelTurn

Content

सिर्फ़ आउटपुट के लिए. उपयोगकर्ता के साथ मौजूदा बातचीत के दौरान, मॉडल ने जो कॉन्टेंट जनरेट किया है.

BidiGenerateContentServerMessage

BidiGenerateContent कॉल के लिए रिस्पॉन्स मैसेज.

फ़ील्ड
usageMetadata

UsageMetadata

सिर्फ़ आउटपुट के लिए. जवाबों के इस्तेमाल से जुड़ा मेटाडेटा.

यूनियन फ़ील्ड messageType. मैसेज का टाइप. messageType इनमें से कोई एक हो सकता है:
setupComplete

BidiGenerateContentSetupComplete

सिर्फ़ आउटपुट के लिए. सेटअप पूरा होने पर, क्लाइंट से मिले BidiGenerateContentSetup मैसेज के जवाब में भेजा जाता है.

serverContent

BidiGenerateContentServerContent

सिर्फ़ आउटपुट के लिए. क्लाइंट के मैसेज के जवाब में मॉडल से जनरेट किया गया कॉन्टेंट.

toolCall

BidiGenerateContentToolCall

सिर्फ़ आउटपुट के लिए. क्लाइंट से functionCalls को लागू करने और मैच होने वाले id के साथ जवाब दिखाने का अनुरोध करें.

toolCallCancellation

BidiGenerateContentToolCallCancellation

सिर्फ़ आउटपुट के लिए. क्लाइंट के लिए सूचना कि तय किए गए id के साथ पहले जारी किया गया ToolCallMessage रद्द किया जाना चाहिए.

goAway

GoAway

सिर्फ़ आउटपुट के लिए. सर्वर जल्द ही डिसकनेक्ट होने की सूचना.

sessionResumptionUpdate

SessionResumptionUpdate

सिर्फ़ आउटपुट के लिए. सेशन फिर से शुरू होने की स्थिति अपडेट की गई.

BidiGenerateContentSetup

पहला (और सिर्फ़ पहला) BidiGenerateContentClientMessage में भेजा जाने वाला मैसेज. इसमें वह कॉन्फ़िगरेशन होता है जो स्ट्रीमिंग आरपीसी की अवधि के लिए लागू होगा.

क्लाइंट को कोई और मैसेज भेजने से पहले, 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

ज़रूरी नहीं. कॉन्टेक्स्ट विंडो को कंप्रेस करने के तरीके को कॉन्फ़िगर करता है.

अगर यह शामिल किया जाता है, तो कॉन्फ़िगर की गई लंबाई से ज़्यादा होने पर, सर्वर कॉन्टेक्स्ट का साइज़ अपने-आप कम कर देगा.

outputAudioTranscription

AudioTranscriptionConfig

ज़रूरी नहीं. अगर यह सेट है, तो मॉडल के ऑडियो आउटपुट का ट्रांसक्रिप्शन चालू हो जाता है. अगर कॉन्फ़िगर किया गया है, तो ट्रांसक्रिप्ट, आउटपुट ऑडियो के लिए तय किए गए भाषा कोड के हिसाब से अलाइन होती है.

BidiGenerateContentSetupComplete

इस टाइप में कोई फ़ील्ड नहीं होता.

क्लाइंट से मिले BidiGenerateContentSetup मैसेज के जवाब में भेजा गया.

BidiGenerateContentToolCall

क्लाइंट से functionCalls को लागू करने और मैच होने वाले id के साथ जवाब दिखाने का अनुरोध करें.

फ़ील्ड
functionCalls[]

FunctionCall

सिर्फ़ आउटपुट के लिए. वह फ़ंक्शन कॉल जिसे चलाना है.

BidiGenerateContentToolCallCancellation

क्लाइंट के लिए सूचना कि तय किए गए id के साथ पहले जारी किए गए ToolCallMessage को लागू नहीं किया जाना चाहिए और उसे रद्द कर दिया जाना चाहिए. अगर उन टूल कॉल से कोई साइड इफ़ेक्ट हुआ है, तो क्लाइंट उन टूल कॉल को पहले जैसा करने की कोशिश कर सकते हैं. यह मैसेज सिर्फ़ तब दिखता है, जब क्लाइंट सर्वर के क्रम में रुकावट डालते हैं.

फ़ील्ड
ids[]

string

सिर्फ़ आउटपुट के लिए. रद्द किए जाने वाले टूल कॉल के आईडी.

BidiGenerateContentToolResponse

सर्वर से मिले ToolCall के लिए, क्लाइंट से जनरेट किया गया रिस्पॉन्स. id फ़ील्ड की मदद से, अलग-अलग FunctionResponse ऑब्जेक्ट को उनके संबंधित FunctionCall ऑब्जेक्ट से मैच किया जाता है.

ध्यान दें कि यूनीरी और सर्वर-स्ट्रीमिंग GenerateContent APIs फ़ंक्शन को कॉल करने के लिए, Content पार्ट को एक्सचेंज किया जाता है. वहीं, बीडीआई GenerateContent APIs फ़ंक्शन को कॉल करने के लिए, मैसेज के इन खास सेट का इस्तेमाल किया जाता है.

फ़ील्ड
functionResponses[]

FunctionResponse

ज़रूरी नहीं. फ़ंक्शन कॉल का रिस्पॉन्स.

BidiGenerateContentTranscription

ऑडियो (इनपुट या आउटपुट) का ट्रांसक्रिप्शन.

फ़ील्ड
text

string

ट्रांसक्रिप्ट का टेक्स्ट.

ContextWindowCompressionConfig

कॉन्टेक्स्ट विंडो को छोटा करने की सुविधा चालू करता है. यह मॉडल की कॉन्टेक्स्ट विंडो को मैनेज करने का एक तरीका है, ताकि यह तय की गई लंबाई से ज़्यादा न हो.

फ़ील्ड
यूनियन फ़ील्ड compressionMechanism. कॉन्टेक्स्ट विंडो कंप्रेस करने के लिए इस्तेमाल किया जाने वाला तरीका. compressionMechanism इनमें से कोई एक हो सकता है:
slidingWindow

SlidingWindow

स्लाइडिंग-विंडो मेकेनिज्म.

triggerTokens

int64

टर्न चलाने से पहले, कॉन्टेक्स्ट विंडो कंप्रेस करने के लिए ज़रूरी टोकन की संख्या.

इसका इस्तेमाल, क्वालिटी और इंतज़ार के समय को संतुलित करने के लिए किया जा सकता है. ऐसा इसलिए, क्योंकि छोटी कॉन्टेक्स्ट विंडो से मॉडल के जवाब तेज़ी से मिल सकते हैं. हालांकि, किसी भी कंप्रेशन ऑपरेशन की वजह से, कुछ समय के लिए इंतज़ार का समय बढ़ जाता है. इसलिए, इन्हें बार-बार ट्रिगर नहीं किया जाना चाहिए.

अगर यह सेट नहीं है, तो डिफ़ॉल्ट रूप से यह वैल्यू, मॉडल की कॉन्टेक्स्ट विंडो की सीमा के 80% के बराबर होती है. इससे, उपयोगकर्ता के अगले अनुरोध/मॉडल के जवाब के लिए 20% बचता है.

EndSensitivity

इससे यह तय होता है कि बोली खत्म होने का पता कैसे लगाया जाए.

Enums
END_SENSITIVITY_UNSPECIFIED डिफ़ॉल्ट तौर पर, END_SENSITIVITY_HIGH सेट होता है.
END_SENSITIVITY_HIGH अपने-आप बोली पहचानने की सुविधा, बोली खत्म होने का पता लगाने में ज़्यादा समय लेती है.
END_SENSITIVITY_LOW अपने-आप बोली पहचानने की सुविधा, बोली खत्म होने पर कम बार काम करती है.

GoAway

सर्वर जल्द ही डिसकनेक्ट होने की सूचना.

फ़ील्ड
timeLeft

Duration

कनेक्शन खत्म होने से पहले बचे हुए समय को 'रद्द किया गया' के तौर पर दिखाया जाएगा.

यह अवधि, मॉडल के हिसाब से तय की गई कम से कम अवधि से कभी कम नहीं होगी. यह अवधि, मॉडल के लिए तय की गई किराये की सीमाओं के साथ बताई जाएगी.

RealtimeInputConfig

BidiGenerateContent में रीयल टाइम इनपुट के व्यवहार को कॉन्फ़िगर करता है.

फ़ील्ड
automaticActivityDetection

AutomaticActivityDetection

ज़रूरी नहीं. अगर यह सेट नहीं है, तो गतिविधि का अपने-आप पता चलने की सुविधा डिफ़ॉल्ट रूप से चालू रहती है. अगर बोली का अपने-आप पता चलने की सुविधा बंद है, तो क्लाइंट को गतिविधि के सिग्नल भेजने होंगे.

activityHandling

ActivityHandling

ज़रूरी नहीं. यह तय करता है कि गतिविधि का क्या असर होगा.

turnCoverage

TurnCoverage

ज़रूरी नहीं. यह तय करता है कि उपयोगकर्ता की बारी में कौनसा इनपुट शामिल किया जाए.

SessionResumptionConfig

सेशन फिर से शुरू करने का कॉन्फ़िगरेशन.

इस मैसेज को सेशन कॉन्फ़िगरेशन में BidiGenerateContentSetup.sessionResumption के तौर पर शामिल किया गया है. अगर कॉन्फ़िगर किया गया है, तो सर्वर SessionResumptionUpdate मैसेज भेजेगा.

फ़ील्ड
handle

string

पिछले सेशन का हैंडल. अगर यह मौजूद नहीं है, तो नया सेशन बनाया जाता है.

सेशन हैंडल, पिछले कनेक्शन में मौजूद SessionResumptionUpdate.token वैल्यू से मिलते हैं.

SessionResumptionUpdate

सेशन फिर से शुरू होने की स्थिति अपडेट की गई.

सिर्फ़ तब भेजा जाता है, जब BidiGenerateContentSetup.sessionResumption सेट किया गया हो.

फ़ील्ड
newHandle

string

नया हैंडल, जिससे ऐसी स्थिति के बारे में पता चलता है जिसे फिर से शुरू किया जा सकता है. अगर resumable=गलत है, तो खाली है.

resumable

bool

अगर मौजूदा सेशन को इस समय फिर से शुरू किया जा सकता है, तो यह वैल्यू 'सही' होगी.

सेशन के कुछ पॉइंट पर, इसे फिर से शुरू नहीं किया जा सकता. उदाहरण के लिए, जब मॉडल फ़ंक्शन कॉल को लागू कर रहा हो या जनरेट कर रहा हो. ऐसे में, पिछले सेशन टोकन का इस्तेमाल करके सेशन को फिर से शुरू करने पर, कुछ डेटा मिट जाएगा. ऐसे मामलों में, newHandle खाली होगा और resumable गलत होगा.

SlidingWindow

SlidingWindow का तरीका, कॉन्टेक्स्ट विंडो की शुरुआत में कॉन्टेंट को हटाकर काम करता है. नतीजे में मिलने वाला कॉन्टेक्स्ट, हमेशा उपयोगकर्ता की भूमिका के शुरू होने पर शुरू होगा. सिस्टम के निर्देश और कोई भी BidiGenerateContentSetup.prefixTurns, नतीजे की शुरुआत में हमेशा दिखेगा.

फ़ील्ड
targetTokens

int64

टारगेट किए गए टोकन की संख्या. डिफ़ॉल्ट वैल्यू, 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 उपयोगकर्ता के टर्न में, पिछले टर्न के बाद से किए गए सभी रीयल टाइम इनपुट शामिल होते हैं.इनमें कोई गतिविधि न होना भी शामिल है. उदाहरण के लिए, ऑडियो स्ट्रीम पर कोई आवाज़ न होना.

UsageMetadata

जवाबों के इस्तेमाल से जुड़ा मेटाडेटा.

फ़ील्ड
promptTokenCount

int32

सिर्फ़ आउटपुट के लिए. प्रॉम्प्ट में टोकन की संख्या. cachedContent सेट होने पर भी, यह प्रॉम्प्ट का कुल साइज़ होता है. इसका मतलब है कि इसमें कैश मेमोरी में सेव किए गए कॉन्टेंट में मौजूद टोकन की संख्या शामिल होती है.

cachedContentTokenCount

int32

प्रॉम्प्ट के कैश मेमोरी में सेव किए गए हिस्से (कैश मेमोरी में सेव किया गया कॉन्टेंट) में मौजूद टोकन की संख्या

responseTokenCount

int32

सिर्फ़ आउटपुट के लिए. जनरेट किए गए सभी संभावित जवाबों में मौजूद टोकन की कुल संख्या.

toolUsePromptTokenCount

int32

सिर्फ़ आउटपुट के लिए. टूल के इस्तेमाल से जुड़े प्रॉम्प्ट में मौजूद टोकन की संख्या.

thoughtsTokenCount

int32

सिर्फ़ आउटपुट के लिए. सोचने वाले मॉडल के लिए, विचारों के टोकन की संख्या.

totalTokenCount

int32

सिर्फ़ आउटपुट के लिए. जनरेट करने के अनुरोध (प्रॉम्प्ट + जवाब के उम्मीदवार) के लिए टोकन की कुल संख्या.

promptTokensDetails[]

ModalityTokenCount

सिर्फ़ आउटपुट के लिए. अनुरोध इनपुट में प्रोसेस किए गए मोड की सूची.

cacheTokensDetails[]

ModalityTokenCount

सिर्फ़ आउटपुट के लिए. अनुरोध इनपुट में कैश मेमोरी में सेव किए गए कॉन्टेंट के मोड की सूची.

responseTokensDetails[]

ModalityTokenCount

सिर्फ़ आउटपुट के लिए. रिस्पॉन्स में दिखाए गए मोड की सूची.

toolUsePromptTokensDetails[]

ModalityTokenCount

सिर्फ़ आउटपुट के लिए. टूल के इस्तेमाल के अनुरोध के इनपुट के लिए प्रोसेस किए गए मोड की सूची.

आम तौर पर इस्तेमाल होने वाले टाइप के बारे में ज़्यादा जानकारी

आम तौर पर इस्तेमाल होने वाले एपीआई रिसॉर्स टाइप Blob, Content, FunctionCall, FunctionResponse, GenerationConfig, GroundingMetadata, ModalityTokenCount, और Tool के बारे में ज़्यादा जानने के लिए, कॉन्टेंट जनरेट करना लेख पढ़ें.