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 को कॉल करने के लिए किया जाता है
- Cloud Function के ज़रिए Vertex AI API से इंटरैक्ट करने के लिए, यूज़र इंटरफ़ेस (यूआई) के लिए Svelte वेब ऐप्लिकेशन
- Cloud Run सेवा, ताकि ऊपर बनाए गए ऐप्लिकेशन को बिना सर्वर के डिप्लॉय किया जा सके
2. ज़रूरी शर्तें
3. शुरू करने से पहले
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, Google Cloud प्रोजेक्ट चुनें या बनाएं
- पक्का करें कि आपके 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 फ़ंक्शन लिखने के लिए, main.py फ़ाइल बनाएं. साथ ही, डिपेंडेंसी सेव करने के लिए, requirements.txt फ़ाइल बनाएं.
touch main.py requirements.txt
इस Python फ़ाइल में, एक सामान्य एचटीटीपी क्लाउड फ़ंक्शन के बारे में बताया गया है. यह फ़ंक्शन, Vertex AI के टेक्स्ट जनरेशन मॉडल का इस्तेमाल करके, टेक्स्ट इनपुट की छोटी खास जानकारी जनरेट करता है. यह फ़ंक्शन, टेक्स्ट को पैरामीटर के तौर पर लेता है और इनपुट की खास जानकारी दिखाता है. यह फ़ंक्शन, जनरेशन की प्रोसेस को कंट्रोल करने के लिए कई तरह के पैरामीटर का इस्तेमाल करता है. जैसे, जनरेट किए गए टेक्स्ट में क्रिएटिविटी, विविधता, और धाराप्रवाह भाषा का इस्तेमाल. एचटीटीपी क्लाउड फ़ंक्शन, अनुरोध ऑब्जेक्ट को स्वीकार करता है और मॉडल की खास जानकारी को रिस्पॉन्स के तौर पर दिखाता है.
Google Cloud Editor खोलें. इसे खोलने के लिए, Google Cloud Console का नया टैब खोलें. इसके बाद, 'CLOUD SHELL चालू करें' बटन पर क्लिक करें. जब टर्मिनल लोड हो जाए, तब 'एडिटर खोलें' बटन पर तुरंत क्लिक करें. यह बटन, यहां दी गई इमेज में दिखाया गया है:

एडिटर खुलने के बाद, आपको main.py फ़ाइल दिखनी चाहिए. इसके कॉन्टेंट को इस रिपॉज़िटरी के कोड से बदलें link. कोड के बारे में जानकारी, कोड की टिप्पणियों के तौर पर शामिल की जाती है. संक्षेप में कहें, तो यह कोड 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 Function दिखेगा. इसका सार्वजनिक यूआरएल, फ़ंक्शन पेज में दिया जाएगा. हम इस कुकी का इस्तेमाल, अपने फ़्रंटएंड और Vertex AI API को कनेक्ट करने के लिए करते हैं. इस यूआरएल को सेव करें. आपको बिना पुष्टि किए गए ऐक्सेस के लिए, Cloud Run सेवा को भी अनुमति देनी पड़ सकती है. सुरक्षा के लिए, पुष्टि की गई सेवा का इस्तेमाल करने का सुझाव दिया जाता है.
5. फ़्रंट-एंड बनाना और उसे डिप्लॉय करना
इस ऐप्लिकेशन में एक फ़्रंटएंड इंटरफ़ेस होता है. इसकी मदद से, Google Cloud Functions के ज़रिए हमारे Vertex AI API के साथ इंटरैक्ट किया जा सकता है. आइए, अब इसे बनाएं.
डेटा स्टोर करने की जगह का क्लोन बनाना और Dockerfile सेट अप करना
रूट डायरेक्ट्री पर जाएं और git रिपॉज़िटरी को क्लोन करें.
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 रिपॉज़िटरी बनाएं:
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 प्रॉडक्ट का दस्तावेज़ देखें.