Imagen को Cloud Run पर डिप्लॉय करना

1. इस कोडलैब (कोड बनाना सीखने के लिए ट्यूटोरियल) के बारे में जानकारी

पिछले अपडेट की तारीख: 11-10-2024

लेखक: लॉरी व्हाइट

इमेज जनरेट करना

आइए, हम आपको बताते हैं कि लार्ज लैंग्वेज मॉडल (एलएलएम) की मदद से इमेज जनरेट करना कितना मज़ेदार हो सकता है. बेशक, किसी प्रॉम्प्ट से इमेज जनरेट करने के लिए, कारोबार से जुड़े कई ऐप्लिकेशन उपलब्ध हैं. इनमें, कस्टमाइज़ किए गए विज्ञापन से लेकर आकर्षक प्रज़ेंटेशन तक शामिल हैं. (Google Cloud की वेबसाइट पर, क्रिएटिव एजेंट का इस्तेमाल करने वाली कंपनियों के कई खास उदाहरण दिए गए हैं.) हालांकि, "खेत में हरे रंग के खुश कुत्ते" की इमेज के लिए अनुरोध करने पर, आपको कैसे नतीजे मिलते हैं, यह देखना काफ़ी मज़ेदार हो सकता है.

चाहे आपको इमेज जनरेट करने में दिलचस्पी पेशेवर वजहों से हो या सिर्फ़ मनोरंजन के लिए (या दोनों!), इमेज जनरेट करने वाले प्रोग्राम का इस्तेमाल करने और उसे वेब ऐप्लिकेशन पर डिप्लॉय करने के बीच कुछ चुनौतियां आती हैं. यह लैब, इन चुनौतियों से निपटने में आपकी मदद करेगा.

आपको क्या बनाने को मिलेगा

इस कोडलैब में, आपको एक ऐसा ऐप्लिकेशन बनाने का तरीका बताया जाएगा जो टेक्स्ट प्रॉम्प्ट लेगा और उस प्रॉम्प्ट का इस्तेमाल करके जनरेट की गई इमेज वाला वेब पेज दिखाएगा.

आपको क्या सीखने को मिलेगा

इस लैब में, आपको इनके बारे में जानकारी मिलेगी:

  • नोटबुक एनवायरमेंट में, टेक्स्ट प्रॉम्प्ट से इमेज बनाने के लिए Google Imagen का इस्तेमाल कैसे करें
  • Imagen कोड को नोटबुक से वेब ऐप्लिकेशन में ले जाने में आने वाली समस्याएं
  • इमेज जनरेट करने के लिए Imagen का इस्तेमाल करने वाले Cloud Run ऐप्लिकेशन को डिप्लॉय करने का तरीका
  • एचटीएमएल में Imagen से इमेज शामिल करने का तरीका

यह कोडलैब, Imagen और उसे डिप्लॉय करने पर फ़ोकस करता है. काम के न होने वाले कॉन्सेप्ट और कोड ब्लॉक को हटा दिया जाता है. साथ ही, आपको सिर्फ़ कॉपी और पेस्ट करने के लिए कॉन्सेप्ट और कोड ब्लॉक दिए जाते हैं.

आपको किन चीज़ों की ज़रूरत होगी

इस कोडलैब का पूरा कोड, https://github.com/Annie29/imagen-deployment पर उपलब्ध है .

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

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

Imagen का इस्तेमाल शुरू करने से पहले, आपको कुछ एपीआई चालू करने होंगे.

  1. Google Cloud Console पर जाएं.
  2. Vertex AI डैशबोर्ड पर जाएं.
  3. "सुझाए गए सभी एपीआई चालू करें" को चुनें

a8f336f7380a9eab.png

3. Google Imagen के बारे में जानकारी (ज़रूरी नहीं)

अगर आपको Imagen के बारे में पता है, तो इस सेक्शन को छोड़कर आगे बढ़ें.

Imagen का इस्तेमाल करने वाला वेब ऐप्लिकेशन बनाने से पहले, यह जानना ज़रूरी है कि Imagen क्या-क्या कर सकता है. खुशी की बात है कि कई ऐसी नोटबुक उपलब्ध हैं जिनमें Imagen का आसान कोड चलता है. इसलिए, आइए इनमें से किसी एक नोटबुक से शुरुआत करें.

  1. https://github.com/GoogleCloudPlatform/generative-ai/blob/main/vision/getting-started/image_generation.ipynb पर जाकर, नोटबुक पर जाएं .
  2. Google के नोटबुक सर्वर में नोटबुक खोलने के लिए, Colab में खोलें को चुनें.
  3. इस नोटबुक की अपनी कॉपी बनाने के लिए, पेज के सबसे ऊपर मौजूद "Drive में कॉपी करें" पर क्लिक करें या"फ़ाइल -> Drive में कॉपी सेव करें" को चुनें.
  4. ओरिजनल कॉपी बंद करें, ताकि आप गलत कॉपी में काम न करें!
  5. आपको सबसे ऊपर दाईं ओर मौजूद, कनेक्ट करें बटन पर क्लिक करके किसी रनटाइम से कनेक्ट करना होगा. 2afdc8fa660a89bd.png
  6. नोटबुक में मौजूद हर सेल पर काम करना शुरू करें.
  7. किसी सेल को चलाने के लिए, सेल के बाईं ओर मौजूद [] या ऐरो पर क्लिक करें. इसके अलावा, रनटाइम मेन्यू में जाकर, 'चुनी गई सेल चलाएं' विकल्प का इस्तेमाल करें. इसके लिए, इस शॉर्टकट का भी इस्तेमाल किया जा सकता है: dfec032ef6c31296.png
  8. मौजूदा रनटाइम को रीस्टार्ट करने पर, आपको एक मैसेज मिलेगा. इसमें बताया जाएगा कि आपका सिस्टम क्रैश हो गया है. घबराओ मत. यह आम बात है.
  9. आपको अपने नोटबुक एनवायरमेंट की पुष्टि करनी होगी.
  10. कोड के दाईं ओर मौजूद बॉक्स में, अपना प्रोजेक्ट आईडी (नाम नहीं) और जगह की जानकारी डालें. अगर आपने जगह की जानकारी सेट नहीं की है, तो us-central1 का इस्तेमाल किया जा सकता है. इसके बाद, Colab आपके लिए कोड में यह जानकारी डाल देगा.
  11. "Generate an image" पर पहुंचने के बाद, आपको यह देखने का मौका मिलेगा कि Imagen क्या-क्या कर सकता है. आपको जो इमेज चाहिए उसके लिए प्रॉम्प्ट बदलें और सेल को फिर से चलाएं. इससे आपको अलग-अलग तरह की इमेज मिलेंगी.
  12. अब आपको इस बात का अंदाज़ा लग गया होगा कि Imagen, नोटबुक से इमेज कैसे जनरेट कर सकता है. इमेज पैरामीटर के बारे में ज़्यादा जानने के लिए, इस नोटबुक को अभी या अपनी सुविधा के अनुसार पूरा करें.

4. इमेज दिखाने के लिए, वेब ऐप्लिकेशन बनाना शुरू करना

हम अपना ऐप्लिकेशन बनाने के लिए, Cloud Run पर Flask फ़्रेमवर्क का इस्तेमाल करके Python का इस्तेमाल करेंगे.

Python Flask ऐप्लिकेशन को किसी फ़ोल्डर में इस तरह सेट अप किया जाता है:

app-folder
    templates
        template.html
        (etc.)
        anothertemplate.html
    main.py
    requirements.txt

टेंप्लेट ऐसी फ़ाइलें होती हैं जिनमें एचटीएमएल होता है. आम तौर पर, इनमें नाम वाले प्लेसहोल्डर होते हैं. प्रोग्राम, जनरेट किया गया टेक्स्ट इन प्लेसहोल्डर में डालता है. main.py वेब सर्वर ऐप्लिकेशन है. साथ ही, requirements.txt, main.py के इस्तेमाल की जाने वाली सभी नॉन-स्टैंडर्ड लाइब्रेरी की सूची है.

ऐप्लिकेशन में दो पेज होंगे. पहले पेज पर प्रॉम्प्ट मिलेगा और दूसरे पेज पर इमेज दिखेगी. साथ ही, उपयोगकर्ता को दूसरा प्रॉम्प्ट डालने की अनुमति मिलेगी.

सबसे पहले, प्रोजेक्ट का फ़्रेमवर्क बनाएं.

फ़ाइल स्ट्रक्चर बनाना

इस कोडलैब में यह माना गया है कि आपका प्रोजेक्ट, imageapp फ़ोल्डर में है. अगर किसी दूसरे नाम का इस्तेमाल किया जाता है, तो पक्का करें कि आपने निर्देशों को ज़रूरत के मुताबिक अपडेट कर दिया हो.

स्क्रीन पर सबसे ऊपर दाईं ओर मौजूद, प्रॉम्प्ट आइकॉन को चुनकर Cloud Shell में जाएं.

28135f700c5b12b0.png

शेल को नई टैब में ले जाकर, काम करने के लिए ज़्यादा जगह पाई जा सकती है. इसके लिए, शेल विंडो में सबसे ऊपर मौजूद ऐरो का इस्तेमाल करें:

310422ac131813e1.png

Cloud Shell में अपनी होम डायरेक्ट्री से, imageapp फ़ोल्डर बनाएं. इसके बाद, इस फ़ोल्डर पर जाएं और templates फ़ोल्डर बनाएं. ऐसा कमांड लाइन या Cloud Shell एडिटर से किया जा सकता है.

टेंप्लेट बनाना

ऐप्लिकेशन में दो पेज होंगे. पहले पेज (जिसे हम home.html कहेंगे) पर प्रॉम्प्ट मिलेगा और दूसरे पेज (जिसे हम display.html कहेंगे) पर इमेज दिखेगी. साथ ही, उपयोगकर्ता को दूसरा प्रॉम्प्ट डालने की अनुमति मिलेगी.

Cloud Shell Editor या अपनी पसंद के Linux एडिटर का इस्तेमाल करके, दो टेंप्लेट बनाएं. imageapp/templates फ़ोल्डर में, वह शुरुआती पेज बनाएं जो उपयोगकर्ता को दिखेगा, home.html. यह वैरिएबल prompt का इस्तेमाल करता है, ताकि उपयोगकर्ता की ओर से डाला गया ब्यौरा दिखाया जा सके.

templates/home.html

<!DOCTYPE html>
<html>
   <head>
       <title>Let's draw a picture</title>
   </head>
   <body>
       <h1>Let's draw a picture</h1>
       <form  action="/" method="post" >
           <input type="text" id="prompt" name="prompt">
           <input type="submit" value="Send">
       </form>
   </body>
</html>

इसके बाद, display.html बनाएं. इससे इमेज दिखेगी. ध्यान दें कि इमेज की जगह की जानकारी image_url में होगी.

templates/display.html

<!DOCTYPE html>
<html>
   <head>
       <title>Let's draw a picture</title>
   </head>
   <body>
       <h1>Let's draw a picture</h1>

       <div>
           <form  action="/" method="post" >
               <input type="text" id="prompt" name="prompt">
               <input type="submit" value="Send">
           </form>

           <p></p>
       </div>

       <div id="picture">
           <img id="pict" name="pict" alt="The created image" src="{{image_uri}}" style="width:100%;">
       </div>

   </body>
</html>

5. कोड लिखना शुरू करना

आपको requirements.txt फ़ाइल बनानी होगी, ताकि यह पक्का किया जा सके कि आपके प्रोग्राम के लिए ज़रूरी सभी लाइब्रेरी उपलब्ध हैं. फ़िलहाल, flask को सिर्फ़ requirements.txt फ़ाइल में शामिल करें.

main.py फ़ाइल में वह कोड होता है जो वेब अनुरोधों को पूरा करेगा. हमें सिर्फ़ दो अनुरोधों को मैनेज करना है: पहला, होम पेज के लिए GET अनुरोध और दूसरा, POST अनुरोध. इस अनुरोध में, हमें जनरेट करनी है इमेज के बारे में जानकारी देने वाला फ़ॉर्म सबमिट किया जाता है.

अपनी पसंद के Cloud Shell एडिटर या Linux एडिटर का इस्तेमाल करके, main.py फ़ोल्डर में main.py फ़ाइल बनाएं.imageapp हम यहां दिए गए स्ट्रक्चर से शुरुआत करेंगे:

main.py

import flask

app = flask.Flask(__name__)

@app.route("/", methods=["GET"])
def home_page():
    return flask.render_template("home.html")

@app.route("/", methods=["POST"])
def display_image():
    # Code to get the prompt (called prompt) from the submitted form
    # Code to generate the image
    # Code to create a URL for the image (called image_url)

    return flask.render_template("display.html", prompt=prompt, image_url=image_url)

# Initialize the web server app when the code locally (Cloud Run handles it in that environment)
if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0", port=8080)

असल में, यह ऐप्लिकेशन का लगभग पूरा कोड है. display_image में तीन टिप्पणियां हैं. इनमें Python कोड जोड़ना है. इसके बाद, यह ऐप्लिकेशन तैयार हो जाएगा.

आइए, उन छूटे हुए हिस्सों को भरना शुरू करें. Flask की मदद से, प्रॉम्प्ट को आसानी से वापस पाया जा सकता है. टिप्पणी के बाद एक लाइन जोड़ें. यह लाइन इस तरह दिखनी चाहिए:

# Code to get the prompt (called prompt) from the submitted form
prompt = flask.request.form["prompt"]

अगर आपको अभी ऐप्लिकेशन की जांच करनी है, तो display_image में return स्टेटमेंट से पहले एक लाइन जोड़ें. इससे image_url (एक मान्य यूआरएल, जो किसी इमेज की ओर ले जाता है) को वैल्यू दी जा सकेगी.

उदाहरण के लिए: image_url="<your url here>"

प्रोग्राम को Cloud Shell से स्थानीय तौर पर चलाया जा सकता है. इसके लिए, python main.py कमांड का इस्तेमाल करें. साथ ही, इसे अपनी स्क्रीन के सबसे ऊपर दाईं ओर मौजूद, पोर्ट 8080 पर झलक देखें का इस्तेमाल करके देखा जा सकता है.

a80b4abd28cb7eed.png

प्रोग्राम के मौजूदा वर्शन में, आपको हमेशा वही इमेज दिखेगी जो आपने यूआरएल में दी है. आगे बढ़ते हैं और देखते हैं कि ऐप्लिकेशन से वह वैल्यू कैसे मिलती है. image_url को स्टैटिक वैल्यू देने वाली लाइन को हटाना न भूलें.

6. इमेज बनाई जा रही है

Google Cloud में, Vertex AI में जनरेटिव एआई के लिए Python API उपलब्ध है. इसका इस्तेमाल करने के लिए, हमें अपने प्रोग्राम में सबसे ऊपर मौजूद अन्य इंपोर्ट के साथ इसे इंपोर्ट करने वाली लाइन जोड़नी होगी:

from vertexai.vision_models import ImageGenerationModel

और requirements.txt फ़ाइल में vertexai शामिल करें.

ImageGenerationModel के दस्तावेज़ में, इसे इस्तेमाल करने का तरीका बताया गया है. हम एक मॉडल बनाएंगे. इसके बाद, प्रॉम्प्ट के आधार पर उससे इमेज जनरेट करेंगे. दूसरे चरण के लिए, main.py में कोड जोड़ें. इससे इमेज बन जाएगी और response में सेव हो जाएगी:

# Code to generate the image
model = ImageGenerationModel.from_pretrained("imagegeneration@006")
response = model.generate_images(prompt=prompt)[0]

generate_images को भेजे गए पैरामीटर के आधार पर, एक बार में ज़्यादा से ज़्यादा चार इमेज बनाई जा सकती हैं. इसलिए, दिखाई गई वैल्यू GeneratedImage की सूची होगी. भले ही, इस मामले में सिर्फ़ एक इमेज दिखाई गई हो.

अब हमें इमेज को WWW पेज पर दिखाना है. GeneratedImage के पास इमेज को show करने का तरीका है. हालांकि, यह सिर्फ़ नोटबुक एनवायरमेंट में काम करता है. हालांकि, इमेज को सेव करने का एक तरीका है. हम इमेज को सेव करेंगे और टेंप्लेट रेंडर करते समय, सेव की गई इमेज का यूआरएल भेजेंगे.

यह थोड़ा मुश्किल है और इसे कई तरीकों से किया जा सकता है. आइए, एक आसान तरीके के बारे में सिलसिलेवार तरीके से जानें. (अगर आपको विज़ुअल तरीके से ज़्यादा समझ आता है, तो यहां दिए गए चरणों की इमेज देखें.)

सबसे पहले, हमें इमेज सेव करनी होगी. लेकिन, इसका नाम क्या होगा? स्टैटिक नाम का इस्तेमाल करने से समस्याएं हो सकती हैं, क्योंकि प्रोग्राम का इस्तेमाल एक ही समय में कई लोग कर सकते हैं. हम हर उपयोगकर्ता के लिए अलग-अलग इमेज के नाम बना सकते हैं. इसके लिए, यूयूआईडी जैसे किसी तरीके का इस्तेमाल किया जा सकता है. हालांकि, Python की tempfile लाइब्रेरी का इस्तेमाल करना ज़्यादा आसान है. यह लाइब्रेरी, यूनीक नाम वाली एक अस्थायी फ़ाइल बनाएगी. नीचे दिया गया कोड, एक टेंपफ़ाइल बनाएगा, उसका नाम लेगा, और इमेज जनरेट करने वाले चरण के जवाब को टेंपफ़ाइल में लिखेगा. हमें पहले यूआरएल चाहिए, इसलिए हम इसे अभी अपने कोड में नहीं डालेंगे.

with tempfile.NamedTemporaryFile("wb") as f:
    filename = f.name
    response.save(filename, include_generation_parameters=False)
    # process the saved file here, before it goes away

सेव की गई फ़ाइल को प्रोसेस करने के कई तरीके हैं. हालांकि, सबसे आसान और सुरक्षित तरीका है कि डेटा यूआरएल का इस्तेमाल किया जाए.

डेटा यूआरएल की मदद से, यूआरएल में असली डेटा भेजा जा सकता है. सिर्फ़ डेटा का पाथ नहीं. डेटा यूआरएल का सिंटैक्स यह है:

data:[image/png][;base64],<data>

इमेज का base64 एन्कोडिंग पाने के लिए, हमें tempfile से सेव की गई फ़ाइल को खोलना होगा और उसे किसी वैरिएबल में पढ़ना होगा. हां, यह एक बड़ी स्ट्रिंग होगी. हालांकि, इससे आधुनिक ब्राउज़र और सर्वर पर कोई असर नहीं पड़ेगा. इसके बाद, हम base64 लाइब्रेरी का इस्तेमाल करके, उसे एक ऐसे स्ट्रिंग में बदल देंगे जिसे हम डेटा यूआरएल में भेज सकते हैं.

तीसरा चरण (यूआरएल बनाना) पूरा करने के लिए, हमारा फ़ाइनल कोड यह होगा:

# Code to create a URL for the image (called image_url)
with tempfile.NamedTemporaryFile("wb") as f:
    filename = f.name
    response.save(filename, include_generation_parameters=False)
    # process the saved file here, before it goes away
    with open(filename, "rb") as image_file:
        binary_image = image_file.read()
        base64_image = base64.b64encode(binary_image).decode("utf-8")
        image_url = f"data:image/png;base64,{base64_image}"

नीचे दी गई इमेज में, इन सभी चरणों को देखा जा सकता है:

268876579dc02376.png

आपको अपने प्रोग्राम की शुरुआत में tempfile और base64 को इंपोर्ट करना होगा.

import tempfile
import base64

Cloud Shell से अपना प्रोग्राम चलाकर देखें. इसके लिए, पक्का करें कि आप main.py वाले फ़ोल्डर में हों और यह कमांड चला रहे हों:

python main.py

इसके बाद, स्क्रीन पर सबसे ऊपर दाईं ओर मौजूद, पोर्ट 8080 पर झलक देखें का इस्तेमाल करके, इसकी झलक देखी जा सकती है.

a80b4abd28cb7eed.png

7. आम तौर पर होने वाली गड़बड़ी

ऐसा हो सकता है कि प्रोग्राम को चलाने के दौरान (टेस्टिंग के दौरान या उसे डिप्लॉय करने के बाद), आपको इस तरह का मैसेज दिखे:

2366c3bba6273517.png

ऐसा ज़िम्मेदारी के साथ एआई के इस्तेमाल के तरीके से जुड़ी Google की नीतियों का उल्लंघन करने वाले किसी प्रॉम्प्ट की वजह से हो सकता है . "रंगीन गेंदों से खेलते हुए बिल्ली के बच्चे" जैसे सामान्य प्रॉम्प्ट से भी यह समस्या हो सकती है. (हालांकि, चिंता न करें, "रंगीन खिलौनों से खेलते हुए बिल्ली के बच्चों" की इमेज मिल सकती हैं.)

इस गड़बड़ी को ठीक करने के लिए, हम एक ऐसा कोड जोड़ेंगे जो इमेज जनरेट करने की कोशिश करते समय होने वाली गड़बड़ी को पकड़ सके. अगर कोई टेंप्लेट मौजूद है, तो हम मैसेज के साथ home.html टेंप्लेट को फिर से रेंडर करेंगे.

सबसे पहले, home.html टेंप्लेट में पहले फ़ॉर्म के बाद एक div जोड़ते हैं. अगर कोई गड़बड़ी होती है, तो यह div दिखेगा:

<!DOCTYPE html>
<html>
   <head>
       <title>Let's draw a picture</title>
   </head>
   <body>
       <h1>Let's draw a picture</h1>
       <form  action="/" method="post" >
           <input type="text" id="prompt" name="prompt">
           <input type="submit" value="Send">
       </form>
       {% if mistake %}
       <div id="warning">
       The prompt contains sensitive words that violate
       <a href=\"https://ai.google/responsibility/responsible-ai-practices\">
           Google's Responsible AI practices</a>.
       Try rephrasing the prompt."</div>

       {% endif %}

   </body>
</html>

इसके बाद, main.py में कोड जोड़ें, ताकि display_image में generate_images कोड को कॉल करते समय संभावित अपवाद को पकड़ा जा सके. अगर कोई अपवाद है, तो कोड, मैसेज के साथ home.html टेंप्लेट रेंडर करेगा.

# Code to generate the image
   model = ImageGenerationModel.from_pretrained("imagegeneration@006")
   try:
       response = model.generate_images(prompt=prompt)[0]   
   except:
       #  This is probably due to a questionable prompt
       return flask.render_template("home.html", warning=True)

Imagen में, ज़िम्मेदारी के साथ एआई का इस्तेमाल करने से जुड़ी यह सुविधा ही उपलब्ध नहीं है. ऐसी कई सुविधाएं हैं जो लोगों और बच्चों की इमेज जनरेट होने से बचाती हैं. साथ ही, इमेज पर सामान्य फ़िल्टर लगाती हैं. इनके बारे में ज़्यादा जानने के लिए, यहां जाएं.

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

Cloud Shell में मौजूद imageapp फ़ोल्डर में मौजूद कमांड का इस्तेमाल करके, ऐप्लिकेशन को वेब पर डिप्लॉय किया जा सकता है. पक्का करें कि आपने कमांड में अपने प्रोजेक्ट का आईडी इस्तेमाल किया हो.

gcloud run deploy imageapp \
  --source . \
  --region us-central1 \
  --allow-unauthenticated \
  --project your-project-id

आपको इस तरह का जवाब दिखेगा, जिसमें बताया गया होगा कि आपको अपना ऐप्लिकेशन कहां मिलेगा:

Service [imageapp] revision [imageapp-00001-t48] has been deployed and is serving 100 percent of traffic.
Service URL: https://imageapp-708208532564.us-central1.run.app```

9. क्लीन अप करना

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

कंटेनर इमेज रिपॉज़िटरी मिटाने के लिए:

gcloud artifacts repositories delete cloud-run-source-deploy \
  --location $REGION

Cloud Run से जुड़ी सेवा मिटाने के लिए:

gcloud run services delete imageapp \
  --platform managed \
  --region $REGION

Google Cloud प्रोजेक्ट मिटाने के लिए:

  1. अपने मौजूदा प्रोजेक्ट का आईडी वापस पाएं:
PROJECT_ID=$(gcloud config get-value core/project)
  1. पक्का करें कि आपको यही प्रोजेक्ट मिटाना है:
echo $PROJECT_ID
  1. प्रोजेक्ट मिटाने के लिए:
gcloud projects delete $PROJECT_ID

10. बधाई हो

बधाई हो, आपने Imagen की मदद से बनाई गई इमेज दिखाने वाला वेब ऐप्लिकेशन बना लिया है. इसका इस्तेमाल अपने ऐप्लिकेशन में कैसे किया जा सकता है?

आगे क्या करना है?

यहां दिए गए कुछ कोडलैब आज़माएं...

इस बारे में और पढ़ें