एआई के दौर में ऐप्लिकेशन बनाना

1. खास जानकारी

इस लैब में, आपको Google के जनरेटिव एआई प्रॉडक्ट का इस्तेमाल करके, Gemini Cloud Assist की मदद से Google Cloud में इन्फ़्रास्ट्रक्चर बनाने के बारे में जानकारी मिलेगी. साथ ही, Data Canvas की एसक्यूएल सुविधाओं की मदद से, सामान्य भाषा का इस्तेमाल करके BigQuery डेटा की क्वेरी करने, Gemini Code Assist की मदद से Colab Enterprise Jupyter नोटबुक और Eclipse Theia (Visual Studio Code) में कोड लिखने, और Vertex AI एजेंट बिल्डर में Cloud Storage और BigQuery ग्राउंडिंग सोर्स पर बनाई गई एआई सर्च और चैट की सुविधाओं को इंटिग्रेट करने के बारे में भी जानकारी मिलेगी.

हमारा लक्ष्य, रेसिपी और खाना बनाने की वेबसाइट बनाना है. इसका नाम AI Recipe Haven होगा. यह साइट, Python और Streamlit में बनाई जाएगी. इसमें दो मुख्य पेज होंगे. Cooking Advice में एक चैटबॉट होगा. इसे हम Gemini और Vertex AI एजेंट बिल्डर का इस्तेमाल करके बनाएंगे. यह चैटबॉट, कुकबुक के ग्रुप से जुड़े सोर्स पर आधारित होगा. यह चैटबॉट, खाना बनाने से जुड़ी सलाह देगा और इस बारे में पूछे गए सवालों के जवाब देगा. Recipe Search एक ऐसा सर्च इंजन होगा जिसे Gemini से फ़ीड किया जाएगा. इस बार, यह BigQuery के रेसिपी डेटाबेस पर आधारित होगा.

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

मकसद

इस लैब में, आपको ये काम करने का तरीका पता चलेगा:

  • Gemini Cloud Assist को चालू और इस्तेमाल करना
  • खाना बनाने से जुड़ी सलाह देने वाले चैटबॉट के लिए, Vertex AI Agent Builder में खोज ऐप्लिकेशन बनाना
  • Gemini Code Assist की मदद से, Colab Enterprise के नोटबुक में डेटा लोड करना और उसे साफ़ करना
  • रेसिपी जनरेटर के लिए, Vertex AI Agent Builder में सर्च ऐप्लिकेशन बनाना
  • Gemini की मदद से, मुख्य Python और Streamlit वेब ऐप्लिकेशन को फ़्रेम करना
  • वेब ऐप्लिकेशन को Cloud Run पर डिप्लॉय करना
  • कुकिंग सलाह वाले पेज को, कुकबुक खोजने वाले एजेंट बिल्डर ऐप्लिकेशन से कनेक्ट करना
  • (ज़रूरी नहीं) रेसिपी खोज पेज को रेसिपी खोजने वाले एजेंट बिल्डर ऐप्लिकेशन से कनेक्ट करना
  • (ज़रूरी नहीं) फ़ाइनल ऐप्लिकेशन एक्सप्लोर करना

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

  1. अगर आपके पास पहले से कोई Google खाता नहीं है, तो आपको Google खाता बनाना होगा.
    • ऑफ़िस या स्कूल वाले खाते के बजाय, निजी खाते का इस्तेमाल करें. ऑफ़िस और स्कूल वाले खातों पर ऐसी पाबंदियां हो सकती हैं जिनकी वजह से, इस लैब के लिए ज़रूरी एपीआई चालू नहीं किए जा सकते.

3. प्रोजेक्ट सेटअप करना

  1. Google Cloud Console में साइन इन करें.
  2. Cloud Console में बिलिंग चालू करें.
    • इस लैब को पूरा करने के लिए, Cloud के संसाधनों पर 1 डॉलर से कम खर्च करना पड़ेगा.
    • आगे कोई शुल्क न देना हो, तो इस लैब के आखिर में दिए गए तरीके का इस्तेमाल करके संसाधन मिटाएं.
    • नए उपयोगकर्ताओं को 300 डॉलर का मुफ़्त क्रेडिट मिलता है.
    • क्या आपको वर्चुअल लैब इवेंट में शामिल होना है? आपको 5 डॉलर का क्रेडिट मिल सकता है.
  3. नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें.
  4. Cloud Billing में मेरे प्रोजेक्ट में जाकर, पुष्टि करें कि बिलिंग की सुविधा चालू है
    • अगर आपके नए प्रोजेक्ट के Billing account कॉलम में Billing is disabled दिखता है, तो:
      1. Actions कॉलम में मौजूद तीन बिंदुओं पर क्लिक करें
      2. बिलिंग बदलें पर क्लिक करें
      3. वह बिलिंग खाता चुनें जिसका इस्तेमाल करना है
    • अगर लाइव इवेंट में हिस्सा लिया जा रहा है, तो खाते का नाम Google Cloud Platform का ट्रायल बिलिंग खाता होगा

4. Gemini Cloud Assist को चालू और इस्तेमाल करना

इस टास्क में, हम Gemini Cloud Assist को चालू और इस्तेमाल करेंगे. Google Cloud Console में काम करते समय, Gemini Cloud Assist आपको सलाह दे सकता है. साथ ही, Google Cloud इंफ़्रास्ट्रक्चर को बनाने, कॉन्फ़िगर करने, और उसकी निगरानी करने में आपकी मदद कर सकता है. यह gcloud निर्देशों का सुझाव भी दे सकता है और Terraform स्क्रिप्ट लिख सकता है.

  1. Cloud Assist का इस्तेमाल करने के लिए, Cloud Console के यूज़र इंटरफ़ेस (यूआई) में सबसे ऊपर मौजूद खोज बॉक्स पर क्लिक करें. इसके बाद, Gemini से पूछें या Cloud Console के लिए Gemini से पूछें को चुनें.
  2. पेज पर ज़रूरी एपीआई सेक्शन तक स्क्रोल करें और Gemini for Google Cloud API को चालू करें.
  3. अगर आपको तुरंत चैट इंटरफ़ेस नहीं दिखता है, तो चैट शुरू करें पर क्लिक करें. Gemini से Cloud Shell Editor का इस्तेमाल करने के कुछ फ़ायदे बताने के लिए कहें. जनरेट किए गए जवाब को देखने के लिए कुछ समय निकालें.
  4. इसके बाद, एजेंट बिल्डर के फ़ायदों के बारे में पूछें. साथ ही, यह भी जानें कि यह जनरेटिव जवाबों को बेहतर बनाने में कैसे मदद कर सकता है.
  5. आखिर में, इन दोनों के बीच तुलना करते हैं. Google Cloud Console की Gemini चैट विंडो में, यह सवाल पूछें:
    What are the major steps to creating a search app grounded in a GCS data source using Vertex AI Agent builder?
    

5. खाना बनाने से जुड़ी सलाह देने वाले चैटबॉट के लिए, Vertex AI Agent Builder में खोज ऐप्लिकेशन बनाना

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

  1. Vertex AI पर जाने के लिए, Cloud Console के खोज बॉक्स का इस्तेमाल करें. डैशबोर्ड में, सुझाए गए सभी एपीआई चालू करें पर क्लिक करें. इसमें कुछ मिनट लग सकते हैं. अगर आपको Vertex AI API को चालू करने के बारे में पॉप-अप बॉक्स मिलता है, तो कृपया उसे भी चालू करें. एपीआई चालू होने के बाद, अगले चरण पर जाएं.
  2. खोज का इस्तेमाल करके, एजेंट बिल्डर पर जाएं. इसके बाद, जारी रखें और एपीआई चालू करें पर क्लिक करें.
  3. जैसा कि Gemini ने हमारी पिछली सलाह में सुझाया था, Agent Builder में सर्च ऐप्लिकेशन बनाने की प्रोसेस, आधिकारिक डेटा सोर्स बनाने से शुरू होती है. जब कोई उपयोगकर्ता कुछ खोजता है, तो Gemini उस सवाल को समझता है और बेहतर जवाब देने का तरीका भी समझता है. हालांकि, वह जवाब देने के लिए, अपने अंदर मौजूद जानकारी का इस्तेमाल करने के बजाय, किसी भरोसेमंद सोर्स से जानकारी लेता है. बाईं ओर मौजूद मेन्यू में, डेटा स्टोर और डेटा स्टोर बनाएं पर जाएं.
  4. खाना बनाने से जुड़ी सलाह देने वाले पेज पर, सार्वजनिक डोमेन की जिन कुकबुक का इस्तेमाल किया जा रहा है वे फ़िलहाल किसी बाहरी प्रोजेक्ट की Cloud Storage बकेट में मौजूद हैं. Cloud Storage का सोर्स टाइप चुनें.
  5. इंपोर्ट की जा रही जानकारी के टाइप से जुड़े डिफ़ॉल्ट विकल्पों की जांच करें, लेकिन उन्हें न बदलें. इंपोर्ट टाइप को फ़ोल्डर पर सेट रहने दें. साथ ही, बकेट पाथ के लिए: labs.roitraining.com/labs/old-cookbooks का इस्तेमाल करें. इसके बाद, जारी रखें पर क्लिक करें.
  6. डेटा स्टोर को नाम दें: old-cookbooks. बदलाव करें पर क्लिक करें और आईडी को old-cookbooks-idमें बदलें. इसके बाद, डेटा स्टोर बनाएं.

Vertex AI Agent Builder, कई तरह के ऐप्लिकेशन के साथ काम करता है. साथ ही, डेटा स्टोर हर ऐप्लिकेशन के लिए सटीक जानकारी का सोर्स होता है. खोज ऐप्लिकेशन, सामान्य इस्तेमाल और खोज के लिए अच्छे होते हैं. चैट ऐप्लिकेशन, डेटाफ़्लो से चलने वाले चैटबॉट/वॉइसबॉट ऐप्लिकेशन में जनरेटिव फ़्लो के लिए होते हैं. सुझाव देने वाले ऐप्लिकेशन, सुझाव देने वाले बेहतर इंजन बनाने में मदद करते हैं. साथ ही, एजेंट ऐप्लिकेशन, जेन एआई से चलने वाले एजेंट बनाने के लिए हैं. आखिरकार, एजेंट की मदद से, हम अपनी ज़रूरत के हिसाब से काम कर पाएंगे. हालांकि, फ़िलहाल प्रॉडक्ट की झलक दिखाने के लिए, हम Search Network में दिखने वाले ऐप्लिकेशन का इस्तेमाल करेंगे.

  1. बाईं ओर मौजूद मेन्यू का इस्तेमाल करके, ऐप्लिकेशन पर जाएं. इसके बाद, नया ऐप्लिकेशन बनाएं पर क्लिक करें.
  2. अपनी वेबसाइट खोजें कार्ड पर, बनाएं पर क्लिक करें. ऐप्लिकेशन को cookbook-search नाम दें. बदलाव करें पर क्लिक करें और ऐप्लिकेशन आईडी को cookbook-search-id पर सेट करें. कंपनी को Google पर सेट करें और जारी रखें पर क्लिक करें.
  3. वह old-cookbooks डेटा स्टोर देखें जिसे आपने कुछ ही चरणों पहले बनाया था. इसके बाद, Search ऐप्लिकेशन बनाएं.

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

6. Gemini Code Assist की मदद से, Colab Enterprise के नोटबुक में डेटा लोड करना और उसे साफ़ करना

Google Cloud, Jupyter Notebooks के साथ काम करने के कुछ मुख्य तरीके उपलब्ध कराता है. हम Google की नई सुविधा, Colab Enterprise का इस्तेमाल करने जा रहे हैं. आप में से कुछ लोगों को Google के Colab प्रॉडक्ट के बारे में पता होगा. इसका इस्तेमाल आम तौर पर वे लोग और संगठन करते हैं जो बिना किसी शुल्क के Jupyter notebook का इस्तेमाल करना चाहते हैं. Colab Enterprise, Google Cloud की एक कमर्शियल सेवा है. यह Google के अन्य क्लाउड प्रॉडक्ट के साथ पूरी तरह से इंटिग्रेट है. साथ ही, यह GCP एनवायरमेंट की सुरक्षा और नियमों का पालन करने से जुड़ी सुविधाओं का पूरा फ़ायदा लेती है.

Colab Enterprise की एक सुविधा, Google के Gemini Code Assist के साथ इंटिग्रेशन है. कोड असिस्ट की सुविधा का इस्तेमाल, कई अलग-अलग कोड एडिटर में किया जा सकता है. साथ ही, यह आपको कोड लिखते समय सलाह दे सकती है और इनलाइन सुझाव दे सकती है. हम अपनी रेसिपी के डेटा को व्यवस्थित करते समय, इस जनरेटिव असिस्टेंट का फ़ायदा लेंगे.

  1. खोज बार का इस्तेमाल करके, Colab Enterprise पर जाएं और नोटबुक बनाएं पर क्लिक करें. अगर आपको Colab की नई सुविधाओं को आज़माने का ऑफ़र मिलता है, तो उसे खारिज कर दें. रनटाइम और नोटबुक की कंप्यूट पावर को चालू करने के लिए, अपने नए नोटबुक के ऊपरी दाएं कोने में मौजूद कनेक्ट करें पर क्लिक करें.कनेक्ट करें
  2. नोटबुक का नाम बदलकर Data Wrangling करने के लिए, फ़ाइल > नाम बदलें पर क्लिक करें.तीन बिंदु वाले आइकॉन पर क्लिक करके नाम बदलना
  3. नया टेक्स्ट बॉक्स बनाने के लिए, + टेक्स्ट पर क्लिक करें. इसके बाद, अप ऐरो का इस्तेमाल करके उसे पेज पर पहली सेल पर ले जाएं.+ टेक्स्ट और अप ऐरो
  4. टेक्स्ट बॉक्स में बदलाव करें और यह डालें:
    # Data Wrangling
    
    Import the Pandas library
    
  5. आपने जो टेक्स्ट ब्लॉक बनाया है उसके नीचे मौजूद कोड ब्लॉक में, imp टाइप करें. इसके बाद, Gemini Code Assist आपको बाकी इंपोर्ट के लिए स्लेटी रंग में सुझाव देगा. सुझाव स्वीकार करने के लिए, Tab दबाएं.
    import pandas as pd
    
  6. इंपोर्ट कोड बॉक्स के नीचे, एक और टेक्स्ट बॉक्स बनाएं और इसमें यह डालें:
    Create a Pandas DataFrame from: gs://labs.roitraining.com/labs/recipes/recipe_dataset.csv. View the first few records.
    
  7. कोई दूसरा कोड ब्लॉक बनाएं और उसमें बदलाव करें. फिर से df = टाइप करें और Gemini Code Assistant के जनरेट किए गए कोड की जांच करें. अगर आपको जनरेट किए गए सुझाव के ऊपर, Python कीवर्ड की ऑटोकंप्लीट ड्रॉपलिस्ट दिखती है, तो सुझाया गया हल्का स्लेटी रंग का कोड देखने के लिए, 'बचें' दबाएं. सुझाव स्वीकार करने के लिए, फिर से Tab दबाएं. अगर आपके सुझाव में head() फ़ंक्शन कॉल शामिल नहीं है, तो उसे जोड़ें.
    df = pd.read_csv('gs://labs.roitraining.com/labs/recipes/recipe_dataset.csv')
    df.head()
    
  8. अपनी पहली कोड सेल पर क्लिक करें, जहां आपने Pandas इंपोर्ट किया है. इसके बाद, चुनी गई सेल को चलाने के लिए, कमांड मेन्यू या कीबोर्ड का इस्तेमाल करें. कीबोर्ड पर shift+enter दबाने से, सेल चलने लगेगी और फ़ोकस अगली सेल पर शिफ़्ट हो जाएगा. साथ ही, ज़रूरत पड़ने पर एक नई सेल भी बन जाएगी. आगे बढ़ने से पहले, सेल के लागू होने का इंतज़ार करें.ध्यान दें: अगर कोई सेल लागू नहीं हुई है, तो आपको बाईं ओर [ ] दिखेगा. सेल के चालू होने के दौरान, आपको घूमता हुआ ऐनिमेशन दिखेगा. सेल भर जाने के बाद, [13] जैसा कोई नंबर दिखेगा.
  9. उस सेल को चलाएं जो CSV को DataFrame में लोड करती है. फ़ाइल के लोड होने का इंतज़ार करें और डेटा की पहली पांच पंक्तियों की जांच करें. यह रेसिपी का वह डेटा है जिसे हम BigQuery में लोड करेंगे. साथ ही, इसका इस्तेमाल रेसिपी जनरेटर को बेहतर बनाने के लिए किया जाएगा.
  10. नया कोड ब्लॉक बनाएं और नीचे दी गई टिप्पणी डालें. टिप्पणी टाइप करने के बाद, कोड की अगली लाइन पर जाएं. आपको सुझाव df.columns दिखेगा. इसे स्वीकार करें. इसके बाद, सेल को चलाएं.
    # List the current DataFrame column names
    
    हमने अभी-अभी बताया है कि Jupyter नोटबुक में Gemini Code Assist की मदद पाने के लिए, आपके पास दो विकल्प हैं: कोड सेल के ऊपर टेक्स्ट सेल या कोड सेल में टिप्पणियां. कोड सेल में की गई टिप्पणियां, Jupyter Notebooks में अच्छी तरह से काम करती हैं. हालांकि, यह तरीका Google के Gemini कोड असिस्ट की सुविधा के साथ काम करने वाले किसी भी दूसरे आईडीई में भी काम करेगा.
  11. आइए, कॉलम को थोड़ा सा व्यवस्थित करते हैं. कॉलम Unnamed: 0 का नाम बदलकर id और link का नाम बदलकर uri करें. कोड बनाने के लिए, प्रॉम्प्ट > कोड तकनीक में से अपनी पसंद का विकल्प चुनें. इसके बाद, जब आप संतुष्ट हो जाएं, तो सेल चलाएं.
    # Rename the column 'Unnamed: 0' to 'id' and 'link' to 'uri'
    df.rename(columns={'Unnamed: 0': 'id', 'link': 'uri'}, inplace=True)
    
  12. source और NER कॉलम हटाएं और पहली कुछ पंक्तियां देखने के लिए, head() का इस्तेमाल करें. फिर से, Gemini से मदद पाएं. आखिरी दो लाइनों को चलाएं और नतीजों की जांच करें.
    # Remove the source and NER columns
    df.drop(columns=['source', 'NER'], inplace=True)
    df.head()
    
  13. आइए, देखें कि हमारे डेटासेट में कितने रिकॉर्ड हैं. फिर से, प्रॉम्प्ट करने की अपनी पसंदीदा तकनीक से शुरू करें और देखें कि क्या Gemini की मदद से कोड जनरेट किया जा सकता है.
    # Count the records in the DataFrame
    df.shape # count() will also work
    
  14. 2.23 लाख रिकॉर्ड, शायद रेसिपी के लिए हमारे पास मौजूद समय से ज़्यादा हैं. आज के एक्सरसाइज़ के लिए, Agent Builder में इंडेक्स करने की प्रोसेस में काफ़ी समय लगेगा. समझौते के तौर पर, 1,50,000 रेसिपी का सैंपल लें और उस पर काम करें. सैंपल लेने के लिए, अपने प्रॉम्प्ट > कोड के तरीके का इस्तेमाल करें और उसे dfs (छोटे के लिए s) नाम की नई डेटाफ़्रेम में सेव करें.
    # Sample out 150,000 records into a DataFrame named dfs
    dfs = df.sample(n=150000)
    
  15. हमारा रेसिपी सोर्स डेटा, BigQuery में लोड होने के लिए तैयार है. डेटा लोड करने से पहले, BigQuery पर जाएं और अपनी टेबल को सेव करने के लिए डेटासेट तैयार करें. Google Cloud Console में, BigQuery पर जाने के लिए खोज बॉक्स का इस्तेमाल करें. BigQuery पर राइट क्लिक करके, उसे नए ब्राउज़र टैब में खोला जा सकता है.
  16. अगर यह पहले से नहीं दिख रहा है, तो Cloud Console के सबसे ऊपर दाईं ओर मौजूद Gemini लोगो का इस्तेमाल करके, Gemini एआई चैट पैनल खोलें. अगर आपसे एपीआई को फिर से चालू करने के लिए कहा जाता है, तो 'चालू करें' दबाएं या पेज को रीफ़्रेश करें. प्रॉम्प्ट चलाएं: What is a dataset used for in BigQuery? जवाब के बारे में जानने के बाद, How can I create a dataset named recipe_data using the Cloud Console? नतीजों की तुलना यहां दिए गए कुछ चरणों से करें.Gemini Cloud Assist खोलना
  17. BigQuery एक्सप्लोरर पैनल में, अपने प्रोजेक्ट आईडी के बगल में मौजूद तीन बिंदु वाले कार्रवाइयां देखें मेन्यू पर क्लिक करें. इसके बाद, डेटासेट बनाएं चुनें.व्यू ऐक्शन के बारे में जानकारी
  18. recipe_data का डेटासेट और आईडी दें. जगह का टाइप अमेरिका पर सेट रहने दें और डेटासेट बनाएं. अगर आपको गड़बड़ी का कोई मैसेज मिलता है, जिसमें बताया गया हो कि डेटासेट पहले से मौजूद है, तो उसे अनदेखा करें.BigQuery में बनाए गए डेटासेट के साथ, अपनी नोटबुक पर वापस जाएं और डेटा डालें.
  19. Colab Enterprise में, डेटा व्रणलिंग नोटबुक पर वापस जाएं. नई कोड सेल में, project_id नाम का वैरिएबल बनाएं और इसका इस्तेमाल अपने मौजूदा प्रोजेक्ट आईडी को सेव करने के लिए करें. इन निर्देशों के ऊपर बाईं ओर, 'लैब बंद करें' बटन के नीचे, आपको मौजूदा प्रोजेक्ट आईडी दिखेगा. अगर आप चाहें, तो यह Cloud Console के होम पेज पर भी उपलब्ध है. अपने project_id वैरिएबल में वैल्यू असाइन करें और सेल चलाएं.
    # Create a variable to hold the current project_id
    project_id='YOUR_PROJECT_ID'
    
  20. प्रॉम्प्ट > कोड के तरीके का इस्तेमाल करके, कोड का एक ब्लॉक बनाएं. यह कोड, हमारे बनाए गए डेटासेट recipe_data में recipes नाम की टेबल में, DataFrame dfs को डाल देगा. सेल चलाएं.
    dfs.to_gbq(destination_table='recipe_data.recipes', project_id=project_id, if_exists='replace')
    

7. रेसिपी जनरेटर के लिए, Vertex AI Agent Builder में सर्च ऐप्लिकेशन बनाना

बहुत बढ़िया, रेसिपी के डेटा की टेबल बनाई जा चुकी है. अब इसका इस्तेमाल करके, रेसिपी जनरेटर के लिए एक अच्छा डेटा सोर्स बनाएं. हम उसी तरीके का इस्तेमाल करेंगे जो हमने अपने कुकिंग चैटबॉट के लिए किया था. हम डेटा स्टोर बनाने के लिए, Vertex AI Agent Builder का इस्तेमाल करेंगे. इसके बाद, हम उस डेटा स्टोर का इस्तेमाल, Search ऐप्लिकेशन के लिए सोर्स ऑफ़ ट्रूथ के तौर पर करेंगे.

अगर आपको Agent Builder सर्च ऐप्लिकेशन बनाने का तरीका याद नहीं है, तो Google Cloud Console में Gemini से पूछें. इसके अलावा, यहां दिया गया तरीका भी अपनाया जा सकता है.

  1. एजेंट बिल्डर पर जाने के लिए, खोज का इस्तेमाल करें. डेटा स्टोर और डेटा स्टोर बनाएं खोलें. इस बार, BigQuery डेटा स्टोर का टाइप चुनें.
  2. टेबल की चुनी गई सेल में, ब्राउज़ करें दबाएं और recipes खोजें. अपनी टेबल के बगल में मौजूद रेडियो बटन को चुनें. अगर आपको अन्य qwiklabs-gcp-... प्रोजेक्ट की रेसिपी दिखती हैं, तो पक्का करें कि आपने अपने प्रोजेक्ट की रेसिपी चुनी हो.ध्यान दें: अगर आपने रेसिपी के बगल में मौजूद रेडियो बटन को चुनने के बजाय, recipes पर क्लिक किया है, तो आपके ब्राउज़र में एक नया टैब खुलेगा और आपको BigQuery में टेबल की खास जानकारी वाले पेज पर ले जाएगा. बस ब्राउज़र टैब बंद करें और एजेंट बिल्डर में रेडियो बटन चुनें.
  3. बाकी डिफ़ॉल्ट विकल्पों की जांच करें, लेकिन उनमें बदलाव न करें. इसके बाद, जारी रखें पर क्लिक करें.
  4. स्कीमा की समीक्षा वाले पेज पर, शुरुआती डिफ़ॉल्ट कॉन्फ़िगरेशन की जांच करें, लेकिन कुछ भी न बदलें. जारी रखें
  5. डेटास्टोर को recipe-data नाम दें. डेटास्टोर आईडी में बदलाव करें और उसे recipe-data-id पर सेट करें. डेटा स्टोर बनाएं.
  6. बाईं ओर मौजूद नेविगेशन मेन्यू का इस्तेमाल करके, ऐप्लिकेशन पर जाएं और नया ऐप्लिकेशन बनाएं पर क्लिक करें.
  7. अपनी वेबसाइट खोजें कार्ड पर, बनाएं पर क्लिक करें. ऐप्लिकेशन का नाम recipe-search रखें और आईडी को recipe-search-id पर सेट करने के लिए, बदलाव करें पर क्लिक करें. कंपनी का नाम Google पर सेट करें और जारी रखें पर क्लिक करें.
  8. इस बार, recipe-data डेटा सोर्स देखें. ऐप्लिकेशन बनाएं.

हमारी डेटाबेस टेबल को इंडेक्स होने में कुछ समय लगेगा. इस दौरान, BigQuery के नए डेटा कैनवस के साथ प्रयोग करते हैं और देखते हैं कि क्या हमें एक या दो दिलचस्प रेसिपी मिल सकती हैं.

  1. BigQuery पर जाने के लिए, खोज बॉक्स का इस्तेमाल करें. BigQuery Studio में सबसे ऊपर, सबसे दाएं टैब के बगल में मौजूद डाउन ऐरो पर क्लिक करें. इसके बाद, डेटा कैनवस चुनें. क्षेत्र को us-central1 पर सेट करें.डेटा कैनवस खोलना
  2. डेटा खोजें पर क्लिक करें. डेटा कैनवस के खोज बॉक्स में, recipes खोजें. खोजने के लिए, Enter/Return दबाएं. इसके बाद, अपनी टेबल के नाम के बगल में मौजूद कैनवस में जोड़ें बटन पर क्लिक करें.
  3. आपकी रेसिपी टेबल का विज़ुअल, BigQuery डेटा कैनवस में लोड हो जाएगा. टेबल के स्कीमा को एक्सप्लोर किया जा सकता है, टेबल में मौजूद डेटा की झलक देखी जा सकती है, और अन्य जानकारी की जांच की जा सकती है. टेबल के नीचे, क्वेरी पर क्लिक करें.
  4. कैनवस पर, BigQuery की क्वेरी डायलॉग बॉक्स जैसा एक डायलॉग बॉक्स दिखेगा. हालांकि, इसमें एक और चीज़ जोड़ी गई है: क्वेरी विंडो के ऊपर एक टेक्स्ट बॉक्स है. इसका इस्तेमाल करके, Gemini से मदद मांगी जा सकती है. आइए, देखते हैं कि हमें अपने सैंपल में केक बनाने की कुछ रेसिपी मिल सकती हैं या नहीं. नीचे दिया गया प्रॉम्प्ट चलाएं (टेक्स्ट टाइप करके और एसक्यूएल जनरेशन को ट्रिगर करने के लिए Enter/Return दबाएं):
    Please select the title and ingredients for all the recipes with a title that contains the word cake.
    
  5. जनरेट की गई एसक्यूएल क्वेरी देखें. जब आप अपनी क्वेरी से संतुष्ट हो जाएं, तो उसे चालू करें.
  6. यह भी बुरा नहीं है! आगे बढ़ने से पहले, कुछ और प्रॉम्प्ट और क्वेरी आज़माएं. एक्सपेरिमेंट करते समय, कम जानकारी वाले प्रॉम्प्ट आज़माएं, ताकि यह पता चल सके कि कौनसे प्रॉम्प्ट काम के हैं और कौनसे नहीं. उदाहरण के लिए, यह प्रॉम्प्ट:
    Do I have any chili recipes?
    
    (नई क्वेरी चलाना न भूलें) चिली की रेसिपी की सूची दिखाई गई, लेकिन इसमें तब तक सामग्री नहीं दिखी, जब तक मैंने इसमें बदलाव नहीं किया:
    Do I have any chili recipes?  Please include their title and ingredients.
    
    (हां, मैं निर्देश देते समय कृपया कहती हूं. मेरी माँ को बहुत खुशी होगी.) मुझे पता चला है कि एक चिली रेसिपी में मशरूम शामिल हैं. कौन चाहता है कि चिली में मशरूम हो? मैंने Gemini से उन रेसिपी को हटाने में मदद करने के लिए कहा.
    Do I have any chili recipes?  Please include their title and ingredients, and ignore any recipes with mushrooms as an ingredient.
    

8. Cloud Shell एडिटर खोलना

  1. Cloud Shell एडिटर पर जाएं
  2. अगर टर्मिनल स्क्रीन पर सबसे नीचे नहीं दिखता है, तो उसे खोलें:
    • हैमबर्गर मेन्यू हैमबर्गर मेन्यू का आइकॉन पर क्लिक करें
    • Terminal पर क्लिक करें
    • नया टर्मिनल पर क्लिक करेंCloud Shell एडिटर में नया टर्मिनल खोलना
  3. टर्मिनल में, इस कमांड की मदद से अपना प्रोजेक्ट सेट करें:
    • फ़ॉर्मैट:
      gcloud config set project [PROJECT_ID]
      
    • उदाहरण:
      gcloud config set project lab-project-id-example
      
    • अगर आपको अपना प्रोजेक्ट आईडी याद नहीं है, तो:
      • अपने सभी प्रोजेक्ट आईडी की सूची देखने के लिए:
        gcloud projects list | awk '/PROJECT_ID/{print $2}'
        
      Cloud Shell Editor टर्मिनल में प्रोजेक्ट आईडी सेट करना
  4. अगर आपसे अनुमति देने के लिए कहा जाए, तो जारी रखने के लिए अनुमति दें पर क्लिक करें. Cloud Shell को अनुमति देने के लिए क्लिक करें
  5. आपको यह मैसेज दिखेगा:
    Updated property [core/project].
    
    अगर आपको WARNING दिखता है और आपसे Do you want to continue (Y/N)? पूछा जाता है, तो हो सकता है कि आपने प्रोजेक्ट आईडी गलत डाला हो. N दबाएं, Enter दबाएं, और gcloud config set project कमांड को फिर से चलाने की कोशिश करें.

9. एपीआई चालू करें

टर्मिनल में, एपीआई चालू करें:

gcloud services enable \
  compute.googleapis.com \
  sqladmin.googleapis.com \
  run.googleapis.com \
  artifactregistry.googleapis.com \
  cloudbuild.googleapis.com \
  networkconnectivity.googleapis.com \
  servicenetworking.googleapis.com \
  cloudaicompanion.googleapis.com

अगर आपसे अनुमति देने के लिए कहा जाए, तो जारी रखने के लिए अनुमति दें पर क्लिक करें. Cloud Shell को अनुमति देने के लिए क्लिक करें

इस निर्देश को पूरा होने में कुछ मिनट लग सकते हैं. हालांकि, आखिर में आपको इस तरह का मैसेज दिखेगा:

Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.

10. Gemini की मदद से, मुख्य Python और Streamlit वेब ऐप्लिकेशन को फ़्रेम करना

Vertex AI Agent Builder के दोनों डेटा स्टोर को इंडेक्स किया जा चुका है और हमारे खोज ऐप्लिकेशन लॉन्च होने के लिए तैयार हैं. अब वेब ऐप्लिकेशन बनाने का समय आ गया है.

हम इस काम के दौरान, Gemini Code Assist का इस्तेमाल करेंगे. Visual Studio Code में Gemini Code Assist का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, दस्तावेज़ यहां देखें

  1. Cloud Shell Editor टर्मिनल में, रेसिपी ऐप्लिकेशन की 'डेटा स्टोर करने की जगह' को क्लोन करने के लिए यह कमांड चलाएं.
    git clone https://github.com/haggman/recipe-app
    
  2. Cloud Shell Editor में ऐप्लिकेशन फ़ोल्डर खोलने के लिए, यह कमांड इस्तेमाल करें.
    cloudshell open-workspace recipe-app/
    
  3. क्लोन किए गए फ़ोल्डर को एक्सप्लोर करने और अपने वेब ऐप्लिकेशन पर काम शुरू करने से पहले, हमें एडिटर के Cloud Code प्लग इन को Google Cloud में लॉग इन करना होगा. साथ ही, हमें Gemini को चालू करना होगा. चलिए, अब ऐसा करते हैं. एडिटर में सबसे नीचे बाईं ओर, Cloud Code - साइन इन करें पर क्लिक करें. अगर आपको लिंक नहीं दिखता है, तो एक मिनट इंतज़ार करें और फिर से देखें.Cloud Code - साइन इन करना
  4. टर्मिनल विंडो में एक लंबा यूआरएल दिखेगा. ब्राउज़र में यूआरएल खोलें और अपने Google Cloud एनवायरमेंट को Cloud Code का ऐक्सेस देने के लिए, बताया गया तरीका अपनाएं. आखिरी डायलॉग में, पुष्टि करने के लिए मिला कोड कॉपी करें और उसे अपने Cloud Shell Editor ब्राउज़र टैब में, इंतज़ार में मौजूद टर्मिनल विंडो में चिपकाएं.
  5. कुछ देर बाद, आपके एडिटर के सबसे नीचे बाईं ओर मौजूद Cloud Code का लिंक, Cloud Code - कोई प्रोजेक्ट नहीं में बदल जाएगा. कोई प्रोजेक्ट चुनने के लिए, नए लिंक पर क्लिक करें. कमांड पैलेट, एडिटर के सबसे ऊपर खुलना चाहिए. Google Cloud प्रोजेक्ट चुनें पर क्लिक करें और अपना प्रोजेक्ट चुनें. कुछ देर बाद, आपके एडिटर के नीचे बाईं ओर मौजूद लिंक अपडेट हो जाएगा और आपका प्रोजेक्ट आईडी दिखेगा. इससे पता चलता है कि Cloud Code, आपके काम करने वाले प्रोजेक्ट से जुड़ गया है.
  6. अपने प्रोजेक्ट से Cloud Code को कनेक्ट करने के बाद, अब Gemini Code Assist को चालू किया जा सकता है. एडिटर इंटरफ़ेस के सबसे नीचे दाईं ओर, क्रॉस किए गए Gemini लोगो पर क्लिक करें. Gemini Chat पैनल, एडिटर की बाईं ओर खुलेगा. Google Cloud प्रोजेक्ट चुनें पर क्लिक करें. कमांड पैलेट खुलने पर, अपना प्रोजेक्ट चुनें. अगर आपने सही तरीके से निर्देशों का पालन किया है और Google ने कुछ भी नहीं बदला है, तो आपको अब Gemini चैट विंडो दिखेगी.Gemini की सुविधा बंद है
  7. बहुत बढ़िया, हमारे टर्मिनल, Gemini चैट, और Cloud Code कॉन्फ़िगरेशन सेट हो गए हैं. अब एक्सप्लोरर टैब खोलें और मौजूदा प्रोजेक्ट में मौजूद फ़ाइलों को एक्सप्लोर करने के लिए कुछ मिनट दें.एक्सप्लोरर बैज
  8. Explorer में, बदलाव करने के लिए अपनी requirements.txt फ़ाइल खोलें. Gemini चैट पैनल पर स्विच करें और पूछें:
    From the dependencies specified in the requirements.txt file, what type of application are we building?
    
  9. इसलिए, हम Python और Streamlit का इस्तेमाल करके एक इंटरैक्टिव वेब ऐप्लिकेशन बना रहे हैं, जो Vertex AI और डिस्कवरी इंजन के साथ इंटरैक्ट कर रहा है. फ़िलहाल, वेब ऐप्लिकेशन कॉम्पोनेंट पर फ़ोकस करते हैं. Gemini के मुताबिक, Streamlit एक फ़्रेमवर्क है. इसकी मदद से, Python में डेटा-ड्रिवन वेब ऐप्लिकेशन बनाए जा सकते हैं. अब पूछें:
    Does the current project's folder structure seem appropriate for a Streamlit app?
    
    यहां Gemini में समस्याएं आती हैं. Gemini, बदलाव करने वाले टूल में फ़िलहाल खुली हुई फ़ाइल को ऐक्सेस कर सकता है. हालांकि, वह पूरा प्रोजेक्ट नहीं देख सकता. यह निर्देश देकर देखें:
    Given the below, does the current project's file and folder structure seem appropriate for a Streamlit app?
    - build.sh
    - Home.py
    - requirements.txt
    - pages
    -- Cooking_Advice.py
    -- Recipe_Search.py
    
    क्या आपको बेहतर जवाब चाहिए?
  10. आइए, Streamlit के बारे में ज़्यादा जानें:
    What can you tell me about Streamlit?
    
    अच्छा है. इससे हमें पता चलता है कि Gemini, फ़ायदों और नुकसानों के साथ-साथ, अच्छी खासी खास जानकारी दे रहा है.
  11. अगर आपको इसकी कमियों के बारे में जानना है, तो ये सवाल पूछे जा सकते हैं:
    What are the major downsides or shortcomings?
    
    ध्यान दें, हमें "Streamlit की" नहीं बोलनी पड़ी, क्योंकि Gemini Chat एक बातचीत वाली सुविधा है. हम चैट सेशन में हैं, इसलिए Gemini को पता है कि हम किस बारे में बात कर रहे हैं. अगर आपको किसी भी समय Gemini में की गई चैट का इतिहास मिटाना है, तो Gemini कोड चैट विंडो में सबसे ऊपर मौजूद, ट्रैशबिन आइकॉन का इस्तेमाल करें.

11. वेब ऐप्लिकेशन को Cloud Run पर डिप्लॉय करना

बहुत बढ़िया, हमारे ऐप्लिकेशन का मुख्य स्ट्रक्चर तैयार है. हालांकि, क्या यह सब काम करेगा? इसके अलावा, हमें इसे Google Cloud में कहां होस्ट करना चाहिए?

  1. Gemini की चैट विंडो में, ये सवाल पूछें:
    If I containerize this application, what compute technologies in Google Cloud would be best for hosting it?
    
  2. याद रखें, अगर आपने पहले से ही अपने आईडीई में काम नहीं किया है, तो Google Cloud Assist का इस्तेमाल भी किया जा सकता है. Google Cloud Console खोलें. इसके बाद, Gemini Cloud Assist खोलें और पूछें:
    If I have a containerized web application, where would be the best place to run it in Google Cloud?
    
    क्या सलाह के दोनों सेट एक जैसे थे? क्या आप इनमें से किसी भी सुझाव से सहमत/असहमत हैं? याद रखें, Gemini एक जनरेटिव एआई असिस्टेंट है. किसी इंसान की तरह, यह भी हो सकता है कि आप उसकी हर बात से सहमत न हों. इसके बावजूद, Google Cloud और कोड एडिटर में काम करते समय, सहायक की मदद हमेशा आपके साथ होने से, आपको ज़्यादा बेहतर तरीके से काम करने में मदद मिल सकती है.
  3. स्टेटलेस और कम समय तक चलने वाले कंटेनर वाले वेब ऐप्लिकेशन के लिए, Cloud Run एक बेहतरीन विकल्प है. अपने कोड एडिटर की Gemini चैट विंडो में, प्रॉम्प्ट आज़माएं:
    What steps would be required to run this application in Cloud Run?
    
  4. ऐसा लगता है कि सबसे पहले हमें Dockerfile बनाना होगा. एडिटर का इस्तेमाल करके, अपने प्रोजेक्ट फ़ोल्डर के रूट में Dockerfile नाम की फ़ाइल बनाएं. पक्का करें कि आपने इसे अनजाने में पेज फ़ोल्डर में न डाल दिया हो. बदलाव करने के लिए फ़ाइल खोलें.
  5. आइए, Dockerfile बनाने के लिए साइड में मौजूद Gemini Chat पैनल का इस्तेमाल करें. नीचे दिए गए प्रॉम्प्ट का इस्तेमाल करें. जब नतीजे चैट में दिखते हैं, तो सुझाए गए Dockerfile में सुझाया गया कोड डालने के लिए, Dockerfile के ठीक ऊपर मौजूद कॉपी आइकॉन के बगल में मौजूद + का इस्तेमाल करें.
    Create a Dockerfile for the application in the current folder. The dependencies are defined in requirements.txt and I want you to use the Python 3 slim bookworm base image.
    
    Gemini, एक ही प्रॉम्प्ट के लिए हमेशा एक ही जवाब नहीं देता. मैंने पहली बार Gemini से Dockerfile बनाने के लिए कहा, तो मुझे वह फ़ाइल मिली जिसका इस्तेमाल करने का सुझाव मैं आपको देना चाहता/चाहती हूं. मुझे अभी यह सुझाव मिला है:
    # Base image
    FROM python:3-bookworm-slim
    
    # Set working directory
    WORKDIR /app
    
    # Install dependencies
    RUN apt-get update && apt-get install -y \
        build-essential \
        libpq-dev \
        gcc \
        python3-dev \
        && rm -rf /var/lib/apt/lists/*
    
    # Install pip and virtualenv
    RUN pip install --upgrade pip virtualenv
    
    # Create virtual environment
    RUN python3 -m venv venv
    
    # Activate virtual environment
    WORKDIR /app/venv/bin
    RUN . activate
    
    # Install Streamlit and libraries from requirements.txt
    RUN pip install -r requirements.txt
    
    # Copy application files
    COPY . /app
    
    # Expose port 8501 for Streamlit
    EXPOSE 8501
    
    # Start Streamlit app
    CMD ["streamlit", "run", "main.py"]
    
    यह एक बेहतरीन Dockerfile है. हम इसे थोड़ा आसान बना देंगे. हमें apt-get सेक्शन की ज़रूरत नहीं है, क्योंकि Python के लिए ज़रूरी सभी चीज़ें हमारी बेस इमेज में पहले से ही मौजूद हैं. साथ ही, Python कंटेनर में वर्चुअल एनवायरमेंट का इस्तेमाल करना, जगह की बर्बादी है. इसलिए, मैं इसे हटा दूंगा. एक्सपोज़ कमांड का इस्तेमाल करना ज़रूरी नहीं है, लेकिन ऐसा किया जा सकता है. साथ ही, यह main.py को शुरू करने की कोशिश कर रहा है, जो मेरे पास नहीं है.
  6. recipe-app फ़ोल्डर में, Dockerfile नाम की फ़ाइल बनाएं और इस कॉन्टेंट को चिपकाएं:
    FROM python:3.11-slim-bookworm
    
    WORKDIR /app
    
    COPY requirements.txt .
    RUN pip install --no-cache-dir --upgrade pip && \
        pip install --no-cache-dir -r requirements.txt
    
    COPY . .
    
    CMD ["streamlit", "run", "Home.py"]
    
  7. Gemini, चैट विंडो के ज़रिए काम कर सकता है. हालांकि, यह टिप्पणियों का इस्तेमाल करके सीधे आपकी कोड फ़ाइल में भी काम कर सकता है. जैसे, हमने डेटा व्रणलिंग नोटबुक में इसका इस्तेमाल किया है. इसे Windows पर Control+i या Mac पर Command+i का इस्तेमाल करके भी चालू किया जा सकता है. Dockerfile में कहीं भी क्लिक करें और Command+i / Control+i कमांड का इस्तेमाल करके Gemini को चालू करें.
  8. प्रॉम्प्ट में, नीचे दिया गया कोड डालें. बदलाव की समीक्षा करें और उसे स्वीकार करें.
    Please comment the current file.
    
    क्या बात है! आपको कितनी बार किसी दूसरे के कोड के साथ काम करना पड़ा है, ताकि आप बदलाव करने से पहले, बिना टिप्पणी वाले उनके काम की बुनियादी समझ हासिल कर सकें. Gemini आपकी मदद करेगा!
  9. अब Gemini से पूछें कि मौजूदा फ़ोल्डर में मौजूद Dockerfile से, recipe-web-app नाम की नई इमेज बनाने और उसे डिप्लॉय करने के लिए, Cloud Run का इस्तेमाल कैसे किया जा सकता है.
    How could I use gcloud to build a new Cloud Run service named recipe-web-app from the current directory?
    
  10. आइए, अपना ऐप्लिकेशन बनाएं और उसे डिप्लॉय करें. टर्मिनल विंडो में gcloud run deploy कमांड चलाएं
    gcloud run deploy recipe-web-app \
        --allow-unauthenticated \
        --source=. \
        --region=us-central1 \
        --port=8501
    
    अगर आपको आर्टफ़ैक्ट रजिस्ट्री रिपॉज़िटरी बनाने के लिए कहा जाए, तो enter/return दबाएं
    Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository
    named cloud-run-source-deploy in region us-central1 will be created.
    
    Do you want to continue (Y/n)?
    
  11. अगर बिल्ड की प्रोसेस देखी जाती है, तो पहले Artifact Registry का डॉकर रिपॉज़िटरी बनेगा. इसके बाद, यह लोकल फ़ोल्डर में मौजूद Dockerfile से कंटेनर इमेज बनाने के लिए, Cloud Build का इस्तेमाल करता है. आखिर में, Docker इमेज को नई Cloud Run सेवा में डिप्लॉय किया जाएगा. स्क्रिप्ट के आखिर में, आपको Cloud Run का टेस्ट यूआरएल मिलेगा.

दिखाए गए लिंक को अपने ब्राउज़र के नए टैब में खोलें. कुछ समय निकालकर, ऐप्लिकेशन के स्ट्रक्चर और पेजों को एक्सप्लोर करें. बढ़िया, अब हमें जनरेटिव एआई की सुविधा को जोड़ना होगा.

12. कुकिंग सलाह वाले पेज को, कुकबुक खोजने वाले एजेंट बिल्डर ऐप्लिकेशन से कनेक्ट करना

हमारे पास वेब ऐप्लिकेशन के लिए फ़्रेमवर्क है, लेकिन हमें दो वर्क पेजों को अपने दो Vertex AI एजेंट बिल्डर सर्च ऐप्लिकेशन से कनेक्ट करना होगा. आइए, खाना पकाने से जुड़ी सलाह से शुरू करते हैं.

  1. Cloud Shell Editor टैब को खुला रखें. Google Cloud Console में, खोज बार का इस्तेमाल करके Vertex AI में Chat पर जाएं.
  2. दाईं ओर मौजूद सेटिंग पेज पैनल में, मॉडल को gemini-1.5-flash-002 पर सेट करें. आउटपुट टोकन की सीमा को ज़्यादा से ज़्यादा तक स्लाइड करें, ताकि ज़रूरत पड़ने पर मॉडल लंबे जवाब दे सके. सुरक्षा फ़िल्टर की सेटिंग खोलें. नफ़रत फैलाने वाली भाषा, साफ़ तौर पर सेक्शुअल ऐक्ट दिखाने वाला कॉन्टेंट, और उत्पीड़न दिखाने वाले कॉन्टेंट को कुछ ब्लॉक करें पर सेट करें. खतरनाक कॉन्टेंट को कुछ ब्लॉक करें पर सेट करें और सेव करें. हम खतरनाक कॉन्टेंट की कैटगरी को थोड़ा कम कर रहे हैं. ऐसा इसलिए, क्योंकि चाकू और काटने के बारे में बात करने पर, Gemini उसे हिंसा के तौर पर गलत तरीके से समझ सकता है.
  3. ग्राउंडिंग की सुविधा चालू करने के लिए, टॉगल बटन को स्लाइड करें. इसके बाद, पसंद के मुताबिक बनाएं पर क्लिक करें. भरोसेमंद सोर्स को Vertex AI Search पर सेट करें. साथ ही, डेटास्टोर पाथ के लिए इनका इस्तेमाल करें. इन निर्देशों में, YOUR_PROJECT_ID को उस प्रोजेक्ट आईडी से बदलें जो आपको 'लैब बंद करें' बटन के पास मिला है. इसके बाद, ग्राउंडिंग सेटिंग को सेव करें
    projects/YOUR_PROJECT_ID/locations/global/collections/default_collection/dataStores/old-cookbooks-id
    
    ध्यान दें: अगर आपको कोई गड़बड़ी दिखती है, तो हो सकता है कि आपने प्रोजेक्ट आईडी को अपने असली प्रोजेक्ट आईडी में बदला न हो. इसके अलावा, हो सकता है कि आपने पुराने-कुकबुक एजेंट बिल्डर डेटा स्टोर आईडी को बदलने का चरण पूरा न किया हो. अपने एजेंट बिल्डर > डेटा स्टोर > पुरानी-कुकबुक पर जाकर, डेटा स्टोर का असल आईडी देखें.
  4. कुछ चैट मैसेज आज़माएं. शायद इनसे शुरुआत करें. अगर आप चाहें, तो कुछ और आज़माएं.
    How can I tell if a tomato is ripe?
    
  5. मॉडल काम कर रहा है, अब कोड के साथ प्रयोग करते हैं. बातचीत मिटाएं पर क्लिक करें, ताकि हमारी बातचीत कोड का हिस्सा न बन जाए. इसके बाद, कोड पाएं पर क्लिक करें.बातचीत मिटाना और कोड पाना
  6. कोड विंडो में सबसे ऊपर, नोटबुक खोलें दबाएं. इससे, हम अपने ऐप्लिकेशन में कोड को इंटिग्रेट करने से पहले, Colab Enterprise में कोड को आज़मा सकते हैं और उसे बेहतर बना सकते हैं.
  7. कोड के बारे में जानने के लिए कुछ समय निकालें. अपनी ज़रूरत के हिसाब से इसे बनाने के लिए, इसमें कुछ बदलाव करते हैं. शुरू करने से पहले, कंप्यूट से कनेक्ट करने और AI Platform SDK टूल इंस्टॉल करने के लिए, पहली कोड सेल चलाएं. ब्लॉक चलने के बाद, आपसे सेशन को फिर से शुरू करने के लिए कहा जाएगा. आगे बढ़ें और ऐसा करें.
  8. Vertex AI Studio से निकाले गए कोड पर जाएं. multiturn_generate_content वाले तरीके का नाम बदलकर start_chat_session करें.
  9. स्क्रोल करके, model = GenerativeModel( वाले तरीके के कॉल पर जाएं. मौजूदा कोड में generation_config और safety_settings की जानकारी दी गई है, लेकिन इनका इस्तेमाल नहीं किया गया है. GenerativeModel बनाने के तरीके में बदलाव करें, ताकि यह इस तरह दिखे:
    model = GenerativeModel(
        "gemini-1.5-flash-002",
        tools=tools,
        generation_config=generation_config,
        safety_settings=safety_settings,
    )
    
  10. आखिर में, chat = model.start_chat() के ठीक नीचे, तरीके में एक आखिरी लाइन जोड़ें, ताकि फ़ंक्शन chat ऑब्जेक्ट दिखा सके. फ़ंक्शन पूरा होने के बाद, यह इस तरह दिखेगा.ध्यान दें: इस कोड को अपनी नोटबुक में कॉपी न करें. यह सिर्फ़ जांच के मकसद से है.
    def start_chat_session():
        vertexai.init(project="qwiklabs-gcp-02-9a7298ceaaec", location="us-central1")
        tools = [
            Tool.from_retrieval(
                retrieval=grounding.Retrieval(
                    source=grounding.VertexAISearch(datastore="projects/qwiklabs-gcp-02-9a7298ceaaec/locations/global/collections/default_collection/dataStores/old-cookbooks-id"),
                )
            ),
        ]
        model = GenerativeModel(
            "gemini-1.5-flash-002",
            tools=tools,
            generation_config=generation_config,
            safety_settings=safety_settings,
        )
        chat = model.start_chat()
        return chat
    
  11. कोड सेल में सबसे नीचे तक स्क्रोल करें और पुराने फ़ंक्शन को कॉल करने वाली आखिरी लाइन में बदलाव करें, ताकि यह नए फ़ंक्शन के नाम को कॉल करे और रिटर्न किए गए ऑब्जेक्ट को वैरिएबल chat में सेव करे. जब आप अपने बदलावों से संतुष्ट हो जाएं, तो सेल को चलाएं.
    chat = start_chat_session()
    
  12. एक नई कोड सेल बनाएं और टिप्पणी # Use chat to invoke Gemini and print out the response जोड़ें. अगली लाइन पर जाएं और resp टाइप करें. इसके बाद, Gemini आपके लिए ब्लॉक को अपने-आप पूरा कर देगा. प्रॉम्प्ट को How can I tell if a tomato is ripe? पर अपडेट करें. सेल को चलाना
    response = chat.send_message("How can I tell if a tomato is ripe?")
    print(response)
    
  13. यह जवाब सही है, लेकिन हमें नेस्ट किया गया text फ़ील्ड चाहिए. सिर्फ़ उस सेक्शन को प्रिंट करने के लिए, कोडब्लॉक में बदलाव करें, जैसे:
    response = chat.send_message("How can I tell if a tomato is ripe?")
    print(response.candidates[0].content.parts[0].text)
    
  14. अच्छा, अब हमारे पास चैट कोड काम कर रहा है. चलिए, इसे अपने वेब ऐप्लिकेशन में इंटिग्रेट करते हैं. start_chat_session फ़ंक्शन बनाने वाली कोड सेल का पूरा कॉन्टेंट कॉपी करें. हमें टेस्ट सेल की ज़रूरत नहीं होगी. सेल पर क्लिक करने के बाद, सबसे ऊपर दाएं कोने में मौजूद तीन बिंदु वाले मेन्यू पर क्लिक करके, सेल को कॉपी किया जा सकता हैसेल कॉपी करना
  15. Cloud Shell Editor टैब पर स्विच करें और बदलाव करने के लिए pages\Cooking_Advice.py खोलें.
  16. टिप्पणी ढूंढें:
    #
    # Add the code you copied from your notebook below this message
    #
    
  17. कॉपी किया गया कोड, कोड जोड़ें टिप्पणी के ठीक नीचे चिपकाएं. बढ़िया, अब हमारे पास वह सेक्शन है जो Gemini को ग्राउंडेड कॉल के ज़रिए चैट इंजन को चलाता है. अब इसे Streamlit में इंटिग्रेट करते हैं.
  18. टिप्पणी के ठीक नीचे, टिप्पणी वाले कोड का सेक्शन ढूंढें:
    #
    # Here's the code to setup your session variables
    # Uncomment this block when instructed
    #
    
  19. कोड के इस सेक्शन (अगले Setup done, let's build the page UI सेक्शन तक) से टिप्पणी हटाएं और इसे एक्सप्लोर करें. यह चैट और इतिहास सेशन के वैरिएबल बनाता है या उन्हें वापस लाता है.
  20. इसके बाद, हमें यूज़र इंटरफ़ेस (यूआई) में इतिहास और चैट की सुविधा को इंटिग्रेट करना होगा. कोड में तब तक स्क्रोल करें, जब तक आपको नीचे दी गई टिप्पणी न दिख जाए.
    #
    # Here's the code to create the chat interface
    # Uncomment the below code when instructed
    #
    
  21. टिप्पणी के नीचे मौजूद बाकी कोड से टिप्पणी हटाएं और इसे कुछ समय के लिए एक्सप्लोर करें. अगर आपको यह सुविधा पसंद आती है, तो उसे हाइलाइट करें और Gemini से इसके काम करने का तरीक़ा जानें.
  22. बहुत बढ़िया, अब ऐप्लिकेशन बनाएं और उसे डिप्लॉय करें. जब यूआरएल वापस आ जाए, तो ऐप्लिकेशन लॉन्च करें और कुकिंग सलाहकार पेज को आज़माएं. शायद आपने उससे पके हुए टमाटर के बारे में पूछा हो या बॉट को ब्रसल्स स्प्राउट बनाने का अच्छा तरीका पता हो.
    gcloud run deploy recipe-web-app \
        --allow-unauthenticated \
        --source=. \
        --region=us-central1 \
        --port=8501
    

यह कितना शानदार है! खाना बनाने के लिए, आपका निजी एआई सलाहकार :-)

13. (ज़रूरी नहीं) रेसिपी खोज पेज को रेसिपी खोजने वाले एजेंट बिल्डर ऐप्लिकेशन से कनेक्ट करना

जब हमने 'खाना बनाने से जुड़ी सलाह' पेज को उसके सोर्स से कनेक्ट किया, तो हमने सीधे Gemini API का इस्तेमाल किया. रेसिपी खोजने के लिए, सीधे Vertex AI Agent Builder के खोज ऐप्लिकेशन से कनेक्ट करते हैं.

  1. Cloud Shell एडिटर में, बदलाव करने के लिए pages/Recipe_Search.py पेज खोलें. पेज के स्ट्रक्चर की जांच करें.
  2. फ़ाइल में सबसे ऊपर, अपना प्रोजेक्ट आईडी सेट करें.
  3. search_sample फ़ंक्शन की जांच करें. यह कोड, ज़्यादातर सीधे तौर पर यहां मौजूद डिस्कवरी इंजन के दस्तावेज़ से मिलता है. इस नोटबुक में यहां, काम करने वाली कॉपी देखी जा सकती है. मैंने सिर्फ़ एक बदलाव किया है. मैंने नतीजों के बजाय response.results दिखाने का विकल्प चुना है. इसके बिना, रिटर्न टाइप एक ऐसा ऑब्जेक्ट होता है जिसे नतीजों के पेज पर जाने के लिए डिज़ाइन किया गया है. हालांकि, हमारे बुनियादी ऐप्लिकेशन के लिए, इसकी ज़रूरत नहीं होती.
  4. फ़ाइल के आखिर तक स्क्रोल करें और Here are the first 5 recipes I found के नीचे मौजूद पूरे सेक्शन से टिप्पणी हटाएं.
  5. उस पूरे सेक्शन को हाइलाइट करें जिस पर आपने अभी-अभी टिप्पणी हटाई है. इसके बाद, Gemini Code Chat खोलें. Explain the highlighted code से पूछें. अगर आपने कुछ नहीं चुना है, तो Gemini पूरी फ़ाइल के बारे में बता सकता है. अगर किसी सेक्शन को हाइलाइट करके, Gemini से उसके बारे में बताने, उस पर टिप्पणी करने या उसे बेहतर बनाने के लिए कहा जाता है, तो Gemini ऐसा करेगा.थोड़ा समय निकालकर, Gemini की बताई गई बातें पढ़ें. Gemini API को अपने ऐप्लिकेशन में इंटिग्रेट करने से पहले, उन्हें एक्सप्लोर करने के लिए Colab Enterprise की नोटबुक का इस्तेमाल करना एक बेहतरीन तरीका है. यह सुविधा, खास तौर पर उन नए एपीआई को एक्सप्लोर करने में मददगार होती है जिनके बारे में ज़रूरत के मुताबिक दस्तावेज़ नहीं बनाए गए हैं.
  6. फ़ाइनल ऐप्लिकेशन को डिप्लॉय करने के लिए, एडिटर टर्मिनल विंडो में build.sh चलाएं. अगले चरण पर जाने से पहले, नए वर्शन के डिप्लॉय होने का इंतज़ार करें.

14. (ज़रूरी नहीं) फ़ाइनल ऐप्लिकेशन एक्सप्लोर करना

आखिरी आवेदन को देखने के लिए कुछ मिनट निकालें.

  1. Google Cloud Console में, खोज बार का इस्तेमाल करके Cloud Run पर जाएं. इसके बाद, अपने recipe-web-app पर क्लिक करें.
  2. सबसे ऊपर मौजूद, ऐप्लिकेशन टेस्ट यूआरएल ढूंढें और उसे नए ब्राउज़र टैब में खोलें.
  3. आपको ऐप्लिकेशन का होम पेज दिखेगा. Streamlit के बुनियादी लेआउट और नेविगेशन पर ध्यान दें. इसमें pages फ़ोल्डर की Python फ़ाइलें, नेविगेशन के विकल्पों के तौर पर दिख रही हैं. साथ ही, Home.py को होम पेज के तौर पर लोड किया गया है. खाना बनाने से जुड़ी सलाह पेज पर जाएं.
  4. कुछ ही देर में, चैट इंटरफ़ेस दिखेगा. फिर से, Streamlit के दिए गए अच्छे कोर लेआउट पर ध्यान दें.
  5. खाना बनाने से जुड़े कुछ सवाल पूछकर देखें कि यह बॉट कैसे काम करता है. कुछ इस तरह:
    Do you have any advice for preparing broccoli?
    
    How about a classic chicken soup recipe?
    
    Tell me about meringue.
    
  6. अब एक या दो रेसिपी ढूंढते हैं. रेसिपी खोजने वाले पेज पर जाएं और कुछ खोजें. कुछ इस तरह:
    Chili con carne
    
    Chili, corn, rice
    
    Lemon Meringue Pie
    
    A dessert containing strawberries
    

15. बधाई हो!

आपने Vertex AI Agent Builder ऐप्लिकेशन का इस्तेमाल करके कोई ऐप्लिकेशन बनाया हो. इस दौरान, आपने BigQuery के डेटा कैनवस की Gemini Cloud Assist, Gemini Code Assist, और सामान्य भाषा से एसक्यूएल में बदलने की सुविधाओं के बारे में जाना है. बहुत बढ़िया!

व्यवस्थित करें

Cloud SQL में कोई मुफ़्त टीयर नहीं है. इसका इस्तेमाल जारी रखने पर, आपसे शुल्क लिया जाएगा. अतिरिक्त शुल्कों से बचने के लिए, अपना Cloud प्रोजेक्ट मिटाया जा सकता है.

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

अगर आपको प्रोजेक्ट मिटाना है, तो:

gcloud projects delete $GOOGLE_CLOUD_PROJECT

आपके पास अपनी CloudShell डिस्क से ग़ैर-ज़रूरी संसाधनों को मिटाने का विकल्प भी है. आप:

  1. कोडलैब प्रोजेक्ट डायरेक्ट्री मिटाएं:
    rm -rf ~/task-app
    
  2. चेतावनी! इस कार्रवाई को पहले जैसा नहीं किया जा सकता! अगर आपको जगह खाली करने के लिए, अपने Cloud Shell पर मौजूद सभी चीज़ें मिटानी हैं, तो अपनी पूरी होम डायरेक्ट्री मिटाएं. ध्यान रखें कि आपको जो भी चीज़ें सेव करनी हैं उन्हें किसी दूसरी जगह सेव कर लें.
    sudo rm -rf $HOME