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 |
ज़रूरी नहीं. अगर यह सेटिंग चालू है (डिफ़ॉल्ट रूप से), तो बोली और टेक्स्ट इनपुट को गतिविधि के तौर पर गिना जाता है. अगर यह सुविधा बंद है, तो क्लाइंट को गतिविधि के सिग्नल भेजने होंगे. |
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 |
सिर्फ़ आउटपुट के लिए. जनरेट किए गए कॉन्टेंट के लिए ग्राउंडिंग मेटाडेटा. |
outputTranscription |
सिर्फ़ आउटपुट के लिए. ऑडियो की ट्रांसक्रिप्ट आउटपुट करना. ऑडियो को लेख में बदलने की सुविधा, सर्वर के अन्य मैसेज से अलग से भेजी जाती है. साथ ही, यह गारंटी नहीं है कि |
modelTurn |
सिर्फ़ आउटपुट के लिए. उपयोगकर्ता के साथ मौजूदा बातचीत के दौरान, मॉडल ने जो कॉन्टेंट जनरेट किया है. |
BidiGenerateContentServerMessage
BidiGenerateContent कॉल के लिए रिस्पॉन्स मैसेज.
फ़ील्ड | |
---|---|
usageMetadata |
सिर्फ़ आउटपुट के लिए. जवाबों के इस्तेमाल से जुड़ा मेटाडेटा. |
यूनियन फ़ील्ड messageType . मैसेज का टाइप. messageType इनमें से कोई एक हो सकता है: |
|
setupComplete |
सिर्फ़ आउटपुट के लिए. सेटअप पूरा होने पर, क्लाइंट से मिले |
serverContent |
सिर्फ़ आउटपुट के लिए. क्लाइंट के मैसेज के जवाब में मॉडल से जनरेट किया गया कॉन्टेंट. |
toolCall |
सिर्फ़ आउटपुट के लिए. क्लाइंट से |
toolCallCancellation |
सिर्फ़ आउटपुट के लिए. क्लाइंट के लिए सूचना कि तय किए गए |
goAway |
सिर्फ़ आउटपुट के लिए. सर्वर जल्द ही डिसकनेक्ट होने की सूचना. |
sessionResumptionUpdate |
सिर्फ़ आउटपुट के लिए. सेशन फिर से शुरू होने की स्थिति अपडेट की गई. |
BidiGenerateContentSetup
पहला (और सिर्फ़ पहला) BidiGenerateContentClientMessage
में भेजा जाने वाला मैसेज. इसमें वह कॉन्फ़िगरेशन होता है जो स्ट्रीमिंग आरपीसी की अवधि के लिए लागू होगा.
क्लाइंट को कोई और मैसेज भेजने से पहले, BidiGenerateContentSetupComplete
मैसेज का इंतज़ार करना चाहिए.
फ़ील्ड | |
---|---|
model |
ज़रूरी है. मॉडल के संसाधन का नाम. यह मॉडल के लिए आईडी के तौर पर काम करता है. फ़ॉर्मैट: |
generationConfig |
ज़रूरी नहीं. जनरेशन कॉन्फ़िगरेशन. ये फ़ील्ड काम नहीं करते:
|
systemInstruction |
ज़रूरी नहीं. मॉडल के लिए, उपयोगकर्ता ने सिस्टम के लिए जो निर्देश दिए हैं. ध्यान दें: हिस्सों में सिर्फ़ टेक्स्ट का इस्तेमाल किया जाना चाहिए. साथ ही, हर हिस्से का कॉन्टेंट अलग-अलग पैराग्राफ़ में होना चाहिए. |
tools[] |
ज़रूरी नहीं.
|
realtimeInputConfig |
ज़रूरी नहीं. रीयल टाइम इनपुट को मैनेज करने की सुविधा कॉन्फ़िगर करता है. |
sessionResumption |
ज़रूरी नहीं. सेशन फिर से शुरू करने की सुविधा को कॉन्फ़िगर करता है. अगर यह शामिल है, तो सर्वर |
contextWindowCompression |
ज़रूरी नहीं. कॉन्टेक्स्ट विंडो को कंप्रेस करने के तरीके को कॉन्फ़िगर करता है. अगर यह शामिल किया जाता है, तो कॉन्फ़िगर की गई लंबाई से ज़्यादा होने पर, सर्वर कॉन्टेक्स्ट का साइज़ अपने-आप कम कर देगा. |
outputAudioTranscription |
ज़रूरी नहीं. अगर यह सेट है, तो मॉडल के ऑडियो आउटपुट का ट्रांसक्रिप्शन चालू हो जाता है. अगर कॉन्फ़िगर किया गया है, तो ट्रांसक्रिप्ट, आउटपुट ऑडियो के लिए तय किए गए भाषा कोड के हिसाब से अलाइन होती है. |
BidiGenerateContentSetupComplete
इस टाइप में कोई फ़ील्ड नहीं होता.
क्लाइंट से मिले BidiGenerateContentSetup
मैसेज के जवाब में भेजा गया.
BidiGenerateContentToolCall
क्लाइंट से functionCalls
को लागू करने और मैच होने वाले id
के साथ जवाब दिखाने का अनुरोध करें.
फ़ील्ड | |
---|---|
functionCalls[] |
सिर्फ़ आउटपुट के लिए. वह फ़ंक्शन कॉल जिसे चलाना है. |
BidiGenerateContentToolCallCancellation
क्लाइंट के लिए सूचना कि तय किए गए id
के साथ पहले जारी किए गए ToolCallMessage
को लागू नहीं किया जाना चाहिए और उसे रद्द कर दिया जाना चाहिए. अगर उन टूल कॉल से कोई साइड इफ़ेक्ट हुआ है, तो क्लाइंट उन टूल कॉल को पहले जैसा करने की कोशिश कर सकते हैं. यह मैसेज सिर्फ़ तब दिखता है, जब क्लाइंट सर्वर के क्रम में रुकावट डालते हैं.
फ़ील्ड | |
---|---|
ids[] |
सिर्फ़ आउटपुट के लिए. रद्द किए जाने वाले टूल कॉल के आईडी. |
BidiGenerateContentToolResponse
सर्वर से मिले ToolCall
के लिए, क्लाइंट से जनरेट किया गया रिस्पॉन्स. id
फ़ील्ड की मदद से, अलग-अलग FunctionResponse
ऑब्जेक्ट को उनके संबंधित FunctionCall
ऑब्जेक्ट से मैच किया जाता है.
ध्यान दें कि यूनीरी और सर्वर-स्ट्रीमिंग GenerateContent APIs फ़ंक्शन को कॉल करने के लिए, Content
पार्ट को एक्सचेंज किया जाता है. वहीं, बीडीआई GenerateContent APIs फ़ंक्शन को कॉल करने के लिए, मैसेज के इन खास सेट का इस्तेमाल किया जाता है.
फ़ील्ड | |
---|---|
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 |
कनेक्शन खत्म होने से पहले बचे हुए समय को 'रद्द किया गया' के तौर पर दिखाया जाएगा. यह अवधि, मॉडल के हिसाब से तय की गई कम से कम अवधि से कभी कम नहीं होगी. यह अवधि, मॉडल के लिए तय की गई किराये की सीमाओं के साथ बताई जाएगी. |
RealtimeInputConfig
BidiGenerateContent
में रीयल टाइम इनपुट के व्यवहार को कॉन्फ़िगर करता है.
फ़ील्ड | |
---|---|
automaticActivityDetection |
ज़रूरी नहीं. अगर यह सेट नहीं है, तो गतिविधि का अपने-आप पता चलने की सुविधा डिफ़ॉल्ट रूप से चालू रहती है. अगर बोली का अपने-आप पता चलने की सुविधा बंद है, तो क्लाइंट को गतिविधि के सिग्नल भेजने होंगे. |
activityHandling |
ज़रूरी नहीं. यह तय करता है कि गतिविधि का क्या असर होगा. |
turnCoverage |
ज़रूरी नहीं. यह तय करता है कि उपयोगकर्ता की बारी में कौनसा इनपुट शामिल किया जाए. |
SessionResumptionConfig
सेशन फिर से शुरू करने का कॉन्फ़िगरेशन.
इस मैसेज को सेशन कॉन्फ़िगरेशन में BidiGenerateContentSetup.sessionResumption
के तौर पर शामिल किया गया है. अगर कॉन्फ़िगर किया गया है, तो सर्वर SessionResumptionUpdate
मैसेज भेजेगा.
फ़ील्ड | |
---|---|
handle |
पिछले सेशन का हैंडल. अगर यह मौजूद नहीं है, तो नया सेशन बनाया जाता है. सेशन हैंडल, पिछले कनेक्शन में मौजूद |
SessionResumptionUpdate
सेशन फिर से शुरू होने की स्थिति अपडेट की गई.
सिर्फ़ तब भेजा जाता है, जब BidiGenerateContentSetup.sessionResumption
सेट किया गया हो.
फ़ील्ड | |
---|---|
newHandle |
नया हैंडल, जिससे ऐसी स्थिति के बारे में पता चलता है जिसे फिर से शुरू किया जा सकता है. अगर |
resumable |
अगर मौजूदा सेशन को इस समय फिर से शुरू किया जा सकता है, तो यह वैल्यू 'सही' होगी. सेशन के कुछ पॉइंट पर, इसे फिर से शुरू नहीं किया जा सकता. उदाहरण के लिए, जब मॉडल फ़ंक्शन कॉल को लागू कर रहा हो या जनरेट कर रहा हो. ऐसे में, पिछले सेशन टोकन का इस्तेमाल करके सेशन को फिर से शुरू करने पर, कुछ डेटा मिट जाएगा. ऐसे मामलों में, |
SlidingWindow
SlidingWindow का तरीका, कॉन्टेक्स्ट विंडो की शुरुआत में कॉन्टेंट को हटाकर काम करता है. नतीजे में मिलने वाला कॉन्टेक्स्ट, हमेशा उपयोगकर्ता की भूमिका के शुरू होने पर शुरू होगा. सिस्टम के निर्देश और कोई भी 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 |
उपयोगकर्ता के टर्न में, पिछले टर्न के बाद से किए गए सभी रीयल टाइम इनपुट शामिल होते हैं.इनमें कोई गतिविधि न होना भी शामिल है. उदाहरण के लिए, ऑडियो स्ट्रीम पर कोई आवाज़ न होना. |
UsageMetadata
जवाबों के इस्तेमाल से जुड़ा मेटाडेटा.
फ़ील्ड | |
---|---|
promptTokenCount |
सिर्फ़ आउटपुट के लिए. प्रॉम्प्ट में टोकन की संख्या. |
cachedContentTokenCount |
प्रॉम्प्ट के कैश मेमोरी में सेव किए गए हिस्से (कैश मेमोरी में सेव किया गया कॉन्टेंट) में मौजूद टोकन की संख्या |
responseTokenCount |
सिर्फ़ आउटपुट के लिए. जनरेट किए गए सभी संभावित जवाबों में मौजूद टोकन की कुल संख्या. |
toolUsePromptTokenCount |
सिर्फ़ आउटपुट के लिए. टूल के इस्तेमाल से जुड़े प्रॉम्प्ट में मौजूद टोकन की संख्या. |
thoughtsTokenCount |
सिर्फ़ आउटपुट के लिए. सोचने वाले मॉडल के लिए, विचारों के टोकन की संख्या. |
totalTokenCount |
सिर्फ़ आउटपुट के लिए. जनरेट करने के अनुरोध (प्रॉम्प्ट + जवाब के उम्मीदवार) के लिए टोकन की कुल संख्या. |
promptTokensDetails[] |
सिर्फ़ आउटपुट के लिए. अनुरोध इनपुट में प्रोसेस किए गए मोड की सूची. |
cacheTokensDetails[] |
सिर्फ़ आउटपुट के लिए. अनुरोध इनपुट में कैश मेमोरी में सेव किए गए कॉन्टेंट के मोड की सूची. |
responseTokensDetails[] |
सिर्फ़ आउटपुट के लिए. रिस्पॉन्स में दिखाए गए मोड की सूची. |
toolUsePromptTokensDetails[] |
सिर्फ़ आउटपुट के लिए. टूल के इस्तेमाल के अनुरोध के इनपुट के लिए प्रोसेस किए गए मोड की सूची. |
आम तौर पर इस्तेमाल होने वाले टाइप के बारे में ज़्यादा जानकारी
आम तौर पर इस्तेमाल होने वाले एपीआई रिसॉर्स टाइप Blob
,
Content
, FunctionCall
, FunctionResponse
, GenerationConfig
,
GroundingMetadata
, ModalityTokenCount
, और Tool
के बारे में ज़्यादा जानने के लिए, कॉन्टेंट जनरेट करना लेख पढ़ें.