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 Function का इस्तेमाल करके, Palm API को शुरू किया जाता है
- यूज़र इंटरफ़ेस के लिए Svelte वेब ऐप्लिकेशन, जिससे Cloud फ़ंक्शन के ज़रिए Vertex AI API का इस्तेमाल किया जा सकता है
- बिना सर्वर के बनाए गए ऐप्लिकेशन को डिप्लॉय करने के लिए, Cloud Run सेवा
2. ज़रूरी शर्तें
3. शुरू करने से पहले
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं
- पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग की सुविधा चालू है या नहीं, यह देखने का तरीका जानें
- आपको Cloud Shell का इस्तेमाल करना होगा. यह कमांड-लाइन सुविधा है, जो Google Cloud में काम करती है. इसकी मदद से, Google Cloud की सेवाओं से इंटरैक्ट किया जा सकता है. 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
- क्लाउड शेल टर्मिनल से नीचे दिया गया कमांड चलाकर, AREA और PROJECT_ID के लिए एनवायरमेंट वैरिएबल बनाएं:
export PROJECT_ID=<your project id>
export REGION=asia-south1
4. Vertex AI API को शुरू करने के लिए Cloud Function
हम एक Python Cloud Function बनाएंगे और इस फ़ंक्शन में 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 बनाते हैं.
क्लाउड शेल का इस्तेमाल करके एक नई डायरेक्ट्री बनाएं और उस पर जाएं. (पिछले सेक्शन में खोले गए उसी टर्मिनल का इस्तेमाल करें):
mkdir vertex-ai-functions
cd vertex-ai-functions
डिपेंडेंसी सेव करने के लिए, Python Cloud Function और ज़रूरी.
touch main.py requirements.txt
यह Python फ़ाइल, आसान एचटीटीपी क्लाउड फ़ंक्शन के बारे में बताती है. यह टेक्स्ट इनपुट के बारे में खास जानकारी जनरेट करने के लिए, Vertex AI Text Generation मॉडल का इस्तेमाल करती है. फ़ंक्शन, टेक्स्ट इनपुट को पैरामीटर के तौर पर लेता है और इनपुट के बारे में कम शब्दों में जानकारी देता है. यह फ़ंक्शन, जनरेट किए जाने की प्रोसेस को कंट्रोल करने के लिए कई तरह के पैरामीटर का इस्तेमाल करता है. जैसे, जनरेट किए गए टेक्स्ट की क्रिएटिविटी, विविधता, और फ़्लूएंसी. एचटीटीपी Cloud फ़ंक्शन, अनुरोध किए गए ऑब्जेक्ट को स्वीकार करता है और रिस्पॉन्स के तौर पर मॉडल की खास जानकारी दिखाता है.
Google Cloud Editor खोलें. इसे Google Cloud Console का नया टैब खोलकर और 'क्लाउड शेल चालू करें' बटन पर क्लिक करके खोला जा सकता है. टर्मिनल लोड होने पर, 'एडिटर खोलें' बटन पर तुरंत क्लिक करें, जैसा कि यहां दी गई इमेज में दिखाया गया है:
एडिटर खुलने के बाद, आपको Main.py फ़ाइल दिखेगी. इसके कॉन्टेंट को, डेटा स्टोर करने की इस जगह पर दिए गए कोड से बदलें लिंक. कोड के बारे में बताई गई जानकारी, कोड टिप्पणियों के तौर पर शामिल की गई है. इस कोड की मदद से, Vertex AI की मदद से टेक्स्ट इनपुट के लिए, कम शब्दों में खास जानकारी जनरेट की जा सकती है.
related.txt फ़ाइल में पैकेज डिपेंडेंसी होती हैं: Function-framework==3.*: इससे यह पक्का किया जाता है कि फ़ंक्शन में नई सुविधाओं का इस्तेमाल किया गया हो और फ़ंक्शन फ़्रेमवर्क की गड़बड़ियां ठीक की गई हों. google-cloud-aiplatform: Vertex AI टेक्स्ट जनरेट करने वाले मॉडल का इस्तेमाल करने के लिए ज़रूरी है.
इसे ज़रूरी शर्तें.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 कंसोल पर जाएं:
यह उस वर्टेक्स-एआई-फ़ंक्शन क्लाउड फ़ंक्शन की सूची दिखाएगा जिसे हमने अभी-अभी उसके सार्वजनिक यूआरएल की मदद से बनाया है. यह फ़ंक्शन पेज पर दिया जाएगा. हम इसका इस्तेमाल, Frontend और 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 फ़ंक्शन का वह यूआरएल है जिसे पिछले सेक्शन में बनाया और सेव किया गया है.
Cloud Editor खोलें और Dockerfile फ़ाइल के कॉन्टेंट में बदलाव करें. PUBLIC_Function_URL वैरिएबल को अपने Cloud Function यूआरएल से बदलें.
फ़्रंटएंड को क्लाउड रन पर डिप्लॉय करें
हम अपनी 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
डॉकर कंटेनर बनाएं और इसे Artifact Registry का डेटा स्टोर करने की जगह के साथ टैग करें. Docker इमेज को रिपॉज़िटरी के नाम के साथ टैग करने पर, Docker पुश कमांड कॉन्फ़िगर हो जाता है. इससे इमेज को किसी खास जगह पर पुश किया जा सकता है.
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. बधाई हो
बधाई हो! आपने प्रोग्राम के हिसाब से टेक्स्ट की खास जानकारी पाने, Svelte वेब ऐप्लिकेशन बनाने, और Cloud Functions में डिप्लॉय करने के लिए Vertex AI PaLM2 API का इस्तेमाल कर लिया है. उपलब्ध मॉडल के बारे में ज़्यादा जानने के लिए, Vertex AI एलएलएम से जुड़े प्रॉडक्ट के दस्तावेज़ देखें.