ক্লাউড রানে ইমেজেন স্থাপন করা হচ্ছে

ক্লাউড রানে ইমেজেন স্থাপন করা হচ্ছে

এই কোডল্যাব সম্পর্কে

subjectঅক্টো ২৪, ২০২৪-এ শেষবার আপডেট করা হয়েছে
account_circleLaurie White-এর লেখা

1. এই কোডল্যাব সম্পর্কে

শেষ আপডেট: 2024-10-11

লিখেছেন: লরি হোয়াইট

ইমেজ প্রজন্ম

আসুন সত্য কথা বলি, লার্জ ল্যাঙ্গুয়েজ মডেল (এলএলএম) দ্বারা চিত্র তৈরি করা মজাদার হতে পারে। অবশ্যই প্রম্পট থেকে ছবি তৈরি করার জন্য প্রচুর ব্যবসায়িক অ্যাপ্লিকেশন রয়েছে, কাস্টমাইজড বিজ্ঞাপন থেকে আকর্ষণীয় উপস্থাপনা পর্যন্ত। ( গুগল ক্লাউড ওয়েব সাইটে সৃজনশীল এজেন্ট ব্যবহার করে এমন কোম্পানিগুলির অনেকগুলি নির্দিষ্ট ব্যবহার রয়েছে।) তবুও, আপনি যখন "ক্ষেত্রে সুখী সবুজ কুকুর" এর একটি চিত্রের জন্য জিজ্ঞাসা করেন তখন কী ফলাফল দেখায় তা বেশ মজাদার হতে পারে।

আপনি পেশাদার বা বিনোদনমূলক কারণে (বা উভয়ই!) ইমেজ তৈরিতে আগ্রহী হন না কেন, একটি ইমেজ জেনারেশন প্রোগ্রাম ব্যবহার করা এবং একটি ওয়েব অ্যাপ্লিকেশনে স্থাপন করার মধ্যে কিছু চ্যালেঞ্জ রয়েছে। এই ল্যাবটি আপনাকে সেই চ্যালেঞ্জগুলিকে জয় করতে সাহায্য করবে।

আপনি কি নির্মাণ করবেন

এই কোডল্যাবে, আপনি একটি অ্যাপ তৈরি করবেন যা একটি টেক্সট প্রম্পট নেবে এবং সেই প্রম্পটটি ব্যবহার করে তৈরি করা একটি ছবি সহ একটি ওয়েব পৃষ্ঠা ফিরিয়ে দেবে।

আপনি কি শিখবেন

এই ল্যাবে আপনি শিখবেন:

  • নোটবুক পরিবেশে টেক্সট প্রম্পট থেকে ছবি তৈরি করতে Google Imagen কীভাবে ব্যবহার করবেন
  • একটি নোটবুক থেকে একটি ওয়েব অ্যাপে ইমেজেন কোড সরানোর ক্ষেত্রে অসুবিধা৷
  • কীভাবে একটি ক্লাউড রান অ্যাপ্লিকেশন স্থাপন করবেন যা ইমেজ তৈরি করতে ইমেজেন ব্যবহার করে
  • কিভাবে HTML এ Imagen থেকে একটি ইমেজ অন্তর্ভুক্ত করবেন

এই কোডল্যাবটি ইমেজেন এবং স্থাপনার উপর দৃষ্টি নিবদ্ধ করে। অ-প্রাসঙ্গিক ধারণা এবং কোড ব্লকগুলিকে চকচকে করা হয়েছে এবং আপনাকে কেবল অনুলিপি এবং পেস্ট করার জন্য সরবরাহ করা হয়েছে।

আপনি কি প্রয়োজন হবে

এই কোডল্যাবের সম্পূর্ণ কোডটি https://github.com/Annie29/imagen-deployment এ উপলব্ধ।

2. এপিআই সক্ষম করুন

এই কোডল্যাবের জন্য ব্যবহার করার জন্য একটি প্রকল্প নির্বাচন করুন। আপনি একটি নতুন প্রকল্প তৈরি করতে চাইতে পারেন যাতে আপনার কাজ শেষ হয়ে গেলে আপনার সমস্ত কাজ সরানো সহজ হয়৷

আপনি Imagen দিয়ে শুরু করার আগে, আপনাকে কিছু API সক্ষম করতে হবে।

  1. গুগল ক্লাউড কনসোলে যান।
  2. Vertex AI ড্যাশবোর্ডে নেভিগেট করুন।
  3. "সমস্ত প্রস্তাবিত API সক্ষম করুন" নির্বাচন করুন

a8f336f7380a9eab.png

3. গুগল ইমেজেন অন্বেষণ (ঐচ্ছিক)

আপনি যদি Imagen এর সাথে পরিচিত হন তবে আপনি এই বিভাগটি এড়িয়ে যেতে পারেন।

ইমেজেন ব্যবহার করে এমন একটি ওয়েব অ্যাপ তৈরি করার চেষ্টা করার আগে, ইমেজেন কী করতে পারে তা দেখতে দরকারী। সৌভাগ্যবশত, এমন অনেকগুলি নোটবুক রয়েছে যা সাধারণ ইমেজেন কোড চালায়, তাই আসুন সেগুলির একটি দিয়ে শুরু করি।

  1. https://github.com/GoogleCloudPlatform/generative-ai/blob/main/vision/getting-started/image_generation.ipynb- এ নোটবুকে যান।
  2. Google-এর নোটবুক সার্ভারে নোটবুক খুলতে Colab-এ ওপেন বেছে নিন।
  3. হয় "ফাইল -> ড্রাইভে একটি অনুলিপি সংরক্ষণ করুন" নির্বাচন করুন বা এই নোটবুকের আপনার নিজস্ব অনুলিপি তৈরি করতে পৃষ্ঠার শীর্ষে "ড্রাইভে অনুলিপি করুন" এ ক্লিক করুন৷
  4. মূল কপি বন্ধ করুন (শুধু ভুল একটি কাজ এড়াতে!)।
  5. উপরের ডানদিকে সংযোগ বোতামে ক্লিক করে আপনাকে রানটাইমের সাথে সংযোগ করতে হবে। 2afdc8fa660a89bd.png
  6. নোটবুকের প্রতিটি ঘরের মাধ্যমে কাজ শুরু করুন।
  7. একটি সেল চালানোর জন্য, আপনি ঘরের বাম দিকে [] বা তীরটিতে ক্লিক করতে পারেন অথবা রানটাইম মেনু (বা এর শর্টকাট) থেকে রান নির্বাচন বিকল্পটি ব্যবহার করতে পারেন: dfec032ef6c31296.png
  8. আপনি যখন বর্তমান রানটাইম পুনরায় চালু করবেন, আপনি একটি বার্তা পাবেন আপনার সিস্টেম ক্র্যাশ হয়েছে৷ আতঙ্কিত হবেন না। এটাই স্বাভাবিক।
  9. আপনাকে আপনার নোটবুকের পরিবেশ প্রমাণীকরণ করতে হবে।
  10. আপনি কোডের ডানদিকের বাক্সে আপনার প্রোজেক্ট আইডি (নাম নয়) এবং অবস্থান (আপনি কোনো অবস্থান সেট না করলে us-central1 কাজ করে) লিখতে পারেন এবং Colab-কে আপনার জন্য কোডে সেগুলি ঢোকাতে বলুন।
  11. আপনি যখন "একটি চিত্র তৈরি করুন" এ যান তখন আপনার কাছে ইমেজেন কী করতে পারে তা দেখার সুযোগ থাকবে৷ আপনি পেতে পারেন বিভিন্ন ইমেজ দেখতে প্রম্পট পরিবর্তন এবং সেল পুনরায় চালান নির্দ্বিধায়.
  12. এই মুহুর্তে আপনার একটি ভাল ধারণা থাকা উচিত কিভাবে ইমেজেন একটি নোটবুক থেকে ছবি তৈরি করতে পারে। এখন বা সুবিধাজনক সময়ে ইমেজ প্যারামিটার সম্পর্কে আরও দেখতে এই নোটবুকটি সম্পূর্ণ করতে দ্বিধা বোধ করুন।

4. একটি ছবি দেখানোর জন্য একটি ওয়েব অ্যাপ্লিকেশন তৈরি করা শুরু করুন৷

আমরা আমাদের অ্যাপ তৈরি করতে ক্লাউড রানে ফ্লাস্ক ফ্রেমওয়ার্ক ব্যবহার করে পাইথন ব্যবহার করব।

পাইথন ফ্লাস্ক অ্যাপগুলি একটি ফোল্ডারে নিম্নরূপ সেট আপ করা হয়েছে:

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

টেমপ্লেট হল এইচটিএমএল ধারণকারী ফাইল, সাধারণত নামযুক্ত স্থানধারক সহ যেখানে প্রোগ্রাম তৈরি করা পাঠ্য সন্নিবেশ করবে। main.py হল ওয়েব সার্ভার অ্যাপ, এবং requirements.txt হল main.py ব্যবহার করা সমস্ত অ-মানক লাইব্রেরির একটি তালিকা।

অ্যাপ্লিকেশনটিতে দুটি পৃষ্ঠা থাকবে-প্রথমটি একটি প্রম্পট পেতে এবং দ্বিতীয়টি ছবিটি প্রদর্শন করতে এবং ব্যবহারকারীকে অন্য প্রম্পটে প্রবেশ করার অনুমতি দেয়৷

প্রথমে প্রজেক্ট ফ্রেমওয়ার্ক তৈরি করুন।

ফাইলের কাঠামো তৈরি করা হচ্ছে

এই কোডল্যাবটি অনুমান করে যে আপনার প্রকল্পটি imageapp ফোল্ডারে রয়েছে। আপনি যদি একটি ভিন্ন নাম ব্যবহার করেন, তাহলে যথাযথভাবে কমান্ড আপডেট করতে ভুলবেন না।

স্ক্রিনের উপরের ডানদিকে প্রম্পট আইকনটি নির্বাচন করে ক্লাউড শেল প্রবেশ করুন।

28135f700c5b12b0.png

আপনি শেল উইন্ডোর উপরের তীরটি ব্যবহার করে শেলটিকে একটি নতুন ট্যাবে নিয়ে গেলে আপনি কাজ করার জন্য আরও জায়গা পেতে পারেন:

310422ac131813e1.png

ক্লাউড শেল-এ আপনার হোম ডিরেক্টরি থেকে, imageapp ফোল্ডার তৈরি করুন, এতে পরিবর্তন করুন এবং templates ফোল্ডার তৈরি করুন। আপনি কমান্ড লাইন বা ক্লাউড শেল সম্পাদক থেকে এটি করতে পারেন।

টেমপ্লেট তৈরি করুন

অ্যাপ্লিকেশনটিতে দুটি পৃষ্ঠা থাকবে-প্রথমটি (যাকে আমরা home.html বলব) একটি প্রম্পট পেতে এবং দ্বিতীয়টি (যাকে আমরা display.html বলব) ছবিটি প্রদর্শন করতে এবং ব্যবহারকারীকে অন্য প্রম্পটে প্রবেশ করার অনুমতি দেয়৷

আপনার পছন্দের ক্লাউড শেল সম্পাদক বা লিনাক্স সম্পাদক ব্যবহার করে, দুটি টেমপ্লেট তৈরি করুন। 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 তৈরি করতে হবে। আপাতত, শুধু requirements.txt ফাইলে flask অন্তর্ভুক্ত করুন।

main.py ফাইলটিতে এমন কোড রয়েছে যা ওয়েব অনুরোধগুলি পরিবেশন করবে। শুধুমাত্র দুটি অনুরোধ আমাদের পরিচালনা করতে হবে: হোম পেজের জন্য একটি GET অনুরোধ এবং একটি POST অনুরোধ যা আমরা যে চিত্রটি তৈরি করতে চাই তার বর্ণনা করে ফর্মটি জমা দেয়৷

আপনার পছন্দের ক্লাউড শেল সম্পাদক বা লিনাক্স সম্পাদক ব্যবহার করে, imageapp ফোল্ডারে main.py ফাইলটি তৈরি করুন। আমরা নীচের কঙ্কাল দিয়ে শুরু করব:

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 তিনটি মন্তব্য আছে যেগুলোকে পাইথন কোড দিয়ে বের করতে হবে এবং সেটাই হবে।

আসুন সেই অনুপস্থিত অংশগুলি পূরণ করা শুরু করি। ফ্লাস্ক প্রম্পট পুনরুদ্ধার করা সহজ করে তোলে। নীচে দেখানো হিসাবে মন্তব্যের পরে একটি লাইন যোগ করুন:

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

আপনি যদি এখন অ্যাপটি পরীক্ষা করতে চান, তাহলে image_url (একটি বৈধ URL যা একটি চিত্রকে নির্দেশ করে) একটি মান দিতে display_imagereturn স্টেটমেন্টের আগে একটি লাইন যোগ করতে পারেন।

যেমন: image_url="<your url here>"

আপনি ক্লাউড শেল থেকে স্থানীয়ভাবে প্রোগ্রামটি চালাতে পারেন ( python main.py কমান্ডটি ব্যবহার করে) এবং আপনার স্ক্রিনের উপরের ডানদিকে পোর্ট 8080-এর পূর্বরূপ ব্যবহার করে এটির পূর্বরূপ দেখতে পারেন।

a80b4abd28cb7eed.png

প্রোগ্রামটি এখন, আপনি সর্বদা আপনার দেওয়া URL-এ ছবিটি দেখতে পাবেন। চলুন এগিয়ে যান এবং দেখুন কিভাবে অ্যাপ থেকে সেই মানটি পেতে হয়। image_url একটি স্ট্যাটিক মান প্রদানকারী লাইনটি মুছে ফেলতে ভুলবেন না।

6. ইমেজ তৈরি করা

Google ক্লাউডে Vertex AI-তে Generative 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 এ প্রেরিত প্যারামিটারের উপর নির্ভর করে একবারে 4টি পর্যন্ত ছবি তৈরি করা যেতে পারে, তাই প্রত্যাবর্তিত মানটি GeneratedImage এর একটি তালিকা হবে, এমনকি যদি শুধুমাত্র একটি ছবি ফেরত দেওয়া হয়, যেমন এই ক্ষেত্রে আছে।

এখন আমাদের একটি WWW পৃষ্ঠায় ছবিটি প্রদর্শন করতে হবে। GeneratedImage ইমেজ show একটি পদ্ধতি আছে, কিন্তু এটি শুধুমাত্র একটি নোটবুক পরিবেশে কাজ করে। কিন্তু ছবি সংরক্ষণ করার একটি পদ্ধতি আছে। আমরা ছবিটি সংরক্ষণ করব এবং টেমপ্লেট রেন্ডার করার সময় সংরক্ষিত ছবির URL পাঠাব।

এটি একটু কঠিন এবং এটি করার অনেক উপায় রয়েছে। আসুন ধাপে ধাপে একটি সহজ পদ্ধতির দিকে তাকাই। (এবং আপনি যদি একজন ভিজ্যুয়াল লার্নার হন তবে নীচের ধাপগুলির একটি ছবি রয়েছে৷)

প্রথমে আমাদের ছবিটি সংরক্ষণ করতে হবে। কিন্তু এর নাম কি হবে? একটি স্ট্যাটিক নাম ব্যবহার করতে সমস্যা হতে পারে যেহেতু প্রোগ্রামটি একই সময়ে অনেক লোক ব্যবহার করতে পারে। যদিও আমরা প্রতিটি ব্যবহারকারীর জন্য আলাদা ইমেজ নাম তৈরি করতে পারি (UUID এর মতো কিছু সহ), একটি সহজ উপায় হল পাইথনের tempfile লাইব্রেরি ব্যবহার করা যা একটি অনন্য নামের একটি অস্থায়ী ফাইল তৈরি করবে। নিচের কোডটি একটি টেম্পফাইল তৈরি করবে, এর নাম পাবে এবং টেম্পফাইলে ইমেজ জেনারেশন স্টেপের প্রতিক্রিয়া লিখবে। আমরা এখনও আমাদের কোডে এটি লিখব না, যেহেতু আমাদের প্রথমে একটি 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

সংরক্ষিত ফাইলটি প্রক্রিয়া করার জন্য অনেকগুলি উপায় রয়েছে, তবে সবচেয়ে সহজ এবং নিরাপদ হল একটি ডেটা URL ব্যবহার করা।

ডেটা URL গুলি প্রকৃত ডেটা URL-এ পাঠানোর অনুমতি দেয়, শুধুমাত্র এটির একটি পথ নয়৷ একটি ডেটা URL-এর সিনট্যাক্স হল:

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

ছবির বেস 64 এনকোডিং পেতে, আমাদের tempfile দ্বারা সংরক্ষিত ফাইলটি খুলতে হবে এবং এটি একটি ভেরিয়েবলে পড়তে হবে। হ্যাঁ, এটি একটি বড় স্ট্রিং হবে, তবে এটি আধুনিক ব্রাউজার এবং সার্ভারগুলির সাথে ঠিক হওয়া উচিত। তারপরে আমরা base64 লাইব্রেরিটি এনকোড করার জন্য ব্যবহার করব একটি স্ট্রিং যা আমরা ডেটা URL এ পাঠাতে পারি।

তৃতীয় ধাপ (URL তৈরি) করার জন্য আমাদের চূড়ান্ত কোডটি হবে:

# 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

ক্লাউড শেল থেকে আপনার প্রোগ্রাম চালানোর চেষ্টা করুন নিশ্চিত হয়ে আপনি main.py এর সাথে ফোল্ডারে আছেন এবং কমান্ডটি চালান:

python main.py

তারপরে আপনি আপনার স্ক্রিনের উপরের ডানদিকে পোর্ট 8080 এর পূর্বরূপ ব্যবহার করে এটির পূর্বরূপ দেখতে পারেন।

a80b4abd28cb7eed.png

7. একটি সাধারণ ত্রুটি

কিছু সময়ে, আপনি লক্ষ্য করতে পারেন যে প্রোগ্রামটি চালানোর সময় (হয় পরীক্ষা করার সময় বা আপনি এটি স্থাপন করার পরে), আপনি নিম্নলিখিত মত একটি বার্তা পাবেন:

2366c3bba6273517.png

এটি সম্ভবত একটি প্রম্পটের কারণে ঘটেছে যা Google এর দায়িত্বশীল AI অনুশীলনগুলি লঙ্ঘন করে৷ "রঙিন বলের সাথে খেলার বিড়ালছানা" এর মতো সহজ প্রম্পট এই সমস্যার কারণ হতে পারে। (তবে ভয় পাবেন না, আপনি "রঙিন খেলনা দিয়ে খেলা বিড়ালছানা" এর চিত্র পেতে পারেন ।)

এই ত্রুটিটি মোকাবেলা করার জন্য, আমরা ইমেজ তৈরি করার চেষ্টা করার সময় উত্থাপিত ব্যতিক্রমটি ধরার জন্য কোড যোগ করব। যদি একটি থাকে, আমরা home.html টেমপ্লেটটি আবার রেন্ডার করব, একটি বার্তা দেখানো হবে৷

প্রথমে, প্রথম ফর্মের পরে home.html টেমপ্লেটে একটি 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>

তারপর, display_image এ generate_images কোড কল করার সময় সম্ভাব্য ব্যতিক্রম ধরতে main.py এ কোড যোগ করুন। যদি একটি ব্যতিক্রম থাকে, কোডটি একটি বার্তা সহ 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)

এটি ইমেজেনের একমাত্র দায়ী এআই বৈশিষ্ট্য নয়। অনেকগুলি বৈশিষ্ট্য রয়েছে যা মানুষ এবং শিশুদের প্রজন্ম এবং চিত্রগুলিতে সাধারণ ফিল্টারগুলিকে রক্ষা করে৷ আপনি এখানে এই সম্পর্কে আরো দেখতে পারেন.

8. ওয়েবে অ্যাপটি স্থাপন করা হচ্ছে

আপনি ক্লাউড শেলের 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. ক্লিনিং আপ

পরিষেবাটি ব্যবহার না হলে ক্লাউড রান চার্জ না করলেও, আর্টিফ্যাক্ট রেজিস্ট্রিতে কন্টেইনার ইমেজ সংরক্ষণ করার জন্য আপনাকে চার্জ করা হতে পারে। চার্জ এড়াতে আপনি আপনার সংগ্রহস্থল মুছে ফেলতে পারেন বা আপনার ক্লাউড প্রকল্প মুছে ফেলতে পারেন। আপনার ক্লাউড প্রকল্প মুছে ফেলা সেই প্রকল্পের মধ্যে ব্যবহৃত সমস্ত সংস্থানের জন্য বিলিং বন্ধ করে দেয়।

আপনার ধারক চিত্র সংগ্রহস্থল মুছে ফেলতে:

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

আপনার ক্লাউড রান পরিষেবা মুছতে:

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

আপনার Google ক্লাউড প্রকল্প মুছে ফেলতে:

  1. আপনার বর্তমান প্রকল্প আইডি পুনরুদ্ধার করুন:
PROJECT_ID=$(gcloud config get-value core/project)
  1. নিশ্চিত করুন যে এই প্রকল্পটি আপনি মুছতে চান:
echo $PROJECT_ID
  1. প্রকল্প মুছুন:
gcloud projects delete $PROJECT_ID

10. অভিনন্দন

অভিনন্দন, আপনি সফলভাবে একটি ওয়েব অ্যাপ্লিকেশন তৈরি করেছেন যা ইমেজেন দ্বারা তৈরি ছবিগুলি প্রদর্শন করবে৷ কিভাবে আপনি আপনার আবেদন এটি ব্যবহার করতে পারেন?

এরপর কি?

এই কোডল্যাবগুলির কিছু পরীক্ষা করে দেখুন...

আরও পড়া