কম্পিউটার ভিশন সহজ করা হয়েছে: স্প্রিং বুট এবং জাভাতে ভিশন এআই

১. ভূমিকা

আজকের ডেটা-নির্ভর অ্যাপ্লিকেশনের যুগে, কম্পিউটার ভিশনের মতো উন্নত মেশিন লার্নিং এবং কৃত্রিম বুদ্ধিমত্তা পরিষেবাগুলোর ব্যবহার ক্রমশ গুরুত্বপূর্ণ হয়ে উঠেছে। এরকমই একটি পরিষেবা হলো ভিশন এপিআই (Vision API) , যা শক্তিশালী ইমেজ বিশ্লেষণের ক্ষমতা প্রদান করে। এই কোডল্যাবে, আপনি স্প্রিং বুট (Spring Boot) এবং জাভা (Java) ব্যবহার করে একটি কম্পিউটার ভিশন অ্যাপ্লিকেশন তৈরি করতে শিখবেন, যা আপনাকে আপনার প্রোজেক্টে ইমেজ শনাক্তকরণ এবং বিশ্লেষণের সম্ভাবনাকে কাজে লাগাতে সক্ষম করবে। অ্যাপ্লিকেশনটির ইউজার ইন্টারফেস (UI) ইনপুট হিসেবে লিখিত বা মুদ্রিত টেক্সটযুক্ত ছবিগুলোর পাবলিক ইউআরএল (URL) গ্রহণ করবে, সেই টেক্সটটি এক্সট্র্যাক্ট করবে, ভাষা শনাক্ত করবে এবং যদি এটি সমর্থিত ভাষাগুলোর মধ্যে একটি হয়, তবে সেই টেক্সটটির ইংরেজি অনুবাদ তৈরি করবে।

আপনি যা তৈরি করবেন

আপনি একটি তৈরি করবেন

  • ভিশন এপিআই এবং গুগল ক্লাউড ট্রান্সলেশন এপিআই ব্যবহার করার জন্য একটি জাভা স্প্রিং বুট অ্যাপ্লিকেশন।
  • ক্লাউড রানে স্থাপন করা হয়েছে

২. প্রয়োজনীয়তা

নিম্নে পূর্বশর্তগুলো উল্লেখ করা হলো:

আপনার প্রকল্প তৈরি করুন

  1. একটি প্রজেক্ট তৈরি করা এবং বিলিং চালু করা সহ একটি গুগল ক্লাউড অ্যাকাউন্ট।
  2. ভিশন এপিআই, ট্রান্সলেশন, ক্লাউড রান এবং আর্টিফ্যাক্ট রেজিস্ট্রি এপিআই সক্রিয় করা হয়েছে
  3. ক্লাউড শেল সক্রিয় করা হয়েছে
  4. ক্লাউড স্টোরেজ এপিআই সক্রিয় করা হয়েছে, একটি বাকেট তৈরি করা হয়েছে এবং স্থানীয় সমর্থিত ভাষায় লেখা বা হস্তাক্ষরসহ ছবি আপলোড করা হয়েছে (অথবা আপনি এই ব্লগে দেওয়া নমুনা ছবির লিঙ্কগুলি ব্যবহার করতে পারেন)।

গুগল ক্লাউড এপিআই সক্রিয় করার ধাপগুলো জানতে ডকুমেন্টেশন দেখুন।

ক্লাউড শেল সক্রিয় করুন

  1. আপনি ক্লাউড শেল ব্যবহার করবেন, যা গুগল ক্লাউডে চালিত একটি কমান্ড-লাইন পরিবেশ এবং এতে bq আগে থেকেই লোড করা থাকে।

ক্লাউড কনসোল থেকে, উপরের ডান কোণায় থাকা ‘Activate Cloud Shell’-এ ক্লিক করুন।

51622c00acec2fa.png

  1. ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকৃত এবং প্রজেক্টটি আপনার প্রজেক্ট আইডিতে সেট করা আছে। আপনি যে প্রমাণীকৃত, তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list
  1. gcloud কমান্ডটি আপনার প্রজেক্ট সম্পর্কে জানে কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
  1. আপনার প্রজেক্টটি সেট করা না থাকলে, এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <PROJECT_ID>

gcloud কমান্ড ও তার ব্যবহারবিধি জানতে ডকুমেন্টেশন দেখুন।

৩. একটি স্প্রিং বুট প্রজেক্ট বুটস্ট্র্যাপ করা

শুরু করার জন্য, আপনার পছন্দের IDE বা Spring Initializr ব্যবহার করে একটি নতুন Spring Boot প্রজেক্ট তৈরি করুন। আপনার প্রজেক্টের কনফিগারেশনে Spring Web, Spring Cloud GCP, এবং Vision AI-এর মতো প্রয়োজনীয় ডিপেন্ডেন্সিগুলো অন্তর্ভুক্ত করুন। বিকল্পভাবে, আপনি নিচের ধাপগুলো অনুসরণ করে Cloud Shell থেকে Spring Initializr ব্যবহার করে সহজেই আপনার Spring Boot অ্যাপ্লিকেশনটি বুটস্ট্র্যাপ করতে পারেন।

আপনার Spring Boot প্রজেক্ট তৈরি করতে নিম্নলিখিত কমান্ডটি চালান:

curl https://start.spring.io/starter.tgz -d packaging=jar -d dependencies=cloud-gcp,web,lombok -d baseDir=spring-vision -d type=maven-project -d bootVersion=3.0.1.RELEASE | tar -xzvf -

spring-vision হলো আপনার প্রজেক্টের নাম, আপনার প্রয়োজন অনুযায়ী এটি পরিবর্তন করুন।

bootVersion হলো Spring Boot-এর ভার্সন, ইমপ্লিমেন্টেশনের সময় প্রয়োজন হলে এটি আপডেট করে নিতে ভুলবেন না।

type হলো প্রজেক্ট বিল্ড টুলের ভার্সন, আপনি চাইলে এটি gradle-এ পরিবর্তন করতে পারেন।

37813d3982ce2e42.png

এটি 'spring-vision'-এর অধীনে নিম্নরূপ একটি প্রজেক্ট কাঠামো তৈরি করে:

3e70d45d88ac6935.png

pom.xml-এ প্রোজেক্টের সমস্ত ডিপেন্ডেন্সি থাকে (এই কমান্ড ব্যবহার করে আপনি যে ডিপেন্ডেন্সিগুলো কনফিগার করেছেন, সেগুলো আপনার pom.xml-এ আগে থেকেই যোগ করা আছে)।

src/main/java/com/example/demo-তে সোর্স ক্লাসগুলোর .java ফাইলগুলো রয়েছে।

রিসোর্সের মধ্যে রয়েছে প্রজেক্টে ব্যবহৃত ছবি, এক্সএমএল, টেক্সট ফাইল এবং স্ট্যাটিক কন্টেন্ট, যেগুলো স্বাধীনভাবে রক্ষণাবেক্ষণ করা হয়।

application.properties আপনাকে অ্যাপ্লিকেশনটির প্রোফাইল-নির্দিষ্ট বৈশিষ্ট্যগুলো নির্ধারণ করার জন্য অ্যাডমিন ফিচারগুলো রক্ষণাবেক্ষণ করতে সক্ষম করে।

৪. ভিশন এপিআই কনফিগার করা

একবার আপনি ভিশন এপিআই (Vision API) সক্রিয় করে নিলে, আপনার অ্যাপ্লিকেশনে এপিআই ক্রেডেনশিয়াল (API credentials) কনফিগার করার সুযোগ পাবেন। আপনি চাইলে অথেনটিকেশন সেট আপ করার জন্য অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল (Application Default Credentials) ব্যবহার করতে পারেন। তবে এই ডেমো বাস্তবায়নে আমি ক্রেডেনশিয়ালের ব্যবহার প্রয়োগ করিনি।

দৃষ্টিভঙ্গি বাস্তবায়ন এবং অনুবাদ পরিষেবা

একটি সার্ভিস ক্লাস তৈরি করুন যা ভিশন এপিআই (Vision API)-এর সাথে যোগাযোগ করে। প্রয়োজনীয় ডিপেন্ডেন্সিগুলো ইনজেক্ট করুন এবং ইমেজ অ্যানালাইসিস রিকোয়েস্ট পাঠানোর জন্য ভিশন এপিআই ক্লায়েন্ট ব্যবহার করুন। আপনার অ্যাপ্লিকেশনের প্রয়োজন অনুযায়ী, আপনি ইমেজ লেবেলিং, ফেস ডিটেকশন, রিকগনিশন এবং আরও অনেক কাজ করার জন্য মেথড ইমপ্লিমেন্ট করতে পারেন। এই ডেমোতে, আমরা হস্তাক্ষর নিষ্কাশন এবং অনুবাদ মেথড ব্যবহার করব।

এর জন্য pom.xml-এ নিম্নলিখিত ডিপেন্ডেন্সিগুলো অন্তর্ভুক্ত করা নিশ্চিত করুন।

<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-gcp-starter-vision</artifactId>
</dependency>
<dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-translate</artifactId>
</dependency>

রিপো থেকে নিম্নলিখিত ফাইলগুলি ক্লোন বা প্রতিস্থাপন করুন এবং প্রজেক্ট স্ট্রাকচারের সংশ্লিষ্ট ফোল্ডার / পাথে সেগুলি যুক্ত করুন:

  1. Application.java (/src/main/java/com/example/demo)
  2. TranslateText.java (/src/main/java/com/example/demo)
  3. VisionController.java (/src/main/java/com/example/demo)
  4. index.html (/src/main/resources/static)
  5. result.html (/src/main/resources/templates)
  6. pom.xml

org.springframework.cloud.gcp.vision.CloudVisionTemplate সার্ভিসের extractTextFromImage মেথডটি আপনাকে আপনার ইমেজ ইনপুট থেকে টেক্সট এক্সট্র্যাক্ট করতে দেয়। com.google.cloud.translate.v3 সার্ভিসের getTranslatedText মেথডটি আপনাকে আপনার ইমেজ থেকে এক্সট্র্যাক্ট করা টেক্সট পাস করতে এবং রেসপন্স হিসেবে কাঙ্ক্ষিত টার্গেট ল্যাঙ্গুয়েজে অনূদিত টেক্সট পেতে দেয় (যদি সোর্সটি সাপোর্টেড ল্যাঙ্গুয়েজের তালিকায় থাকে)।

REST API তৈরি করা

REST এন্ডপয়েন্টগুলো ডিজাইন ও ইমপ্লিমেন্ট করুন যা ভিশন এপিআই (Vision API)-এর কার্যকারিতাগুলো প্রকাশ করবে। এমন কন্ট্রোলার তৈরি করুন যা আগত অনুরোধগুলো পরিচালনা করবে এবং ছবিগুলো প্রসেস করে বিশ্লেষণের ফলাফল ফেরত দেওয়ার জন্য ভিশন এপিআই পরিষেবা ব্যবহার করবে। এই ডেমোতে, আমাদের VisionController ক্লাসটি এন্ডপয়েন্টটি ইমপ্লিমেন্ট করে, আগত অনুরোধ পরিচালনা করে, ভিশন এপিআই এবং ক্লাউড ট্রান্সলেশন পরিষেবাগুলোকে কল করে এবং ফলাফলটি ভিউ লেয়ারে ফেরত পাঠায়। REST এন্ডপয়েন্টের জন্য GET মেথডের ইমপ্লিমেন্টেশনটি নিম্নরূপ:

@GetMapping("/extractText")
  public String extractText(String imageUrl) throws IOException {
    String textFromImage =
   this.cloudVisionTemplate.extractTextFromImage(this.resourceLoader.getResource(imageUrl));


    TranslateText translateText = new TranslateText();
    String result = translateText.translateText(textFromImage);
    return "Text from image translated: " + result;
  }

উপরের ইমপ্লিমেন্টেশনে TranslateText ক্লাসে এমন একটি মেথড আছে যা ক্লাউড ট্রান্সলেশন সার্ভিসকে কল করে:

 String targetLanguage = "en";
 TranslateTextRequest request =
         TranslateTextRequest.newBuilder()
             .setParent(parent.toString())
             .setMimeType("text/plain")
             .setTargetLanguageCode(targetLanguage)
             .addContents(text)
             .build();
     TranslateTextResponse response = client.translateText(request);
     // Display the translation for each input text provided
     for (Translation translation : response.getTranslationsList()) {
       res = res + " ::: " + translation.getTranslatedText();
        System.out.printf("Translated text : %s\n", res);
     }

VisionController ক্লাসে আমরা REST-এর জন্য GET মেথডটি ইমপ্লিমেন্ট করেছি।

ফ্রন্টএন্ড ডেভেলপমেন্টের জন্য থাইমলিফকে একীভূত করা

Spring Boot ব্যবহার করে অ্যাপ্লিকেশন তৈরি করার সময়, ফ্রন্টএন্ড ডেভেলপমেন্টের জন্য একটি জনপ্রিয় উপায় হলো Thymeleaf-এর শক্তিকে কাজে লাগানো। Thymeleaf হলো একটি সার্ভার-সাইড জাভা টেমপ্লেট ইঞ্জিন যা আপনাকে আপনার HTML পেজগুলিতে নির্বিঘ্নে ডাইনামিক কন্টেন্ট যুক্ত করার সুযোগ দেয়। Thymeleaf এমবেডেড সার্ভার-সাইড এক্সপ্রেশন সহ HTML টেমপ্লেট তৈরি করার সুযোগ দিয়ে একটি মসৃণ ডেভেলপমেন্ট অভিজ্ঞতা প্রদান করে। এই এক্সপ্রেশনগুলি আপনার Spring Boot ব্যাকএন্ড থেকে ডেটা ডাইনামিকভাবে রেন্ডার করতে ব্যবহার করা যেতে পারে, যা Vision API পরিষেবা দ্বারা সম্পাদিত ইমেজ বিশ্লেষণের ফলাফল প্রদর্শন করা সহজ করে তোলে।

শুরু করার জন্য, নিশ্চিত করুন যে আপনার Spring Boot প্রজেক্টে Thymeleaf-এর জন্য প্রয়োজনীয় ডিপেন্ডেন্সিগুলো রয়েছে। আপনি আপনার pom.xml-এ Thymeleaf Starter ডিপেন্ডেন্সিটি অন্তর্ভুক্ত করতে পারেন:

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

আপনার কন্ট্রোলার মেথডে, ভিশন এপিআই সার্ভিস থেকে বিশ্লেষণের ফলাফলটি নিন এবং মডেলে যোগ করুন। মডেলটি সেই ডেটা উপস্থাপন করে যা থাইমলিফ এইচটিএমএল টেমপ্লেট রেন্ডার করার জন্য ব্যবহার করবে। মডেলটি ডেটা দিয়ে পূর্ণ হয়ে গেলে, আপনি যে থাইমলিফ টেমপ্লেটটি রেন্ডার করতে চান তার নামটি রিটার্ন করুন। থাইমলিফ টেমপ্লেটটি প্রসেস করা, সার্ভার-সাইড এক্সপ্রেশনগুলোকে আসল ডেটা দিয়ে প্রতিস্থাপন করা এবং ক্লায়েন্টের ব্রাউজারে পাঠানোর জন্য চূড়ান্ত এইচটিএমএল তৈরি করার দায়িত্ব নেবে।

VisionController এর extractText মেথডের ক্ষেত্রে, আমরা ফলাফলটি একটি String হিসেবে রিটার্ন করেছি এবং মডেলে যোগ করিনি। কিন্তু পেজ সাবমিট করার সময় আমরা index.html এর extractText মেথডটিকে কল করেছি। Thymeleaf-এর সাহায্যে আপনি একটি নির্বিঘ্ন ইউজার এক্সপেরিয়েন্স তৈরি করতে পারেন, যেখানে ব্যবহারকারীরা ছবি আপলোড করতে, Vision API অ্যানালাইসিস চালু করতে এবং রিয়েল-টাইমে ফলাফল দেখতে পারেন। ফ্রন্টএন্ড ডেভেলপমেন্টের জন্য Thymeleaf-এর শক্তিকে কাজে লাগিয়ে আপনার Vision AI অ্যাপ্লিকেশনের সম্পূর্ণ সম্ভাবনাকে উন্মোচন করুন।

<form action="/extractText">
        Web URL of image to analyze:
        <input type="text"
               name="imageUrl"
               value=""
        <input type="submit" value="Read and Translate" />
</form>

৫. ক্লাউড রান-এ আপনার কম্পিউটার ভিশন অ্যাপ স্থাপন করা

আপনার সার্ভিস এবং কন্ট্রোলার ক্লাসগুলোর সঠিক কার্যকারিতা নিশ্চিত করতে /src/test/java/com/example ফোল্ডারের অধীনে ইউনিট টেস্ট লিখুন। এর স্থিতিশীলতা সম্পর্কে নিশ্চিত হয়ে গেলে, এটিকে একটি ডেপ্লয়যোগ্য আর্টিফ্যাক্ট, যেমন একটি JAR ফাইলে, প্যাকেজ করুন এবং গুগল ক্লাউডের সার্ভারলেস কম্পিউট প্ল্যাটফর্ম ক্লাউড রান-এ ডেপ্লয় করুন। এই ধাপে, আমরা ক্লাউড রান ব্যবহার করে আপনার কন্টেইনারাইজড স্প্রিং বুট অ্যাপ্লিকেশনটি ডেপ্লয় করার উপর মনোযোগ দেব।

  1. ক্লাউড শেল থেকে নিম্নলিখিত ধাপগুলি অনুসরণ করে আপনার অ্যাপ্লিকেশনটি প্যাকেজ করুন (নিশ্চিত করুন যে টার্মিনালটি প্রজেক্ট রুট ফোল্ডারে রয়েছে)।

নির্মাণ করুন:

./mvnw package

বিল্ড সফল হলে, পরীক্ষা করার জন্য স্থানীয়ভাবে চালান:

./mvnw spring-boot:run
  1. Jib ব্যবহার করে আপনার Spring Boot অ্যাপ্লিকেশনকে কন্টেইনারাইজ করুন:

ম্যানুয়ালি Dockerfile তৈরি করে কন্টেইনার ইমেজ বিল্ড করার পরিবর্তে, আপনি কন্টেইনারাইজেশন প্রক্রিয়াকে সহজ করতে জিব (Jib ) ইউটিলিটি ব্যবহার করতে পারেন। জিব হলো একটি প্লাগইন যা আপনার বিল্ড টুলের (যেমন মেভেন বা গ্র্যাডল) সাথে সরাসরি যুক্ত হয় এবং আপনাকে Dockerfile না লিখেই অপটিমাইজড কন্টেইনার ইমেজ বিল্ড করার সুযোগ দেয়। কাজ শুরু করার আগে, আপনাকে আর্টিফ্যাক্ট রেজিস্ট্রি এপিআই (Artifact Registry API) সক্রিয় করতে হবে (কন্টেইনার রেজিস্ট্রির চেয়ে আর্টিফ্যাক্ট রেজিস্ট্রি ব্যবহার করা বেশি উৎসাহিত করা হয়)। এরপর, একটি ডকার ইমেজ বিল্ড করতে এবং রেজিস্ট্রি-তে প্রকাশ করতে জিব রান করুন।

$ ./mvnw com.google.cloud.tools:jib-maven-plugin:3.1.1:build -Dimage=gcr.io/$GOOGLE_CLOUD_PROJECT/vision-jib

দ্রষ্টব্য: এই পরীক্ষায় আমরা pom.xml-এ Jib Maven প্লাগইনটি কনফিগার করিনি, কিন্তু উন্নত ব্যবহারের জন্য আরও কনফিগারেশন অপশনসহ এটি pom.xml-এ যোগ করা সম্ভব।

  1. পূর্ববর্তী ধাপে আর্টিফ্যাক্ট রেজিস্ট্রি-তে পুশ করা কন্টেইনারটি ক্লাউড রান-এ ডিপ্লয় করুন। এটিও একটি মাত্র কমান্ডের ধাপ:
gcloud run deploy vision-app --image gcr.io/$GOOGLE_CLOUD_PROJECT/vision-jib --platform managed --region us-central1 --allow-unauthenticated --update-env-vars

বিকল্পভাবে আপনি UI থেকেও এটি করতে পারেন। Google Cloud Console-এ যান এবং Cloud Run সার্ভিসটি খুঁজুন। "Create Service"-এ ক্লিক করুন এবং স্ক্রিনে দেওয়া নির্দেশাবলী অনুসরণ করুন। আপনি পূর্বে রেজিস্ট্রি-তে যে কন্টেইনার ইমেজটি পুশ করেছিলেন তা নির্দিষ্ট করুন, প্রয়োজনীয় ডেপ্লয়মেন্ট সেটিংস (যেমন CPU অ্যালোকেশন এবং অটোস্কেলিং) কনফিগার করুন এবং ডেপ্লয়মেন্টের জন্য উপযুক্ত অঞ্চল বেছে নিন। আপনি আপনার অ্যাপ্লিকেশনের জন্য নির্দিষ্ট এনভায়রনমেন্ট ভেরিয়েবল সেট করতে পারেন। এই ভেরিয়েবলগুলোর মধ্যে অথেনটিকেশন ক্রেডেনশিয়াল (API কী ইত্যাদি), ডাটাবেস কানেকশন স্ট্রিং, অথবা আপনার Vision AI অ্যাপ্লিকেশনটি সঠিকভাবে কাজ করার জন্য প্রয়োজনীয় অন্য যেকোনো কনফিগারেশন অন্তর্ভুক্ত থাকতে পারে। ডেপ্লয়মেন্ট সফলভাবে সম্পন্ন হলে, আপনি আপনার অ্যাপ্লিকেশনের জন্য একটি এন্ডপয়েন্ট পেয়ে যাবেন।

আপনার ভিশন এআই অ্যাপ নিয়ে খেলা

ডেমো প্রদর্শনের জন্য, আপনার অ্যাপে পড়া ও অনুবাদ করার জন্য আপনি নিচের ছবির URL-টি ব্যবহার করতে পারেন: https://storage.googleapis.com/img_public_test/tamilwriting1.jfif

654c1b0de0db482.gif

৬. পরিষ্কার করুন

এই পোস্টে ব্যবহৃত রিসোর্সগুলোর জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে চার্জ হওয়া এড়াতে, এই ধাপগুলো অনুসরণ করুন:

  1. Google Cloud কনসোলে, রিসোর্স পরিচালনা (Manage resources) পৃষ্ঠায় যান।
  2. প্রজেক্ট তালিকা থেকে আপনি যে প্রজেক্টটি মুছতে চান সেটি নির্বাচন করুন এবং তারপর ডিলিট-এ ক্লিক করুন।
  3. ডায়ালগ বক্সে প্রজেক্ট আইডি টাইপ করুন, এবং তারপর প্রজেক্টটি ডিলিট করতে শাট ডাউন-এ ক্লিক করুন।

৭. অভিনন্দন

অভিনন্দন! আপনি Spring Boot এবং Java ব্যবহার করে সফলভাবে একটি Vision AI অ্যাপ্লিকেশন তৈরি করেছেন। Vision AI-এর শক্তিতে, আপনার অ্যাপ্লিকেশনটি এখন লেবেলিং, ফেস ডিটেকশন এবং আরও অনেক কিছু সহ অত্যাধুনিক ইমেজ বিশ্লেষণ করতে পারে। Spring Boot-এর সংযোজন স্কেলেবল এবং শক্তিশালী Google Cloud Native অ্যাপ্লিকেশন তৈরির জন্য একটি মজবুত ভিত্তি প্রদান করে। আপনার অ্যাপ্লিকেশনকে অতিরিক্ত ফিচার এবং কার্যকারিতা দিয়ে উন্নত করতে Vision AI, Cloud Run, Cloud Translation এবং আরও অনেক কিছুর বিশাল ক্ষমতা অন্বেষণ করতে থাকুন। আরও জানতে, Vision API , Cloud Translation , এবং GCP Spring ডক্স দেখুন। Spring Native বিকল্পটি দিয়েও একই পরীক্ষাটি করে দেখুন!! এছাড়াও, Gen-AI জগতের একটি ঝলক হিসেবে, Model Garden- এ এই API-টি কীভাবে প্রদর্শিত হয় তা দেখুন।