Booksशेल्फ़ Analytics: BigQuery और जनरेटिव एआई की मदद से, एसक्यूएल ऐप्लिकेशन बनाने के लिए Gemini का इस्तेमाल करना

1. परिचय

क्या आपको किताबें पढ़ना पसंद है, लेकिन ढेर सारे विकल्पों की वजह से आपका मन भर जाता है? एआई की मदद से काम करने वाले ऐसे ऐप्लिकेशन की कल्पना करें जो न सिर्फ़ आपके लिए सही किताब का सुझाव देता है, बल्कि आपकी पसंदीदा शैली के आधार पर किताब की खास जानकारी भी देता है. इससे आपको किताब के बारे में खास जानकारी मिलती है. इस कोडलैब में, हम आपको BigQuery, Gemini, और Gemini के साथ काम करने वाले Cloud Functions की मदद से, ऐसा ऐप्लिकेशन बनाने का तरीका बताएंगे.

प्रोजेक्ट की खास जानकारी

इस्तेमाल के हमारे उदाहरण में, इन चार मुख्य कॉम्पोनेंट का इस्तेमाल किया गया है:

  • किताबों का डेटाबेस: इंटरनेट आर्काइव की किताबों का बड़ा BigQuery सार्वजनिक डेटासेट, किताबों के हमारे बड़े कैटलॉग के तौर पर काम करेगा.
  • एआई की मदद से खास जानकारी देने वाला इंजन: Gemini 1.0 Pro भाषा मॉडल के साथ Google Cloud Functions, उपयोगकर्ता के अनुरोधों के हिसाब से अहम जानकारी जनरेट करेगा.
  • BigQuery इंटिग्रेशन: यह BigQuery में मौजूद एक रिमोट फ़ंक्शन है. यह हमारे Cloud Function को कॉल करके, मांग पर किताबों की खास जानकारी और थीम डिलीवर करता है.
  • यूज़र इंटरफ़ेस: Cloud Run पर होस्ट किया गया वेब ऐप्लिकेशन, जो उपयोगकर्ताओं को नतीजे देखने के लिए वेब ऐप्लिकेशन देगा.

हम लागू करने की प्रोसेस को तीन कोडलैब में बांट देंगे:

पहला कोडलैब: Gemini ऐप्लिकेशन के लिए, Java Cloud फ़ंक्शन बनाने के लिए Gemini का इस्तेमाल करना.

दूसरा कोडलैब: BigQuery और जनरेटिव एआई की मदद से, एसक्यूएल ऐप्लिकेशन बनाने के लिए Gemini का इस्तेमाल करना.

तीसरा कोडलैब: Gemini का इस्तेमाल करके, BigQuery के साथ इंटरैक्ट करने वाला Java Spring Boot वेब ऐप्लिकेशन बनाएं.

2. BigQuery और जनरेटिव एआई की मदद से एसक्यूएल ऐप्लिकेशन बनाने के लिए, Gemini का इस्तेमाल करना

आपको क्या बनाना है

आपको एक

  • BigQuery में रिमोट मॉडल, जो टेबल में ";" से अलग किए गए कीवर्ड की सूची से, किताब की शैली (या थीम) की पहचान करने के लिए Vertex AI text-bison-32k एंडपॉइंट को ट्रिगर करता है.
  • BigQuery में मौजूद रिमोट फ़ंक्शन, जो डिप्लॉय किए गए जनरेटिव एआई Cloud Function को रिमोट तरीके से शुरू करेगा.
  • SQL क्वेरी की मदद से, किसी किताब की थीम और टेक्स्ट की खास जानकारी पाने के लिए, रिमोट मॉडल और फ़ंक्शन का इस्तेमाल करें. साथ ही, किताबों की अलमारी वाले डेटासेट में नई टेबल में नतीजे लिखें.
  • Gemini की मदद से, आपको ये चरण पूरे करने होंगे

3. ज़रूरी शर्तें

  • कोई ब्राउज़र, जैसे कि Chrome या Firefox
  • बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट
  • अगर आपने कोडलैब के पहले हिस्से के तहत, Cloud Function को डिप्लॉय किया है, तो इससे मदद मिल सकती है Gemini ऐप्लिकेशन के लिए Java Cloud Function बनाने के लिए Gemini का इस्तेमाल करना कोडलैब.
  • शर्तों के साथ: अगर अब तक आपके पास Google Cloud क्रेडिट के मुफ़्त लिंक का ऐक्सेस है, तो क्रेडिट चालू करने और प्रोजेक्ट बनाने से जुड़े चरणों को पहले ही पूरा करने के लिए, नीचे दिए गए पेज पर जाएं. इसके बाद, शायद वर्कशॉप के आयोजक ने आपको यह लिंक दिया हो. अगर आपके पास यह लिंक नहीं है, तो नीचे दिए गए प्रोजेक्ट और बिलिंग से जुड़ी ज़रूरी शर्तों को पूरा करें:

अपना प्रोजेक्ट बनाना

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

  1. Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
  2. पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग की सुविधा चालू है या नहीं, यह देखने का तरीका जानें.

Cloud Shell चालू करना

  1. आपको Cloud Shell का इस्तेमाल करना होगा. यह Google Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है, जिसमें bq पहले से लोड होता है:

Cloud Console में, सबसे ऊपर दाएं कोने में मौजूद 'क्लाउड शेल चालू करें' पर क्लिक करें: 6757b2fb50ddcc2d.png

  1. Cloud Shell से कनेक्ट होने के बाद, आपको दिखेगा कि आपने पहले ही पुष्टि कर ली है और प्रोजेक्ट पहले से ही आपके प्रोजेक्ट आईडी पर सेट है. पुष्टि करने के लिए, Cloud Shell में यह कमांड चलाएं:

gcloud पुष्टि की सूची

  1. Cloud Shell में यह कमांड चलाकर पुष्टि करें कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है.

gcloud config list project

  1. अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:

gcloud config set project <YOUR_PROJECT_ID>

gcloud के निर्देशों और इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें.

4. Google Cloud और ज़रूरी एपीआई के लिए Gemini को चालू करना

Gemini की सुविधा चालू करना

  1. एपीआई चालू करने के लिए, Google Cloud Marketplace के लिए Gemini पर जाएं. इस निर्देश का भी इस्तेमाल किया जा सकता है:

gcloud services enable cloudaicompanion.googleapis.com --project PROJECT_ID

  1. Gemini पेज पर जाएं और "चैट शुरू करें" पर क्लिक करें.

अन्य ज़रूरी एपीआई चालू करें

हम ऐसा कैसे करेंगे? आओ Gemini से पूछें कि, क्या हम करेंगे? हालांकि, ऐसा करने से पहले इन बातों का ध्यान रखें:

ध्यान दें: एलएलएम, नॉन-डेटरमिनिस्टिक होते हैं. इसलिए, इन प्रॉम्प्ट को आज़माते समय, आपको जो जवाब मिलता है वह मेरे स्क्रीनशॉट में दिए गए जवाबों से अलग दिख सकता है.

Gemini चैट कंसोल पर जाने के लिए, Google Cloud Console में खोज बार के बगल में मौजूद, सबसे ऊपर दाएं कोने में "Gemini खोलें" आइकॉन पर क्लिक करें.

"यहां प्रॉम्प्ट डालें" सेक्शन में यह सवाल टाइप करें:

gcloud कमांड का इस्तेमाल करके, BigQuery और Vertex AI के एपीआई कैसे चालू करें?

आपको इस इमेज में दिखाया गया जवाब मिलता है:

19c3fd78530794d9.png

उस कोड को कॉपी करें (कमांड स्निपेट में सबसे ऊपर मौजूद, कॉपी आइकॉन का इस्तेमाल किया जा सकता है). इसके बाद, उससे जुड़ी सेवाओं को चालू करने के लिए, Cloud Shell टर्मिनल में उसे चलाएं:

  • bigquery.googleapis.com
  • aiplatform.googleapis.com

5. किताबों के डेटा के लिए, BigQuery का सार्वजनिक डेटासेट एक्सप्लोर करना

BigQuery के सार्वजनिक डेटासेट के बारे में जानें. इस डेटासेट में इंटरनेट पर संग्रहित की गई अलग-अलग किताबों के बारे में जानकारी होती है.

आपको यह सार्वजनिक डेटासेट, BigQuery एक्सप्लोरर पैनल में मिलेगा. BigQuery कंसोल पर जाने पर, आपको यह विकल्प बाईं ओर दिखेगा.

39e2ac03cc99cbac.png

खोज बार में "gdelt-bq" या "internetarchivebooks" टाइप करें और सभी प्रोजेक्ट खोजें पर क्लिक करें. नतीजे को बड़ा करें और इंटरनेट आर्काइव की किताबों को स्टार दें, जैसा कि यहां दी गई इमेज में दिखाया गया है:

68dba68a79cddfc9.png.

डेटासेट को बड़ा करें और gdelt-bq.internetarchivebooks पर क्लिक करें. इसके बाद, 1920 की टेबल में डेटा की झलक देखें. इस टेबल में, साल 1920 की संग्रहित किताबें शामिल हैं.

अगले सेक्शन में इस्तेमाल किए जाने वाले स्कीमा को देखने के लिए, यह क्वेरी चलाएं:

select * from  `gdelt-bq.internetarchivebooks.1920` limit 5;

हम अपने कोडलैब के लिए, इन तीन फ़ील्ड का इस्तेमाल करेंगे:

  • BookMeta_Title (टाइटल)
  • थीम (थीम को ‘;' से अलग किया गया है)
  • BookMeta_FullText (किताब का पूरा टेक्स्ट)

6. bookshelf नाम का नया BigQuery डेटासेट बनाना

हम इस प्रोजेक्ट के तहत एक डेटासेट बनाना चाहते हैं, ताकि इस लैब में बनाए जाने वाले सभी डेटाबेस और आंकड़ों के ऑब्जेक्ट को सेव किया जा सके. आइए, Gemini से BigQuery डेटासेट बनाने का तरीका पूछते हैं. एपीआई चालू करने के चरण से, आपके ब्राउज़र में Gemini चैट पहले से ही किसी दूसरे टैब में खुली होनी चाहिए. अगर ऐसा नहीं है, तो इसे अभी किया जा सकता है. https://console.cloud.google.com पर जाकर, Google Cloud Console में जाएं. इसके बाद, आपको सबसे ऊपर मौजूद खोज बार के बगल में Gemini का आइकॉन दिखेगा. उस पर क्लिक करने से चैट खुल जाएगी.

26e1491322855614.png

प्रॉम्प्ट को नीचे दिखाए गए तरीके से डालें.

मेरा प्रॉम्प्ट यह है:

How to create a BigQuery dataset?

यह रहा जवाब:

f7a989cc9a01009.png

चलिए, जवाब में बताए गए तरीके का इस्तेमाल करके, अपने चालू प्रोजेक्ट में "bookshelf" नाम का डेटासेट बनाएं.

BigQuery डेटासेट बनाने के लिए, यह तरीका अपनाएं:

  1. Google Cloud Console में BigQuery पेज पर जाएं.
  2. एक्सप्लोरर पैनल में, अपने प्रोजेक्ट आईडी पर क्लिक करें.
  3. 'डेटासेट बनाएं' पर क्लिक करें (यह प्रोजेक्ट आईडी के बगल में मौजूद तीन बिंदुओं पर क्लिक करने पर, आपको सूची में दिए गए विकल्पों में दिखेगा)
  4. डेटासेट का नाम "bookshelf" डालें.
  5. जगह की जानकारी को "US(एक से ज़्यादा इलाके)" के तौर पर सेट करें.
  6. जवाब के तीसरे, 4, 5, और 6 चरण के लिए, डिफ़ॉल्ट विकल्प रहने दें.
  7. डेटासेट बनाएं पर क्लिक करें.

आपका डेटासेट बन जाएगा और वह एक्सप्लोरर पैनल में दिखेगा. "किताबों की अलमारी" डेटासेट को इस तरह देखा जा सकता है:

7. Vertex AI एलएलएम (text-bison-32k) को कॉल करने के लिए, रिमोट मॉडल बनाना

इसके बाद, हमें BigQuery में एक ऐसा मॉडल बनाना होगा जो "text-bison-32k" Vertex AI मॉडल को शुरू करता हो. डेटासेट में मौजूद हर किताब के कीवर्ड की सूची से, मॉडल की मदद से किताब की सामान्य थीम और कॉन्टेक्स्ट की पहचान की जा सकेगी.

चलिए, Gemini से यह सवाल पूछते हैं. इसके लिए, उस टैब पर जाएं जहां आपने Gemini Chat कंसोल खोला है. इसके बाद, यहां दिया गया प्रॉम्प्ट टाइप करें:

BigQuery में एलएलएम एंडपॉइंट (text-bison-32k) को कॉल करने के लिए, BigQuery और Vertex AI को कैसे कनेक्ट किया जाएगा?

रिस्पॉन्स इस तरह दिखता है:

41904e30ce92b436.png

रिस्पॉन्स में सटीक जानकारी शामिल होती है. जैसे, CREATE MODEL स्टेटमेंट का इस्तेमाल करने, BigQuery कनेक्शन का इस्तेमाल करने, और एंडपॉइंट तय करने के तरीके. मेरे लिए क्वेरी स्टेटमेंट सही है, लेकिन इसका मतलब यह नहीं है कि आपको बिलकुल वैसा ही आउटपुट मिलेगा, क्योंकि यह एक बड़ा लैंग्वेज मॉडल है. आपको अलग-अलग फ़ॉर्मैट, वॉल्यूम, और डेप्थ के हिसाब से जवाब मिल सकते हैं. अगर आपको वह पूरी जानकारी नहीं दिख रही है जो हमें मिली है, तो बेझिझक फ़ॉलो-अप सवाल पूछें. उदाहरण के लिए: कनेक्शन के लिए संसाधन बनाने का तरीका बताएं या कनेक्शन एट्रिब्यूट के मौजूद न होने की वजह बताएं. इसके अलावा, BigQuery से Vertex AI में कैसे कनेक्ट करूं वगैरह के बारे में ज़्यादा जानकारी दें.

यहां फ़ॉलो-अप प्रॉम्प्ट का एक सैंपल दिया गया है. इसका इस्तेमाल सिर्फ़ तब करें, जब आपको फ़ॉलो-अप की ज़रूरत हो. अगर आपको मिला पहला जवाब काफ़ी है, तो उसी पर आगे बढ़ें:

What about the connection? How will I connect from BigQuery to Vertex AI?

जवाब यहां दिया गया है:

2ed9b3ed96b11bc9.png

BigQuery कनेक्शन बनाने के लिए, जवाब में दिए गए चरणों का पालन करें:

  1. BigQuery कंसोल पर जाएं.
  2. BigQuery एक्सप्लोरर पैनल में, "+जोड़ें" बटन पर क्लिक करें. इसके बाद, "बाहरी डेटा सोर्स से कनेक्शन" पर क्लिक करें.
  3. इसके बाद, यह आपसे BigQuery कनेक्शन एपीआई को चालू करने के लिए कहेगा. 'एपीआई चालू करें' पर क्लिक करें:

ded96126495ffe9.png

  1. "बाहरी डेटा सोर्स से कनेक्शन" पर क्लिक करें. इसके बाद, आपको बाहरी डेटा सोर्स वाली स्लाइड दिखेगी, जैसा कि नीचे दिखाया गया है . बाहरी सोर्स की सूची में से, "Vertex AI" सोर्स चुनें.

434cdbbb3a9436f2.png

  1. कनेक्शन आईडी टाइप करें. यह आपकी पसंद का आईडी हो सकता है, लेकिन फ़िलहाल इसे "bq-vx" के तौर पर सेट करें. साथ ही, क्षेत्र (मल्टी-क्षेत्र "अमेरिका") भी डालें.
  2. "कनेक्शन बनाएं" पर क्लिक करें.

d3a2aeebc3ecdfae.png

  1. कनेक्शन बनाने के बाद, "कनेक्शन पर जाएं" पर क्लिक करें.
  2. कनेक्शन की जानकारी वाले पेज पर, सेवा खाते का आईडी कॉपी करें. हम अगले चरणों में इस आईडी का इस्तेमाल करेंगे.
  3. कनेक्शन बन जाने के बाद, Vertex AI का इस्तेमाल करने के लिए, कॉपी किए गए इस सेवा खाते के आईडी को अनुमतियां असाइन करें.
  4. Google Cloud Console पेज पर, Google Cloud IAM खोलें या लिंक पर जाएं.
  5. प्रिंसिपल के हिसाब से देखें सेक्शन में जाकर, ऐक्सेस दें पर क्लिक करें.

5317eed5da0bb8c5.png

  1. 'ऐक्सेस दें' डायलॉग बॉक्स में, नए सिद्धांत टेक्स्ट बॉक्स में वह सेवा खाता आईडी डालें जिसे हमने पहले नोट किया था.
  2. भूमिका को "Vertex AI User" पर सेट करें.

f213db33d220aa5f.png

ज़रूरी कनेक्शन बन जाता है. प्रिंसिपल (कनेक्शन का सेवा खाता) को BigQuery से Vertex AI का इस्तेमाल करने के लिए ज़रूरी अनुमति दी जाती है.

नीचे दिया गया डीडीएल(डेटा डेफ़िनिशन लैंग्वेज) स्टेटमेंट चलाएं. यह स्टेटमेंट, डीबी ऑब्जेक्ट बनाने के बारे में बताता है. इस मामले में, BigQuery क्वेरी एडिटर में MODEL.

CREATE OR REPLACE MODEL bookshelf.llm_model
  REMOTE WITH CONNECTION `us.bq-vx`
  OPTIONS (ENDPOINT = 'text-bison-32k');

ऊपर दिए गए चरण के विकल्प के तौर पर, Gemini से "text-bison-32k" मॉडल को लागू करने के लिए मॉडल बनाने के लिए क्वेरी का सुझाव देने के लिए कहा जा सकता है.

ध्यान दें: अगर आपने अपने कनेक्शन के लिए कोई दूसरा नाम इस्तेमाल किया है, तो पिछले डीडीएल स्टेटमेंट में " us.bq-vx" को उस नाम से बदलें. यह क्वेरी, "bookshelf" नाम के उस डेटासेट में रिमोट मॉडल बनाती है जिसे हमने पहले बनाया था.

8. ऐसा रिमोट फ़ंक्शन बनाना जो Java Cloud Function को कॉल करता है

अब हम Gemini मॉडल को लागू करने के लिए, इस सीरीज़ के codelab 1 में बनाए गए Java Cloud फ़ंक्शन का इस्तेमाल करके, BigQuery में एक रिमोट फ़ंक्शन बनाएंगे. किताब के कॉन्टेंट की खास जानकारी देने के लिए, रिमोट फ़ंक्शन का इस्तेमाल किया जाएगा.

ध्यान दें: अगर आपने यह कोडलैब नहीं किया है या आपने यह Cloud फ़ंक्शन डिप्लॉय नहीं किया है, तो इस चरण को छोड़ें और अगले विषय पर जाएं. अगला विषय, रिमोट मॉडल का इस्तेमाल करके किताबों की थीम की खास जानकारी देना है.

BigQuery कंसोल पर जाएं और यहां दिए गए डीडीएल स्टेटमेंट को क्वेरी एडिटर में चिपकाएं (+ बटन पर क्लिक करके, नया क्वेरी एडिटर टैब बनाया जा सकता है)

a54c0b0014666cac.png

यहां वह डीडीएल दिया गया है जिसे कॉपी किया जा सकता है. एंडपॉइंट को, डिप्लॉय किए गए Cloud Function एंडपॉइंट से बदलना न भूलें. यह एंडपॉइंट, codelab 1 से बनाया गया है. अगर आपके पास कोई एंडपॉइंट नहीं है, तो डेमो के मकसद से, नीचे दिए गए डीडीएल में मास्क किए गए वर्णों को "abis-345004" से बदला जा सकता है.

CREATE OR REPLACE FUNCTION
  `bookshelf.GEMINI_REMOTE_CALL` (context STRING) RETURNS STRING
  REMOTE WITH CONNECTION `us.bq-vx`
  OPTIONS (
    endpoint = 'https://us-central1-****-******.cloudfunctions.net/remote-gemini-call'  );

Google Cloud Platform पर BigQuery कंसोल पर जाएं और नया क्वेरी एडिटर टैब खोलें. BigQuery क्वेरी एडिटर में, ऊपर दिया गया डीडीएल स्टेटमेंट चिपकाएं. क्वेरी चलाने के बाद, आपको यह जवाब दिख सकता है:

a023d5691acf6f.png

अब मॉडल और फ़ंक्शन बन जाने के बाद, अब इन दोनों BigQuery ऑब्जेक्ट को SELECT क्वेरी में चलाकर उनकी जांच करें.

9. रिमोट मॉडल का इस्तेमाल करके थीम की खास जानकारी देना

आइए, थीम की दी गई सूची से किताब के लिए एक साथ कई कीवर्ड जनरेट करने के लिए, "bookshelf.llm_model" नाम के बनाए गए रिमोट मॉडल का इस्तेमाल करें:

SELECT * FROM ML.GENERATE_TEXT(MODEL `bookshelf.llm_model`,
(
SELECT
     CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
    FROM `gdelt-bq.internetarchivebooks.1920` LIMIT 1
));

ज़रूरी नहीं है: एलएलएम से जनरेट किए गए नतीजे वाले फ़ील्ड का नतीजा नेस्ट किया गया है. आइए, क्वेरी में कुछ एलएलएम पैरामीटर और "flatten_json_output" एट्रिब्यूट जोड़ें. "flatten_json_output" एट्रिब्यूट का इस्तेमाल करके, एलएलएम से जनरेट किए गए नतीजे वाले फ़ील्ड से नेस्ट किए गए स्ट्रक्चर को हटाया जा सकता है.

SELECT * FROM ML.GENERATE_TEXT ( MODEL `bookshelf.llm_model`, (
 SELECT CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt FROM `gdelt-bq.internetarchivebooks.1920` limit 1),
    STRUCT( 0.2 AS temperature, 100 AS max_output_tokens, TRUE AS flatten_json_output));

अब, BigQuery एडिटर में SELECT क्वेरी चलाएं और नतीजे की पुष्टि करें. हमने जांच के लिए, क्वेरी के नतीजे को एक पर सीमित कर दिया है. नतीजा इस तरह दिखता है:

9b0d33eca61a73d2.png

10. रिमोट फ़ंक्शन का इस्तेमाल करके, किताबों के पूरे टेक्स्ट की खास जानकारी पाना

अब हम पहले से बनाए गए bookshelf.GEMINI_REMOTE_CALL क्लाउड फ़ंक्शन को चलाकर, किताब की खास जानकारी देने की कोशिश करेंगे.

ध्यान दें: अगर आपने इस कोडलैब में, रिमोट फ़ंक्शन बनाने का पिछला टॉपिक छोड़ा था, तो SELECT क्वेरी में bookshelf.GEMINI_REMOTE_CALL फ़ंक्शन कॉल को भी छोड़ना न भूलें.

उस SELECT क्वेरी का उपयोग करें जो हमारे द्वारा पहले बनाए गए रिमोट फ़ंक्शन (GEMINI_REMOTE_CALL) को कॉल करती है. इस फ़ंक्शन, GEMINI_REMOTE_CALL को कॉल करने पर, एक प्रॉम्प्ट दिखता है. इसमें किताब के टेक्स्ट की खास जानकारी मांगी जाती है:

select BookMeta_Title, `bookshelf.GEMINI_REMOTE_CALL` (
  CONCAT('This is about a book. The title of the book is this: ', BookMeta_Title,  ' . The theme of the book is as follows: ', Themes, 'The following text contains an excerpt from the book. Summarize it in less than 5 lines to create the gist. If you do not have a summary, use the title and themes to make up a short summary. DO NOT RETURN EMPTY RESPONSE. ', SUBSTR(BookMeta_FullText, 5000, 10000))) Summary 
  from `gdelt-bq.internetarchivebooks.1920` where Themes like '%EDUCATION%' limit 1;

ध्यान दें कि हमने किताब के पूरे टेक्स्ट की सबस्ट्रिंग का इस्तेमाल करके, खास जानकारी जनरेट की है.

क्वेरी का नतीजा इस तरह दिखता है:

658bb0a9c9cf0938.png

11. किताबों का डेटा टेबल में सेव करना

अब हमने सिर्फ़ SQL क्वेरी का इस्तेमाल करके, BigQuery से एलएलएम कॉल (रिमोट मॉडल और फ़ंक्शन) दोनों की जांच कर ली है. अब आइए, थीम की अहम जानकारी के साथ "किताबों की शेल्फ़" का डेटा स्टोर करने के लिए, BigQuery टेबल बनाएं. यह टेबल, रिमोट मॉडल और फ़ंक्शन के डेटासेट में ही बनाई जाएगी.

इस चरण में, एलएलएम मॉडल कॉल और रिमोट फ़ंक्शन कॉल, दोनों को शामिल किया जा सकता है. हालांकि, हमने रिमोट फ़ंक्शन कॉल (जो Cloud फ़ंक्शन को ट्रिगर करता है) को वैकल्पिक चरण के तौर पर मार्क किया है. इसलिए, हम सिर्फ़ रिमोट मॉडल की अहम जानकारी का इस्तेमाल करेंगे.

हम इस क्वेरी का इस्तेमाल करेंगे:

SELECT
  BookMeta_Title, Themes, ml_generate_text_llm_result Context 
   FROM
  ML.GENERATE_TEXT (
    MODEL `bookshelf.llm_model`,
    (
 SELECT
      BookMeta_Title,
      Themes,BookMeta_FullText,
      CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
    FROM `gdelt-bq.internetarchivebooks.1920` limit 5),
    STRUCT(
      0.2 AS temperature,
      100 AS max_output_tokens,
      TRUE AS flatten_json_output));

BigQuery Editor में क्वेरी चलाने पर ऐसा नतीजा मिलता है:

2c6e08e75a680867.png

अब Gemini को ऊपर दी गई क्वेरी से "bookshelf.books" नाम की टेबल बनाने के लिए कहें. Google Cloud Console पर Gemini चैट कंसोल पर जाएं और यहां दिया गया प्रॉम्प्ट डालें.

हम इस प्रॉम्प्ट का इस्तेमाल करेंगे:

Create a BigQuery table named bookshelf.books from this SELECT query: 
SELECT
  BookMeta_Title, Themes, ml_generate_text_llm_result Context 
   FROM
  ML.GENERATE_TEXT (
    MODEL `bookshelf.llm_model`,
    (
 SELECT
      BookMeta_Title,
      Themes,BookMeta_FullText,
      CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
    FROM `gdelt-bq.internetarchivebooks.1920` limit 5),
    STRUCT(
      0.2 AS temperature,
      100 AS max_output_tokens,
      TRUE AS flatten_json_output));

Gemini Chat से मिला जवाब इस तरह का है:

df6595a4b14f7b9.png

अगर आपको क्वेरी को सीधे यहां से कॉपी करना है, तो यहां दी गई क्वेरी देखें:

CREATE TABLE bookshelf.books (
  BookMeta_Title STRING,
  Themes STRING,
  ml_generate_text_llm_result STRING
) AS (
  SELECT
    BookMeta_Title,
    Themes,
    ml_generate_text_llm_result Context
  FROM
    ML.GENERATE_TEXT (
      MODEL `bookshelf.llm_model`,
      (
        SELECT
          BookMeta_Title,
          Themes,
          BookMeta_FullText,
          CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
        FROM `gdelt-bq.internetarchivebooks.1920`
        LIMIT 5
      ),
      STRUCT(
        0.2 AS temperature,
        100 AS max_output_tokens,
        TRUE AS flatten_json_output
      )
    )
);

BigQuery एडिटर में क्वेरी चलाने के बाद, नतीजा इस तरह दिखता है:

2d1ce716f844b7ad.png

हो गया! अब टेबल में क्वेरी करें और ज़्यादा अहम जानकारी के लिए डेटा में बदलाव करें.

12. बधाई हो

बधाई हो! हमने ये काम पूरे कर लिए हैं. साथ ही, इस प्रोसेस के कुछ चरणों में Gemini का इस्तेमाल भी किया है:

  • BigQuery में एक रिमोट मॉडल बनाया गया है, जो टेबल में ";" से अलग किए गए कीवर्ड की सूची से, किताब की शैली (या थीम) की पहचान करने के लिए Vertex AI "text-bison-32k" एंडपॉइंट को कॉल करता है.
  • BigQuery में एक रिमोट फ़ंक्शन बनाया है, जो डिप्लॉय किए गए जनरेटिव एआई क्लाउड फ़ंक्शन को रिमोट तौर पर चालू करेगा. यह फ़ंक्शन प्रॉम्प्ट को इनपुट के तौर पर लेगा और एक स्ट्रिंग को आउटपुट करेगा, जिसमें किताब की खास जानकारी पांच लाइनों में दी गई होगी.
  • SQL क्वेरी की मदद से, किसी किताब की थीम और टेक्स्ट की खास जानकारी देने के लिए, रिमोट मॉडल और फ़ंक्शन का इस्तेमाल किया. साथ ही, किताबों की अलमारी के डेटासेट में नई टेबल में नतीजे लिखे.
  • फ़ॉलो-अप असाइनमेंट के तौर पर, BigQuery में बनाए गए ऑब्जेक्ट मिटाने के लिए, Gemini का इस्तेमाल करके एसक्यूएल पाएं. इसमें, क्लीनअप का चरण शामिल होगा.