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

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

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,
    "translationConfig": 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

ऑडियो को टेक्स्ट में बदलने की सुविधा का कॉन्फ़िगरेशन.

फ़ील्ड
languageCodes[]

string

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

customVocabulary[]

string

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

wordTimestamp

bool

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

diarization

bool

ज़रूरी नहीं. यह कुकी, स्पीकर डायराइज़ेशन की सुविधा को कॉन्फ़िगर करती है.

mode

Mode

ज़रूरी नहीं. इससे, ट्रांसक्रिप्शन मोड को कॉन्फ़िगर किया जा सकता है. इस्तेमाल की जा सकने वाली वैल्यू: VERBATIM, SMART. अगर कोई वैल्यू नहीं दी जाती है, तो डिफ़ॉल्ट रूप से VERBATIM ट्रांसक्रिप्शन की सुविधा चालू होती है. SMART मोड में, मॉडल इन कामों को करता है: शब्दों को हटाना (फ़िलर शब्दों, दोहराव, और गलत शुरुआत को हटाना), व्याकरण से जुड़ी मामूली गड़बड़ियों को ठीक करना, अपने-आप फ़ॉर्मैट करना (पैराग्राफ़, बुलेट पॉइंट, नंबर वाली सूचियां), और उपयोगकर्ता के मामूली बदलावों को लागू करना (लाइन में मौजूद शब्दों को खुद से ठीक करना). टाइमस्टैंप और डायराइज़ेशन, मोड SMART के साथ काम नहीं करते.

मोड

बोले जा रहे शब्दों को टेक्स्ट में बदलने की सुविधा.

Enums
MODE_UNSPECIFIED ट्रांसक्रिप्शन मोड की जानकारी नहीं दी गई है.
VERBATIM बोले गए शब्दों को हूबहू टेक्स्ट में बदलने वाला मोड.
SMART स्मार्ट ट्रांसक्रिप्शन मोड.

AutomaticActivityDetection

यह कुकी, गतिविधि का अपने-आप पता लगाने की सुविधा को कॉन्फ़िगर करती है.

फ़ील्ड
disabled

bool

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

startOfSpeechSensitivity

StartSensitivity

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

prefixPaddingMs

int32

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

endOfSpeechSensitivity

EndSensitivity

ज़रूरी नहीं. इससे यह तय होता है कि पहचानी गई आवाज़ कब खत्म हुई.

silenceDurationMs

int32

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

BidiGenerateContentClientContent

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

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

फ़ील्ड
turns[]

Content

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

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

turnComplete

bool

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

BidiGenerateContentRealtimeInput

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

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

यह BidiGenerateContentClientContent से इन मामलों में अलग है:

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

Blob

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

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

audio

Blob

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

video

Blob

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

activityStart

ActivityStart

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

activityEnd

ActivityEnd

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

mediaResolution

MediaResolution

ज़रूरी नहीं. इस्तेमाल करने के लिए मीडिया रिज़ॉल्यूशन. अगर यह जानकारी नहीं दी जाती है, तो setup.generationConfig.mediaResolution का इस्तेमाल किया जाता है. अगर सेटअप की जानकारी नहीं दी जाती है, तो डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है.

audioStreamEnd

bool

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

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

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

text

string

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

BidiGenerateContentServerContent

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

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

फ़ील्ड
generationComplete

bool

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

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

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

turnComplete

bool

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

interrupted

bool

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

groundingMetadata

GroundingMetadata

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

inputTranscription

BidiGenerateContentTranscription

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

interimInputTranscription

BidiGenerateContentTranscription

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

outputTranscription

BidiGenerateContentTranscription

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

urlContextMetadata

UrlContextMetadata

waitingForInput

bool

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

interactionStatus

InteractionStatus

सिर्फ़ आउटपुट के लिए. लाइव सेशन की मौजूदा गतिविधि का स्टेटस. इसे हमेशा turnComplete के साथ भेजा जाता है.

modelTurn

Content

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

BidiGenerateContentServerMessage

BidiGenerateContent कॉल के लिए जवाब का मैसेज.

फ़ील्ड
usageMetadata

UsageMetadata

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

voiceActivity

VoiceActivity

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

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

BidiGenerateContentSetupComplete

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

serverContent

BidiGenerateContentServerContent

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

toolCall

BidiGenerateContentToolCall

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

toolCallCancellation

BidiGenerateContentToolCallCancellation

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

goAway

GoAway

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

sessionResumptionUpdate

SessionResumptionUpdate

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

BidiGenerateContentSetup

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

क्लाइंट को कोई अन्य मैसेज भेजने से पहले, BidiGenerateContentSetupComplete मैसेज का इंतज़ार करना चाहिए.

फ़ील्ड
model

string

ज़रूरी है. मॉडल के संसाधन का नाम. यह मॉडल के इस्तेमाल के लिए आईडी के तौर पर काम करता है.

फ़ॉर्मैट: models/{model}

generationConfig

GenerationConfig

ज़रूरी नहीं. जनरेट करने का कॉन्फ़िगरेशन.

इन फ़ील्ड का इस्तेमाल नहीं किया जा सकता:

  • responseLogprobs
  • responseMimeType
  • logprobs
  • responseSchema
  • responseJsonSchema
  • stopSequence
  • skipResponseCache
  • routingConfig
  • audioTimestamp
systemInstruction

Content

ज़रूरी नहीं. उपयोगकर्ता ने मॉडल को सिस्टम के निर्देश दिए हैं.

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

tools[]

Tool

ज़रूरी नहीं. Tools की सूची, जिसका इस्तेमाल मॉडल अगले जवाब को जनरेट करने के लिए कर सकता है.

Tool एक ऐसा कोड होता है जिसकी मदद से सिस्टम, बाहरी सिस्टम के साथ इंटरैक्ट कर पाता है. इससे मॉडल के दायरे से बाहर कोई कार्रवाई या कार्रवाइयों का सेट किया जा सकता है.

realtimeInputConfig

RealtimeInputConfig

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

sessionResumption

SessionResumptionConfig

ज़रूरी नहीं. यह कुकी, सेशन को फिर से शुरू करने के तरीके को कॉन्फ़िगर करती है.

अगर इसे शामिल किया जाता है, तो सर्वर SessionResumptionUpdate मैसेज भेजेगा.

contextWindowCompression

ContextWindowCompressionConfig

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

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

inputAudioTranscription

AudioTranscriptionConfig

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

outputAudioTranscription

AudioTranscriptionConfig

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

proactivity

ProactivityConfig

ज़रूरी नहीं. यह कुकी, मॉडल के सुझाव देने की सुविधा को कॉन्फ़िगर करती है.

इससे मॉडल को इनपुट का तुरंत जवाब देने और काम के न होने वाले इनपुट को अनदेखा करने की अनुमति मिलती है.

historyConfig

HistoryConfig

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

labels

map<string, string>

ज़रूरी नहीं. अनुरोध के लिए, उपयोगकर्ता के तय किए गए मेटाडेटा वाले लेबल.

ज़रूरी नहीं. लेबल, Cloud के यूनीफ़ाइड लेबल से जुड़ी ज़रूरी शर्तों के मुताबिक होने चाहिए: - लेबल कुंजियों की शुरुआत अक्षर से होनी चाहिए. - लेबल कुंजियों और वैल्यू में 63 से ज़्यादा वर्ण (यूनिकोड कोडपॉइंट) नहीं हो सकते. साथ ही, इनमें सिर्फ़ अंग्रेज़ी के छोटे अक्षर, संख्याएं, अंडरस्कोर, और डैश इस्तेमाल किए जा सकते हैं. - इंटरनैशनल कैरेक्टर के इस्तेमाल की अनुमति है.

इस्तेमाल करने का तरीका: - एग्रीगेटर से मिले सुरक्षा आइडेंटिफ़ायर: safety_identifier कुंजी का इस्तेमाल करें (उदाहरण के लिए, {"safety_identifier": "user_session_123"})

BidiGenerateContentSetupComplete

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

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

BidiGenerateContentToolCall

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

फ़ील्ड
functionCalls[]

FunctionCall

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

BidiGenerateContentToolCallCancellation

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

फ़ील्ड
ids[]

string

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

BidiGenerateContentToolResponse

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

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

फ़ील्ड
functionResponses[]

FunctionResponse

ज़रूरी नहीं. फ़ंक्शन कॉल का जवाब.

BidiGenerateContentTranscription

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

फ़ील्ड
text

string

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

languageCode

string

ट्रांसक्रिप्शन का BCP-47 भाषा कोड.

startOffset

Duration

ज़रूरी नहीं. ऑडियो शुरू होने के समय के हिसाब से, ट्रांसक्रिप्शन शुरू होने का ऑफ़सेट.

endOffset

Duration

ज़रूरी नहीं. ऑडियो के शुरू होने के समय के हिसाब से, ट्रांसक्रिप्शन के खत्म होने का ऑफ़सेट.

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

कनेक्शन बंद होने से पहले का समय, ABORTED के तौर पर दिखेगा.

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

HistoryConfig

इतिहास का कॉन्फ़िगरेशन.

इस मैसेज को सेशन कॉन्फ़िगरेशन में BidiGenerateContentSetup.historyConfig के तौर पर शामिल किया गया है. यह कुकी, इतिहास के मैसेज के आदान-प्रदान को कॉन्फ़िगर करती है.

फ़ील्ड
initialHistoryInClientContent

bool

ज़रूरी नहीं. अगर यह सही है, तो setupComplete भेजने के बाद, सर्वर इंतज़ार करेगा और turnComplete के true होने तक, clientContent मैसेज को प्रोसेस करेगा. इस शुरुआती इतिहास से, मॉडल कॉल ट्रिगर नहीं होगी. साथ ही, यह MODEL भूमिका के साथ खत्म हो सकती है. turnComplete के true होने के बाद, क्लाइंट realtimeInput के ज़रिए रीयलटाइम में बातचीत शुरू कर सकता है.

InteractionStatus

लाइव सेशन की अलग-अलग ऐक्टिविटी स्टेट. यह फ़ील्ड हमेशा turnComplete के साथ भेजा जाता है. इससे यह पता चलता है कि सर्वर ने सभी प्रोसेस पूरी कर ली हैं या नहीं.

Enums
INTERACTION_STATUS_UNSPECIFIED इंटरैक्शन की स्थिति के बारे में कोई जानकारी नहीं है.
IN_PROGRESS सर्वर अब भी उपयोगकर्ता के इनपुट को प्रोसेस कर रहा है या बैकग्राउंड में काम कर रहा है. मॉडल से मिलने वाले ज़्यादा नतीजे यहां दिए जा सकते हैं.
REQUIRES_ACTION

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

IDLE सर्वर ने सभी प्रोसेसिंग और बैकग्राउंड की वजहों को पूरा कर लिया है.

ProactivityConfig

यह कॉन्फ़िगरेशन, सक्रियता बढ़ाने वाली सुविधाओं के लिए है.

फ़ील्ड
proactiveAudio

bool

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

RealtimeInputConfig

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

फ़ील्ड
automaticActivityDetection

AutomaticActivityDetection

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

activityHandling

ActivityHandling

ज़रूरी नहीं. इससे पता चलता है कि गतिविधि का क्या असर पड़ा.

turnCoverage

TurnCoverage

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

interimTranscriptTimestampEnabled

bool

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

SessionResumptionConfig

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

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

फ़ील्ड
handle

string

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

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

SessionResumptionUpdate

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

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

फ़ील्ड
newHandle

string

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

resumable

bool

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

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

SlidingWindow

स्लाइडिंग विंडो का तरीका, कॉन्टेक्स्ट विंडो की शुरुआत में मौजूद कॉन्टेंट को हटाकर काम करता है. कॉन्टेक्स्ट हमेशा USER की भूमिका के टर्न की शुरुआत से शुरू होगा. सिस्टम के निर्देश और कोई भी 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 अगर इसे तय नहीं किया जाता है, तो मॉडल के आधार पर डिफ़ॉल्ट ऐक्शन और सेटिंग चुनी जाती है. उदाहरण के लिए, Gemini 2.5 के लिए डिफ़ॉल्ट सेटिंग TURN_INCLUDES_ONLY_ACTIVITY है, जबकि Gemini 3.1 और इसके बाद के वर्शन के लिए यह TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO है.
TURN_INCLUDES_ONLY_ACTIVITY इसमें पिछली बारी के बाद की गतिविधि शामिल होती है.हालांकि, इसमें कोई गतिविधि न होने की जानकारी शामिल नहीं होती. जैसे, ऑडियो स्ट्रीम में कोई आवाज़ न होना.
TURN_INCLUDES_ALL_INPUT इसमें पिछली बारी के बाद से, रीयलटाइम में दिया गया सभी इनपुट शामिल होता है.इसमें कुछ न करना भी शामिल है. जैसे, ऑडियो स्ट्रीम पर कोई आवाज़ न होना.
TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO इसमें ऑडियो गतिविधि और पिछले टर्न से लेकर अब तक के सभी वीडियो शामिल होते हैं. गतिविधि का अपने-आप पता लगाने की सुविधा के साथ, ऑडियो गतिविधि का मतलब है बोली गई आवाज़. इसमें चुप्पी शामिल नहीं है.

TranslationConfig

अनुवाद की सुविधाओं के लिए कॉन्फ़िगरेशन.

फ़ील्ड
targetLanguageCode

string

ज़रूरी है. अनुवाद के लिए टारगेट वाली भाषा. बीसीपी-47 भाषा कोड (जैसे, "en", "es", "fr") को इस्तेमाल की जा सकने वाली वैल्यू के तौर पर इस्तेमाल किया जा सकता है.

echoTargetLanguage

bool

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

UrlContextMetadata

यूआरएल कॉन्टेक्स्ट को वापस पाने वाले टूल से जुड़ा मेटाडेटा.

फ़ील्ड
urlMetadata[]

UrlMetadata

यूआरएल कॉन्टेक्स्ट की सूची.

UsageMetadata

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

फ़ील्ड
promptTokenCount

int32

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

cachedContentTokenCount

int32

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

responseTokenCount

int32

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

toolUsePromptTokenCount

int32

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

thoughtsTokenCount

int32

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

totalTokenCount

int32

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

promptTokensDetails[]

ModalityTokenCount

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

cacheTokensDetails[]

ModalityTokenCount

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

responseTokensDetails[]

ModalityTokenCount

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

toolUsePromptTokensDetails[]

ModalityTokenCount

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

VoiceActivity

ऑडियो स्ट्रीम में आवाज़ का पता चला.

फ़ील्ड
type

Type

सिर्फ़ आउटपुट के लिए. वीएडी(आवाज़ का पता लगाने की तकनीक) सिग्नल का टाइप.

audioOffset

Duration

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

टाइप

वीएडी सिग्नल का टाइप.

Enums
TYPE_UNSPECIFIED डिफ़ॉल्ट वैल्यू UNSPECIFIED है.
ACTIVITY_START वाक्य की शुरुआत का सिग्नल.
ACTIVITY_END वाक्य के आखिर में सिग्नल.

कुछ समय के लिए मान्य पुष्टि करने वाले टोकन

अस्थायी पुष्टि करने वाले टोकन पाने के लिए, AuthTokenService.CreateToken को कॉल करें. इसके बाद, GenerativeService.BidiGenerateContentConstrained के साथ इनका इस्तेमाल करें. इसके लिए, टोकन को access_token क्वेरी पैरामीटर में पास करें या एचटीटीपी Authorization हेडर में "Token" प्रीफ़िक्स के साथ पास करें.

CreateAuthTokenRequest

कुछ समय के लिए मान्य ऑथेंटिकेशन टोकन बनाएं.

फ़ील्ड
authToken

AuthToken

ज़रूरी है. बनाया जाने वाला टोकन.

AuthToken

यह कुछ समय के लिए मान्य ऑथेंटिकेशन टोकन बनाने का अनुरोध है.

फ़ील्ड
name

string

सिर्फ़ आउटपुट के लिए. आइडेंटिफ़ायर. टोकन.

expireTime

Timestamp

ज़रूरी नहीं. सिर्फ़ इनपुट के लिए. इम्यूटेबल. यह एक वैकल्पिक समय है. इसके बाद, इस टोकन का इस्तेमाल करने पर, BidiGenerateContent सेशन में मौजूद मैसेज अस्वीकार कर दिए जाएंगे. (Gemini, इस समय के बाद सेशन को पहले से ही बंद कर सकता है.)

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

newSessionExpireTime

Timestamp

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

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

fieldMask

FieldMask

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

अगर field_mask खाली है और bidiGenerateContentSetup is मौजूद है, तो इस अनुरोध में BidiGenerateContentSetup मैसेज, पूरी तरह से bidiGenerateContentSetup से लिया जाता है. लाइव एपीआई कनेक्शन से मिले सेटअप मैसेज को अनदेखा किया जाता है.

अगर field_mask खाली नहीं है, तो bidiGenerateContentSetup में मौजूद फ़ील्ड, Live API कनेक्शन में सेटअप मैसेज के फ़ील्ड को बदल देंगे.

यूनियन फ़ील्ड config. नतीजे के तौर पर मिले टोकन के लिए, तरीके के हिसाब से कॉन्फ़िगरेशन. config इनमें से सिर्फ़ एक हो सकता है:
bidiGenerateContentSetup

BidiGenerateContentSetup

ज़रूरी नहीं. सिर्फ़ इनपुट के लिए. इम्यूटेबल. BidiGenerateContent के लिए कॉन्फ़िगरेशन.

uses

int32

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

सामान्य टाइप के बारे में ज़्यादा जानकारी

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