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


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

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

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

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

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

इस गाइड में, 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 को कॉल किया जा सकता है.

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

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

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

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

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

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

  • रिस्पॉन्स स्कीमा की सुविधा, इन रिस्पॉन्स 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 1.5 Pro और Gemini 1.5 Flash के साथ किया जा सकता है.

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

कुछ और उदाहरण

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

आउटपुट के तौर पर, एनम की वैल्यू जनरेट करना

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

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

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

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

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


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