Google Chat, Vertex AI ও Firestore-এর মাধ্যমে প্রোজেক্ট ম্যানেজ করা

এই টিউটোরিয়ালে দেখানো হয়েছে যে কীভাবে এমন একটি Google Chat অ্যাপ তৈরি করা যায় যা কোনও টিম রিয়েল টাইমে প্রোজেক্ট ম্যানেজ করার জন্য ব্যবহার করতে পারে। Chat অ্যাপ Vertex AI ব্যবহার করে টিমকে ইউজার স্টোরি (যা টিমের ডেভেলপ করার জন্য সফ্টওয়্যার সিস্টেমের ফিচারকে ব্যবহারকারীর দৃষ্টিকোণ থেকে উপস্থাপন করে) লিখতে সাহায্য করে এবং Firestore ডেটাবেসে স্টোরি সেভ করে রাখে।

  • প্রোজেক্ট ম্যানেজমেন্ট অ্যাপের কথা উল্লেখ করলে, অ্যাপটি সাহায্য করার জন্য প্রম্পট দেখায়।
    ছবি ১. চার্লি তার টিমের সাথে Chat স্পেসে ফিচার ডেভেলপমেন্ট নিয়ে আলোচনা করে। প্রোজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপের কথা উল্লেখ করলে, চ্যাট অ্যাপ সাহায্য করার জন্য প্রম্পট দেখায়।
  • স্টোরি তৈরি করতে /createUserStory স্ল্যাশ কমান্ড ব্যবহার করা।
    ছবি ২. /createUserStory স্ল্যাশ কমান্ড ব্যবহার করে, চার্লি একটি গল্প তৈরি করে।
  • প্রোজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপ, গল্পের বিবরণ লেখার জন্য Vertex AI ব্যবহার করে।
    ছবি ৩. প্রোজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপ, গল্পের বিবরণ লেখার জন্য Vertex AI ব্যবহার করে, তারপর স্পেসে গল্পটি শেয়ার করে।
  • চার্লি গল্পের বিবরণ চূড়ান্ত করে।
    ছবি ৪. স্টোরির বিবরণ চূড়ান্ত করতে চার্লি এডিট করুন বিকল্পে ক্লিক করে। AI বিবরণটি সঠিক, কিন্তু চার্লি আরও বিবরণ চায়, তাই চার্লি আরও দেখুন বিকল্পে ক্লিক করে Vertex AI-কে গল্পের বিবরণে প্রয়োজনীয়তা যোগ করতে বলে। চার্লি স্টোরিটি নিজেকে অ্যাসাইন করেন, স্ট্যাটাস 'শুরু হয়েছে' হিসেবে সেট করেন, উপযুক্ত অগ্রাধিকার ও সাইজ বেছে নেন, তারপর সেভ করুন বিকল্পে ক্লিক করেন।
  • টিমের সবকটি ইউজার স্টোরি ম্যানেজ করা।
    ছবি ৫. যেকোনও সময়, Charlie /manageUserStories স্ল্যাশ কমান্ডের
    সাহায্যে টিমের সবকটি ইউজার স্টোরি দেখতে ও ম্যানেজ করতে পারবেন।

পূর্বশর্ত

উদ্দেশ্য

  • এমন একটি চ্যাট অ্যাপ তৈরি করো যা অ্যাজাইল সফ্টওয়্যার প্রোজেক্ট ম্যানেজ করে।
  • Vertex AI দ্বারা পরিচালিত জেনারেটিভ AI-সহায়তায় স্টোরি লেখার টুলের সাহায্যে ব্যবহারকারীদের ইউজার স্টোরি লিখতে সাহায্য করুন:
    • স্টোরির বিবরণ তৈরি ও আবার তৈরি করা।
    • নোট থেকে গল্পের বিবরণ বড় করে প্রয়োজনীয়তা সম্পূর্ণ করুন।
    • টাইপো ঠিক করতে ব্যাকরণ সংশোধন করা।
  • Firestore ডেটাবেসে লিখে এবং সেখান থেকে পড়ে কাজ আপ-টু-ডেট রাখুন।
  • ব্যবহারকারীদের কথোপকথন থেকে সরাসরি স্টোরি তৈরি, এডিট, অ্যাসাইন ও শুরু করতে দিয়ে, Chat স্পেসে কোলাবরেশন সহজ করে তুলুন।

ব্যবহৃত প্রোডাক্ট

প্রোজেক্ট ম্যানেজমেন্ট অ্যাপ নিম্নলিখিত Google Workspace এবং Google Cloud প্রোডাক্ট ব্যবহার করে:

  • Chat API: Google Chat অ্যাপ ডেভেলপ করার জন্য একটি API যা মেসেজের মতো চ্যাট ইন্ট্যার‍্যাকশন ইভেন্ট গ্রহণ করে এবং উত্তর দেয়। প্রোজেক্ট ম্যানেজমেন্ট Google Chat অ্যাপ, Chat API ব্যবহার করে Chat-এর পাঠানো ইন্ট্যার‍্যাকশন ইভেন্ট গ্রহণ ও উত্তর দেয় এবং এমন অ্যাট্রিবিউট কনফিগার করে যা নির্ধারণ করে যে এটি Chat-এ কীভাবে দেখা যাবে, যেমন নাম ও অবতার ছবি।
  • Vertex AI API: একটি জেনারেটিভ AI প্ল্যাটফর্ম। প্রোজেক্ট ম্যানেজমেন্ট Google Chat অ্যাপ, Vertex AI API ব্যবহার করে ইউজার স্টোরির নাম ও বিবরণ লেখে।
  • Firestore: একটি সার্ভারলেস ডকুমেন্ট ডেটাবেস। প্রোজেক্ট ম্যানেজমেন্ট Google Chat অ্যাপ, ব্যবহারকারীর স্টোরি সংক্রান্ত ডেটা স্টোর করতে Firebase ব্যবহার করে।
  • ক্লাউড ফাংশন: এটি হল একটি হালকা ওজনের সার্ভারলেস কম্পিউট পরিষেবা যা আপনাকে একক-উদ্দেশ্য, স্বতন্ত্র ফাংশন তৈরি করতে দেয় যা কোনও সার্ভার বা রানটাইম এনভায়রনমেন্ট ম্যানেজ করার প্রয়োজন ছাড়াই Chat ইন্টার‍্যাকশন ইভেন্টে প্রতিক্রিয়া জানাতে পারে। প্রোজেক্ট ম্যানেজমেন্ট Google Chat অ্যাপটি Cloud Functions ব্যবহার করে HTTP এন্ডপয়েন্ট হোস্ট করে, যেখানে Chat ইন্টার‍্যাকশন ইভেন্ট পাঠায় এবং এইসব ইভেন্ট প্রসেস ও উত্তর দেওয়ার জন্য লজিক রান করাতে কম্পিউট প্ল্যাটফর্ম হিসেবে কাজ করে।

    Cloud Functions, নিম্নলিখিত Google Cloud প্রোডাক্ট ব্যবহার করে, ইন্টার‍্যাকশন ইভেন্ট প্রসেস করে এবং কম্পিউট রিসোর্স হোস্ট করে:

    • Cloud Build: সম্পূর্ণ ম্যানেজ করা কন্টিনিউয়াস ইন্টিগ্রেশন, ডেলিভারি ও ডিপ্লয়মেন্ট প্ল্যাটফর্ম যা অটোমেটিক বিল্ড রান করে।
    • Pub/Sub: একটি অ্যাসিঙ্ক্রোনাস ও স্কেলেবল মেসেজিং পরিষেবা যা মেসেজ প্রসেস করা পরিষেবা থেকে মেসেজ তৈরি করা পরিষেবাগুলিকে আলাদা করে।
    • Cloud Run Admin API: কন্টেনারাইজড অ্যাপ চালানোর জন্য সম্পূর্ণ ম্যানেজ করা এনভায়রনমেন্ট।

আর্কিটেকচার

প্রোজেক্ট ম্যানেজমেন্ট Google Chat অ্যাপ আর্কিটেকচার, HTTP এন্ডপয়েন্টে Chat ইন্টার‍্যাকশন ইভেন্ট গ্রহণ ও প্রসেস করে, Vertex AI ব্যবহার করে ব্যবহারকারীর স্টোরি লিখতে সাহায্য করে এবং Firestore ডেটাবেসে ব্যবহারকারীর স্টোরির বিবরণ সেভ করে। নিচের ডায়াগ্রামে Google Workspace এবং Google Cloud রিসোর্সের আর্কিটেকচার দেখানো হয়েছে।

প্রোজেক্ট ম্যানেজমেন্ট Google Chat অ্যাপের আর্কিটেকচার ডায়াগ্রাম

প্রোজেক্ট ম্যানেজমেন্ট Google Chat অ্যাপ এইভাবে কাজ করে:

  1. কোনও ব্যবহারকারী Chat-এ মেসেজ পাঠান এবং সরাসরি মেসেজ পাঠিয়ে, কোনও স্পেসে উল্লেখ করে অথবা স্ল্যাশ কমান্ড লিখে প্রজেক্ট ম্যানেজমেন্ট Google Chat অ্যাপকে অ্যাক্টিভেট করেন।

  2. Chat, Cloud Function-এর HTTP এন্ডপয়েন্টে একটি সিঙ্ক্রোনাস HTTP অনুরোধ পাঠায়।

  3. প্রোজেক্ট ম্যানেজমেন্ট Google Chat অ্যাপ HTTP অনুরোধ প্রসেস করে:

    1. Vertex AI ব্যবহারকারীর গল্প লিখতে বা আপডেট করতে সাহায্য করে।

    2. Firestore ডেটাবেস ব্যবহারকারীর স্টোরি ডেটা সেভ, রিকভার, আপডেট বা মুছে দেয়।

  4. Cloud Functions, Chat-কে একটি HTTP রেসপন্স পাঠায় যা ব্যবহারকারীকে মেসেজ বা ডায়ালগ হিসেবে দেখানো হয়।

পরিবেশ প্রস্তুত করা

এই বিভাগে দেখানো হয়েছে যে কীভাবে Chat অ্যাপের জন্য Google Cloud প্রোজেক্ট তৈরি ও কনফিগার করতে হয়।

Google Cloud প্রোজেক্ট তৈরি করা

Google API Console

  1. Google API Console-এ, 'মেনু > IAM ও অ্যাডমিন > প্রোজেক্ট তৈরি করুন' বিকল্পে যান।

    'প্রোজেক্ট তৈরি করুন' বিকল্পে যান

  2. প্রোজেক্টের নাম ফিল্ডে, আপনার প্রোজেক্টের জন্য একটি বর্ণনামূলক নাম লিখুন।

    ঐচ্ছিক: প্রোজেক্ট আইডি এডিট করতে, এডিট করুন বিকল্পে ক্লিক করুন। প্রোজেক্ট তৈরি হয়ে যাওয়ার পরে প্রোজেক্ট আইডি পরিবর্তন করা যায় না। তাই এমন একটি আইডি বেছে নিন যা প্রোজেক্টের সম্পূর্ণ মেয়াদ জুড়ে আপনার প্রয়োজন পূরণ করতে পারে।

  3. লোকেশন ফিল্ডে, আপনার প্রোজেক্টের সম্ভাব্য লোকেশন দেখাতে ব্রাউজ করুন বিকল্পে ক্লিক করুন। তারপরে, বেছে নিন বিকল্পে ক্লিক করুন।
  4. তৈরি করুন বিকল্পে ক্লিক করুন। Google API কনসোল ড্যাশবোর্ড পৃষ্ঠায় নেভিগেট করে এবং আপনার প্রোজেক্ট কয়েক মিনিটের মধ্যে তৈরি হয়ে যায়।

gcloud CLI

নিম্নলিখিত ডেভেলপমেন্ট এনভায়রনমেন্টের মধ্যে একটিতে, Google Cloud CLI (gcloud) অ্যাক্সেস করুন:

  • Cloud Shell: আগে থেকেই সেট-আপ করা gcloud CLI-এর সাথে অনলাইন টার্মিনাল ব্যবহার করতে Cloud Shell অ্যাক্টিভেট করুন।
    Cloud Shell চালু করুন
  • লোকাল শেল: লোকাল ডেভেলপমেন্ট এনভায়রনমেন্ট ব্যবহার করতে, gcloud CLI ইনস্টল ও ইনিশিয়ালাইজ করুন।
    Cloud প্রোজেক্ট তৈরি করতে, gcloud projects create কমান্ড ব্যবহার করুন:
    gcloud projects create PROJECT_ID
    আপনি যে প্রোজেক্ট তৈরি করতে চান তার আইডি সেট করে PROJECT_ID পরিবর্তন করুন।

Cloud প্রোজেক্টের জন্য বিলিং চালু করুন

Google API Console

  1. Google API কনসোলে, বিলিং বিকল্পে যান। মেনু > বিলিং > আমার প্রোজেক্ট বিকল্পে ক্লিক করুন।

    আমার প্রোজেক্টের বিলিংয়ে যান

  2. কোনও সংস্থা বেছে নিন বিকল্পে গিয়ে, আপনার Google Cloud প্রোজেক্টের সাথে যুক্ত সংস্থাটি বেছে নিন।
  3. প্রোজেক্টের সারিতে, অ্যাকশন মেনু খুলুন (), বিলিং পরিবর্তন করুন বিকল্পে ক্লিক করুন এবং Cloud Billing অ্যাকাউন্ট বেছে নিন।
  4. অ্যাকাউন্ট সেট করুন বিকল্পে ক্লিক করুন।

gcloud CLI

  1. উপলভ্য বিলিং অ্যাকাউন্টের তালিকা পেতে, এগুলি রান করান:
    gcloud billing accounts list
  2. Google Cloud প্রোজেক্টের সাথে বিলিং অ্যাকাউন্ট লিঙ্ক করুন:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    নিম্নলিখিত বিষয়গুলি পরিবর্তন করুন:

    • PROJECT_ID হল প্রোজেক্ট আইডি যার জন্য আপনি বিলিং চালু করতে চান।
    • BILLING_ACCOUNT_ID হল বিলিং অ্যাকাউন্ট আইডি যা Google Cloud প্রোজেক্টের সাথে লিঙ্ক করতে হবে।

API চালু করুন

Google API Console

  1. Google API কনসোলে, Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API এবং Cloud Run Admin API চালু করুন।

    API চালু করুন

  2. আপনি সঠিক Cloud প্রোজেক্টে API চালু করছেন কিনা তা কনফার্ম করুন, তারপর পরবর্তী বোতামে ক্লিক করুন।

  3. আপনি সঠিক API চালু করছেন কিনা তা কনফার্ম করুন, তারপর চালু করুন বিকল্পে ক্লিক করুন।

gcloud CLI

  1. প্রয়োজন হলে, বর্তমান Cloud প্রোজেক্টকে সেই প্রোজেক্টে সেট করুন যেটি আপনি gcloud config set project কমান্ডের মাধ্যমে তৈরি করেছেন:

    gcloud config set project PROJECT_ID

    PROJECT_ID-এর জায়গায় আপনার তৈরি করা Cloud প্রোজেক্টের প্রোজেক্ট আইডি লিখুন।

  2. gcloud services enable কমান্ডের মাধ্যমে Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API এবং Cloud Run Admin API চালু করুন:

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    run.googleapis.com

    Cloud Build, Pub/Sub এবং Cloud Run Admin API হল Cloud Functions-এর পূর্বশর্ত।

যাচাইকরণ ও অনুমোদন

এই টিউটোরিয়ালটি অনুসরণ করার জন্য কোনও যাচাইকরণ ও অনুমোদন কনফিগারেশন প্রয়োজন নেই।

Firestore ও Vertex AI API কল করার জন্য, এই টিউটোরিয়াল Cloud Function-এর সাথে অ্যাটাচ করা ডিফল্ট পরিষেবা অ্যাকাউন্টের সাথে অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করে, যা আপনাকে সেট-আপ করতে হবে না। প্রোডাকশন এনভায়রনমেন্টের ক্ষেত্রে, আপনি Cloud Function-এর সাথে সাধারণত তৈরি ও অ্যাটাচ করা একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করবেন।

Google Chat অ্যাপ তৈরি ও ডিপ্লয় করা

আপনার Google Cloud প্রোজেক্ট তৈরি ও কনফিগার করা হয়ে গেছে, এখন আপনি Google Chat অ্যাপ তৈরি ও ডেপ্লয় করার জন্য প্রস্তুত। এই বিভাগে, আপনি নিম্নলিখিত কাজগুলি করবেন:

  1. ব্যবহারকারীর স্টোরি সেভ ও রিট্রিভ করার জন্য Firestore ডেটাবেস তৈরি করুন।
  2. ঐচ্ছিকভাবে, স্যাম্পেল কোড পর্যালোচনা করুন।
  3. HTTP অনুরোধ হিসেবে Chat থেকে পাওয়া ইভেন্টের উত্তরে Chat অ্যাপের কোড হোস্ট ও রান করাতে Cloud Function তৈরি করুন।
  4. Google Chat API কনফিগারেশন পৃষ্ঠায় Google Chat অ্যাপ তৈরি ও ডেপ্লয় করুন।

Firestore ডেটাবেস তৈরি করা

এই বিভাগে, ব্যবহারকারীর স্টোরি সেভ ও রিট্রিভ করতে আপনি একটি Firestore ডেটাবেস তৈরি করেন, কিন্তু ডেটা মডেলকে সংজ্ঞায়িত করেন না। model/user-story.js এবং model/user.js ফাইলের মাধ্যমে স্যাম্পেল কোডে ডেটা মডেল অন্তর্নিহিতভাবে সেট করা হয়।

প্রোজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপ ডেটাবেস, NoSQL ডেটা মডেল ব্যবহার করে যা ডকুমেন্ট ভিত্তিক এবং সংগ্রহ হিসেবে সাজানো। আরও জানতে, Firestore ডেটা মডেল দেখুন।

নিম্নলিখিত ডায়াগ্রামটি হল প্রজেক্ট ম্যানেজমেন্ট Google Chat অ্যাপের ডেটা মডেলের ওভারভিউ:

Firestore ডেটাবেসের ডেটা মডেল।

রুট কালেকশন হল spaces, যেখানে প্রতিটি ডকুমেন্ট এমন একটি স্পেসকে বোঝায় যেখানে Chat অ্যাপ স্টোরি তৈরি করেছে। userStories সাব-কালেকশনে প্রতিটি ব্যবহারকারীর গল্পকে একটি ডকুমেন্ট দিয়ে এবং users সাব-কালেকশনে প্রতিটি ব্যবহারকারীকে একটি ডকুমেন্ট দিয়ে দেখানো হয়।

সংগ্রহ, ডকুমেন্ট ও ফিল্ডের সংজ্ঞা দেখা

spaces

Chat অ্যাপ যেসব স্পেসে স্টোরি তৈরি করেছে।

ফিল্ড
Document IDString
যে নির্দিষ্ট স্পেসে স্টোরি তৈরি করা হয় তার অনন্য আইডি। Chat API-তে স্পেসের রিসোর্স নামের সাথে মিলে যায়।
userStoriesSubcollection of Documents (userStories)
Chat অ্যাপ ও এর ব্যবহারকারীদের তৈরি করা স্টোরি। Firebase-এ userStories-এর Document ID-এর সাথে সম্পর্কিত।
usersSubcollection of Documents (user)
যেসব ব্যবহারকারী স্টোরি তৈরি করেছেন বা যাদের স্টোরি অ্যাসাইন করা হয়েছে।
displayNameString
Chat API-তে স্পেসের ডিসপ্লে নাম। ব্যবহারকারীদের সাথে সরাসরি মেসেজের জন্য সেট করা নেই।

userStories

Chat অ্যাপ ও এর ব্যবহারকারীদের তৈরি করা স্টোরি।

ফিল্ড
Document IDString
Chat অ্যাপ ও এর ব্যবহারকারীদের তৈরি করা নির্দিষ্ট ব্যবহারকারীর গল্পের অনন্য আইডি।
assigneeDocument (user)
গল্প সম্পূর্ণ করার জন্য অ্যাসাইন করা ব্যবহারকারীর রিসোর্স নাম। Document ID ডকুমেন্টের users-এর সাথে এবং Chat API-তে ব্যবহারকারীর রিসোর্স নামের সাথে মিলে যায়।
descriptionString
ব্যবহারকারীর দৃষ্টিকোণ থেকে সফ্টওয়্যার ফিচারের বিবরণ।
priorityEnum
কাজটি কত দ্রুত সম্পূর্ণ করতে হবে। সম্ভাব্য ভ্যালু হল Low, Medium বা High।
sizeEnum
কাজের পরিমাণ। সম্ভাব্য ভ্যালু হল Small, Medium বা Large।
statusEnum
কাজের ফেজ। সম্ভাব্য ভ্যালু হল OPEN, STARTED বা COMPLETED।
titleString
গল্পের নাম; সংক্ষিপ্তসার।

users

যেসব ব্যবহারকারী স্টোরি তৈরি করেছেন বা যাদের স্টোরি অ্যাসাইন করা হয়েছে।

ফিল্ড
Document IDString
কোনও নির্দিষ্ট ব্যবহারকারীর অনন্য আইডি। Firebase-এ userStories-এর assignee-এর সাথে এবং Chat API-তে ব্যবহারকারীর রিসোর্স নামের সাথে মিলে যায়।
avatarUrlString
ব্যবহারকারীর Chat অবতার ইমেজ হোস্ট করা URL.
displayNameString
ব্যবহারকারীর Chat ডিসপ্লে নাম।

Firestore ডেটাবেস কীভাবে তৈরি করবেন তা এখানে দেওয়া হল:

Google API Console

  1. Google API Console-এ, Firestore-এ যান। মেনু > Firestore বিকল্পে ক্লিক করুন।

    Firestore-এ যান

  2. ডেটাবেস তৈরি করুন বিকল্পে ক্লিক করুন।

  3. আপনার Firestore মোড বেছে নিন বিকল্প থেকে, নেটিভ মোড বিকল্পে ক্লিক করুন।

  4. চালিয়ে যান বিকল্পে ক্লিক করুন।

  5. ডেটাবেস কনফিগার করুন:

    1. আপনার ডেটাবেসের নাম দিন বিকল্পে, ডেটাবেস আইডি (default) হিসেবেই রেখে দিন।

    2. লোকেশন টাইপ বিকল্পে, আপনার ডেটাবেসের জন্য একটি অঞ্চল নির্দিষ্ট করুন, যেমন us-central1। সেরা পারফর্ম্যান্সের জন্য, Chat অ্যাপের ক্লাউড ফাংশনের মতো একই বা কাছাকাছি লোকেশন বেছে নিন।

  6. ডেটাবেস তৈরি করুন বিকল্পে ক্লিক করুন।

gcloud CLI

  • gcloud firestore databases create কমান্ডের সাহায্যে নেটিভ মোডে Firestore ডেটাবেস তৈরি করুন:

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native

    Firestore রিজিয়নের নামের সাথে LOCATION পরিবর্তন করুন, যেমন us-central1।

স্যাম্পেল কোড পর্যালোচনা করুন

ঐচ্ছিকভাবে, Cloud Function তৈরি করার আগে, GitHub-এ হোস্ট করা নমুনা কোড পর্যালোচনা করতে এবং সেটির সাথে পরিচিত হতে একটু সময় নিন।

GitHub-এ দেখুন

প্রতিটি ফাইলের ওভারভিউ এখানে দেওয়া হল:

env.js
নির্দিষ্ট Google Cloud প্রোজেক্ট ও রিজিয়নে Chat অ্যাপ ডেপ্লয় করার জন্য এনভায়রনমেন্ট কনফিগারেশন ভেরিয়েবল। আপনাকে এই ফাইলে কনফিগারেশন ভেরিয়েবল আপডেট করতে হবে।
package.json ও package-lock.json
Node.js প্রোজেক্ট সেটিংস ও ডিপেন্ডেন্সি।
index.js
Chat অ্যাপের ক্লাউড ফাংশনের এন্ট্রি পয়েন্ট। এটি HTTP অনুরোধ থেকে চ্যাট ইভেন্ট পড়ে, অ্যাপ হ্যান্ডলারকে কল করে এবং HTTP উত্তরকে JSON অবজেক্ট হিসেবে পোস্ট করে।
controllers/app.js
প্রধান অ্যাপ্লিকেশন লজিক। Chat অ্যাপের উল্লেখ ও স্ল্যাশ কমান্ড হ্যান্ডেল করার মাধ্যমে ইন্টার‍্যাকশন ইভেন্ট প্রসেস করে। কার্ডে ক্লিক করার ব্যাপারে প্রতিক্রিয়া জানাতে, এটি app-action-handler.js-কে কল করে।
controllers/app-action-handler.js
কার্ডে ক্লিক করা হ্যান্ডেল করার জন্য অ্যাপ্লিকেশন লজিক চ্যাট ইন্টার‍্যাকশন ইভেন্ট।
services/space-service.js, services/user-service.js ও services/user-story-service.js
এইসব ফাইলে Chat স্পেস, ব্যবহারকারী ও ব্যবহারকারীর স্টোরি নিয়ে কাজ করার জন্য নির্দিষ্ট অ্যাপ্লিকেশন লজিকের অংশ থাকে। এইসব ফাইলের ফাংশন app.js বা app-action-handler.js-এর মাধ্যমে কল করা হয়। ডেটাবেস অপারেশন পারফর্ম করতে, এইসব ফাইলের ফাংশন firestore-service.js-এর ফাংশনকে কল করে।
services/firestore-service.js
ডেটাবেস অপারেশন ম্যানেজ করে। এই ফাইলের ফাংশনগুলি services/space-service.js, services/user-service.js এবং services/user-story-service.js দ্বারা কল করা হয়।
services/aip-service.js
জেনারেটিভ AI টেক্সট পূর্বাভাসের জন্য Vertex AI API কল করে।
model/*.js
এইসব ফাইলে ক্লাস ও এনুমের সংজ্ঞা থাকে যা অ্যাপ্লিকেশন পরিষেবা ফাংশনের মধ্যে ডেটা স্টোর ও পাস করার জন্য ব্যবহার করে। তারা Firestore ডেটাবেসের জন্য ডেটা মডেল সেট করে।
views/*.js
এই ডিরেক্টরির প্রতিটি ফাইল একটি কার্ড অবজেক্ট ইনস্ট্যানশিয়েট করে যা Chat অ্যাপ তারপরে Chat-এ কার্ড মেসেজ বা ডায়ালগ অ্যাকশন রেসপন্স হিসেবে পাঠায়।
views/widgets/*.js
প্রতিটি ফাইল এক ধরনের উইজেট অবজেক্ট ইনস্ট্যানশিয়েট করে যা অ্যাপটি views/ ডিরেক্টরিতে কার্ড তৈরি করতে ব্যবহার করে।
test/**/*.test.js
এই ডিরেক্টরি ও এর সাবডিরেক্টরির প্রতিটি ফাইলে সংশ্লিষ্ট ফাংশন, কন্ট্রোলার, পরিষেবা, ভিউ বা উইজেটের ইউনিট টেস্ট থাকে। প্রোজেক্টের রুট ডিরেক্টরিতে npm run test রান করিয়ে আপনি সব ইউনিট টেস্ট এক্সিকিউট করতে পারবেন।

Cloud Function তৈরি ও ডিপ্লয় করা

এই বিভাগে, আপনি এমন একটি Cloud Function তৈরি ও ডিপ্লয় করেন যাতে প্রজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপের অ্যাপ্লিকেশন লজিক থাকে।

Chat-এর থেকে পাওয়া HTTP অনুরোধের উত্তরে Cloud Function রান করে, এতে Chat ইন্টার‍্যাকশন ইভেন্ট থাকে। রান করা হলে, Cloud Function কোড ইভেন্ট প্রসেস করে এবং Chat-কে একটি উত্তর দেয় যা Chat একটি মেসেজ, ডায়ালগ বা অন্য ধরনের ব্যবহারকারীর ইন্টার‍্যাকশন হিসেবে রেন্ডার করে। প্রযোজ্য হলে, Cloud Function Firestore ডেটাবেস থেকেও রিড করে বা সেখানে লেখে।

Cloud Function কীভাবে তৈরি করবেন তা এখানে দেওয়া হল:

Google API Console

  1. GitHub থেকে কোড জিপ ফাইল হিসেবে ডাউনলোড করুন।

    জিপ ফাইল ডাউনলোড করুন

  2. ডাউনলোড করা জিপ ফাইল এক্সট্র্যাক্ট করুন।

    এক্সট্র্যাক্ট করা ফোল্ডারে সম্পূর্ণ Google Workspace স্যাম্পেল রেপোজিটরি থাকে।

  3. এক্সট্র্যাক্ট করা ফোল্ডারে, add-ons-samples-main/node/chat/project-management-app/-এ নেভিগেট করুন, তারপর project-management-app ফোল্ডারটি জিপ ফাইলে কম্প্রেস করুন।

    জিপ ফাইলের রুট ডিরেক্টরিতে নিম্নলিখিত ফাইল ও ফোল্ডার থাকতে হবে:

    • env.js
    • README.md
    • gcloudignore.text
    • package-lock.json
    • package.json
    • index.js
    • model/
    • controllers/
    • views/
    • services/
  4. Google API Console-এ, Cloud Functions পৃষ্ঠায় যান:

    Cloud Functions-এ যান

    আপনার Chat অ্যাপের জন্য Google Cloud প্রোজেক্ট বেছে নেওয়া হয়েছে কিনা তা ভাল করে দেখে নিন।

  5. ফাংশন তৈরি করুন বিকল্পে ক্লিক করুন।

  6. ফাংশন তৈরি করুন পৃষ্ঠায়, আপনার ফাংশন সেট-আপ করুন:

    1. পরিবেশ বিকল্পে গিয়ে Cloud Run ফাংশন বেছে নিন।
    2. ফাংশনের নাম-এ, project-management-tutorial লিখুন।
    3. অঞ্চল বিকল্পে গিয়ে একটি অঞ্চল বেছে নিন।
    4. যাচাইকরণ বিকল্পের মধ্যে থেকে, যাচাই না করা ইনভোকেশনকে অনুমতি দিন বিকল্প বেছে নিন।
    5. পরবর্তী বিকল্পে ক্লিক করুন।
  7. রানটাইম থেকে, Node.js 20 বেছে নিন।

  8. এন্ট্রি পয়েন্টে, ডিফল্ট টেক্সট মুছে দিন এবং projectManagementChatApp লিখুন।

  9. সোর্স কোডে গিয়ে জিপ আপলোড বিকল্প বেছে নিন।

  10. ডেস্টিনেশন বাকেট-এ, তৈরি করুন অথবা কোনও বাকেট বেছে নিন:

    1. ব্রাউজ করুন বিকল্পে ক্লিক করুন।
    2. একটি বাকেট বেছে নিন।
    3. বেছে নিন বিকল্পে ক্লিক করুন।

    Google Cloud এই বাকেটে জিপ ফাইল আপলোড করে এবং কম্পোনেন্ট ফাইল এক্সট্র্যাক্ট করে। Cloud Functions তারপরে কম্পোনেন্ট ফাইলগুলিকে Cloud Function-এ কপি করে।

  11. জিপ ফাইল-এ, GitHub থেকে ডাউনলোড করা, এক্সট্র্যাক্ট করা এবং আবার কম্প্রেস করা জিপ ফাইল আপলোড করুন:

    1. ব্রাউজ করুন বিকল্পে ক্লিক করুন।
    2. নেভিগেট করে জিপ ফাইল বেছে নিন।
    3. খুলুন বিকল্পে ক্লিক করুন।
  12. ডেপ্লয় করুন বিকল্পে ক্লিক করুন।

    Cloud Functions-এর বিবরণ পৃষ্ঠাটি খুলে যায় এবং আপনার ফাংশনটি দু'টি প্রগ্রেস ইন্ডিকেটর সহ দেখা যায়: একটি বিল্ডের জন্য এবং একটি পরিষেবার জন্য। দুটি প্রগ্রেস ইন্ডিকেটরই অদৃশ্য হয়ে গিয়ে টিকচিহ্ন দেখানো হলে, আপনার ফাংশন ডেপ্লয় করা হয়ে গেছে এবং রেডি আছে।

  13. ধ্রুবক সেট করতে, নমুনা কোড এডিট করুন:

    1. ক্লাউড ফাংশনের বিবরণ পৃষ্ঠায়, এডিট করুন বিকল্পে ক্লিক করুন।
    2. পরবর্তী বিকল্পে ক্লিক করুন।
    3. সোর্স কোডে গিয়ে ইনলাইন এডিটর বেছে নিন।
    4. ইনলাইন এডিটরে, env.js ফাইল খুলুন।
    5. আপনার Cloud প্রোজেক্ট আইডির সাথে project-id পরিবর্তন করুন।
    6. ঐচ্ছিক: আপনার Cloud Function-এর জন্য কাজ করে এমন লোকেশন দিয়ে us-central1 আপডেট করুন।
  14. ডেপ্লয় করুন বিকল্পে ক্লিক করুন।

  15. ফাংশন ডিপ্লয় করা হয়ে গেলে, ট্রিগার URL কপি করুন:

    1. ফাংশনের বিবরণ পৃষ্ঠায়, ট্রিগার করুন বিকল্পে ক্লিক করুন।
    2. URL কপি করুন। নিম্নলিখিত বিভাগে Chat অ্যাপ কনফিগার করার জন্য এটি প্রয়োজন।

gcloud CLI

  1. GitHub থেকে কোড ক্লোন করুন:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  2. এই প্রোজেক্টের কোড আছে এমন ডিরেক্টরিতে যান ম্যানেজমেন্ট চ্যাট অ্যাপ:

    cd add-ons-samples/node/chat/project-management-app
  3. এনভায়রনমেন্ট ভেরিয়েবল সেট করতে env.js ফাইল এডিট করুন:

    1. আপনার Google Cloud প্রোজেক্ট আইডির সাথে project-id পরিবর্তন করুন।
    2. us-central1-এর জায়গায় আপনার Google Cloud প্রোজেক্টের লোকেশন লিখুন।
  4. Google Cloud-এ Cloud Function ডিপ্লয় করুন:

    gcloud functions deploy project-management-tutorial \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=projectManagementChatApp \
    --trigger-http \
    --allow-unauthenticated

    REGION-এর পরিবর্তে Cloud Function লোকেশন ব্যবহার করুন, যেখানে এর ইনফ্রাস্ট্রাকচার হোস্ট করা হয়, যেমন us-central1।

  1. ফাংশন ডেপ্লয় করা হয়ে গেলে, উত্তর থেকে url প্রপার্টি কপি করুন। এটি হল ট্রিগার URL যা আপনি Google Chat অ্যাপ কনফিগার করতে নিম্নলিখিত বিভাগে ব্যবহার করেন।

Google API কনসোলে Google Chat অ্যাপ কনফিগার করা

এই বিভাগে, আপনার Chat অ্যাপ সম্পর্কে তথ্য সহ Google API কনসোলে কীভাবে Chat API কনফিগার করতে হয় তা দেখানো হয়েছে। এর মধ্যে Chat অ্যাপের নাম, কাজ করে এমন স্ল্যাশ কমান্ড এবং Chat অ্যাপের Cloud ফাংশনের ট্রিগার URL অন্তর্ভুক্ত রয়েছে, যেখানে এটি Chat ইন্টার‍্যাকশন ইভেন্ট পাঠায়।

  1. Google API Console-এ, মেনু > API ও পরিষেবা > চালু API ও পরিষেবা > Google Chat API > কনফিগারেশন বিকল্পে ক্লিক করুন।

    Chat API কনফিগারেশনে যান

  2. অ্যাপের নাম বিকল্পে Project Manager টাইপ করুন।

  3. অবতার URL-এ https://developers.google.com/chat/images/quickstart-app-avatar.png টাইপ করুন।

  4. বিবরণ বিভাগে, Manages projects with user stories. টাইপ করুন

  5. ইন্টার‍্যাক্টিভ ফিচার চালু করুন টগল বোতামে ক্লিক করে সেটি চালু করুন।

  6. কার্যকারিতা বিকল্পের মধ্যে, স্পেস ও গ্রুপ কথোপকথনে যোগ দিন বিকল্প বেছে নিন।

  7. কানেকশন সেটিংস বিকল্পের মধ্যে, HTTP এন্ডপয়েন্ট URL বিকল্প বেছে নিন।

  8. পরিষেবা অ্যাকাউন্টের ইমেল কপি করুন। আপনার ফাংশন ইনভোক করার জন্য Google Chat অ্যাপকে অনুমতি দেওয়ার সময় এই ইমেল আইডি প্রয়োজন।

  9. ট্রিগার বিকল্পের মধ্যে, সব ট্রিগারের জন্য একটি সাধারণ HTTP এন্ডপয়েন্ট URL ব্যবহার করুন বিকল্প বেছে নিন।

  10. HTTP এন্ডপয়েন্ট URL-এ, Cloud Function-এর ট্রিগার URL পেস্ট করুন যা https://REGION-PROJECT_ID.cloudfunctions.net/project-management-tutorial হিসেবে ফর্ম্যাট করা হয়েছে। আপনি gcloud CLI-এর মাধ্যমে Cloud Function ডিপ্লয় করে থাকলে, এটি হল url প্রপার্টি।

  11. Chat অ্যাপের স্ল্যাশ কমান্ড রেজিস্টার করুন। স্ল্যাশ কমান্ড রেজিস্টার করতে:

    1. কমান্ড বিকল্পের মধ্যে, কমান্ড যোগ করুন বিকল্পে ক্লিক করুন।
    2. নিচের সারণীতে বিস্তারিতভাবে উল্লেখ করা প্রতিটি কমান্ডের জন্য, কমান্ড আইডি লিখুন, বিবরণ লিখুন, কমান্ডের ধরন বিকল্পের মধ্যে থেকে স্ল্যাশ কমান্ড বেছে নিন, স্ল্যাশ কমান্ডের নাম লিখুন, ডায়ালগ বেছে নিন, এবং তারপরে হয়ে গেছে বিকল্পে ক্লিক করুন:

      কমান্ড আইডি বিবরণ স্ল্যাশ কমান্ডের নাম ডায়ালগ
      1 নির্দিষ্ট শিরোনাম সহ একটি গল্প তৈরি করো। /createUserStory বাদ দেওয়া হয়েছে
      2 ব্যবহারকারীকে অ্যাসাইন করা সব স্টোরির তালিকা দেখায়। /myUserStories বাদ দেওয়া হয়েছে
      3 নির্দিষ্ট স্টোরির বর্তমান স্ট্যাটাস দেখায়। /userStory বাদ দেওয়া হয়েছে
      4 একটি ডায়ালগ খোলে যেখানে স্টোরি এডিট করা যায়। /manageUserStories বেছে নেওয়া হয়েছে
      5 স্পেসের সব স্টোরি মুছে দেয়। /cleanupUserStories বাদ দেওয়া হয়েছে
  12. দৃশ্যমানতা বিকল্পের মধ্যে, বেছে নিন আপনার Workspace ডোমেনে নির্দিষ্ট ব্যক্তি ও গ্রুপের জন্য এই Google Chat অ্যাপ উপলভ্য করুন এবং আপনার ইমেল আইডি লিখুন।

  13. ঐচ্ছিকভাবে, লগ বিকল্পের মধ্যে, লগিংয়ে সমস্যার লগ করুন বিকল্প বেছে নিন।

  14. সেভ করুন বিকল্পে ক্লিক করুন। কনফিগারেশন সেভ করা হয়েছে মেসেজটি দেখতে পাবেন।

Chat অ্যাপ, Chat-এ মেসেজ গ্রহণ করতে ও উত্তর দিতে প্রস্তুত।

Chat অ্যাপ পরীক্ষা করা

প্রোজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপকে মেসেজ পাঠিয়ে এবং ব্যবহারকারীর গল্প তৈরি, এডিট ও মুছে দেওয়ার জন্য এর স্ল্যাশ কমান্ড ব্যবহার করে এটি পরীক্ষা করুন।

  1. আপনি বিশ্বস্ত পরীক্ষক হিসেবে নিজেকে যোগ করার সময় যে Google Workspace অ্যাকাউন্ট প্রদান করেছিলেন সেটি ব্যবহার করে Google Chat খুলুন।

    Google Chat-এ যান

  2. নতুন চ্যাট বিকল্পে ক্লিক করুন।
  3. ১ বা একাধিক লোকজনকে যোগ করুন ফিল্ডে, আপনার Chat অ্যাপের নাম টাইপ করুন।
  4. ফলাফল থেকে আপনার Chat অ্যাপ বেছে নিন। সরাসরি মেসেজ খুলে যায়।

  5. অ্যাপের সাথে নতুন সরাসরি মেসেজে, Hello টাইপ করে enter প্রেস করুন। প্রোজেক্ট ম্যানেজমেন্ট Chat অ্যাপ একটি সহায়তা মেনু সহ উত্তর দেয়, যেখানে এটি কী কী করতে পারে তার বিবরণ দেওয়া থাকে।
  6. স্টোরি তৈরি করতে, মেসেজ বারে /createUserStory Test story টাইপ করে পাঠান। প্রোজেক্ট ম্যানেজমেন্ট চ্যাট অ্যাপ, Vertex AI থেকে জেনারেটিভ AI ব্যবহার করে আপনার জন্য তৈরি করা ইউজার স্টোরির বিবরণ সহ একটি কার্ড মেসেজ দিয়ে উত্তর দেয়।
  7. API কনসোলে, আপনি যে স্পেসে Chat অ্যাপ যোগ করেছেন, সেটি সম্পর্কে তৈরি করা রেকর্ড, সেটির সাথে ইন্টার‍্যাক্ট করা ব্যবহারকারী এবং আপনার তৈরি করা ব্যবহারকারীর গল্প পর্যালোচনা করতে Firestore ডেটাবেস চেক করুন।

    Firestore-এ যান

  8. Google Chat-এ ফিরে যান।

    Google Chat-এ যান

  9. ঐচ্ছিকভাবে, স্টোরি এডিট করতে, এডিট করুন বিকল্পে ক্লিক করুন। আপনি স্টোরি নিয়ে সন্তুষ্ট হলে, সেভ করুন বিকল্পে ক্লিক করুন।
  10. অ্যাপে কাজ করে এমন প্রতিটি স্ল্যাশ কমান্ড পরীক্ষা করে দেখুন। সেগুলি দেখতে, / টাইপ করুন অথবা Chat অ্যাপের নাম উল্লেখ করুন।
  11. /cleanupUserStories স্ল্যাশ কমান্ড দিয়ে টেস্ট ব্যবহারকারীর স্টোরি মুছে দিন। অথবা, অ্যাপটি সরিয়ে দিন বা আনইনস্টল করুন। সরিয়ে দিলে, অ্যাপটি সেই স্পেসে তৈরি করা সব ব্যবহারকারীর স্টোরি মুছে দেয়।

সমস্যার সমাধান করুন

Google Chat অ্যাপ বা কার্ড কোনও সমস্যার মেসেজ দেখালে, Chat ইন্টারফেস "কিছু সমস্যা হয়েছে" লেখা মেসেজ দেখায়। অথবা "আপনার অনুরোধ প্রসেস করা যায়নি" কখনও কখনও Chat UI কোনও সমস্যার মেসেজ না দেখালেও, Chat অ্যাপ বা কার্ড অপ্রত্যাশিত ফলাফল দেয়; যেমন, কার্ড মেসেজ দেখানো নাও হতে পারে।

যদিও Chat UI-তে কোনও সমস্যার মেসেজ নাও দেখাতে পারে, Chat অ্যাপের জন্য সমস্যা লগ করার সুবিধা চালু করা থাকলে, সমস্যার বিবরণ সহ মেসেজ ও লগ ডেটা আপনাকে সমস্যা সমাধান করতে সাহায্য করার জন্য উপলভ্য থাকে। দেখতে, ডিবাগ করতে এবং সমস্যার সমাধান করতে সাহায্য পেতে, Google Chat সংক্রান্ত সমস্যার সমাধান ও তা ঠিক করা দেখুন।

অপ্রয়োজনীয়গুলি মুছুন

এই টিউটোরিয়ালে ব্যবহৃত রিসোর্সের জন্য আপনার Google Cloud অ্যাকাউন্টে চার্জ যাতে না লাগে, তার জন্য আমরা Cloud প্রোজেক্টটি মুছে দেওয়ার সাজেস্ট করি।

  1. Google API কনসোলে, রিসোর্স ম্যানেজ করুন পৃষ্ঠায় যান। মেনু > IAM ও অ্যাডমিন > রিসোর্স ম্যানেজ করুন বিকল্পে ক্লিক করুন।

    রিসোর্স ম্যানেজারে যান

  2. প্রোজেক্টের তালিকা থেকে, যে প্রোজেক্টটি মুছতে চান সেটি বেছে নিন এবং তারপরে মুছুন বিকল্পে ক্লিক করুন।
  3. ডায়ালগে, প্রোজেক্ট আইডি টাইপ করুন এবং তারপর প্রোজেক্ট মুছে দিতে বন্ধ করুন বিকল্পে ক্লিক করুন ।