Gemini API का इस्तेमाल करके, स्ट्रक्चर्ड आउटपुट (जैसे, JSON) जनरेट करना


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

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

यहां कुछ उदाहरण दिए गए हैं:

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

  • तय करें कि क्लासिफ़िकेशन टास्क के दौरान मॉडल, कैसे जवाब दे सकता है.
    उदाहरण के लिए, मॉडल के जनरेट किए गए लेबल के बजाय, टेक्स्ट पर एनोटेशन करने के लिए, मॉडल को लेबल के किसी खास सेट का इस्तेमाल करने के लिए कहा जा सकता है. जैसे, positive और negative जैसे एनम का कोई खास सेट.

इस गाइड में, generateContent को कॉल करने के दौरान responseSchema देकर JSON आउटपुट जनरेट करने का तरीका बताया गया है. इसमें सिर्फ़ टेक्स्ट वाले इनपुट पर फ़ोकस किया जाता है. हालाँकि, Gemini मल्टीमोडल अनुरोधों के लिए स्ट्रक्चर्ड जवाब भी दे सकता है. इनमें इनपुट के तौर पर इमेज, वीडियो, और ऑडियो शामिल होते हैं.

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

शुरू करने से पहले

अगर आपने पहले से ऐसा नहीं किया है, तो Vertex AI in Firebase SDK टूल के लिए शुरुआती निर्देश को पूरा करें. पक्का करें कि आपने ये सभी काम कर लिए हों:

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

  2. अपने ऐप्लिकेशन को Firebase से कनेक्ट करें. इसमें, अपने ऐप्लिकेशन को रजिस्टर करना और अपने ऐप्लिकेशन में Firebase कॉन्फ़िगरेशन जोड़ना शामिल है.

  3. SDK टूल जोड़ें और अपने ऐप्लिकेशन में Vertex AI सेवा और जनरेटिव मॉडल को शुरू करें.

अपने ऐप्लिकेशन को Firebase से कनेक्ट करने, SDK टूल जोड़ने, और Vertex AI सेवा और जनरेटिव मॉडल को शुरू करने के बाद, Gemini API को कॉल किया जा सकता है.

पहला चरण: जवाब का स्कीमा तय करना

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

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

रिस्पॉन्स स्कीमा इस्तेमाल करने से पहले ध्यान देने वाली बातें

रिस्पॉन्स स्कीमा लिखते समय इन बातों का ध्यान रखें:

  • रिस्पॉन्स स्कीमा का साइज़, इनपुट टोकन की सीमा में गिना जाता है.

  • रिस्पॉन्स स्कीमा की सुविधा, इन रिस्पॉन्स एमआईएमई टाइप के साथ काम करती है:

    • application/json: रिस्पॉन्स स्कीमा में बताए गए तरीके के हिसाब से JSON आउटपुट करना (स्ट्रक्चर्ड आउटपुट की ज़रूरी शर्तों के लिए मददगार)

    • text/x.enum: रिस्पॉन्स स्कीमा में बताई गई ईनम वैल्यू को आउटपुट करना (वर्गीकरण के टास्क के लिए मददगार)

  • रिस्पॉन्स स्कीमा की सुविधा, इन स्कीमा फ़ील्ड के साथ काम करती है:

    enum
    items
    maxItems
    nullable
    properties
    required

    अगर ऐसे फ़ील्ड का इस्तेमाल किया जाता है जो काम नहीं करता, तो मॉडल अब भी आपके अनुरोध को पूरा कर सकता है. हालांकि, यह फ़ील्ड को अनदेखा कर देता है. ध्यान दें कि ऊपर दी गई सूची OpenAPI 3.0 स्कीमा ऑब्जेक्ट का सबसेट है. (Vertex AI स्कीमा रेफ़रंस देखें).

  • डिफ़ॉल्ट रूप से, Vertex AI in Firebase SDK टूल के लिए सभी फ़ील्ड को ज़रूरी माना जाता है. ऐसा तब तक होता है, जब तक optionalProperties कलेक्शन में उन्हें 'ज़रूरी नहीं' के तौर पर बताया जाता है. इन वैकल्पिक फ़ील्ड के लिए, मॉडल फ़ील्ड को भर सकता है या उन्हें छोड़ सकता है.

    ध्यान दें कि यह Vertex AI Gemini API के लिए डिफ़ॉल्ट तरीके से बिलकुल उलट होता है.

दूसरा चरण: JSON जनरेट करने के लिए, रिस्पॉन्स स्कीमा के साथ प्रॉम्प्ट भेजना

नीचे दिए गए उदाहरण में, स्ट्रक्चर्ड JSON आउटपुट जनरेट करने का तरीका बताया गया है.

स्ट्रक्चर्ड आउटपुट जनरेट करने के लिए, आपको मॉडल शुरू करते समय सही responseMimeType (इस उदाहरण में, application/json) के साथ-साथ, उस responseSchema को भी बताना होगा जिसका इस्तेमाल आपको मॉडल को करना है.

Gemini 1.5 Pro और Gemini 1.5 Flash में, responseSchema का इस्तेमाल किया जा सकता है.

अपने इस्तेमाल के उदाहरण और ऐप्लिकेशन के हिसाब से, Gemini मॉडल और जगह चुनने का तरीका जानें.

कुछ और उदाहरण

स्ट्रक्चर्ड आउटपुट का इस्तेमाल और जनरेट करने के बारे में ज़्यादा उदाहरण देखने के लिए, Google Cloud दस्तावेज़ में स्कीमा और मॉडल रिस्पॉन्स के उदाहरण की सूची देखें.

आउटपुट के तौर पर enum वैल्यू जनरेट करें

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

स्ट्रक्चर्ड क्लासिफ़िकेशन का यह टास्क पूरा करने के लिए, आपको मॉडल को शुरू करने के दौरान सही responseMimeType (इस उदाहरण में, text/x.enum) के साथ-साथ वह responseSchema भी बताना होगा जिसका इस्तेमाल मॉडल को करना है.

Gemini का मॉडल चुनने का तरीक़ा जानें. साथ ही, आपके लिए इस्तेमाल के उदाहरण और ऐप्लिकेशन के लिए सही जगह की जानकारी चुनने का तरीक़ा जानें.

कॉन्टेंट जनरेशन को कंट्रोल करने के अन्य विकल्प

  • प्रॉम्प्ट डिज़ाइन के बारे में ज़्यादा जानें, ताकि आप मॉडल को अपनी ज़रूरत के हिसाब से जनरेट करने के लिए बदल सकें.
  • मॉडल के जवाब जनरेट करने के तरीके को कंट्रोल करने के लिए, मॉडल पैरामीटर को कॉन्फ़िगर करें. इन पैरामीटर में ये शामिल हैं: ज़्यादा से ज़्यादा आउटपुट टोकन, तापमान, टॉपK, और टॉपP.
  • सुरक्षा सेटिंग का इस्तेमाल करके, ऐसे जवाब मिलने की संभावना को कम या ज़्यादा करें जो हानिकारक माने जा सकते हों. इनमें नफ़रत फैलाने वाली भाषा और साफ़ तौर पर सेक्शुअल ऐक्ट दिखाने वाला कॉन्टेंट शामिल है.
  • मॉडल के व्यवहार को कंट्रोल करने के लिए, सिस्टम से जुड़े निर्देश सेट करें. यह सुविधा, "प्रीऐब्सटेंस" की तरह है. इसे मॉडल को असली उपयोगकर्ता से मिलने वाले निर्देशों के ज़रिए इस्तेमाल करने से पहले जोड़ा जाता है.


Vertex AI in Firebase के साथ अपने अनुभव के बारे में सुझाव/राय दें या शिकायत करें