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

1. परिचय

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

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

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

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

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

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

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

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

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

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

आपको एक

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

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

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

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

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

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

Cloud Shell चालू करें

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

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

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

gcloud auth list

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

gcloud config list project

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

gcloud config set project <YOUR_PROJECT_ID>

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

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

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

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

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

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

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

हम ऐसा कैसे करेंगे? चलो, Gemini से पूछते हैं, ठीक है? हालांकि, इससे पहले यह याद रखें कि:

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

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

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

gcloud कमांड का इस्तेमाल करके, BigQuery और Vertex AI API कैसे चालू करें?

आपको जवाब के तौर पर यह इमेज दिखेगी:

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 (title)
  • थीम (थीम को ‘;' से अलग किया गया है)
  • BookMeta_FullText (किताब का पूरा टेक्स्ट)

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

हमें प्रोजेक्ट के तहत एक डेटासेट बनाना है, ताकि हम इस लैब में बनाए जाने वाले सभी डेटाबेस और Analytics ऑब्जेक्ट को सेव कर सकें. आइए, 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(Multi-region)" के तौर पर सेट करें.
  6. जवाब के तीसरे, चौथे, पांचवें, और छठे चरण के लिए, डिफ़ॉल्ट विकल्पों को छोड़ दें.
  7. डेटासेट बनाएं पर क्लिक करें.

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

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

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

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

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 Connection API चालू करने के लिए कहा जाएगा. 'एपीआई चालू करें' पर क्लिक करें:

ded96126495ffe9.png

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

434cdbbb3a9436f2.png

  1. कनेक्शन आईडी डालें. यह आपकी पसंद का आईडी हो सकता है. हालांकि, फ़िलहाल इसे "bq-vx" और क्षेत्र (मल्टीरीजन "US") के तौर पर सेट करें.
  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" मॉडल को चालू करने के लिए मॉडल बनाने से जुड़ी क्वेरी का सुझाव देने के लिए कहा जा सकता है.

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

8. ऐसा रिमोट फ़ंक्शन बनाएं जो Java Cloud Function को चालू करे

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

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

BigQuery कंसोल पर जाएं और Query Editor में यह DDL स्टेटमेंट चिपकाएं. + बटन पर क्लिक करके, नया Query Editor टैब बनाया जा सकता है

a54c0b0014666cac.png

यहां डीडीएल दिया गया है. इसे कॉपी किया जा सकता है. एंडपॉइंट को डिप्लॉय किए गए Cloud फ़ंक्शन एंडपॉइंट (कोड लैब 1 से बनाया गया) से बदलना न भूलें. अगर आपके पास कोई एंडपॉइंट नहीं है, तो डेमो के लिए नीचे दिए गए DDL में, मास्क किए गए वर्णों की जगह "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 क्वेरी एडिटर में, ऊपर दिया गया DDL स्टेटमेंट चिपकाएं. क्वेरी चलाने के बाद, आपको यह जवाब दिखेगा:

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. रिमोट फ़ंक्शन का इस्तेमाल करके, किताबों के पूरे टेक्स्ट की खास जानकारी पाना

अब हम किताब की खास जानकारी देने की कोशिश करेंगे. इसके लिए, हम पहले से बनाए गए Cloud फ़ंक्शन 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 एडिटर में क्वेरी चलाने पर, नतीजे इस तरह दिखते हैं:

2c6e08e75a680867.png

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

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

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 में एक रिमोट फ़ंक्शन बनाया गया है, जो डिप्लॉय किए गए इस जनरेटिव एआई Cloud फ़ंक्शन को रिमोट तरीके से चालू करेगा. यह फ़ंक्शन, प्रॉम्प्ट को इनपुट के तौर पर लेगा और एक ऐसी स्ट्रिंग आउटपुट करेगा जिसमें किताब के बारे में पांच लाइनों में जानकारी दी गई हो.
  • इस उदाहरण में, रिमोट मॉडल और फ़ंक्शन का इस्तेमाल करके, SQL क्वेरी की मदद से किसी किताब की थीम और टेक्स्ट की खास जानकारी दी गई है. साथ ही, नतीजों को बुकशेल्फ़ डेटासेट की नई टेबल में लिखा गया है.
  • फ़ॉलो-अप असाइनमेंट के तौर पर, BigQuery में बनाए गए ऑब्जेक्ट मिटाने के लिए एसक्यूएल पाने के लिए, Gemini का इस्तेमाल करें. इसमें डेटा को साफ़ करने के बारे में बताया गया है.