Gemini API, डिफ़ॉल्ट रूप से जवाबों को बिना स्ट्रक्चर वाले टेक्स्ट के तौर पर दिखाता है. हालांकि, कुछ इस्तेमाल के उदाहरणों के लिए, JSON जैसे स्ट्रक्चर्ड टेक्स्ट की ज़रूरत होती है. उदाहरण के लिए, हो सकता है कि आप जवाब का इस्तेमाल, डाउनस्ट्रीम के उन अन्य टास्क के लिए कर रहे हों जिनके लिए डेटा स्कीमा की ज़रूरत होती है.
यह पक्का करने के लिए कि मॉडल का जनरेट किया गया आउटपुट हमेशा किसी खास स्कीमा के मुताबिक हो, रिस्पॉन्स स्कीमा तय किया जा सकता है. यह मॉडल के रिस्पॉन्स के लिए ब्लूप्रिंट की तरह काम करता है. इसके बाद, पोस्ट-प्रोसेसिंग के कम चरण के साथ, मॉडल के आउटपुट से सीधे डेटा निकाला जा सकता है.
यहां कुछ उदाहरण दिए गए हैं:
पक्का करें कि मॉडल का रिस्पॉन्स, मान्य JSON फ़ॉर्मैट में हो और आपके दिए गए स्कीमा के मुताबिक हो.
उदाहरण के लिए, यह मॉडल उन रेसिपी के लिए स्ट्रक्चर्ड एंट्री जनरेट कर सकता है जिनमें हमेशा रेसिपी का नाम, सामग्री की सूची, और बनाने का तरीका शामिल होता है. इसके बाद, इस जानकारी को अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) में आसानी से पार्स और दिखाया जा सकता है.यह तय करना कि किसी मॉडल को, कैटगरी तय करने के टास्क के दौरान किस तरह के जवाब देने चाहिए.
उदाहरण के लिए, मॉडल को टेक्स्ट पर एनोटेट करने के लिए, मॉडल के जनरेट किए गए लेबल के बजाय, लेबल के किसी खास सेट का इस्तेमाल किया जा सकता है. जैसे,positive
औरnegative
जैसे एनम के खास सेट. इन लेबल मेंgood
,positive
,negative
याbad
जैसी वैल्यू हो सकती हैं.
इस गाइड में, generateContent
को कॉल करते समय responseSchema
का इस्तेमाल करके, JSON आउटपुट जनरेट करने का तरीका बताया गया है. यह सिर्फ़ टेक्स्ट इनपुट पर फ़ोकस करता है. हालांकि, Gemini, मल्टीमोडल अनुरोधों के लिए भी स्ट्रक्चर्ड जवाब दे सकता है. इन अनुरोधों में, इमेज, वीडियो, और ऑडियो को इनपुट के तौर पर शामिल किया जाता है.
इस पेज पर सबसे नीचे, आउटपुट के तौर पर एनम वैल्यू जनरेट करने जैसे और उदाहरण दिए गए हैं. स्ट्रक्चर्ड आउटपुट जनरेट करने के अन्य उदाहरण देखने के लिए, Google Cloud दस्तावेज़ में उदाहरण के तौर पर दिए गए स्कीमा और मॉडल रिस्पॉन्स की सूची देखें.
Gemini API के साथ काम करने के अन्य विकल्प
वैकल्पिक तौर पर, Gemini API के "Google AI" वर्शन के साथ एक्सपेरिमेंट करें
Google AI Studio और Google AI क्लाइंट SDK टूल का इस्तेमाल करके, सीमाओं के अंदर और जहां उपलब्ध हो वहां बिना किसी शुल्क के ऐक्सेस पाएं. इन SDK टूल का इस्तेमाल, मोबाइल और वेब ऐप्लिकेशन में सिर्फ़ प्रोटोटाइप बनाने के लिए किया जाना चाहिए.Gemini API के काम करने के तरीके के बारे में जानने के बाद, हमारे Vertex AI in Firebase SDK टूल पर माइग्रेट करें (यह दस्तावेज़). इसमें मोबाइल और वेब ऐप्लिकेशन के लिए कई ज़रूरी सुविधाएं हैं. जैसे, Firebase App Check का इस्तेमाल करके एपीआई को गलत इस्तेमाल से बचाना और अनुरोधों में बड़ी मीडिया फ़ाइलों के लिए सहायता.
Vertex AI Gemini API के सर्वर साइड को कॉल करें (जैसे, Python, Node.js या Go के साथ)
Gemini API के लिए, सर्वर साइड Vertex AI SDK टूल, Genkit या Firebase Extensions का इस्तेमाल करें.
शुरू करने से पहले
अगर आपने अब तक ऐसा नहीं किया है, तो शुरू करने से जुड़ी गाइड पढ़ें. इसमें, Firebase प्रोजेक्ट सेट अप करने, अपने ऐप्लिकेशन को Firebase से कनेक्ट करने, SDK टूल जोड़ने, Vertex AI सेवा को शुरू करने, और GenerativeModel
इंस्टेंस बनाने का तरीका बताया गया है.
पहला चरण: जवाब का स्कीमा तय करना
मॉडल के आउटपुट के स्ट्रक्चर, फ़ील्ड के नाम, और हर फ़ील्ड के लिए उम्मीद के मुताबिक डेटा टाइप की जानकारी देने के लिए, रिस्पॉन्स स्कीमा तय करें.
जब कोई मॉडल जवाब जनरेट करता है, तो वह आपके प्रॉम्प्ट में मौजूद फ़ील्ड के नाम और कॉन्टेक्स्ट का इस्तेमाल करता है. हमारा सुझाव है कि आप अपने मकसद को साफ़ तौर पर बताने के लिए, साफ़ तौर पर दिखने वाले स्ट्रक्चर, साफ़ तौर पर दिखने वाले फ़ील्ड के नाम, और ज़रूरत के हिसाब से जानकारी का इस्तेमाल करें.
रिस्पॉन्स स्कीमा के लिए ध्यान देने वाली बातें
रिस्पॉन्स स्कीमा लिखते समय इन बातों का ध्यान रखें:
रिस्पॉन्स स्कीमा का साइज़, इनपुट टोकन की सीमा में गिना जाता है.
रिस्पॉन्स स्कीमा की सुविधा, इन रिस्पॉन्स MIME टाइप के साथ काम करती है:
application/json
: रिस्पॉन्स स्कीमा में बताए गए तरीके के हिसाब से JSON आउटपुट करना (स्ट्रक्चर्ड आउटपुट की ज़रूरी शर्तों के लिए मददगार)text/x.enum
: रिस्पॉन्स स्कीमा में बताई गई वैल्यू के तौर पर, एक enum वैल्यू दिखाएं (वर्गीकरण के टास्क के लिए मददगार)
रिस्पॉन्स स्कीमा की सुविधा, इन स्कीमा फ़ील्ड के साथ काम करती है:
enum
items
maxItems
nullable
properties
required
अगर किसी ऐसे फ़ील्ड का इस्तेमाल किया जाता है जो काम नहीं करता, तो मॉडल आपके अनुरोध को मैनेज कर सकता है. हालांकि, वह उस फ़ील्ड को अनदेखा कर देता है. ध्यान दें कि ऊपर दी गई सूची, OpenAPI 3.0 स्कीमा ऑब्जेक्ट का सबसेट है. Vertex AI स्कीमा का रेफ़रंस देखें.
डिफ़ॉल्ट रूप से, Vertex AI in Firebase SDKs के लिए, सभी फ़ील्ड को ज़रूरी माना जाता है. हालांकि, अगर आपने उन्हें
optionalProperties
ऐरे में 'ज़रूरी नहीं है' के तौर पर सेट किया है, तो ऐसा नहीं होगा. इन वैकल्पिक फ़ील्ड के लिए, मॉडल फ़ील्ड में अपने-आप जानकारी भर सकता है या उन्हें स्किप कर सकता है.ध्यान दें कि यह Vertex AI Gemini API के लिए डिफ़ॉल्ट व्यवहार से उलट है.
दूसरा चरण: JSON जनरेट करने के लिए, रिस्पॉन्स स्कीमा के साथ प्रॉम्प्ट भेजना
नीचे दिए गए उदाहरण में, स्ट्रक्चर्ड JSON आउटपुट जनरेट करने का तरीका बताया गया है.
स्ट्रक्चर्ड आउटपुट जनरेट करने के लिए, मॉडल को शुरू करने के दौरान आपको सही responseMimeType
(इस उदाहरण में, application/json
) के साथ-साथ वह responseSchema
भी बताना होगा जिसका इस्तेमाल मॉडल को करना है.
responseSchema
का इस्तेमाल, Gemini के सभी मॉडल पर किया जा सकता है. हालांकि, Gemini 1.0 मॉडल पर ऐसा नहीं किया जा सकता.
अपने इस्तेमाल के उदाहरण और ऐप्लिकेशन के हिसाब से सही मॉडल और जगह चुनने का तरीका जानें.
कुछ और उदाहरण
स्ट्रक्चर्ड आउटपुट का इस्तेमाल और उसे जनरेट करने के तरीके के बारे में ज़्यादा उदाहरण देखने के लिए, Google Cloud दस्तावेज़ में उदाहरण के तौर पर दिए गए स्कीमा और मॉडल रिस्पॉन्स की सूची देखें.
आउटपुट के तौर पर, एनम की वैल्यू जनरेट करना
यहां दिए गए उदाहरण में, किसी कैटगरी में बांटने के टास्क के लिए, रिस्पॉन्स स्कीमा का इस्तेमाल करने का तरीका बताया गया है. मॉडल से, किसी फ़िल्म की जानकारी के आधार पर, उसकी शैली की पहचान करने के लिए कहा जाता है. आउटपुट, एक प्लैन-टेक्स्ट वाली वैल्यू होती है. मॉडल, दी गई वैल्यू की सूची से यह वैल्यू चुनता है. यह सूची, दिए गए रिस्पॉन्स स्कीमा में दी गई होती है.
स्ट्रक्चर्ड क्लासिफ़िकेशन का यह टास्क पूरा करने के लिए, आपको मॉडल को शुरू करने के दौरान सही responseMimeType
(इस उदाहरण में, text/x.enum
) के साथ-साथ वह responseSchema
भी बताना होगा जिसका इस्तेमाल मॉडल को करना है.
अपने इस्तेमाल के उदाहरण और ऐप्लिकेशन के हिसाब से सही मॉडल और जगह चुनने का तरीका जानें.
कॉन्टेंट जनरेशन को कंट्रोल करने के अन्य विकल्प
- प्रॉम्प्ट डिज़ाइन के बारे में ज़्यादा जानें, ताकि आप अपनी ज़रूरतों के हिसाब से आउटपुट जनरेट करने के लिए, मॉडल पर असर डाल सकें.
- मॉडल के जवाब जनरेट करने के तरीके को कंट्रोल करने के लिए, मॉडल पैरामीटर को कॉन्फ़िगर करें. Gemini मॉडल के लिए, इन पैरामीटर में ज़्यादा से ज़्यादा आउटपुट टोकन, तापमान, topK, और topP शामिल हैं. Imagen मॉडल के लिए, इनमें आसपेक्ट रेशियो, व्यक्ति जनरेशन, वॉटरमार्किंग वगैरह शामिल हैं.
- सुरक्षा सेटिंग का इस्तेमाल करके, ऐसे जवाबों की संभावना को कम करें जिन्हें नुकसान पहुंचाने वाला माना जा सकता है. इनमें नफ़रत फैलाने वाली भाषा और साफ़ तौर पर सेक्शुअल ऐक्ट दिखाने वाला कॉन्टेंट शामिल है.
- मॉडल के व्यवहार को कंट्रोल करने के लिए, सिस्टम के निर्देश सेट करें. यह सुविधा, "प्रीऐब्सटेंस" की तरह है. इसे मॉडल को असली उपयोगकर्ता से मिलने वाले निर्देशों के ज़रिए इस्तेमाल करने से पहले जोड़ा जाता है.
Vertex AI in Firebase के साथ अपने अनुभव के बारे में सुझाव/राय देना या शिकायत करना