1. खास जानकारी
पहली बार वेब ऐप्लिकेशन को डिप्लॉय करना मुश्किल हो सकता है. पहली बार डिप्लॉय करने के बाद भी, अगर प्रोसेस में बहुत ज़्यादा काम करना पड़ता है, तो हो सकता है कि आप अपने ऐप्लिकेशन के नए वर्शन डिप्लॉय न करें. लगातार डिप्लॉयमेंट की मदद से, अपने ऐप्लिकेशन में किए गए बदलावों को आसानी से अपने-आप डिप्लॉय किया जा सकता है.
इस लैब में, आपको एक वेब ऐप्लिकेशन लिखना है. साथ ही, Cloud Run को कॉन्फ़िगर करना है, ताकि आपके ऐप्लिकेशन के सोर्स कोड में बदलाव होने पर, वह अपने-आप डिप्लॉय हो जाए. इसके बाद, अपने ऐप्लिकेशन में बदलाव करें और उसे फिर से डिप्लॉय करें.
आपको क्या सीखने को मिलेगा
- Cloud Shell Editor की मदद से वेब ऐप्लिकेशन लिखना
- अपने ऐप्लिकेशन के कोड को GitHub में सेव करना
- Cloud Run पर अपने ऐप्लिकेशन को अपने-आप डिप्लॉय करना
- Genkit का इस्तेमाल करके, अपने ऐप्लिकेशन में जनरेटिव एआई की सुविधा जोड़ना
- dotprompt लाइब्रेरी का इस्तेमाल करके, एलएलएम प्रॉम्प्ट मैनेज करना
2. ज़रूरी शर्तें
- अगर आपके पास पहले से कोई Google खाता नहीं है, तो आपको एक Google खाता बनाना होगा.
- ऑफ़िस या स्कूल वाले खाते के बजाय, निजी खाते का इस्तेमाल करें. ऑफ़िस और स्कूल वाले खातों पर कुछ पाबंदियां हो सकती हैं. इनकी वजह से, इस लैब के लिए ज़रूरी एपीआई चालू नहीं किए जा सकते.
- अगर आपके पास पहले से कोई GitHub खाता नहीं है, तो आपको एक GitHub खाता बनाना होगा
- अगर आपके पास पहले से कोई GitHub खाता है, तो उसका इस्तेमाल करें. GitHub, नए खाते को स्पैम के तौर पर ब्लॉक कर सकता है.
- अपने खाते को स्पैम के तौर पर मार्क किए जाने की संभावना कम करने के लिए, अपने GitHub खाते पर दो चरणों में पुष्टि करने की सुविधा कॉन्फ़िगर करें.
3. प्रोजेक्ट सेटअप करना
- Google Cloud Console में साइन इन करें.
- Cloud Console में बिलिंग चालू करें.
- इस लैब को पूरा करने में, Cloud संसाधनों पर 1 डॉलर से कम का खर्च आना चाहिए.
- ज़्यादा शुल्क से बचने के लिए, इस लैब के आखिर में दिए गए निर्देशों का पालन करके संसाधनों को मिटाया जा सकता है.
- नए उपयोगकर्ता, 300 डॉलर के मुफ़्त में आज़माने की सुविधा का फ़ायदा पा सकते हैं.
- क्या आपको Devs के लिए Gen AI के किसी इवेंट में शामिल होना है? आपको 100 रुपये का क्रेडिट मिल सकता है.
- नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें.
- पुष्टि करें कि Cloud Billing में मेरे प्रोजेक्ट के लिए बिलिंग की सुविधा चालू है
- अगर आपके नए प्रोजेक्ट के
Billing accountकॉलम मेंBilling is disabledदिखता है, तो:Actionsकॉलम में मौजूद तीन बिंदुओं पर क्लिक करें- बिलिंग बदलें पर क्लिक करें
- वह बिलिंग खाता चुनें जिसका आपको इस्तेमाल करना है
- अगर आपको Gen AI for Devs इवेंट में शामिल होना है, तो खाते का नाम Google Cloud Platform का ट्रायल बिलिंग खाता होगा
- अगर आपके नए प्रोजेक्ट के
4. Cloud Shell Editor खोलें
- Cloud Shell Editor पर जाएं
- अगर टर्मिनल स्क्रीन पर सबसे नीचे नहीं दिखता है, तो इसे खोलें:
- हैमबर्गर मेन्यू
पर क्लिक करें - टर्मिनल पर क्लिक करें
- नया टर्मिनल
पर क्लिक करें
- हैमबर्गर मेन्यू
- टर्मिनल में, इस निर्देश का इस्तेमाल करके अपना प्रोजेक्ट सेट करें:
- फ़ॉर्मैट:
gcloud config set project [PROJECT_ID] - उदाहरण:
gcloud config set project lab-project-id-example - अगर आपको अपना प्रोजेक्ट आईडी याद नहीं है, तो:
- अपने सभी प्रोजेक्ट आईडी की सूची बनाने के लिए, यह तरीका अपनाएं:
gcloud projects list | awk '/PROJECT_ID/{print $2}'

- अपने सभी प्रोजेक्ट आईडी की सूची बनाने के लिए, यह तरीका अपनाएं:
- फ़ॉर्मैट:
- अगर अनुमति देने के लिए कहा जाए, तो जारी रखने के लिए अनुमति दें पर क्लिक करें.

- आपको यह मैसेज दिखेगा:
अगर आपकोUpdated property [core/project].
WARNINGदिखता है और आपसेDo you want to continue (Y/N)?पूछा जाता है, तो इसका मतलब है कि आपने प्रोजेक्ट आईडी गलत डाला है.Nदबाएं,Enterदबाएं, औरgcloud config set projectनिर्देश को फिर से चलाने की कोशिश करें.
5. एपीआई चालू करें
टर्मिनल में, इन एपीआई को चालू करें:
gcloud services enable \
run.googleapis.com \
cloudbuild.googleapis.com \
aiplatform.googleapis.com
इस कमांड को पूरा होने में कुछ मिनट लग सकते हैं. हालांकि, इसके बाद आपको इस तरह का मैसेज दिखेगा:
Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.
6. Git कॉन्फ़िगर करना
- ग्लोबल Git उपयोगकर्ता का ईमेल पता सेट करें:
git config --global user.email "you@example.com" - git के लिए ग्लोबल यूज़र नेम सेट करें:
git config --global user.name "Your Name" - अपनी ग्लोबल git डिफ़ॉल्ट ब्रांच को
mainपर सेट करें:git config --global init.defaultBranch main
7. अपना कोड लिखें
Go में ऐप्लिकेशन लिखने के लिए:
- होम डायरेक्ट्री पर जाएं:
cd ~ codelab-genaiडायरेक्ट्री बनाएं:mkdir codelab-genaicodelab-genaiडायरेक्ट्री पर जाएं:cd codelab-genai- अपने मॉड्यूल का एलान करने के लिए, go.mod फ़ाइल को शुरू करें:
go mod init codelab-genai main.goफ़ाइल बनाने के लिए:touch main.go- Cloud Shell Editor में
main.goफ़ाइल खोलें: अब स्क्रीन के सबसे ऊपर वाले हिस्से में, एक खाली फ़ाइल दिखेगी. यहां इसcloudshell edit main.gomain.goफ़ाइल में बदलाव किया जा सकता है.
main.goमें बदलाव करें और इसमें यह कोड चिपकाएं: कुछ सेकंड बाद, Cloud Shell Editor आपके कोड को अपने-आप सेव कर देगा. यह कोड, एचटीटीपी अनुरोधों का जवाब "नमस्ते, दुनिया के लोगों!" मैसेज के साथ देता है.package main import ( "fmt" "log" "net/http" "os" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello, world!") }) port := os.Getenv("PORT") if port == "" { port = "8080" } if err := http.ListenAndServe(":"+port, nil); err != nil { log.Fatal(err) } }
आपके ऐप्लिकेशन का शुरुआती कोड तैयार हो गया है और इसे वर्शन कंट्रोल में सेव किया जा सकता है.
8. डेटाबेस तैयार करना
- स्क्रीन पर सबसे नीचे मौजूद Cloud Shell टर्मिनल पर वापस जाएं.
- पक्का करें कि आप अब भी सही डायरेक्ट्री में हों:
cd ~/codelab-genai - अपनी git repository शुरू करें
git init -b main - GitHub CLI में लॉग इन करना
डिफ़ॉल्ट विकल्पों को स्वीकार करने के लिए,gh auth loginEnterदबाएं. इसके बाद, GitHub CLI टूल में दिए गए निर्देशों का पालन करें. इनमें ये शामिल हैं:- आपको किस खाते में लॉग इन करना है?
GitHub.com - इस होस्ट पर Git के ऑपरेशन के लिए, आपका पसंदीदा प्रोटोकॉल क्या है?
HTTPS - क्या आपको GitHub क्रेडेंशियल का इस्तेमाल करके Git की पुष्टि करनी है?
Y(अगर यह विकल्प नहीं दिखता है, तो इसे छोड़ दें.) - GitHub CLI की पुष्टि करने के लिए, आपको कौनसी विधि इस्तेमाल करनी है?
Login with a web browser - एक बार इस्तेमाल होने वाला कोड कॉपी करें
- https://github.com/login/device खोलें
- एक बार इस्तेमाल किया जाने वाला कोड चिपकाएं
- Authorize github पर क्लिक करें
- लॉगिन की प्रोसेस पूरी करना
- आपको किस खाते में लॉग इन करना है?
- पुष्टि करें कि आपने लॉग इन किया है:
अगर आपने सही तरीके से लॉग इन किया है, तो इससे आपका GitHub उपयोगकर्ता नाम दिखेगा.gh api user -q ".login" GITHUB_USERNAMEवैरिएबल बनानाGITHUB_USERNAME=$(gh api user -q ".login")- पुष्टि करें कि आपने एनवायरमेंट वैरिएबल बनाया है:
अगर आपने वैरिएबल बना लिया है, तो इससे आपका GitHub उपयोगकर्ता नाम दिखेगा.echo ${GITHUB_USERNAME} codelab-genaiनाम की एक खाली GitHub रिपॉज़िटरी बनाएं: अगर आपको गड़बड़ी का यह मैसेज मिलता है:gh repo create codelab-genai --private इसका मतलब है कि आपके पास पहले से हीGraphQL: Name already exists on this account (createRepository)
codelab-genaiनाम की एक रिपॉज़िटरी है. इस ट्यूटोरियल को आगे बढ़ाने के लिए, आपके पास दो विकल्प हैं:- मौजूदा GitHub रिपॉज़िटरी मिटाना
- किसी दूसरे नाम से रिपॉज़िटरी बनाएं. साथ ही, यहां दिए गए कमांड में उसका नाम बदलना न भूलें.
codelab-genaiरिपॉज़िटरी को रिमोटoriginके तौर पर जोड़ें:git remote add origin https://github.com/${GITHUB_USERNAME}/codelab-genai
9. अपना कोड शेयर करना
- पुष्टि करें कि आप सही डायरेक्ट्री में हैं:
cd ~/codelab-genai - मौजूदा डायरेक्ट्री में मौजूद सभी फ़ाइलों को इस कमिट में जोड़ें:
git add . - पहला कमिट बनाएं:
git commit -m "add http server" - अपने कमिट को
originरिपॉज़िटरी कीmainब्रांच में पुश करें:git push -u origin main
इस कमांड को चलाकर, नतीजे के तौर पर मिले यूआरएल पर जाएं. इससे आपको GitHub पर अपने ऐप्लिकेशन का कोड दिखेगा:
echo -e "\n\nTo see your code, visit this URL:\n \
https://github.com/${GITHUB_USERNAME}/codelab-genai/blob/main/main.go \n\n"
10. अपने-आप डिप्लॉय होने की सुविधा सेट अप करना
- Cloud Shell Editor टैब को खुला रहने दें. हम इस टैब पर बाद में वापस आएंगे.
- नए टैब में, Cloud Run पेज पर जाएं
- कंसोल में सही Google Cloud प्रोजेक्ट चुनें

- कनेक्ट रीपो पर क्लिक करें
- CLOUD BUILD की मदद से सेट अप करें पर क्लिक करें
- GitHub को Repository Provider के तौर पर चुनें
- अगर आपने ब्राउज़र में अपने GitHub खाते में लॉग इन नहीं किया है, तो अपने क्रेडेंशियल से लॉग इन करें.
- पुष्टि करें पर क्लिक करें. इसके बाद, जारी रखें पर क्लिक करें.
- लॉग इन करने के बाद, आपको Cloud Run पेज पर यह मैसेज दिखेगा: GitHub ऐप्लिकेशन, आपकी किसी भी रिपॉज़िटरी पर इंस्टॉल नहीं है.
- GOOGLE CLOUD BUILD इंस्टॉल करें बटन पर क्लिक करें.
- इंस्टॉलेशन सेटअप पेज पर, सिर्फ़ रिपॉज़िटरी चुनें को चुनें. इसके बाद, codelab-genai रिपॉज़िटरी चुनें. इसे आपने सीएलआई की मदद से बनाया था.
- इंस्टॉल करें पर क्लिक करें
- ध्यान दें: अगर आपके पास GitHub की कई रिपॉज़िटरी हैं, तो इन्हें लोड होने में कुछ मिनट लग सकते हैं.
- डेटा स्टोर करने की जगह के तौर पर
your-user-name/codelab-genaiको चुनें- अगर रिपॉज़िटरी मौजूद नहीं है, तो कनेक्ट की गई रिपॉज़िटरी मैनेज करें लिंक पर क्लिक करें.
- Branch को
^main$के तौर पर छोड़ें - Google Cloud के बिल्डपैक के ज़रिए Go, Node.js, Python, Java, .NET Core, Ruby या PHP पर क्लिक करें
- अन्य फ़ील्ड (
Build context directory,Entrypoint, औरFunction target) में कोई बदलाव न करें.
- अन्य फ़ील्ड (
- सेव करें पर क्लिक करें
- GitHub को Repository Provider के तौर पर चुनें
- नीचे की ओर स्क्रोल करके, पुष्टि पर जाएं
- बिना पुष्टि किए गए अनुरोधों को अनुमति दें पर क्लिक करें
- बनाएं पर क्लिक करें
बिल्ड पूरा होने के बाद (इसमें कई मिनट लगेंगे), यह कमांड चलाएं और नतीजे वाले यूआरएल पर जाकर, चल रहा ऐप्लिकेशन देखें:
echo -e "\n\nOnce the build finishes, visit your live application:\n \
"$( \
gcloud run services list | \
grep codelab-genai | \
awk '/URL/{print $2}' | \
head -1 \
)" \n\n"
11. अपना कोड बदलना
- स्क्रीन पर सबसे नीचे मौजूद Cloud Shell टर्मिनल पर वापस जाएं.
- पक्का करें कि आप अब भी सही डायरेक्ट्री में हों:
cd ~/codelab-genai - Go के लिए Genkit SDK इंस्टॉल करें:
go get github.com/firebase/genkit/go/ai - Genkit के लिए Vertex AI प्लगिन इंस्टॉल करें:
go get github.com/firebase/genkit/go/plugins/vertexai - हमारे एलएलएम प्रॉम्प्ट मैनेज करने के लिए, dotprompt प्लगिन इंस्टॉल करें:
go get github.com/firebase/genkit/go/plugins/dotprompt - मौजूदा प्रोजेक्ट आईडी पाने के लिए, Go के लिए मेटाडेटा लाइब्रेरी इंस्टॉल करें:
go get cloud.google.com/go/compute/metadata - Cloud Shell Editor में
main.goको फिर से खोलेंcloudshell edit main.go - अपनी
main.goफ़ाइल में मौजूद कोड को इससे बदलें:package main import ( "context" "fmt" "log" "net/http" "os" "cloud.google.com/go/compute/metadata" "github.com/firebase/genkit/go/plugins/dotprompt" "github.com/firebase/genkit/go/plugins/vertexai" ) func main() { ctx := context.Background() var projectId string var err error projectId = os.Getenv("GOOGLE_CLOUD_PROJECT") if projectId == "" { projectId, err = metadata.ProjectIDWithContext(ctx) os.Setenv("GOOGLE_CLOUD_PROJECT", projectId) if err != nil { return } } if err := vertexai.Init(ctx, nil); err != nil { log.Fatal(err) return } dotprompt.SetDirectory("./") prompt, err := dotprompt.Open("animal-facts") if err != nil { log.Fatal(err) return } type AnimalPromptInput struct { Animal string `json:"animal"` } http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { animal := r.URL.Query().Get("animal") if animal == "" { animal = "dog" } response, err := prompt.Generate( ctx, &dotprompt.PromptRequest{ Variables: AnimalPromptInput{ Animal: animal, }, }, nil, ) if err != nil { w.WriteHeader(http.StatusServiceUnavailable) fmt.Fprint(w, err) return } w.Header().Set("Content-Type", "text/html; charset=utf-8") fmt.Fprint(w, response.Text()) }) port := os.Getenv("PORT") if port == "" { port = "8080" } if err := http.ListenAndServe(":"+port, nil); err != nil { log.Fatal(err) } } animal-facts.promptफ़ाइल बनाने के लिए:touch animal-facts.prompt- Cloud Shell Editor में
animal-facts.promptफ़ाइल खोलें:cloudshell edit animal-facts.prompt animal-facts.promptमें बदलाव करें और इसमें यह कोड चिपकाएं:--- model: vertexai/gemini-1.5-flash config: temperature: 0.9 input: schema: animal: string default: animal: dog --- Give me 10 fun facts about {{animal}}. Return the results as HTML without markdown backticks.
12. फिर से डिप्लॉय करें
- पक्का करें कि आप अब भी Cloud Shell में सही डायरेक्ट्री में हों:
cd ~/codelab-genai - अपने ऐप्लिकेशन के नए वर्शन को अपनी लोकल गिट रिपॉज़िटरी में सेव करने के लिए, इन कमांड को चलाएं:
git add . git commit -m "add latest changes" - बदलावों को GitHub पर पुश करें:
git push - बिल्ड पूरा होने के बाद, यह निर्देश चलाएं और डिप्लॉय किए गए ऐप्लिकेशन पर जाएं:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
बदलाव दिखने से पहले, बिल्ड को पूरा होने में कुछ मिनट लग सकते हैं.
सभी बदलावों का इतिहास यहां देखा जा सकता है: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
13. (ज़रूरी नहीं) Vertex AI के इस्तेमाल का ऑडिट करें
Google Cloud की अन्य सेवाओं की तरह ही, Vertex AI की कार्रवाइयों का ऑडिट किया जा सकता है. ऑडिट लॉग से आपको इन सवालों के जवाब मिलते हैं: "किसने क्या किया, कहां किया, और कब किया?". Vertex AI के लिए, एडमिन के ऑडिट लॉग डिफ़ॉल्ट रूप से चालू होते हैं. कॉन्टेंट जनरेट करने के अनुरोधों का ऑडिट करने के लिए, आपको डेटा ऐक्सेस ऑडिट लॉग चालू करने होंगे:
- Google Cloud Console में, ऑडिट लॉग पेज पर जाएं:
अगर आपको इस पेज को ढूंढने के लिए खोज बार का इस्तेमाल करना है, तो उस नतीजे को चुनें जिसकी सबहेडिंग IAM और एडमिन है. - पक्का करें कि मौजूदा Google Cloud प्रोजेक्ट वही हो जिसमें आपको Cloud Run ऐप्लिकेशन बनाना है.
- डेटा ऐक्सेस के ऑडिट लॉग का कॉन्फ़िगरेशन टेबल में, सेवा कॉलम में मौजूद
Vertex AI APIको ढूंढें और चुनें. - लॉग टाइप टैब में, डेटा ऐक्सेस के ऑडिट लॉग टाइप
Admin readऔरData readचुनें. - सेव करें पर क्लिक करें.
इसे चालू करने के बाद, आपको ऐप्लिकेशन के हर इनवोकेशन के लिए ऑडिट लॉग दिखेंगे. ऑडिट लॉग में, फ़ंक्शन को कॉल करने की जानकारी देखने के लिए, यह तरीका अपनाएं:
- डिप्लॉय किए गए ऐप्लिकेशन पर वापस जाएं और लॉग को ट्रिगर करने के लिए, पेज को रीफ़्रेश करें.
- Google Cloud Console में, लॉग एक्सप्लोरर पेज पर जाएं:
- क्वेरी विंडो में टाइप करें:
LOG_ID("cloudaudit.googleapis.com%2Fdata_access") protoPayload.serviceName="aiplatform.googleapis.com" - क्वेरी चलाएं पर क्लिक करें.
ऑडिट लॉग में, Vertex AI API के इस्तेमाल की जानकारी सेव होती है. हालांकि, इससे आपको वर्कलोड से जुड़ा डेटा नहीं मिलता. जैसे, प्रॉम्प्ट या जवाब की जानकारी.
14. (ज़रूरी नहीं) व्यवस्थित करें
Cloud Run, सेवा का इस्तेमाल न किए जाने पर कोई शुल्क नहीं लेता. हालांकि, Artifact Registry में कंटेनर इमेज सेव करने के लिए आपसे शुल्क लिया जा सकता है. शुल्क से बचने के लिए, अपना Cloud प्रोजेक्ट मिटाया जा सकता है. Cloud प्रोजेक्ट मिटाने पर, उस प्रोजेक्ट में इस्तेमाल किए गए सभी संसाधनों के लिए बिलिंग बंद हो जाती है.
अगर आपको प्रोजेक्ट मिटाना है, तो यह तरीका अपनाएं:
gcloud projects delete $GOOGLE_CLOUD_PROJECT
आपके पास, Cloud Shell डिस्क से ग़ैर-ज़रूरी संसाधन मिटाने का विकल्प भी होता है. आप:
- कोड लैब प्रोजेक्ट की डायरेक्ट्री मिटाएं:
rm -rf ~/codelab-genai - ऐसे सभी Go पैकेज हटाएं जिनकी अब आपको ज़रूरत नहीं है:
cd ~ go clean -modcache - चेतावनी! इस कार्रवाई को पहले जैसा नहीं किया जा सकता! अगर आपको Cloud Shell पर मौजूद सभी फ़ाइलें मिटाकर जगह खाली करनी है, तो अपनी पूरी होम डायरेक्ट्री मिटाएं. ध्यान रखें कि आपको जो भी डेटा रखना है वह किसी दूसरी जगह पर सेव हो.
sudo rm -rf $HOME
15. बधाई हो
इस लैब में, आपने एक वेब ऐप्लिकेशन लिखा और Cloud Run को कॉन्फ़िगर किया. इससे आपके ऐप्लिकेशन के सोर्स कोड में बदलाव होने पर, आपका ऐप्लिकेशन अपने-आप डिप्लॉय हो जाता है. इसके बाद, आपने अपने ऐप्लिकेशन में बदलाव किया और उसे फिर से डिप्लॉय किया.
अगर आपको यह लैब पसंद आया, तो इसे किसी दूसरी कोडिंग भाषा या फ़्रेमवर्क में फिर से आज़माएं:
अगर आपको यूज़र एक्सपीरियंस (यूएक्स) से जुड़ी रिसर्च स्टडी में शामिल होना है, ताकि आज इस्तेमाल किए गए प्रॉडक्ट को बेहतर बनाया जा सके, तो यहां रजिस्टर करें.
यहां सीखने के कुछ विकल्प दिए गए हैं:
- Docs: Genkit का इस्तेमाल, मॉडल के ऐब्स्ट्रैक्शन के तौर पर करें. इससे किसी भी मॉडल एपीआई को इंटिग्रेट करना और कम्यूनिटी के बनाए गए मॉडल इस्तेमाल करना आसान हो जाता है.
- कोडलैब: Cloud Run पर Gemini की मदद से काम करने वाला चैट ऐप्लिकेशन कैसे डिप्लॉय करें
- Cloud Run के साथ Gemini की फ़ंक्शन कॉलिंग सुविधा का इस्तेमाल कैसे करें
- मांग पर उपलब्ध वर्कशॉप: Google Kubernetes Engine Onboard
- वीडियो के हर सीन को प्रोसेस करने के लिए, Cloud Run Jobs Video Intelligence API का इस्तेमाल कैसे करें