1. परिचय
इस कोडलैब में, मैंने एक वेब ऐप्लिकेशन बनाने के तरीके के बारे में बताया है. इसकी मदद से, Svelte Kit फ़्रेमवर्क में, टेक्स्ट जनरेट करने के लिए Vertex AI लार्ज लैंग्वेज मॉडल ( text-bison) API का इस्तेमाल करके, टेक्स्ट की खास जानकारी जनरेट की जा सकती है. इस्तेमाल की गई सेवाओं और टेक्नोलॉजी स्टैक की सूची यहां दी गई है:
- Svelte Kit: यह एक वेब ऐप्लिकेशन फ़्रेमवर्क है, जो Svelte पर आधारित है.
- Vertex AI PaLM 2 API: यह एक लार्ज लैंग्वेज मॉडल (एलएलएम) एपीआई है. इससे Google के एआई के PaLM 2 मॉडल को ऐक्सेस किया जा सकता है.
- Cloud Functions: यह एक सर्वरलेस प्लैटफ़ॉर्म है. इसकी मदद से, सर्वर को मैनेज किए बिना फ़ंक्शन चलाए जा सकते हैं.
- Cloud Run: कंटेनर वाले ऐप्लिकेशन चलाने के लिए, बिना सर्वर वाला प्लैटफ़ॉर्म.
आपको क्या बनाना है
आपको
- Python Cloud फ़ंक्शन का इस्तेमाल, PaLM API को कॉल करने के लिए किया जाता है
- यूज़र इंटरफ़ेस के लिए Svelte वेब ऐप्लिकेशन, ताकि Cloud फ़ंक्शन के ज़रिए Vertex AI API के साथ इंटरैक्ट किया जा सके
- ऊपर बनाया गया ऐप्लिकेशन, बिना सर्वर के डिप्लॉय करने के लिए Cloud Run सेवा
2. ज़रूरी शर्तें
3. शुरू करने से पहले
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, Google Cloud प्रोजेक्ट चुनें या बनाएं
- पक्का करें कि आपके क्लाउड प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें
- Google Cloud की सेवाओं के साथ इंटरैक्ट करने के लिए, आपको Google Cloud में चलने वाले कमांड-लाइन एनवायरमेंट, Cloud Shell का इस्तेमाल करना होगा. gcloud कमांड और उनके इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें. Cloud Console में, सबसे ऊपर दाएं कोने में मौजूद, Cloud Shell चालू करें पर क्लिक करें:
अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
gcloud config set project <YOUR_PROJECT_ID>
- पक्का करें कि सभी ज़रूरी एपीआई चालू हों. इसके लिए, Cloud Shell टर्मिनल में यह कमांड चलाएं:
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
- Cloud Shell टर्मिनल में यह कमांड चलाकर, REGION और PROJECT_ID के लिए एनवायरमेंट वैरिएबल बनाएं:
export PROJECT_ID=<your project id>
export REGION=asia-south1
4. Vertex AI API को चालू करने के लिए Cloud फ़ंक्शन
हम एक Python Cloud फ़ंक्शन बनाएंगे और इस फ़ंक्शन में Vertex AI API को चालू करेंगे.
नया सेवा खाता बनाना
Cloud Shell टर्मिनल में यह कमांड चलाकर, नया सेवा खाता बनाएं.
gcloud iam service-accounts create vertex-service-acc
अपने प्रोजेक्ट और संसाधनों का ऐक्सेस देने के लिए, सेवा खाते को कोई भूमिका असाइन करें.
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member="serviceAccount:vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com" --role=roles/ml.developer
अपने Google खाते को ऐसी भूमिका असाइन करने के लिए जिसका इस्तेमाल करके, सेवा खाते की भूमिकाओं का इस्तेमाल किया जा सके. साथ ही, सेवा खाते को अन्य संसाधनों से जोड़ा जा सके. USER_EMAIL की जगह अपने Google खाते का ईमेल पता डालें.
gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Python फ़ंक्शन बनाना
टेक्स्ट के लिए PaLM 2, उन टास्क के लिए सबसे सही है जिन्हें एक एपीआई रिस्पॉन्स से पूरा किया जा सकता है. इसके लिए, लगातार बातचीत करने की ज़रूरत नहीं होती. चलिए, अब इसके लिए Cloud Function बनाते हैं.
Cloud Shell का इस्तेमाल करके एक नई डायरेक्ट्री बनाएं और उस पर जाएं. (पिछले सेक्शन में खोले गए उसी टर्मिनल का इस्तेमाल करें):
mkdir vertex-ai-functions
cd vertex-ai-functions
Python Cloud Function लिखने के लिए, main.py फ़ाइल बनाएं. साथ ही, dependencies को सेव करने के लिए, requirements.txt फ़ाइल बनाएं.
touch main.py requirements.txt
यह Python फ़ाइल, एक सामान्य एचटीटीपी Cloud फ़ंक्शन को तय करती है. यह फ़ंक्शन, Vertex AI के टेक्स्ट जनरेशन मॉडल का इस्तेमाल करके, टेक्स्ट इनपुट की छोटी खास जानकारी जनरेट करता है. यह फ़ंक्शन, टेक्स्ट को पैरामीटर के तौर पर लेता है और इनपुट की खास जानकारी दिखाता है. यह फ़ंक्शन, जनरेशन की प्रोसेस को कंट्रोल करने के लिए कई पैरामीटर का इस्तेमाल करता है. जैसे, जनरेट किए गए टेक्स्ट में क्रिएटिविटी, विविधता, और धाराप्रवाह भाषा का इस्तेमाल. एचटीटीपी Cloud Function, अनुरोध ऑब्जेक्ट को स्वीकार करता है और मॉडल की खास जानकारी को रिस्पॉन्स के तौर पर दिखाता है.
Google Cloud Editor खोलें. इसे खोलने के लिए, Google Cloud Console का नया टैब खोलें. इसके बाद, 'CLOUD SHELL चालू करें' बटन पर क्लिक करें. जब टर्मिनल लोड हो जाए, तब 'एडिटर खोलें' बटन पर तुरंत क्लिक करें. यह बटन, यहां दी गई इमेज में दिखाया गया है:

एडिटर खुलने के बाद, आपको main.py फ़ाइल दिखनी चाहिए. इसके कॉन्टेंट को इस रिपॉज़िटरी के कोड से बदलें लिंक. कोड के बारे में जानकारी, कोड की टिप्पणियों के तौर पर शामिल की जाती है. संक्षेप में कहें, तो यह कोड Vertex AI का इस्तेमाल करके, टेक्स्ट इनपुट की छोटी खास जानकारी जनरेट करने का आसान तरीका है.
requirements.txt फ़ाइल में पैकेज डिपेंडेंसी हैं: functions-framework==3.*: इससे यह पक्का होता है कि फ़ंक्शन, Functions Framework की नई सुविधाओं और बग ठीक करने वाले अपडेट का इस्तेमाल करता है. google-cloud-aiplatform: Vertex AI Text Generation Model का इस्तेमाल करने के लिए ज़रूरी है.
इसे requirements.txt फ़ाइल में जोड़ें:
functions-framework==3.*
google-cloud-aiplatform
Cloud Functions पर डिप्लॉय करना
अब इस सोर्स को Cloud Functions पर डिप्लॉय करते हैं. Cloud Shell टर्मिनल में यह कमांड चलाएं:
gcloud functions deploy vertex-ai-function \
--gen2 \
--runtime=python311 \
--region=${REGION} \
--source=. \
--entry-point=hello_vertex \
--trigger-http \
--allow-unauthenticated \
--max-instances=30
खोज बार का इस्तेमाल करें और Cloud Functions कंसोल पर जाएं:

इससे, अभी-अभी बनाया गया vertex-ai-function Cloud फ़ंक्शन दिखेगा. इसका सार्वजनिक यूआरएल, फ़ंक्शन पेज पर दिया जाएगा. हम इसका इस्तेमाल, अपने फ़्रंटएंड और Vertex AI API को कनेक्ट करने के लिए करते हैं. इस यूआरएल को सेव करें. आपको बिना पुष्टि किए गए ऐक्सेस के लिए, Cloud Run की बुनियादी सेवा को भी अनुमति देनी पड़ सकती है. सुरक्षा के लिए, पुष्टि की गई सेवा का इस्तेमाल करने का सुझाव दिया जाता है.
5. फ़्रंट-एंड बनाना और उसे डिप्लॉय करना
इस ऐप्लिकेशन में, Google Cloud Functions के ज़रिए Vertex AI API के साथ इंटरैक्ट करने के लिए, फ़्रंटएंड इंटरफ़ेस होता है. चलिए, इसे अभी बनाते हैं.
डेटा स्टोर करने की जगह को क्लोन करना और Dockerfile सेट अप करना
रूट डायरेक्ट्री पर जाएं और git repository को क्लोन करें.
cd ~/
git clone https://github.com/bhaaratkrishnan/vertex-summarizer-svelte.git
cd vertex-summarizer-svelte
इस ऐप्लिकेशन को चलाने के लिए, आपको Dockerfile में PUBLIC_FUNCTION_URL एनवायरमेंट वैरिएबल जोड़ना होगा. यह यूआरएल, क्लाउड फ़ंक्शन का यूआरएल है. इसे पिछले सेक्शन में बनाया और सेव किया गया था.
Cloud Editor खोलें और Dockerfile फ़ाइल के कॉन्टेंट में बदलाव करें. PUBLIC_FUNCTION_URL वैरिएबल को अपने Cloud Functions के यूआरएल से बदलें.

फ़्रंटएंड को Cloud Run पर डिप्लॉय करना
हम अपनी Docker इमेज बनाने और उन्हें सेव करने के लिए, Google Artifact Registry का इस्तेमाल करेंगे. Cloud Run का इस्तेमाल, सर्वरलेस आर्किटेक्चर में कंटेनर डिप्लॉय करने के लिए किया जाता है.
Cloud Shell टर्मिनल में नीचे दी गई कमांड चलाकर, Artifact Registry Repository बनाएं:
gcloud artifacts repositories create vertex-repo --repository-format=docker --location=${REGION}
Artifact Registry के डेटाबेस के यूआरएल के लिए, एक एनवायरमेंट वैरिएबल बनाएं.
export DOCKER_URL=${REGION}-docker.pkg.dev/${PROJECT_ID}/vertex-repo/vertex-summarizer-image
Docker कंटेनर बनाएं और उसे Artifact Registry के डेटा स्टोर करने की जगह के हिसाब से टैग करें. Docker इमेज को किसी रिपॉज़िटरी के नाम से टैग करने पर, docker push कमांड कॉन्फ़िगर हो जाती है. इससे इमेज को किसी खास जगह पर पुश किया जा सकता है.
docker build . -t ${DOCKER_URL}
इमेज को Artifact Registry में पुश करें.
docker push ${DOCKER_URL}
Cloud Run पर Docker कंटेनर डिप्लॉय करें.
gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}
वाह !! Vertex Summarizer चालू हो गया है और काम कर रहा है. यूआरएल, Cloud Shell में दिखेगा. इसलिए, Vertex AI को एक्सप्लोर करें और इसका आनंद लें🤖.

6. व्यवस्थित करें
इस पोस्ट में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लिए जाने के लिए, यह तरीका अपनाएं:
- Google Cloud Console में, संसाधन मैनेज करें पेज पर जाएं
- प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे आपको मिटाना है. इसके बाद, मिटाएं पर क्लिक करें
- डायलॉग बॉक्स में, प्रोजेक्ट आईडी डालें. इसके बाद, प्रोजेक्ट मिटाने के लिए शट डाउन करें पर क्लिक करें
- अगर आपको प्रोजेक्ट को बनाए रखना है और सिर्फ़ Cloud Run सेवा को मिटाना है, तो यहां दिया गया तरीका अपनाएं
- अगर आपको सिर्फ़ Cloud फ़ंक्शन मिटाना है या ऐक्सेस रद्द करना है, तो यहां जाकर ऐसा किया जा सकता है
7. बधाई हो
बधाई हो! आपने Vertex AI PaLM2 API का इस्तेमाल करके, प्रोग्राम के हिसाब से अपने-आप होने वाली प्रोसेस के ज़रिए टेक्स्ट का सारांश जनरेट किया है. साथ ही, Svelte वेब ऐप्लिकेशन बनाया है और उसे Cloud Functions में डिप्लॉय किया है. उपलब्ध मॉडल के बारे में ज़्यादा जानने के लिए, Vertex AI LLM प्रॉडक्ट का दस्तावेज़ देखें.