OpenAI compatibility

Gemini मॉडल को REST API के साथ-साथ OpenAI लाइब्रेरी (Python और TypeScript / Javascript) का इस्तेमाल करके ऐक्सेस किया जा सकता है. इसके लिए, आपको तीन लाइन का कोड अपडेट करना होगा और अपनी Gemini API पासकोड का इस्तेमाल करना होगा. डिवाइसों के साथ काम करने की सुविधा से जुड़ी गाइड में, इस सुविधा के बारे में ज़्यादा पढ़ें.

तरीका: chatCompletions

चैट के इतिहास के इनपुट के आधार पर, मॉडल से जवाबों का सेट जनरेट करता है.

एंडपॉइंट

पोस्ट https://generativelanguage.googleapis.com/v1beta:chatCompletions

यूआरएल में gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल किया गया है.

अनुरोध का मुख्य भाग

अनुरोध के मुख्य भाग में, नीचे दिए गए स्ट्रक्चर वाला डेटा होता है:

फ़ील्ड
model string

ज़रूरी है. Model का नाम, जिसका इस्तेमाल पूरा होने की जानकारी जनरेट करने के लिए किया जाएगा. अगर मॉडल के नाम में कोई स्लैश नहीं दिखता है, तो मॉडल के नाम के आगे "models/" जोड़ दिया जाएगा.

messages[] object (Struct format)

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

stream boolean

ज़रूरी नहीं. जवाब को स्ट्रीम करना है या एक जवाब दिखाना है.

अगर यह सही है, तो जवाब में "ऑब्जेक्ट" फ़ील्ड "chat.completion.chunk" होगा. अगर ऐसा नहीं है, तो यह "chat.completion" होगा.

streamOptions object (StreamOptions)

ज़रूरी नहीं. स्ट्रीमिंग के अनुरोधों के लिए विकल्प.

tools[] object (ChatTool)

ज़रूरी नहीं. टूल का सेट, जिसके लिए मॉडल कॉल जनरेट कर सकता है. हर टूल अपने हस्ताक्षर की जानकारी देता है.

toolChoice value (Value format)

ज़रूरी नहीं. इससे यह कंट्रोल होता है कि मॉडल को किसी टूल का इस्तेमाल करना चाहिए या नहीं. साथ ही, यह भी तय होता है कि किस टूल का इस्तेमाल करना है. यह इनमें से कोई भी हो सकता है: - टूल बंद करने के लिए, स्ट्रिंग "none". - "auto" स्ट्रिंग, ताकि मॉडल खुद तय कर सके. - मॉडल को किसी टूल का इस्तेमाल करने के लिए मजबूर करने के लिए, "ज़रूरी" स्ट्रिंग. - फ़ंक्शन के नाम का ब्यौरा देने वाला ऑब्जेक्ट, जिसमें इस्तेमाल किए जाने वाले टूल के बारे में बताया गया हो. आखिरी विकल्प, इस स्कीमा का पालन करता है: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

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

stop value (Value format)

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

maxCompletionTokens integer

ज़रूरी नहीं. किसी संभावित जवाब में शामिल किए जाने वाले टोकन की ज़्यादा से ज़्यादा संख्या. एक धनात्मक पूर्णांक होना चाहिए.

maxTokens integer

ज़रूरी नहीं. किसी संभावित जवाब में शामिल किए जाने वाले टोकन की ज़्यादा से ज़्यादा संख्या. एक धनात्मक पूर्णांक होना चाहिए. SDK टूल ने इस फ़ील्ड को बंद कर दिया है.

temperature number

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

topP number

ज़रूरी नहीं. सैंपलिंग के दौरान, टोकन की ज़्यादा से ज़्यादा संभावित संभावना.

responseFormat object (ResponseFormat)

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

जवाब का मुख्य भाग

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

तरीका: एम्बेड करना

किसी इनपुट के आधार पर, मॉडल से एम्बेड जनरेट करता है.

एंडपॉइंट

पोस्ट https://generativelanguage.googleapis.com/v1beta/embeddings

यूआरएल में gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल किया गया है.

अनुरोध का मुख्य भाग

अनुरोध के मुख्य भाग में, नीचे दिए गए स्ट्रक्चर वाला डेटा होता है:

फ़ील्ड
input value (Value format)

ज़रूरी है. एम्बेड जनरेट करने के लिए इनपुट. यह एक स्ट्रिंग या स्ट्रिंग की सूची हो सकती है. SDK टूल, संख्याओं की सूची और संख्याओं की सूचियों की सूची के साथ काम करता है. हालांकि, इसे अभी तक लागू नहीं किया गया है.

model string

ज़रूरी है. एम्बेड जनरेट करने के लिए मॉडल.

encodingFormat string

ज़रूरी नहीं. एन्कोडिंग का फ़ॉर्मैट. यह "float" या "base64" में से कोई एक होना चाहिए.

dimensions integer

ज़रूरी नहीं. जनरेट किए गए एम्बेडमेंट का डाइमेंशनल साइज़.

जवाब का मुख्य भाग

कामयाब रहने पर, जवाब के मुख्य हिस्से में GenerateEmbeddingsResponse का एक इंस्टेंस शामिल किया जाता है.

तरीका: listModels

फ़िलहाल उपलब्ध मॉडल की सूची दिखाता है.

एंडपॉइंट

get https://generativelanguage.googleapis.com/v1beta/listModels

यूआरएल में gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल किया गया है.

अनुरोध का मुख्य भाग

अनुरोध का मुख्य हिस्सा खाली होना चाहिए.

जवाब का मुख्य हिस्सा

कामयाब रहने पर, जवाब के मुख्य हिस्से में SdkListModelsResponse का एक इंस्टेंस शामिल किया जाता है.

तरीका: chat.completions

चैट के इतिहास के इनपुट के आधार पर, मॉडल से जवाबों का सेट जनरेट करता है.

एंडपॉइंट

पोस्ट https://generativelanguage.googleapis.com/v1beta/chat/completions

यूआरएल में gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल किया गया है.

अनुरोध का मुख्य भाग

अनुरोध के मुख्य भाग में, नीचे दिए गए स्ट्रक्चर वाला डेटा होता है:

फ़ील्ड
model string

ज़रूरी है. Model का नाम, जिसका इस्तेमाल पूरा होने की जानकारी जनरेट करने के लिए किया जाएगा. अगर मॉडल के नाम में कोई स्लैश नहीं दिखता है, तो मॉडल के नाम के आगे "models/" जोड़ दिया जाएगा.

messages[] object (Struct format)

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

stream boolean

ज़रूरी नहीं. जवाब को स्ट्रीम करना है या एक जवाब दिखाना है.

अगर यह सही है, तो जवाब में "ऑब्जेक्ट" फ़ील्ड "chat.completion.chunk" होगा. अगर ऐसा नहीं है, तो यह "chat.completion" होगा.

streamOptions object (StreamOptions)

ज़रूरी नहीं. स्ट्रीमिंग के अनुरोधों के लिए विकल्प.

tools[] object (ChatTool)

ज़रूरी नहीं. टूल का सेट, जिसके लिए मॉडल कॉल जनरेट कर सकता है. हर टूल अपने हस्ताक्षर की जानकारी देता है.

toolChoice value (Value format)

ज़रूरी नहीं. इससे यह कंट्रोल होता है कि मॉडल को किसी टूल का इस्तेमाल करना चाहिए या नहीं. साथ ही, यह भी तय होता है कि किस टूल का इस्तेमाल करना है. यह इनमें से कोई भी हो सकता है: - टूल बंद करने के लिए, स्ट्रिंग "none". - "auto" स्ट्रिंग, ताकि मॉडल खुद तय कर सके. - मॉडल को किसी टूल का इस्तेमाल करने के लिए मजबूर करने के लिए, "ज़रूरी" स्ट्रिंग. - फ़ंक्शन के नाम का ब्यौरा देने वाला ऑब्जेक्ट, जिसमें इस्तेमाल किए जाने वाले टूल के बारे में बताया गया हो. आखिरी विकल्प, इस स्कीमा का पालन करता है: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

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

stop value (Value format)

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

maxCompletionTokens integer

ज़रूरी नहीं. किसी संभावित जवाब में शामिल किए जाने वाले टोकन की ज़्यादा से ज़्यादा संख्या. एक धनात्मक पूर्णांक होना चाहिए.

maxTokens integer

ज़रूरी नहीं. किसी संभावित जवाब में शामिल किए जाने वाले टोकन की ज़्यादा से ज़्यादा संख्या. एक धनात्मक पूर्णांक होना चाहिए. SDK टूल ने इस फ़ील्ड को बंद कर दिया है.

temperature number

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

topP number

ज़रूरी नहीं. सैंपलिंग के दौरान, टोकन की ज़्यादा से ज़्यादा संभावित संभावना.

responseFormat object (ResponseFormat)

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

जवाब का मुख्य भाग

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

तरीका: embeddings.generate

किसी इनपुट के लिए, मॉडल से एम्बेड जनरेट करता है.

एंडपॉइंट

पोस्ट https://generativelanguage.googleapis.com/v1beta/embeddings:generate

यूआरएल में gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल किया गया है.

अनुरोध का मुख्य भाग

अनुरोध के मुख्य भाग में, नीचे दिए गए स्ट्रक्चर वाला डेटा होता है:

फ़ील्ड
input value (Value format)

ज़रूरी है. एम्बेड जनरेट करने के लिए इनपुट. यह एक स्ट्रिंग या स्ट्रिंग की सूची हो सकती है. SDK टूल, संख्याओं की सूची और संख्याओं की सूचियों की सूची के साथ काम करता है. हालांकि, इसे अभी तक लागू नहीं किया गया है.

model string

ज़रूरी है. एम्बेड जनरेट करने के लिए मॉडल.

encodingFormat string

ज़रूरी नहीं. एन्कोडिंग का फ़ॉर्मैट. यह "float" या "base64" में से कोई एक होना चाहिए.

dimensions integer

ज़रूरी नहीं. जनरेट किए गए एम्बेडमेंट का डाइमेंशनल साइज़.

जवाब का मुख्य भाग

कामयाब रहने पर, जवाब के मुख्य हिस्से में GenerateEmbeddingsResponse का एक इंस्टेंस शामिल किया जाता है.

तरीका: openai.chat.completions

चैट के इतिहास के इनपुट के आधार पर, मॉडल से जवाबों का सेट जनरेट करता है.

एंडपॉइंट

पोस्ट https://generativelanguage.googleapis.com/v1beta/openai/chat/completions

यूआरएल में gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल किया गया है.

अनुरोध का मुख्य भाग

अनुरोध के मुख्य भाग में, नीचे दिए गए स्ट्रक्चर वाला डेटा होता है:

फ़ील्ड
model string

ज़रूरी है. Model का नाम, जिसका इस्तेमाल पूरा होने की जानकारी जनरेट करने के लिए किया जाएगा. अगर मॉडल के नाम में कोई स्लैश नहीं दिखता है, तो मॉडल के नाम के आगे "models/" जोड़ दिया जाएगा.

messages[] object (Struct format)

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

stream boolean

ज़रूरी नहीं. जवाब को स्ट्रीम करना है या एक जवाब दिखाना है.

अगर यह सही है, तो जवाब में "ऑब्जेक्ट" फ़ील्ड "chat.completion.chunk" होगा. अगर ऐसा नहीं है, तो यह "chat.completion" होगा.

streamOptions object (StreamOptions)

ज़रूरी नहीं. स्ट्रीमिंग के अनुरोधों के लिए विकल्प.

tools[] object (ChatTool)

ज़रूरी नहीं. टूल का सेट, जिसके लिए मॉडल कॉल जनरेट कर सकता है. हर टूल अपने हस्ताक्षर की जानकारी देता है.

toolChoice value (Value format)

ज़रूरी नहीं. इससे यह कंट्रोल होता है कि मॉडल को किसी टूल का इस्तेमाल करना चाहिए या नहीं. साथ ही, यह भी तय होता है कि किस टूल का इस्तेमाल करना है. यह इनमें से कोई भी हो सकता है: - टूल बंद करने के लिए, स्ट्रिंग "none". - "auto" स्ट्रिंग, ताकि मॉडल खुद तय कर सके. - मॉडल को किसी टूल का इस्तेमाल करने के लिए मजबूर करने के लिए, "ज़रूरी" स्ट्रिंग. - फ़ंक्शन के नाम का ब्यौरा देने वाला ऑब्जेक्ट, जिसमें इस्तेमाल किए जाने वाले टूल के बारे में बताया गया हो. आखिरी विकल्प, इस स्कीमा का पालन करता है: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

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

stop value (Value format)

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

maxCompletionTokens integer

ज़रूरी नहीं. किसी संभावित जवाब में शामिल किए जाने वाले टोकन की ज़्यादा से ज़्यादा संख्या. एक धनात्मक पूर्णांक होना चाहिए.

maxTokens integer

ज़रूरी नहीं. किसी संभावित जवाब में शामिल किए जाने वाले टोकन की ज़्यादा से ज़्यादा संख्या. एक धनात्मक पूर्णांक होना चाहिए. SDK टूल ने इस फ़ील्ड को बंद कर दिया है.

temperature number

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

topP number

ज़रूरी नहीं. सैंपलिंग के दौरान, टोकन की ज़्यादा से ज़्यादा संभावित संभावना.

responseFormat object (ResponseFormat)

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

जवाब का मुख्य भाग

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

तरीका: openai.embeddings

किसी इनपुट के आधार पर, मॉडल से एम्बेड जनरेट करता है.

एंडपॉइंट

पोस्ट https://generativelanguage.googleapis.com/v1beta/openai/embeddings

यूआरएल में gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल किया गया है.

अनुरोध का मुख्य भाग

अनुरोध के मुख्य भाग में, नीचे दिए गए स्ट्रक्चर वाला डेटा होता है:

फ़ील्ड
input value (Value format)

ज़रूरी है. एम्बेड जनरेट करने के लिए इनपुट. यह एक स्ट्रिंग या स्ट्रिंग की सूची हो सकती है. SDK टूल, संख्याओं की सूची और संख्याओं की सूचियों की सूची के साथ काम करता है. हालांकि, इसे अभी तक लागू नहीं किया गया है.

model string

ज़रूरी है. एम्बेड जनरेट करने के लिए मॉडल.

encodingFormat string

ज़रूरी नहीं. एन्कोडिंग का फ़ॉर्मैट. यह "float" या "base64" में से कोई एक होना चाहिए.

dimensions integer

ज़रूरी नहीं. जनरेट किए गए एम्बेडमेंट का डाइमेंशनल साइज़.

जवाब का मुख्य भाग

कामयाब रहने पर, जवाब के मुख्य हिस्से में GenerateEmbeddingsResponse का एक इंस्टेंस शामिल किया जाता है.

तरीका: openai.models

फ़िलहाल उपलब्ध मॉडल की सूची दिखाता है.

एंडपॉइंट

get https://generativelanguage.googleapis.com/v1beta/openai/models

यूआरएल में gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल किया गया है.

अनुरोध का मुख्य भाग

अनुरोध का मुख्य हिस्सा खाली होना चाहिए.

जवाब का मुख्य हिस्सा

कामयाब रहने पर, जवाब के मुख्य हिस्से में SdkListModelsResponse का एक इंस्टेंस शामिल किया जाता है.

ChatTool

ऐसा टूल जिससे मॉडल कॉल जनरेट कर सकता है.

फ़ील्ड
function object (ChatFunction)

ज़रूरी है. टूल का नाम.

type string

ज़रूरी है. ज़रूरी है, यह "फ़ंक्शन" होना चाहिए.

JSON के काेड में दिखाना
{
  "function": {
    object (ChatFunction)
  },
  "type": string
}

ChatFunction

ऐसा फ़ंक्शन जिसके लिए मॉडल कॉल जनरेट कर सकता है.

फ़ील्ड
name string

ज़रूरी है. फ़ंक्शन का नाम.

description string

ज़रूरी नहीं. फ़ंक्शन के बारे में जानकारी.

parameters object (Struct format)

ज़रूरी नहीं. फ़ंक्शन के पैरामीटर.

strict boolean

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

JSON के काेड में दिखाना
{
  "name": string,
  "description": string,
  "parameters": {
    object
  },
  "strict": boolean
}

GenerateEmbeddingsResponse

एम्बेड करने के लिए जनरेट किए गए वीडियो का जवाब.

फ़ील्ड
object string

सिर्फ़ आउटपुट के लिए. SDK टूल के लिए, हमेशा "एम्बेड करना" ज़रूरी है.

data[] object (GenerateEmbeddingsEmbedding)

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

model string

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

JSON के काेड में दिखाना
{
  "object": string,
  "data": [
    {
      object (GenerateEmbeddingsEmbedding)
    }
  ],
  "model": string
}

GenerateEmbeddingsEmbedding

मॉडल से जनरेट किया गया एम्बेडिंग वेक्टर.

फ़ील्ड
object string

सिर्फ़ आउटपुट के लिए. SDK टूल के लिए, हमेशा "एम्बेड करना" ज़रूरी है.

index integer

सिर्फ़ आउटपुट के लिए. एम्बेड की सूची में एम्बेड का इंडेक्स.

embedding value (Value format)

सिर्फ़ आउटपुट के लिए. इनपुट के लिए जनरेट किया गया एम्बेडिंग वेक्टर. यह फ़्लोट की सूची या C-स्टाइल लेआउट (Numpy के साथ काम करने वाला) वाली फ़्लोट की सूची को एन्कोड करने वाली base64 स्ट्रिंग हो सकती है.

JSON के काेड में दिखाना
{
  "object": string,
  "index": integer,
  "embedding": value
}

HttpBody

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

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

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

उदाहरण:

message GetResourceRequest {
  // A unique request id.
  string requestId = 1;

  // The raw HTTP body is bound to this field.
  google.api.HttpBody http_body = 2;

}

service ResourceService {
  rpc GetResource(GetResourceRequest)
    returns (google.api.HttpBody);
  rpc UpdateResource(google.api.HttpBody)
    returns (google.protobuf.Empty);

}

स्ट्रीमिंग के तरीकाें के साथ उदाहरण:

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);

}

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

फ़ील्ड
contentType string

एचटीटीपी Content-Type हेडर की वैल्यू, जो बॉडी के कॉन्टेंट टाइप के बारे में बताती है.

data string (bytes format)

एचटीटीपी अनुरोध/जवाब का मुख्य हिस्सा, रॉ बाइनरी के तौर पर.

base64 कोड में बदली गई स्ट्रिंग.

extensions[] object

ऐप्लिकेशन के जवाब का खास मेटाडेटा. स्ट्रीमिंग एपीआई के लिए पहले जवाब में सेट किया जाना चाहिए.

ऐसा ऑब्जेक्ट जिसमें किसी भी तरह के फ़ील्ड शामिल हो सकते हैं. एक अन्य फ़ील्ड "@type" में, टाइप की पहचान करने वाला यूआरआई होता है. उदाहरण: { "id": 1234, "@type": "types.example.com/standard/id" }.

JSON के काेड में दिखाना
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}

ResponseFormat

रिस्पॉन्स का फ़ॉर्मैट तय करता है.

फ़ील्ड
type string

ज़रूरी है. रिस्पॉन्स का टाइप. इनमें से कोई एक हो सकता है: - "text": जवाब को टेक्स्ट के तौर पर फ़ॉर्मैट करें. - "json_object": रिस्पॉन्स को JSON ऑब्जेक्ट के तौर पर फ़ॉर्मैट करें. - "jsonSchema": दिए गए स्कीमा के हिसाब से, रिस्पॉन्स को JSON ऑब्जेक्ट के तौर पर फ़ॉर्मैट करें.

jsonSchema object (ResponseFormatSchema)

ज़रूरी नहीं. फ़ॉर्मैट के लिए इस्तेमाल किया जाने वाला JSON स्कीमा. इसका इस्तेमाल सिर्फ़ तब किया जाता है, जब टाइप "jsonSchema" हो.

JSON के काेड में दिखाना
{
  "type": string,
  "jsonSchema": {
    object (ResponseFormatSchema)
  }
}

ResponseFormatSchema

जवाब के लिए स्कीमा.

फ़ील्ड
description string

ज़रूरी नहीं. स्कीमा से दिखाए गए ऑब्जेक्ट की जानकारी.

name string

ज़रूरी है. स्कीमा से दिखाए गए ऑब्जेक्ट टाइप का नाम.

strict boolean

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

schema object (Struct format)

ज़रूरी नहीं. फ़ॉर्मैट के लिए JSON स्कीमा.

JSON के काेड में दिखाना
{
  "description": string,
  "name": string,
  "strict": boolean,
  "schema": {
    object
  }
}

SdkListModelsResponse

सूची वाले मॉडल के लिए रिस्पॉन्स.

फ़ील्ड
object string

सिर्फ़ आउटपुट के लिए. हमेशा "list", एसडीके के लिए ज़रूरी है.

data[] object (SdkModel)

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

JSON के काेड में दिखाना
{
  "object": string,
  "data": [
    {
      object (SdkModel)
    }
  ]
}

SdkModel

मॉडल ऑब्जेक्ट.

फ़ील्ड
id string

सिर्फ़ आउटपुट के लिए. मॉडल का आईडी.

object string

सिर्फ़ आउटपुट के लिए. हमेशा "model", SDK टूल के लिए ज़रूरी है.

created string (int64 format)

सिर्फ़ आउटपुट के लिए. मॉडल बनाने का समय (सेकंड में).

owned_by string

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

JSON के काेड में दिखाना
{
  "id": string,
  "object": string,
  "created": string,
  "owned_by": string
}

StreamOptions

स्ट्रीमिंग के अनुरोधों के लिए विकल्प.

फ़ील्ड
includeUsage boolean

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

JSON के काेड में दिखाना
{
  "includeUsage": boolean
}