Multimodal Live API

मल्टीमोडल लाइव एपीआई की मदद से, Gemini के साथ कम इंतज़ार के साथ, दोनों तरफ़ से आवाज़ और वीडियो के ज़रिए इंटरैक्ट किया जा सकता है. Multimodal Live API का इस्तेमाल करके, उपयोगकर्ताओं को इंसानों जैसी आवाज़ में बातचीत करने की सुविधा दी जा सकती है. साथ ही, वॉइस कमांड का इस्तेमाल करके, मॉडल के जवाबों में रुकावट डाली जा सकती है. यह मॉडल, टेक्स्ट, ऑडियो, और वीडियो इनपुट को प्रोसेस कर सकता है. साथ ही, यह टेक्स्ट और ऑडियो आउटपुट दे सकता है.

मिलने वाली अनुमतियां

मल्टीमोडल लाइव एपीआई में ये मुख्य सुविधाएं शामिल हैं:

  • मल्टीमोडलिटी: मॉडल देख सकता है, सुन सकता है, और बोल सकता है.
  • वीडियो स्ट्रीम होने और उसके दिखने के समय का अंतर बहुत कम करें: इससे तुरंत जवाब मिलते हैं.
  • सेशन मेमोरी: मॉडल, किसी एक सेशन में हुए सभी इंटरैक्शन की जानकारी को सेव रखता है. इससे, पहले सुनी या देखी गई जानकारी को याद किया जा सकता है.
  • टूल के तौर पर फ़ंक्शन कॉल करने, कोड को लागू करने, और Search के लिए सहायता: बाहरी सेवाओं और डेटा सोर्स के साथ इंटिग्रेशन की सुविधा चालू करता है.
  • ऑटोमेटेड वॉइस ऐक्टिविटी डिटेक्शन (वीएडी): यह मॉडल, उपयोगकर्ता के बोलने और बोलना बंद करने के समय की सटीक जानकारी दे सकता है. इससे, बातचीत के तौर पर स्वाभाविक तरीके से इंटरैक्ट किया जा सकता है. साथ ही, उपयोगकर्ता किसी भी समय मॉडल को बीच में रोक सकते हैं.

मल्टीमॉडल लाइव एपीआई को Google AI Studio में आज़माया जा सकता है.

अपनी प्रोफ़ाइल बनाना शुरू करें

मल्टीमोडल लाइव एपीआई, एक स्टेटफ़ुल एपीआई है. यह WebSockets का इस्तेमाल करता है.

इस सेक्शन में, टेक्स्ट से टेक्स्ट जनरेट करने के लिए, Python 3.9 और उसके बाद के वर्शन का इस्तेमाल करके, Multimodal Live API का इस्तेमाल करने का उदाहरण दिया गया है.

Gemini API लाइब्रेरी इंस्टॉल करना

google-genai पैकेज को इंस्टॉल करने के लिए, pip कमांड का इस्तेमाल करें:

!pip3 install google-genai

डिपेंडेंसी इंपोर्ट करना

डिपेंडेंसी इंपोर्ट करने के लिए:

from google import genai

मैसेज भेजना और पाना

import asyncio
from google import genai

client = genai.Client(api_key="GEMINI_API_KEY", http_options={'api_version': 'v1alpha'})
model_id = "gemini-2.0-flash-exp"
config = {"response_modalities": ["TEXT"]}

async def main():
    async with client.aio.live.connect(model=model_id, config=config) as session:
        while True:
            message = input("User> ")
            if message.lower() == "exit":
                break
            await session.send(message, end_of_turn=True)

            async for response in session.receive():
                if response.text is None:
                    continue
                print(response.text, end="")

if __name__ == "__main__":
    asyncio.run(main())

इंटिग्रेशन गाइड

इस सेक्शन में बताया गया है कि Multimodal Live API के साथ इंटिग्रेशन कैसे काम करता है.

सेशन

सेशन, क्लाइंट और Gemini सर्वर के बीच एक WebSocket कनेक्शन दिखाता है.

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

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

कनेक्ट होने के बाद, पहले मैसेज में सेशन कॉन्फ़िगरेशन भेजा जाता है. सेशन कॉन्फ़िगरेशन में मॉडल, जनरेशन पैरामीटर, सिस्टम के निर्देश, और टूल शामिल होते हैं.

कॉन्फ़िगरेशन का यह उदाहरण देखें:

{​​
  "model": string,
  "generation_config": {
    "candidate_count": integer,
    "max_output_tokens": integer,
    "temperature": number,
    "top_p": number,
    "top_k": integer,
    "presence_penalty": number,
    "frequency_penalty": number,
    "response_modalities": string,
    "speech_config":object
  },

  "system_instruction": "",
  "tools":[]
}

ज़्यादा जानकारी के लिए, BidiGenerateContentSetup देखें.

मैसेज भेजें

मैसेज, JSON फ़ॉर्मैट में होती हैं. इन्हें WebSocket कनेक्शन पर भेजा जाता है.

मैसेज भेजने के लिए, क्लाइंट को JSON फ़ॉर्मैट की गई स्ट्रिंग में, काम करने वाला क्लाइंट मैसेज भेजना होगा. साथ ही, यह मैसेज किसी ओपन WebSocket कनेक्शन के ज़रिए भेजा जाना चाहिए.

इस्तेमाल किए जा सकने वाले क्लाइंट मैसेज

काम करने वाले क्लाइंट मैसेज की जानकारी नीचे दी गई टेबल में देखें:

मैसेज ब्यौरा
BidiGenerateContentSetup पहले मैसेज में भेजा जाने वाला सेशन कॉन्फ़िगरेशन
BidiGenerateContentClientContent क्लाइंट से डिलीवर की गई मौजूदा बातचीत का इंक्रीमेंटल कॉन्टेंट अपडेट
BidiGenerateContentRealtimeInput रीयल टाइम ऑडियो या वीडियो इनपुट
BidiGenerateContentToolResponse सर्वर से मिले ToolCallMessage का जवाब

मैसेज पाना

Gemini से मैसेज पाने के लिए, WebSocket 'message' इवेंट को सुनें. इसके बाद, काम करने वाले सर्वर मैसेज की परिभाषा के हिसाब से नतीजे को पार्स करें.

यह देखें:

ws.addEventListener("message", async (evt) => {
  if (evt.data instanceof Blob) {
    // Process the received data (audio, video, etc.)
  } else {
    // Process JSON response
  }
});

इस्तेमाल किए जा सकने वाले सर्वर मैसेज

काम करने वाले सर्वर मैसेज देखने के लिए, नीचे दी गई टेबल देखें:

मैसेज ब्यौरा
BidiGenerateContentSetupComplete सेटअप पूरा होने पर, क्लाइंट से मिला BidiGenerateContentSetup मैसेज
BidiGenerateContentServerContent क्लाइंट के मैसेज के जवाब में मॉडल से जनरेट किया गया कॉन्टेंट
BidiGenerateContentToolCall क्लाइंट से फ़ंक्शन कॉल चलाने और मैच होने वाले आईडी के साथ रिस्पॉन्स दिखाने का अनुरोध करना
BidiGenerateContentToolCallCancellation उपयोगकर्ता के मॉडल के आउटपुट में रुकावट डालने की वजह से, फ़ंक्शन कॉल रद्द होने पर भेजा जाता है

कॉन्टेंट के इंक्रीमेंटल अपडेट

टेक्स्ट इनपुट भेजने, सेशन के कॉन्टेक्स्ट को सेट करने या उसे वापस लाने के लिए, इंक्रीमेंटल अपडेट का इस्तेमाल करें. छोटे कॉन्टेक्स्ट के लिए, इवेंट के सटीक क्रम को दिखाने के लिए, बारी-बारी से निर्देश देने वाले इंटरैक्शन भेजे जा सकते हैं. लंबे कॉन्टेक्स्ट के लिए, हमारा सुझाव है कि एक मैसेज की खास जानकारी दें, ताकि फ़ॉलो अप इंटरैक्शन के लिए कॉन्टेक्स्ट विंडो खाली हो सके.

संदर्भ मैसेज का यह उदाहरण देखें:

{
  "client_content": {
    "turns": [
      {
          "parts":[
          {
            "text": ""
          }
        ],
        "role":"user"
      },
      {
          "parts":[
          {
            "text": ""
          }
        ],
        "role":"model"
      }
    ],
    "turn_complete": true
  }
}

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

ऑडियो और वीडियो स्ट्रीम करना

फ़ंक्शन कॉल करना

सभी फ़ंक्शन, सेशन की शुरुआत में ही तय कर दिए जाने चाहिए. इसके लिए, BidiGenerateContentSetup मैसेज के हिस्से के तौर पर टूल की परिभाषाएं भेजें.

फ़ंक्शन कॉल करने के बारे में ज़्यादा जानने के लिए, फ़ंक्शन कॉल करने के बारे में ट्यूटोरियल देखें.

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

क्लाइंट को BidiGenerateContentToolResponse के साथ जवाब देना चाहिए.

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

ऑडियो फ़ॉर्मैट

Multimodal Live API, इन ऑडियो फ़ॉर्मैट के साथ काम करता है:

  • इनपुट ऑडियो फ़ॉर्मैट: 16kHz के लिटल-इंडियन फ़ॉर्मैट में रॉ 16 बिट PCM ऑडियो
  • आउटपुट ऑडियो फ़ॉर्मैट: 24kHz के लिटल-इंडियन फ़ॉर्मैट में रॉ 16 बिट PCM ऑडियो

सिस्टम से जुड़े निर्देश

मॉडल के आउटपुट को बेहतर तरीके से कंट्रोल करने के लिए, सिस्टम को निर्देश दिए जा सकते हैं. साथ ही, ऑडियो जवाबों की टोन और सेंटीमेंट के बारे में भी बताया जा सकता है.

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

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

कॉल और मैसेज को रोकें

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

इसके अलावा, Gemini सर्वर उन सभी फ़ंक्शन कॉल को खारिज कर देता है जो प्रोसेस नहीं हो पाए हैं. साथ ही, रद्द किए गए कॉल के आईडी के साथ BidiGenerateContentServerContent मैसेज भेजता है.

आवाज़ें

मल्टीमोडल लाइव एपीआई, इन आवाज़ों के साथ काम करता है: Aoede, Charon, Fenrir, Kore, और Puck.

किसी आवाज़ को चुनने के लिए, सेशन कॉन्फ़िगरेशन के हिस्से के तौर पर, speech_config ऑब्जेक्ट में voice_name सेट करें.

speech_config ऑब्जेक्ट को JSON में दिखाने का तरीका यहां देखें:

{
  "voice_config": {
    "prebuilt_voice_config ": {
      "voice_name": <var>VOICE_NAME</var>
    }
  }
}

सीमाएं

अपना प्रोजेक्ट प्लान करते समय, Multimodal Live API और Gemini 2.0 की इन सीमाओं का ध्यान रखें.

क्लाइंट प्रमाणीकरण

मल्टीमोडल लाइव एपीआई सिर्फ़ सर्वर-टू-सर्वर पुष्टि की सुविधा देता है. साथ ही, इसका सुझाव सीधे क्लाइंट के इस्तेमाल के लिए नहीं दिया जाता. Multimodal Live API की मदद से सुरक्षित तरीके से पुष्टि करने के लिए, क्लाइंट इनपुट को किसी इंटरमीडियरी ऐप्लिकेशन सर्वर के ज़रिए भेजा जाना चाहिए.

हमारा सुझाव है कि वेब और मोबाइल ऐप्लिकेशन के लिए, Daily पर हमारे पार्टनर के इंटिग्रेशन का इस्तेमाल करें.

बातचीत का इतिहास

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

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

सेशन की ज़्यादा से ज़्यादा अवधि

ऑडियो के लिए सेशन की अवधि 15 मिनट तक और ऑडियो और वीडियो के लिए दो मिनट तक सीमित है. सेशन की अवधि तय सीमा से ज़्यादा होने पर, कनेक्शन बंद कर दिया जाता है.

मॉडल, कॉन्टेक्स्ट के साइज़ से भी सीमित होता है. वीडियो और ऑडियो स्ट्रीम के साथ-साथ, कॉन्टेंट के बड़े हिस्से भेजने पर, सेशन जल्दी खत्म हो सकता है.

आवाज़ की गतिविधि का पता लगाने की सुविधा (वीएडी)

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

टोकन की संख्या

टोकन की संख्या का इस्तेमाल नहीं किया जा सकता.

दर की सीमाएं

दर से जुड़ी ये सीमाएं लागू होती हैं:

  • हर एपीआई पासकोड के लिए, एक साथ तीन सेशन
  • हर मिनट 40 लाख टोकन

मैसेज और इवेंट

BidiGenerateContentClientContent

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

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

फ़ील्ड
turns[]

Content

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

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

turn_complete

bool

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

BidiGenerateContentRealtimeInput

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

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

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

Blob

ज़रूरी नहीं. मीडिया इनपुट के लिए इनलाइन किया गया बाइट डेटा.

BidiGenerateContentServerContent

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

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

फ़ील्ड
turn_complete

bool

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

interrupted

bool

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

grounding_metadata

GroundingMetadata

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

model_turn

Content

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

BidiGenerateContentSetup

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

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

फ़ील्ड
model

string

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

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

generation_config

GenerationConfig

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

ये फ़ील्ड काम नहीं करते:

  • response_logprobs
  • response_mime_type
  • logprobs
  • response_schema
  • stop_sequence
  • routing_config
  • audio_timestamp
system_instruction

Content

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

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

tools[]

Tool

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

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

BidiGenerateContentSetupComplete

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

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

BidiGenerateContentToolCall

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

फ़ील्ड
function_calls[]

FunctionCall

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

BidiGenerateContentToolCallCancellation

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

फ़ील्ड
ids[]

string

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

BidiGenerateContentToolResponse

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

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

फ़ील्ड
function_responses[]

FunctionResponse

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

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

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