জেমিনি কোড অ্যাসিস্টের সাথে পরীক্ষার ভূমিকা

1. ভূমিকা

এই ল্যাবে, আপনি জেমিনি কোড অ্যাসিস্ট ব্যবহার করবেন, Google ক্লাউডে একটি AI-চালিত সহযোগী, একটি বিদ্যমান পাইথন ওয়েব অ্যাপ্লিকেশনে পরীক্ষা যোগ করতে এবং পরীক্ষার দ্বারা প্রকাশিত সেই অ্যাপ্লিকেশনটিতে ত্রুটিগুলি খুঁজে বের করতে এবং ঠিক করতে৷ তারপরে আপনি নতুন কার্যকারিতার জন্য পরীক্ষা তৈরি করতে কোড সহায়তা ব্যবহার করবেন এবং সেই পরীক্ষাগুলি পাস করতে এবং অ্যাপটি প্রসারিত করতে কোড তৈরি করবেন।

তুমি কি করবে...

  • আপনি একটি বিদ্যমান ওয়েব অ্যাপ্লিকেশনের জন্য কোড ডাউনলোড করতে ক্লাউড শেল সম্পাদক ব্যবহার করবেন।
  • আপনি Google ক্লাউড সম্পর্কে সাধারণ প্রশ্ন জিজ্ঞাসা করতে ক্লাউড শেল এডিটরে জেমিনি কোড অ্যাসিস্ট চ্যাট ব্যবহার করবেন।
  • আপনি ক্লাউড শেল এডিটরে জেমিনি কোড অ্যাসিস্ট ইনলাইন কোড সহায়তা ব্যবহার করবেন অ্যাপ্লিকেশনটির জন্য পরীক্ষা তৈরি করতে, পরীক্ষা চালাতে এবং ত্রুটিগুলি খুঁজে বের করতে এবং ঠিক করতে এবং তারপরে অ্যাপ্লিকেশনটির কার্যকারিতা প্রসারিত করতে।

যা শিখবেন...

  • টেস্ট জেনারেশন এবং কোড জেনারেশনের মতো বেশ কয়েকটি ডেভেলপার কাজের জন্য জেমিনি কোড অ্যাসিস্ট কীভাবে ব্যবহার করবেন।
  • গুগল ক্লাউড সম্পর্কে জানতে কীভাবে জেমিনি কোড অ্যাসিস্ট ব্যবহার করবেন।

আপনার যা লাগবে...

  • ক্রোম ওয়েব ব্রাউজার
  • একটি জিমেইল অ্যাকাউন্ট
  • বিলিং সক্ষম সহ একটি ক্লাউড প্রকল্প৷
  • আপনার ক্লাউড প্রজেক্টের জন্য জেমিনি কোড অ্যাসিস্ট সক্ষম করা হয়েছে

এই ল্যাবটি নতুনদের সহ সকল স্তরের বিকাশকারীদের লক্ষ্য করে। যদিও নমুনা অ্যাপ্লিকেশনটি পাইথন ভাষায়, তবে কী ঘটছে তা বোঝার জন্য আপনাকে পাইথন প্রোগ্রামিংয়ের সাথে পরিচিত হওয়ার দরকার নেই। আমাদের ফোকাস ডেভেলপারদের জন্য জেমিনি কোড অ্যাসিস্টের ক্ষমতার সাথে পরিচিত হওয়ার দিকে থাকবে।

2. সেটআপ

এই ল্যাবের জন্য ব্যবহার করার জন্য আপনার ইতিমধ্যেই একটি ক্লাউড প্রজেক্ট থাকা উচিত যাতে বিলিং সক্ষম থাকে৷ আমরা এখন আমাদের Google ক্লাউড প্রকল্পে Gemini API সক্ষম করব। নিচে দেওয়া ধাপগুলো অনুসরণ করুন:

  1. https://console.cloud.google.com- এ যান এবং নিশ্চিত করুন যে আপনি Google ক্লাউড প্রকল্পটি নির্বাচন করেছেন যেটির সাথে আপনি এই ল্যাবের জন্য কাজ করার পরিকল্পনা করছেন৷ মিথুন আইকনে ক্লিক করুন যা আপনি উপরের ডানদিকে দেখতে পাচ্ছেন।

GeminiBanner.png

  1. ক্লাউড কনসোলের জন্য জেমিনি উইন্ডোটি কনসোলের ডানদিকে খুলবে। নিচে দেখানো হলে Enable বাটনে ক্লিক করুন। আপনি যদি সক্ষম বোতামটি দেখতে না পান এবং পরিবর্তে একটি চ্যাট ইন্টারফেস দেখতে পান, আপনি ইতিমধ্যে প্রকল্পের জন্য ক্লাউডের জন্য জেমিনি সক্ষম করেছেন এবং আপনি সরাসরি পরবর্তী ধাপে যেতে পারেন।

GeminiApiEnable.png

  1. একবার এটি সক্ষম হয়ে গেলে, আপনি মিথুনকে একটি বা দুটি প্রশ্ন জিজ্ঞাসা করে পরীক্ষা করতে পারেন। কয়েকটি নমুনা প্রশ্ন দেখানো হয়েছে কিন্তু আপনি ক্লাউড রান কিসের মত কিছু চেষ্টা করতে পারেন?

GeminiChatWindow.png

কোড সহায়তা আপনার প্রশ্নের উত্তর সহ উত্তর দেবে। আপনি ক্লিক করতে পারেন f68286b2b2ea5c0a.png কোড অ্যাসিস্ট চ্যাট উইন্ডো বন্ধ করতে উপরের ডানদিকের কোণায় আইকন।

ক্লাউড শেল এডিটরে জেমিনি সক্ষম করুন

জেমিনি কোড অ্যাসিস্ট উপলব্ধ এবং বেশ কিছু জনপ্রিয় IDE-তে একই রকম আচরণ করে। আপনি এই কোডল্যাবে Google ক্লাউড শেল এডিটর ব্যবহার করবেন, যা সম্পূর্ণরূপে আপনার ওয়েব ব্রাউজারে চলে। আপনাকে ক্লাউড শেল এডিটরে জেমিনিকে সক্ষম এবং কনফিগার করতে হবে এবং পদক্ষেপগুলি নীচে দেওয়া হয়েছে:

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

72dc3df7b007fcde.png

  1. এডিটর বা ওপেন এডিটর বোতামে ক্লিক করুন (যেমনটি হতে পারে) এবং ক্লাউড শেল এডিটর প্রদর্শিত হওয়া পর্যন্ত অপেক্ষা করুন। আপনি যদি নতুন এডিটর বোতামটি দেখতে পান তবে সেটিতে ক্লিক করুন।

CloudShellEditor.png

  1. ক্লাউড কোডে ক্লিক করুন - দেখানো হিসাবে নীচের স্ট্যাটাস বারে সাইন ইন বোতাম। নির্দেশিত হিসাবে প্লাগইন অনুমোদন করুন. আপনি যদি স্ট্যাটাস বারে "ক্লাউড কোড - কোনও প্রকল্প নেই" দেখতে পান, তাহলে সেটি নির্বাচন করুন এবং তারপরে আপনি যে প্রকল্পগুলির সাথে কাজ করার পরিকল্পনা করছেন তার তালিকা থেকে নির্দিষ্ট Google ক্লাউড প্রকল্পটি নির্বাচন করুন৷

CloudCodeSignIn.png

  1. আপনি যদি ডান নীচে স্ট্যাটাস বারে জেমিনি আইকনটি দেখতে না পান তবে আপনাকে এটি ক্লাউড কোডে সক্ষম করতে হবে। আপনি এটি করার আগে নিশ্চিত করুন যে ক্লাউড কোড এক্সটেনশন → সেটিংসে গিয়ে IDE-তে Gemini (আগে ডেভেলপারদের জন্য ডুয়েট এআই নামে পরিচিত) সক্ষম করা হয়েছে এবং তারপরে ডুয়েট এআই: নীচে দেখানো হিসাবে সক্রিয় করুন । চেকবক্স নির্বাচন করা হয়েছে তা নিশ্চিত করুন। আপনি আপনার IDE পুনরায় লোড করা উচিত. এটি ক্লাউড কোডে জেমিনিকে সক্ষম করে এবং আপনার IDE-তে জেমিনি স্ট্যাটাস বার প্রদর্শিত হবে।

EnableDuetAiSetting.png

  1. দেখানো হিসাবে নীচের ডানদিকের কোণায় জেমিনি বোতামে ক্লিক করুন এবং সঠিক Google ক্লাউড প্রকল্পটি নির্বাচন করুন যার জন্য আমরা Cloud AI Companion API সক্ষম করেছি৷

GeminiSelectGoogleCloudProject.png

  1. একবার আপনি আপনার Google ক্লাউড প্রজেক্টটি নির্বাচন করলে, নিশ্চিত করুন যে আপনি স্ট্যাটাস বারে ক্লাউড কোড স্ট্যাটাস বার্তায় দেখতে পাচ্ছেন এবং নীচের মতো স্ট্যাটাস বারে আপনি ডানদিকে মিথুন সক্রিয় করেছেন:

GeminiEnabledStatusBar.png

জেমিনি কোড অ্যাসিস্ট ব্যবহার করার জন্য প্রস্তুত!

3. অ্যাপ্লিকেশনটি ডাউনলোড করুন এবং পরীক্ষা করুন

টার্মিনাল উইন্ডোতে, প্রারম্ভিক কোড সহ সংগ্রহস্থল ক্লোন করতে কমান্ডটি চালান এবং তারপরে নতুন ডিরেক্টরিতে পরিবর্তন করুন (যদি টার্মিনাল উইন্ডোটি আর খোলা না থাকে তবে এটি পুনরুদ্ধার করতে টার্মিনাল বা খুলুন টার্মিনাল বোতামে ক্লিক করুন):

git clone https://github.com/GoogleCloudPlatform/testing-with-duet-ai-codelab.git
cd testing-with-duet-ai-codelab

এডিটরে main.py খুলুন, তারপর এডিটরের বাম দিকে জেমিনি চ্যাট আইকনে ক্লিক করে জেমিনি চ্যাট উইন্ডো খুলুন। এই মিথুন চ্যাট উইন্ডোটি IDE-এর মধ্যে রয়েছে এবং IDE-তে কোডটি আলোচনার জন্য প্রসঙ্গ হিসাবে উপলব্ধ রয়েছে৷ প্রম্পট লিখুন এটি ব্যাখ্যা করুন এবং উত্তরটি দেখুন:

GeminiChatExplainThis.png

পুরো উত্তর দেখতে আপনি এই চ্যাট উইন্ডোটি স্ক্রোল করতে পারেন। ব্যাখ্যায় বলা হয়েছে যে আমরা টার্মিনাল উইন্ডোতে python3 main.py কমান্ড দিয়ে স্থানীয়ভাবে এই প্রোগ্রামটি চালাতে পারি।

4. স্থানীয়ভাবে চালান

প্রয়োজনে cd ~/testing-with-duet-ai-codelab সাহায্যে রিপোজিটরি ডিরেক্টরিতে পরিবর্তন করুন এবং টার্মিনাল উইন্ডোতে python3 main.py কমান্ডটি লিখুন:

3bf558e9cea15375.png

অ্যাপ্লিকেশনটির হোম পেজে একটি নতুন ব্রাউজার ট্যাব খুলতে http://127.0.0.1:8080 লিঙ্কটিতে ক্লিক করুন:

fb06f382a4c03e4c.png

অ্যাপ্লিকেশনটি "স্থানীয়ভাবে" চলছে। আসলে, ক্লাউড শেল এডিটর এখানে কিছুটা জাদু করেছে। অ্যাপ্লিকেশনটি ক্লাউড শেলে চলছে, আপনার নিজের কম্পিউটারে নয়। আপনি যখন লিঙ্কটিতে ক্লিক করেন, তখন এটি একটি ট্যাব খোলে যা প্রকৃত স্থানীয় ঠিকানা http://127.0.0.1:8080-এ নয়, ক্লাউড শেল দ্বারা এই উদ্দেশ্যে সেট আপ করা একটি প্রক্সি সার্ভারে। প্রভাবটি একই রকম যদি আপনি সত্যিই এটি স্থানীয়ভাবে চালাচ্ছেন।

চেষ্টা করে দেখুন। 25 লিখুন এবং কনভার্ট টিপুন!

e1b9d5832f6d0058.png

এটা ঠিক, রোমান সংখ্যায় 25 হল XXV! আপনি এখানে সম্পন্ন করা আবশ্যক.

হয়তো আরো কয়েকটি সংখ্যা চেক করুন। 25টি কাজ করেছে, 24টি কি?

37982e385e17baac.png

সম্ভবত আমরা সবকিছু ঠিক আছে ভেবে একটু তাড়াহুড়ো করেছিলাম। XXIIII কি 24 এর জন্য সঠিক রূপান্তর? এটা কি XXIV হওয়া উচিত নয়?

একটি কেস তৈরি করা যেতে পারে যে XXIIII সঠিক, কিন্তু এটি আসলে মানুষ সাধারণত যা আশা করে তা নয়। যেহেতু এটি আসলেই ভুল নয় (উল্লেখ্য যে অনেক ঘড়ি রোমান সংখ্যা IIII হিসাবে 4 দেখায়) ভবিষ্যতের উন্নতির জন্য সেই সমস্যাটি ছেড়ে দিন।

কিভাবে নেতিবাচক সংখ্যা চেষ্টা সম্পর্কে? শূন্য? রোমান সংখ্যায় সেই সংখ্যাগুলিকে উপস্থাপন করার কোন উপায় নেই। ব্যবহারকারীর কাছে কিছু ফিরে আসছে বলে মনে হচ্ছে না, যা একটি ত্রুটির সমাধান করা প্রয়োজন বলে মনে হচ্ছে।

পরীক্ষা ত্রুটিগুলি খুঁজে পেতে এবং দূর করতে সাহায্য করতে পারে এবং জেমিনি কোড অ্যাসিস্ট আমাদের পরীক্ষা লিখতে এবং ব্যবহার করতে সাহায্য করতে পারে।

5. টেস্ট যোগ করা

মিথুন চ্যাট উইন্ডোতে ফিরে যান এবং জিজ্ঞাসা করুন

How can I test the number_to_roman function?

প্রতিক্রিয়াটি পড়ুন, যার মধ্যে ইউনিটটেস্ট মডিউল এবং পাইটেস্ট মডিউল নিয়ে আলোচনা করা উচিত।

আপনি হয়তো আপনার জন্য এই পরীক্ষাগুলি লিখতে জেমিনি কোড সহায়তা পেতে পছন্দ করতে পারেন। calendar.py খুলুন, যেখানে প্রকৃত রূপান্তর কোড রয়েছে, সম্পাদকে, জেমিনি চ্যাট উইন্ডোতে ফিরে যান এবং আবার জিজ্ঞাসা করুন

How can I test the number_to_roman function?

প্রতিক্রিয়া এখন আরও নির্দিষ্ট, এমনকি একটি ইউনিটটেস্ট মডিউল সহ আপনি একটি নতুন ফাইলে অনুলিপি বা ইনজেক্ট করতে পারেন:

import unittest
import calendar

class NumberToRomanTest(unittest.TestCase):

    def test_convert_1(self):
        self.assertEqual(calendar.number_to_roman(1), "I")

    def test_convert_4(self):
        self.assertEqual(calendar.number_to_roman(4), "IV")

    def test_convert_9(self):
        self.assertEqual(calendar.number_to_roman(9), "IX")

    def test_convert_40(self):
        self.assertEqual(calendar.number_to_roman(40), "XL")

    def test_convert_90(self):
        self.assertEqual(calendar.number_to_roman(90), "XC")

    def test_convert_400(self):
        self.assertEqual(calendar.number_to_roman(400), "CD")

    def test_convert_900(self):
        self.assertEqual(calendar.number_to_roman(900), "CM")

    def test_convert_1990(self):
        self.assertEqual(calendar.number_to_roman(1990), "MCMXC")

    def test_convert_2023(self):
        self.assertEqual(calendar.number_to_roman(2023), "MMXXIII")

আপনি উপরের উদাহরণ থেকে ভিন্ন কোড দেখতে পারেন. জেমিনি কোড অ্যাসিস্টের অন্তর্নিহিত মডেলগুলি সময়ে সময়ে আপডেট করা হয়, তাই উত্তরগুলি সর্বদা এক হবে না। আপনি যদি কোডের একটি ভিন্ন সেট দেখতে পান, তাহলে আপনি এখন এখানে দেখানো কোডটি অনুলিপি করে এই কোডল্যাবে দেখানো নমুনাগুলি চালিয়ে যেতে চান কিনা তা বেছে নিতে পারেন, অথবা আপনি বিকল্প উত্তর চেষ্টা করে দেখতে পারেন যা মিথুন কোড অ্যাসিস্ট এখন আপনাকে দিচ্ছে৷ আপনার যদি সময় থাকে তবে আপনি উভয় পথই চেষ্টা করতে পারেন। জেমিনি কোড অ্যাসিস্ট হল একটি কোডিং অ্যাসিস্ট্যান্ট যাতে আপনি উপযুক্ত মনে করেন।

ইউনিট টেস্ট কোড সহ একটি নতুন ফাইল তৈরি করতে হয় জেমিনি চ্যাট উইন্ডোর উপরের ডানদিকে কোণায় ডবল পয়েন্টেড তীরটিতে ক্লিক করুন, অথবা একটি নতুন ফাইল তৈরি করতে IDE ব্যবহার করুন এবং এই ল্যাবে দেখানো কোডটি পেস্ট করুন৷ এটি সংরক্ষণ করতে সেই উইন্ডোতে CTRL-S বা CMD-S টিপুন এবং সংরক্ষিত ফাইলটি calendar-unittest.py কল করুন৷

টার্মিনালে ফিরে যান এবং CTRL-C টিপুন যাতে আপনি আগে চালানো ওয়েব সার্ভারটি বন্ধ করে দিয়েছিলেন এবং একটি শেল প্রম্পট পান। কমান্ড লিখুন

python3 calendar-unittest.py

নতুন পরীক্ষা চালানোর জন্য।

কোন আউটপুট নেই. যা প্রত্যাশিত ছিল তা নয়। সবকিছু কি নিঃশব্দে কেটে গেল? আপনি নিশ্চিতভাবে জানতে চান. জেমিনি কোড অ্যাসিস্ট থেকে উত্তরটি দেখুন যাতে পরীক্ষার কোড অন্তর্ভুক্ত ছিল। কোডের নিচে টেস্ট কেস চালানোর বিষয়ে আরও তথ্য ছিল:

run-unittest.png

প্রস্তাবিত কমান্ড চালানোর চেষ্টা করুন:

python -m unittest discover

আপনার একটি সমস্যা হতে পারে যদি আপনার মেশিনটি python কে python3 কমান্ড না দেয়, যে ক্ষেত্রে রান করুন:

python3 -m unittest discover

কমান্ডটি চলে, কিন্তু এটি Ran 0 tests in 0.000s প্রদান করে। মডিউলটিতে বেশ কয়েকটি পরীক্ষা রয়েছে। কি হচ্ছে?

এটি কমান্ডের শেষ শব্দ, discover । এটা কোথা থেকে এসেছে? স্পষ্টতই, জেমিনি কোড অ্যাসিস্ট পরীক্ষা কোডটি discover বা discover.py নামের একটি ফাইলে সংরক্ষিত হবে বলে আশা করেছিল, কিন্তু আপনাকে যা করতে হবে তা নির্দিষ্ট করেনি৷ যেহেতু আপনি calendar-unittest.py এ ফাইলটি সংরক্ষণ করেছেন, তাই কমান্ডটি চালানোর চেষ্টা করুন:

python3 -m unittest calendar-unittest

এখন আপনি এইরকম কিছু দিয়ে শুরু করে অনেক আউটপুট দেখতে পাচ্ছেন:

$ python3 -m unittest calendar-unittest
.F.FFFFFF
======================================================================
FAIL: test_convert_1990 (calendar-unittest.NumberToRomanTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/charles_engelke/testing-with-duet-ai-codelab/calendar-unittest.py", line 28, in test_convert_1990
    self.assertEqual(calendar.number_to_roman(1990), "MCMXC")
AssertionError: 'MDCCCCLXXXX' != 'MCMXC'
- MDCCCCLXXXX
+ MCMXC

প্রথম লাইনটি প্রতিটি উত্তীর্ণ পরীক্ষার জন্য একটি সময়কাল দেখায়, এবং প্রতিটি ব্যর্থতার জন্য একটি F বেশির ভাগ পরীক্ষায় ফেল করছে! তারপরে এটি প্রত্যাশিত আউটপুট এবং প্রকৃত আউটপুট দেখিয়ে ব্যর্থ পরীক্ষাগুলি পৃথকভাবে তালিকাভুক্ত করে। এই পরীক্ষাগুলি কোন ক্রমে চালানো হয়েছিল তা কিছুটা অস্পষ্ট। এটি পরীক্ষার নামের দ্বারা বর্ণানুক্রমিক ক্রমানুসারে ছিল, পরীক্ষাগুলি ফাইলে প্রদর্শিত ক্রম অনুসারে নয়। তাই test_convert_1 প্রথমে দৌড়েছে, তারপর test_convert_1990 , তারপর test_convert_2023 , এবং আরও অনেক কিছু। 1 এবং 2023 এর পরীক্ষার ক্ষেত্রে শুধুমাত্র পাস করা হয়েছে।

আপনি যখন প্রথম এই কোডটি চেষ্টা করেছিলেন তখন আপনি লক্ষ্য করেছিলেন যে এটি 24 থেকে XXIIII তে রূপান্তরিত হয়েছে, যা ঠিক ভুল ছিল না, তবে সাধারণ ফর্ম নয় যেখানে IIII IV তে রূপান্তরিত হয়। সমস্ত ব্যর্থ পরীক্ষা অনুরূপ ক্ষেত্রে ছিল. যখন এই সমস্যাটি প্রথম উল্লেখ করা হয়েছিল, তখন ল্যাবটি বলেছিল, "যেহেতু এটি আসলে ভুল নয় (উল্লেখ্য যে অনেক ঘড়ি 4 রোমান সংখ্যা IIII হিসাবে দেখায়) ভবিষ্যতের উন্নতির জন্য সেই সমস্যাটি ছেড়ে দেয়।"

কোডটি দেওয়া "সত্যিই ভুল নয়" উত্তরগুলি আশা করতে এবং গ্রহণ করার জন্য আপনি পরীক্ষার ক্ষেত্রে পরিবর্তন করতে পারেন, বা স্বীকার করতে পারেন যে এটি "ভবিষ্যত বর্ধনের" সময়। তাই আপনার পরবর্তী ধাপ হল জেমিনি কোড অ্যাসিস্টের সাহায্যে কোডটি ঠিক করা, যাতে পরীক্ষাগুলি আশা করে এমন আরও গ্রহণযোগ্য উত্তর দিতে পারে৷

6. কোড উন্নত করা

স্মরণ করুন যে 24 এর জন্য XXIIII এর মতো প্রতিক্রিয়াগুলি, আরও সাধারণ XXIV এর পরিবর্তে, "সত্যিই ভুল নয়" বলে মনে করা হয়েছিল এবং ভবিষ্যতের উন্নতির জন্য স্থগিত করা হয়েছিল। সেই ভবিষ্যৎ এখন। এই "সত্যিই ভুল নয়" উত্তরগুলি এখনও বিরক্তিকর।

রোমান সংখ্যায় বারবার অঙ্কের জন্য প্রথম নিয়ম হল: যে কোনো সময় আপনার কাছে পরপর চারটি অভিন্ন অঙ্ক থাকে, সেগুলিকে পরবর্তী উচ্চতর অঙ্ক দ্বারা অনুসরণ করা একটি সংখ্যা দ্বারা প্রতিস্থাপিত করা উচিত। তাই XXIIII XXIV দ্বারা প্রতিস্থাপিত করা উচিত। একইভাবে XXXX XL এ পরিবর্তন করা উচিত এবং CCCC CD হওয়া উচিত।

Gemini Code Assist কে জিজ্ঞাসা করুন কিভাবে রোমান ভেরিয়েবলের মান এইভাবে পরিবর্তন করতে হয় তার ঠিক আগে এটি number_to_roman দ্বারা ফেরত আসে:

If the final value of roman has IIII in it, that should be replaced by IV. Similarly XXXX should be replaced by XL, and CCCC should become CD. How can I make those changes?

পরামর্শ হল শেষে কিছু কোড যোগ করা:

6437c3fa2c5fabd1.png

সম্পাদকে সেই লাইনগুলি অনুলিপি/পেস্ট করুন বা টাইপ করুন এবং তারপরে দেখুন কী হয়:

dcefa568cab82fb7.png

প্রতিস্থাপনের প্রথম সেট তৈরি করার পরে আপনি যে মামলাগুলি শেষ করতে পারেন সেগুলি পরিচালনা করতে জেমিনি কোড অ্যাসিস্ট আরও লাইন যুক্ত করেছে৷ উদাহরণস্বরূপ, 19 XVIIII-এ, তারপর XVIV-এ এবং অবশেষে সঠিক XIX-এ রূপান্তরিত হবে।

যদি জেমিনি কোড অ্যাসিস্ট আপাতদৃষ্টিতে দরকারী পরামর্শ দেয়, তাহলে সুপারিশগুলি গ্রহণ করতে, ফাইলটি সংরক্ষণ করতে এবং আবার ওয়েব সার্ভার চালাতে ট্যাব টিপুন৷ অন্যথায়, এখানে উদাহরণে দেখানো লাইনগুলি ম্যানুয়ালি যোগ করুন এবং ফাইলটি সংরক্ষণ করুন। একটি কঠিন রূপান্তর চেষ্টা করুন: 1999:

a206999587fdc9.png

এটা সঠিক!

এখন পরীক্ষা পুনরায় চালান. তারা সবাই পাস!

ওয়েব অ্যাপ্লিকেশনটি উৎপাদনের জন্য প্রস্তুত বলে মনে হচ্ছে।

7. ক্লাউড রানে স্থাপন করুন

ক্লাউড রান আপনার জন্য ইন্টারনেটে একটি কন্টেইনারাইজড অ্যাপ্লিকেশন চালাবে। ফ্ল্যাশের মতো সাধারণ ফ্রেমওয়ার্ক ব্যবহার করে লেখা অ্যাপ্লিকেশনগুলির জন্য, gcloud run deploy কমান্ড এমনকি এটি স্থাপন করার আগে আপনার জন্য সেই ধারকটি তৈরি করবে। কমান্ড চালান:

gcloud run deploy

টার্মিনালে। সোর্স কোডের অবস্থান জিজ্ঞাসা করা হলে, এটি প্রস্তাবিত সঠিক অবস্থানটি গ্রহণ করতে এন্টার টিপুন। একইভাবে, যখন একটি পরিষেবার নাম জিজ্ঞাসা করা হয়, পরামর্শটি গ্রহণ করতে এন্টার টিপুন।

কমান্ডটি ব্যর্থ হতে পারে কারণ gcloud কোন প্রকল্পটি ব্যবহার করবে তা নির্ধারণ করতে পারে না। সেই ক্ষেত্রে, কমান্ডটি চালান:

gcloud config set core/project <project-id>

যেখানে আপনার প্রকল্পের আইডি দ্বারা প্রতিস্থাপিত হয়, যা এর নামের মতোই হতে পারে। তারপর gcloud run deploy কমান্ড পুনরায় চালু করুন।

  • কমান্ড আপনাকে অনুরোধ করবে যে নির্দিষ্ট API গুলি প্রয়োজন এবং এখনও সক্ষম নয়। এগুলি আপনার জন্য সক্ষম করতে y লিখুন।
  • একটি অঞ্চল নির্বাচন করতে বলা হলে, আপনার জন্য সুবিধাজনক একটি বেছে নিন। us-central1 এর সাথে সম্পর্কিত নম্বরটি প্রবেশ করানো একটি নিরাপদ পছন্দ।
  • জিজ্ঞাসা করা হলে, চালিয়ে যেতে Y লিখুন।
  • আপনি এই ক্লাউড রান পরিষেবার অপ্রমাণিত আহ্বানের অনুমতি দিতে চাইবেন৷ ক্লাউড রান দ্বারা ব্যবহৃত প্রমাণীকরণ বিকল্পটি পরিষেবাতে কল করা প্রোগ্রামগুলির ব্যবহারের জন্য উপযুক্ত। যেহেতু এটি একটি ওয়েবসাইট, আপনি প্রমাণীকরণ ব্যবহার করবেন না।

Google ক্লাউড ধারকটি তৈরি করবে, এটি স্থাপন করবে, এতে ট্র্যাফিক রুট করবে এবং অ্যাক্সেস নীতিগুলি সেট করবে এবং তারপরে আপনাকে হোম পেজের লিঙ্কটি দেখাবে:

94ba7d8d63a44afd.png

আপনি সেই লিঙ্কে যেতে পারেন এবং আপনার অ্যাপ্লিকেশন অ্যাক্সেস করতে পারেন।

a2e51666dfd33a9f.png

একটি নম্বর লিখুন এবং এন্টার টিপুন, এবং তাডা!

5021535ac991a95c.png

কি!?!

এটা আপনার মেশিনে কাজ! কেন এই শেষ হয় না?

খুঁজে বের করুন। মিথুন কোড সহায়তা জিজ্ঞাসা করুন,

Why am I getting an internal server error on cloud run?

4b24321251d6eddf.png

স্পষ্টতই, জেমিনি কোড অ্যাসিস্ট লগ ফাইলটি পড়তে পারে, যা অনুরূপ কিছু বলে। আসুন জেনেনি কোড অ্যাসিস্টকে জিজ্ঞাসা করি কিভাবে আপনি নিজে লগগুলি দেখতে পারেন:

92d1855be73ef1d.png

এগিয়ে যান এবং যে করতে. লাল দিয়ে রেখা দেখুন!! ত্রুটির সূচক, নিম্নরূপ:

9bed4f9ed82de21c.png

এটি এখানে পাওয়ার কল স্ট্যাকের বিস্তারিত অনেক লাইন দ্বারা অনুসরণ করা হয়, কিন্তু তারপর এটি আছে:

47fc93be845f4e3f.png

আপনি যখন আপনার calendar.py ফাইলটি দেখেন, আপনি সেখানে ফাংশন number_to_roman দেখতে পান! এবং আপনি জানেন এটি সঠিক কারণ এটি আপনার মেশিনে কাজ করেছে। ক্লাউড রানে কি ভিন্ন হতে পারে?

উত্তরটি জটিল। Python3 এর সাথে ক্যালেন্ডার নামে একটি স্ট্যান্ডার্ড মডিউল অন্তর্ভুক্ত রয়েছে, যেমন calendar.py ফাইলটিতে number_to_roman ফাংশনটি সংজ্ঞায়িত করা হয়েছে। আপনার স্থানীয় মেশিনে, যখন পাইথন ক্যালেন্ডার নামক একটি মডিউলের সন্ধান করে, এটি প্রথমে আপনার অ্যাপ্লিকেশন ডিরেক্টরি অনুসন্ধান করে। স্পষ্টতই, ক্লাউড রানে পাইথন প্রথমে স্ট্যান্ডার্ড মডিউলগুলি সন্ধান করেছে, এটি আমদানি করেছে এবং একটি নম্বর_টু_রোমান ফাংশন খুঁজে পায়নি।

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

এই সমস্যাটি ঠিক করুন। আপনাকে আপনার স্থানীয় ক্যালেন্ডার মডিউলের নাম এমন কিছুতে পরিবর্তন করতে হবে যা একটি আদর্শ মডিউলের নামও নয়। calendar.py ফাইলটিকে my_calendar.py- এ পুনঃনামকরণ করুন, তারপর import my_calendar main.py এবং calendar-unittest.py-import calendar লাইন পরিবর্তন করুন। অবশেষে, লাইন পরিবর্তন করুন

roman = calendar.number_to_roman(number)

থেকে

roman = my_calendar.number_to_roman(number)

স্থানীয়ভাবে এটি ব্যবহার করে দেখুন, পরীক্ষা চালান এবং তারপর পুনরায় স্থাপন করুন:

gcloud run deploy

এবং এখন এটি কাজ করে:

ed288801c6825eb1.png

আপনি এই ইউআরএলটি শেয়ার করতে পারেন, এবং প্রত্যেকে যাদের একটি রোমান সংখ্যা রূপান্তর সরঞ্জাম প্রয়োজন তারা আপনার ব্যবহার করতে পারে।

8. ঐচ্ছিক: এটিকে আরও সুন্দর দেখান

আপনার অ্যাপ্লিকেশান ভাল চলছে, এবং ওয়েবে যে কেউ অ্যাক্সেসযোগ্য৷ কিন্তু দেখতে একটু সাদামাটা। আপনি এটি সম্পর্কে সবাইকে বলার আগে, কেন জেমিনি কোড অ্যাসিস্টকে এর চেহারা উন্নত করতে বলবেন না?

templates/index.html ফাইলটি খুলুন। মিথুন চ্যাট উইন্ডোতে, জিজ্ঞাসা করুন:

Make this index.html file use material design.

প্রতিক্রিয়া হল বর্তমান ফাইলে সংযোজন করা, যার ফলে নিম্নলিখিতগুলির মতো কিছু হবে:

<!DOCTYPE html>
<html>
<head>
    <title>Roman Numerals</title>
    <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">   
    <script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>     
</head>
<body>
    <h1 class="mdl-typography--title">Roman Numerals</h1>
    <form action="/convert" method="post">
        <div class="mdl-textfield mdl-js-textfield">
            <input class="mdl-textfield__input" type="text" id="number" name="number" required />
            <label class="mdl-textfield__label" for="number">Enter a number:</label>
          </div>
          <button class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored">
            Convert!
          </button>
    </form>
</body>
</html>

প্রস্তাবিত কোডটি অনুলিপি করতে আইকনটি ব্যবহার করুন এবং index.html এর বিদ্যমান বিষয়বস্তুতে পেস্ট করুন। টার্মিনালে, python3 main.py চালান এবং একটি প্রিভিউ উইন্ডো খুলতে লিঙ্কটিতে ক্লিক করুন। পৃষ্ঠাটি এখন কিছুটা কম সরল:

295643ec03fcaafc.png

আপনি যদি চান তাহলে convert.html ফাইলের সাথে এটি পুনরাবৃত্তি করতে পারেন।

জেমিনি কোড অ্যাসিস্ট বেশ কিছুটা CSS জানে, এবং আপনি এটি বিভিন্ন উপায়ে অ্যাপ্লিকেশন পৃষ্ঠাগুলিকে স্টাইল করতে সহায়তা করতে পারেন। এই মাত্র একটি শুরু.

যেহেতু আপনি এই অ্যাপ্লিকেশনটি ভাগ করতে চান, তাই এটিকে ক্লাউড রানে পুনরায় স্থাপন করতে ভুলবেন না:

gcloud run deploy

যাদের রোমান সংখ্যায় রূপান্তর করতে হবে তাদের কাছে আপনি URL পাঠাতে পারেন।

9. অভিনন্দন!

অভিনন্দন - আপনি সফলভাবে জেমিনি কোড অ্যাসিস্টের সাথে একটি অ্যাপ্লিকেশনে পরীক্ষা যোগ করতে, এতে ত্রুটিগুলি সংশোধন করতে এবং উন্নত কার্যকারিতা যোগ করতে কাজ করেছেন৷

আপনার তৈরি করা অ্যাপ্লিকেশনটি ব্যবহার করা শেষ হলে, ভবিষ্যতের সম্ভাব্য চার্জগুলি বন্ধ করতে আপনি ক্লাউড কনসোল ড্যাশবোর্ড থেকে এটি মুছে ফেলতে পারেন।

রেফারেন্স ডক্স...