Google Workspace-এর সাথে Vertex AI এজেন্টগুলিকে একীভূত করুন

১. শুরু করার আগে

99afae2505f696fb.png

ভার্টেক্স এআই কী?

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

  • মডেল গার্ডেন অ্যাক্সেস করুন: এজেন্টের নির্দিষ্ট কাজের জন্য সঠিক মডেলটি খুঁজে পেতে সম্পূর্ণ জেমিনি ফ্যামিলি, থার্ড-পার্টি মডেল এবং বিশেষায়িত ওপেন-সোর্স মডেল সহ ১৫০টিরও বেশি ফাউন্ডেশন মডেল থেকে বেছে নিন।
  • জটিল অর্কেস্ট্রেশন ডিজাইন করুন: ভার্টেক্স এআই এমন একটি ফ্রেমওয়ার্ক প্রদান করে, যার মাধ্যমে যুক্তিনির্ভর স্বয়ংক্রিয় এজেন্ট ডিজাইন করা যায়, যারা পরিকল্পনা করতে, বহু-ধাপের কাজ সম্পাদন করতে এবং বাহ্যিক এপিআই কল করতে পারে।
  • এন্টারপ্রাইজ-গ্রেড গ্রাউন্ডিং: বিভ্রম দূর করতে এবং তথ্যের নির্ভুলতা নিশ্চিত করতে এজেন্টদের উচ্চ-পারফরম্যান্স RAG (রিট্রিভাল-অগমেন্টেড জেনারেশন) সহ লাইভ ব্যবসায়িক ডেটার সাথে সংযুক্ত করুন।
  • ডেভঅপ্স: শক্তিশালী SDK, API, এবং মূল্যায়ন টুলের সাহায্যে বিদ্যমান CI/CD পাইপলাইনে এজেন্ট ডেভেলপমেন্টকে নির্বিঘ্নে একীভূত করুন, যা বৃহৎ পরিসরে এজেন্টের পারফরম্যান্স ও নিরাপত্তা পরিমাপ করতে সাহায্য করে।
  • উচ্চমানের নিরাপত্তা: ভার্টেক্স এআই নিশ্চিত করে যে প্রশিক্ষণ বা গ্রাউন্ডিংয়ের জন্য ব্যবহৃত গ্রাহকের ডেটা গোপন, এনক্রিপ্টেড এবং বৈশ্বিক রেসিডেন্সি প্রয়োজনীয়তা মেনে চলে।
  • অপ্টিমাইজড ইনফ্রাস্ট্রাকচার: গুগলের বিশ্বমানের TPU এবং GPU ক্লাস্টার জুড়ে অনায়াসে এজেন্টিক ওয়ার্কলোড স্কেল করুন, যা সবচেয়ে চাহিদাসম্পন্ন গ্লোবাল অ্যাপ্লিকেশনগুলির জন্যও লো-ল্যাটেন্সি পারফরম্যান্স নিশ্চিত করে।

127f2ed7d484722c.png

গুগল ওয়ার্কস্পেস কী?

গুগল ওয়ার্কস্পেস হলো ব্যক্তি, স্কুল এবং ব্যবসার জন্য ডিজাইন করা ক্লাউড-ভিত্তিক উৎপাদনশীলতা ও সহযোগিতামূলক সমাধানসমূহের একটি সংগ্রহ:

  • যোগাযোগ: পেশাদার ইমেল পরিষেবা (Gmail), ভিডিও কনফারেন্সিং (Meet), এবং টিম মেসেজিং (Chat)।
  • কন্টেন্ট তৈরি: ডকুমেন্ট (Docs) লেখার, স্প্রেডশিট (Sheets) তৈরির এবং প্রেজেন্টেশন (Slides) ডিজাইন করার টুল।
  • সংগঠন: শেয়ার করা ক্যালেন্ডার (Calendars) এবং ডিজিটাল নোট নেওয়া (Keep)।
  • স্টোরেজ: ফাইল নিরাপদে সংরক্ষণ ও শেয়ার করার জন্য কেন্দ্রীভূত ক্লাউড স্পেস (ড্রাইভ)।
  • ব্যবস্থাপনা: ব্যবহারকারী ও নিরাপত্তা সেটিংস পরিচালনার জন্য প্রশাসনিক নিয়ন্ত্রণ (ওয়ার্কস্পেস অ্যাডমিন কনসোল)।

কী ধরনের কাস্টম ইন্টিগ্রেশন?

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

  • স্মার্ট কানেক্টিভিটি: গুগল-পরিচালিত ডেটা স্টোর, এপিআই, এবং এমসিপি সার্ভার (গুগল-পরিচালিত ও কাস্টম) এজেন্টদেরকে নিরাপদে ও নির্বিঘ্নে ওয়ার্কস্পেস ডেটা অ্যাক্সেস করতে এবং ব্যবহারকারীদের পক্ষ থেকে বিভিন্ন পদক্ষেপ গ্রহণ করতে সক্ষম করে।
  • কাস্টম এজেন্ট: নো-কোড ডিজাইনার বা প্রো-কোড ফ্রেমওয়ার্ক ব্যবহার করে, টিমগুলো অ্যাডমিন-পরিচালিত ওয়ার্কস্পেস ডেটা এবং অ্যাকশনের উপর ভিত্তি করে বিশেষায়িত এজেন্ট তৈরি করতে পারে।
  • নেটিভ ইন্টিগ্রেশন: ওয়ার্কস্পেস অ্যাড-অনগুলো ডেডিকেটেড UI কম্পোনেন্ট বা ব্যাকগ্রাউন্ড প্রসেসের মাধ্যমে AI সিস্টেম এবং চ্যাট ও জিমেইলের মতো অ্যাপ্লিকেশনগুলোর মধ্যেকার সংযোগ স্থাপন করে। এর ফলে এজেন্টরা ব্যবহারকারীদের ঠিক যেখানে তারা আছেন, সেখানেই তাৎক্ষণিক ও প্রাসঙ্গিক সহায়তা প্রদান করতে পারেন।

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

পূর্বশর্ত

আপনি যদি আপনার নিজের পরিবেশে সমস্ত ধাপ অনুসরণ করতে চান, তাহলে আপনার প্রয়োজন হবে:

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

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

ভার্টেক্স এআই সার্চ অ্যাপ

এই এজেন্টটি ব্যবহারকারীদের তাদের স্বাভাবিক ভাষায় ওয়ার্কস্পেসের জন্য ডেটা অনুসন্ধান করতে এবং বিভিন্ন পদক্ষেপ নিতে সাহায্য করে। এটি নিম্নলিখিত উপাদানগুলোর উপর নির্ভর করে:

  • মডেল: মিথুন।
  • ডেটা ও কার্যক্রম: গুগল ওয়ার্কস্পেস (ক্যালেন্ডার, জিমেইল, ড্রাইভ)-এর জন্য ভার্টেক্স এআই ডেটা স্টোর।
  • এজেন্ট হোস্ট: ভার্টেক্স এআই সার্চ।
  • UI: ভার্টেক্স এআই সার্চ ওয়েব উইজেট।

d276ff8e2b9d0ddf.png

কাস্টম এজেন্ট

এই এজেন্টটি ব্যবহারকারীদের নিজস্ব টুল ও নিয়ম ব্যবহার করে তাদের স্বাভাবিক ভাষায় ওয়ার্কস্পেসের জন্য ডেটা অনুসন্ধান করতে এবং বিভিন্ন পদক্ষেপ নিতে সাহায্য করে। এটি নিম্নলিখিত উপাদানগুলোর উপর নির্ভর করে:

  • মডেল: মিথুন।
  • ডেটা ও কার্যক্রম: গুগল ওয়ার্কস্পেসের (ক্যালেন্ডার, জিমেইল, ড্রাইভ) জন্য ভার্টেক্স এআই ডেটা স্টোর, গুগল-পরিচালিত ভার্টেক্স এআই সার্চ মডেল কনটেক্সট প্রোটোকল (এমসিপি) সার্ভার, গুগল চ্যাট মেসেজ পাঠানোর জন্য কাস্টম টুল ফাংশন (গুগল চ্যাট এপিআই-এর মাধ্যমে)।
  • এজেন্ট তৈরির সরঞ্জাম: এজেন্ট ডেভেলপমেন্ট কিট (ADK)।
  • এজেন্ট হোস্ট: ভার্টেক্স এআই এজেন্ট ইঞ্জিন।
  • UI: ADK Web.

145f47f45332e6be.png

293ec4d3e2bb6a0.png

গুগল ওয়ার্কস্পেস অ্যাড-অন হিসেবে একটি এজেন্ট

এই এজেন্টটি ব্যবহারকারীদের ওয়ার্কস্পেস অ্যাপ UI-এর প্রেক্ষাপটে তাদের স্বাভাবিক ভাষায় ওয়ার্কস্পেসের ডেটা অনুসন্ধান করার সুযোগ দেয়। এটি নিম্নলিখিত উপাদানগুলোর উপর নির্ভর করে:

  • মডেল: মিথুন।
  • ডেটা ও কার্যক্রম: গুগল ওয়ার্কস্পেসের (ক্যালেন্ডার, জিমেইল, ড্রাইভ) জন্য ভার্টেক্স এআই ডেটা স্টোর, গুগল-পরিচালিত ভার্টেক্স এআই সার্চ মডেল কনটেক্সট প্রোটোকল (এমসিপি) সার্ভার, গুগল চ্যাট মেসেজ পাঠানোর জন্য কাস্টম টুল ফাংশন (গুগল চ্যাট এপিআই-এর মাধ্যমে)।
  • এজেন্ট তৈরির সরঞ্জাম: এজেন্ট ডেভেলপমেন্ট কিট (ADK)।
  • এজেন্ট হোস্ট: ভার্টেক্স এআই এজেন্ট ইঞ্জিন।
  • ইউজার ইন্টারফেস: চ্যাট এবং জিমেইলের জন্য গুগল ওয়ার্কস্পেস অ্যাড-অন (সহজেই ক্যালেন্ডার, ড্রাইভ, ডক্স, শিটস এবং স্লাইডস পর্যন্ত সম্প্রসারণযোগ্য)।
  • গুগল ওয়ার্কস্পেস অ্যাড-অন: অ্যাপস স্ক্রিপ্ট, ভার্টেক্স এআই এজেন্ট ইঞ্জিন এপিআই, প্রাসঙ্গিক (নির্বাচিত জিমেইল বার্তা)।

172da43f310a0579.png

840b494aa5eaa1ef.png

আপনি যা শিখবেন

  • ভার্টেক্স এআই সার্চ এবং গুগল ওয়ার্কস্পেসের মধ্যকার ইন্টিগ্রেশন পয়েন্টগুলো, যা ডেটা এবং অ্যাকশন সক্ষম করে।
  • ভার্টেক্স এআই-তে হোস্ট করা কাস্টম এজেন্ট তৈরি করার বিকল্পসমূহ।
  • যে যে উপায়ে ব্যবহারকারীরা ভার্টেক্স এআই সার্চ ওয়েব উইজেট এবং গুগল ওয়ার্কস্পেস অ্যাপ্লিকেশনের মতো এজেন্টগুলো অ্যাক্সেস করতে পারেন।

২. স্থাপন করুন

সলিউশন তৈরি করার আগে, আমাদের প্রজেক্টের Vertex AI Applications সেটিংস ইনিশিয়ালাইজ করতে হবে, প্রয়োজনীয় API-গুলো এনাবল করতে হবে এবং Vertex AI Workspace ডেটা স্টোর তৈরি করতে হবে।

ধারণা পর্যালোচনা করুন

ভার্টেক্স এআই অ্যাপ্লিকেশন

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

ভার্টেক্স এআই ডেটা স্টোর

ভার্টেক্স এআই ডেটা স্টোর হলো এমন একটি সত্তা যা গুগল ওয়ার্কস্পেসের মতো ফার্স্ট-পার্টি ডেটা সোর্স অথবা জিরা বা শপিফাইয়ের মতো থার্ড-পার্টি অ্যাপ্লিকেশন থেকে গৃহীত ডেটা ধারণ করে। যে ডেটা স্টোরগুলো থার্ড-পার্টি অ্যাপ্লিকেশন থেকে ডেটা ধারণ করে, সেগুলোকে ডেটা কানেক্টরও বলা হয়।

ভার্টেক্স এআই অ্যাপ্লিকেশন সেটিংস শুরু করুন

এজেন্ট তৈরি সক্ষম করতে ভার্টেক্স এআই অ্যাপ্লিকেশন সেটিংস শুরু করুন।

একটি নতুন ট্যাবে গুগল ক্লাউড কনসোল খুলুন, তারপর এই ধাপগুলো অনুসরণ করুন:

  1. আপনার প্রকল্পটি নির্বাচন করুন।
  2. গুগল ক্লাউড সার্চ ফিল্ডে, এআই অ্যাপ্লিকেশন- এ যান।

  1. শর্তাবলী পর্যালোচনা করে তাতে সম্মত হওয়ার পর 'চালিয়ে যান'-এ ক্লিক করুন এবং এপিআইটি সক্রিয় করুন
  2. সেটিংসে যান।
  3. Authentication ট্যাবে, global সম্পাদনা করুন।

93b0cc6ed63fba0c.png

  1. Google Identity নির্বাচন করুন, তারপর Save-এ ক্লিক করুন।

5c01b4cbeebaa93b.png

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

Vertex AI Workspace ডেটা স্টোরগুলির জন্য API সক্রিয় করা প্রয়োজন:

  1. গুগল ক্লাউড কনসোলে ক্যালেন্ডার, জিমেইল এবং পিপল এপিআইগুলো সক্রিয় করুন:

3877dcaa56624d0b.png

  1. মেনু ☰ > এপিআই ও পরিষেবা > সক্রিয় এপিআই ও পরিষেবা- তে ক্লিক করুন এবং তারপরে নিশ্চিত করুন যে Google Calendar API , Gmail API , এবং People API তালিকায় রয়েছে।

ডেটা স্টোর তৈরি করুন

গুগল ড্রাইভ ডেটা স্টোর তৈরি করুন:

  1. গুগল ক্লাউড কনসোলে, AI Applications- এ যান, তারপর Data Stores- এ নেভিগেট করুন।

  1. ডেটা স্টোর তৈরি করতে ক্লিক করুন।
  2. Source- এ, Google Drive-এর অধীনে, Select-এ ক্লিক করুন।

6939363368bde36d.png

  1. Data- তে, All নির্বাচন করুন এবং Continue-তে ক্লিক করুন।

5044243322acec9e.png

  1. কনফিগারেশন- এ, ডেটা কানেক্টরের নামdrive হিসেবে সেট করুন এবং প্রযোজ্য চার্জগুলো পর্যালোচনা করে তাতে সম্মত হওয়ার পর ‘চালিয়ে যান’ (Continue) বোতামে ক্লিক করুন।

1f5deb1aeecee983.png

  1. প্রাইসিং- এ, আপনার পছন্দের প্রাইসিং মডেলটি নির্বাচন করুন এবং ক্রিয়েট-এ ক্লিক করুন। এই কোডল্যাবের প্রেক্ষাপটে জেনারেল প্রাইসিং ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।
  2. আপনাকে স্বয়ংক্রিয়ভাবে ডেটা স্টোর- এ পুনঃনির্দেশিত করা হবে, যেখানে আপনি নতুন যুক্ত হওয়া ডেটা স্টোরটি দেখতে পাবেন।

গুগল ক্যালেন্ডার ডেটা স্টোর তৈরি করুন:

  1. ডেটা স্টোর তৈরি করতে ক্লিক করুন।
  2. সোর্স- এ, গুগল ক্যালেন্ডার অনুসন্ধান করুন এবং সিলেক্ট-এ ক্লিক করুন।
  3. অ্যাকশন সেকশনে, স্কিপ-এ ক্লিক করুন।
  4. কনফিগারেশন বিভাগে, ডেটা কানেক্টরের নাম calendar হিসেবে সেট করুন।
  5. তৈরি করুন- এ ক্লিক করুন।
  6. আপনাকে স্বয়ংক্রিয়ভাবে ডেটা স্টোর- এ পুনঃনির্দেশিত করা হবে, যেখানে আপনি নতুন যুক্ত হওয়া ডেটা স্টোরটি দেখতে পাবেন।

গুগল জিমেইল ডেটা স্টোর তৈরি করুন:

  1. নতুন ডেটা স্টোরে ক্লিক করুন।
  2. সোর্স -এ Google Gmail অনুসন্ধান করুন এবং সিলেক্ট-এ ক্লিক করুন।
  3. অ্যাকশন সেকশনে, স্কিপ-এ ক্লিক করুন।
  4. কনফিগারেশন বিভাগে, ডেটা কানেক্টরের নাম gmail এ সেট করুন।
  5. তৈরি করুন- এ ক্লিক করুন।
  6. আপনাকে স্বয়ংক্রিয়ভাবে ডেটা স্টোর- এ পুনঃনির্দেশিত করা হবে, যেখানে আপনি নতুন যুক্ত হওয়া ডেটা স্টোরটি দেখতে পাবেন।

৩. ভার্টেক্স এআই সার্চ অ্যাপ

এই এজেন্টটি ব্যবহারকারীদের তাদের স্বাভাবিক ভাষায় ওয়ার্কস্পেসের জন্য ডেটা অনুসন্ধান করতে এবং বিভিন্ন পদক্ষেপ নিতে সাহায্য করে। এটি নিম্নলিখিত উপাদানগুলোর উপর নির্ভর করে:

  • মডেল: মিথুন।
  • ডেটা ও কার্যক্রম: গুগল ওয়ার্কস্পেস (ক্যালেন্ডার, জিমেইল, ড্রাইভ)-এর জন্য ভার্টেক্স এআই ডেটা স্টোর।
  • এজেন্ট হোস্ট: ভার্টেক্স এআই সার্চ।
  • UI: ভার্টেক্স এআই সার্চ ওয়েব উইজেট।

ধারণা পর্যালোচনা করুন

ভার্টেক্স এআই সার্চ অ্যাপ

একটি ভার্টেক্স এআই সার্চ অ্যাপ আপনার ব্যবহারকারীদের কাছে অনুসন্ধানের ফলাফল, অ্যাকশন এবং এজেন্ট সরবরাহ করে। এপিআই (API)-এর ক্ষেত্রে 'অ্যাপ' শব্দটি 'ইঞ্জিন' শব্দের পরিবর্তে ব্যবহার করা যেতে পারে। অনুসন্ধানের ফলাফল, উত্তর বা অ্যাকশন পরিবেশন করার জন্য কোনো ডেটা স্টোর থেকে ডেটা ব্যবহার করতে হলে, একটি অ্যাপকে অবশ্যই সেই ডেটা স্টোরের সাথে সংযুক্ত থাকতে হবে।

ভার্টেক্স এআই সার্চ ওয়েব উইজেট

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

ভার্টেক্স এআই সার্চ প্রিভিউ

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

সমাধান স্থাপত্য পর্যালোচনা করুন

1f337dc91da74391.png

অ্যাপ তৈরি করুন

আপনার ডেটা স্টোরগুলোকে স্থিতিশীল করতে একটি নতুন সার্চ অ্যাপ তৈরি করুন।

এআই অ্যাপ্লিকেশন > ক্লাউড কনসোল থেকে অ্যাপস খুলুন, তারপর এই ধাপগুলো অনুসরণ করুন:

  1. + অ্যাপ তৈরি করুন -এ ক্লিক করুন।
  2. Type- এর মধ্যে Custom search (general)- এর অধীনে Create-এ ক্লিক করুন।

9714a5fff49b5e1b.png

  1. মূল্য পর্যালোচনা করে তাতে সম্মত হওয়ার পর, কনফিগারেশন-এন্টারপ্রাইজ সংস্করণের বৈশিষ্ট্য এবং জেনারেটিভ রেসপন্স চেক করুন।
  2. অ্যাপের নাম ' codelab সেট করুন।
  3. নামের উপর ভিত্তি করে একটি আইডি তৈরি হয় এবং তা ফিল্ডের নিচে প্রদর্শিত হয়, সেটি কপি করুন।
  4. কোম্পানির নাম Codelab এ সেট করুন।
  5. মাল্টি-রিজিওন global (Global) এ সেট করুন।
  6. চালিয়ে যান-এ ক্লিক করুন।

327702cd837cbb18.png

  1. ডেটা- তে, ড্রাইভ , জিমেইল এবং ক্যালেন্ডার ডেটা স্টোরগুলো নির্বাচন করুন, তারপর 'চালিয়ে যান'-এ ক্লিক করুন।

5745607f3c43d5c0.png

  1. প্রাইসিং- এ, আপনার পছন্দের প্রাইসিং মডেলটি নির্বাচন করুন এবং ক্রিয়েট-এ ক্লিক করুন। এই কোডল্যাবের প্রেক্ষাপটে জেনারেল প্রাইসিং ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।
  2. অ্যাপটি তৈরি হয়ে গেলে আপনাকে স্বয়ংক্রিয়ভাবে এআই অ্যাপ্লিকেশন > অ্যাপস > কোডল্যাব > অ্যাপ ওভারভিউ- তে পুনঃনির্দেশিত করা হবে।
  3. সংযুক্ত ডেটা স্টোরগুলিতে যান।
  4. কয়েক মিনিট পর, সমস্ত সংযুক্ত ডেটা স্টোরের স্ট্যাটাস ' সক্রিয়' হয়ে যাবে।

d53ed9d9d1ced955.png

ওয়েব উইজেট কনফিগার করুন

সার্চ উইজেটের বাহ্যিক রূপ ও আচরণ নির্ধারণ করুন।

  1. কনফিগারেশন -এ যান।
  2. ট্যাব UI- তে, সার্চ টাইপটি ‘ সার্চ উইথ ফলো-আপস’ -এ সেট করুন, তারপর ‘সেভ অ্যান্ড পাবলিশ’-এ ক্লিক করুন।

af1ca3bd78e1cb4f.png

অ্যাপটি ব্যবহার করে দেখুন

সরাসরি গুগল ক্লাউড কনসোলে সার্চ অ্যাপটি পরীক্ষা করুন।

  1. প্রিভিউ -তে যান, ওয়েব উইজেটটি প্রদর্শিত হবে।
  2. চ্যাটে “ Do I have any meetings today? টাইপ করুন এবং enter চাপুন।
  3. চ্যাটে, Did I receive an email on March 1st 2026? টাইপ করুন এবং enter চাপুন।
  4. চ্যাটে, Give me the title of the latest Drive file I created টাইপ করুন এবং enter চাপুন।

d276ff8e2b9d0ddf.png

৪. কাস্টম এজেন্ট

এই এজেন্টটি ব্যবহারকারীদের নিজস্ব টুল ও নিয়ম ব্যবহার করে তাদের স্বাভাবিক ভাষায় ওয়ার্কস্পেসের জন্য ডেটা অনুসন্ধান করতে এবং বিভিন্ন পদক্ষেপ নিতে সাহায্য করে। এটি নিম্নলিখিত উপাদানগুলোর উপর নির্ভর করে:

  • মডেল: মিথুন।
  • ডেটা ও কার্যক্রম: গুগল ওয়ার্কস্পেসের (ক্যালেন্ডার, জিমেইল, ড্রাইভ) জন্য ভার্টেক্স এআই ডেটা স্টোর, গুগল-পরিচালিত ভার্টেক্স এআই সার্চ মডেল কনটেক্সট প্রোটোকল (এমসিপি) সার্ভার, গুগল চ্যাট মেসেজ পাঠানোর জন্য কাস্টম টুল ফাংশন (গুগল চ্যাট এপিআই-এর মাধ্যমে)।
  • এজেন্ট তৈরির সরঞ্জাম: এজেন্ট ডেভেলপমেন্ট কিট (ADK)।
  • এজেন্ট হোস্ট: ভার্টেক্স এআই এজেন্ট ইঞ্জিন।
  • UI: ADK Web.

ধারণা পর্যালোচনা করুন

এজেন্ট ডেভেলপমেন্ট কিট (ADK)

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

মডেল প্রসঙ্গ প্রোটোকল (MCP)

মডেল কনটেক্সট প্রোটোকল (MCP) হলো একটি উন্মুক্ত স্ট্যান্ডার্ড, যা একটি সার্বজনীন, 'প্লাগ-এন্ড-প্লে' ইন্টারফেসের মাধ্যমে এআই অ্যাপ্লিকেশন এবং বিভিন্ন ডেটা উৎস বা টুলের মধ্যে নির্বিঘ্ন ও নিরাপদ সংযোগ স্থাপনের জন্য ডিজাইন করা হয়েছে।

ফাংশন টুল

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

ADK ওয়েব

ADK ওয়েব হলো ADK SDK-এর সাথে আসা একটি বিল্ট-ইন ডেভ UI, যা ডেভেলপমেন্ট এবং ডিবাগিং আরও সহজ করে তোলে।

সমাধান স্থাপত্য পর্যালোচনা করুন

f14251cca6a19b1f.png

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

agent.py

নিম্নলিখিত কোডটি ভার্টেক্স এআই-এর সাথে প্রমাণীকরণ করে, ভার্টেক্স এআই সার্চ এমসিপি এবং চ্যাট এপিআই টুলগুলো চালু করে, এবং এজেন্টের আচরণ নির্ধারণ করে।

  1. প্রমাণীকরণ : এটি MCP এবং API কলগুলোকে প্রমাণীকরণের জন্য এনভায়রনমেন্ট ভেরিয়েবল থেকে ACCESS_TOKEN সংগ্রহ করে।
  2. টুলস সেটআপ : এটি vertexai_mcp (একটি টুলসেট যা Vertex AI Search Model Context Protocol (MCP) সার্ভারের সাথে সংযোগ স্থাপন করে) এবং send_direct_message টুলটিকে ইনিশিয়ালাইজ করে। এর ফলে এজেন্ট আপনার সংযুক্ত ডেটা স্টোরগুলোতে অনুসন্ধান করতে এবং গুগল চ্যাট বার্তা পাঠাতে সক্ষম হয়।
  3. এজেন্ট সংজ্ঞা : এটি gemini-2.5-flash মডেল ব্যবহার করে root_agent সংজ্ঞায়িত করে। নির্দেশাবলীতে এজেন্টকে তথ্য পুনরুদ্ধারের জন্য সার্চ টুল এবং বিভিন্ন কাজের জন্য send_direct_message টুল ব্যবহারে অগ্রাধিকার দিতে বলা হয়, যা কার্যকরভাবে এজেন্টকে আপনার এন্টারপ্রাইজ ডেটার সাথে সংযুক্ত করে।
...
MODEL = "gemini-2.5-flash"

# Access token for authentication
ACCESS_TOKEN = os.environ.get("ACCESS_TOKEN")
if not ACCESS_TOKEN:
    raise ValueError("ACCESS_TOKEN environment variable must be set")

VERTEXAI_SEARCH_TIMEOUT = 15.0

def get_project_id():
    """Fetches the consumer project ID from the environment natively."""
    _, project = google.auth.default()
    if project:
        return project
    raise Exception(f"Failed to resolve GCP Project ID from environment.")

def find_serving_config_path():
    """Dynamically finds the default serving config in the engine."""
    project_id = get_project_id()
    engines = discoveryengine_v1.EngineServiceClient().list_engines(
        parent=f"projects/{project_id}/locations/global/collections/default_collection"
    )
    for engine in engines:
        # engine.name natively contains the numeric Project Number
        return f"{engine.name}/servingConfigs/default_serving_config"
    raise Exception(f"No Discovery Engines found in project {project_id}")

def send_direct_message(email: str, message: str) -> dict:
    """Sends a Google Chat Direct Message (DM) to a specific user by email address."""
    chat_client = chat_v1.ChatServiceClient(
        credentials=Credentials(token=ACCESS_TOKEN)
    )

    # 1. Setup the DM space or find existing one
    person = chat_v1.User(
        name=f"users/{email}",
        type_=chat_v1.User.Type.HUMAN
    )
    membership = chat_v1.Membership(member=person)
    space_req = chat_v1.Space(space_type=chat_v1.Space.SpaceType.DIRECT_MESSAGE)
    setup_request = chat_v1.SetUpSpaceRequest(
        space=space_req,
        memberships=[membership]
    )
    space_response = chat_client.set_up_space(request=setup_request)
    space_name = space_response.name
    
    # 2. Send the message
    msg = chat_v1.Message(text=message)
    message_request = chat_v1.CreateMessageRequest(
        parent=space_name,
        message=msg
    )
    message_response = chat_client.create_message(request=message_request)
    
    return {"status": "success", "message_id": message_response.name, "space": space_name}

vertexai_mcp = McpToolset(
    connection_params=StreamableHTTPConnectionParams(
        url="https://discoveryengine.googleapis.com/mcp",
        timeout=VERTEXAI_SEARCH_TIMEOUT,
        sse_read_timeout=VERTEXAI_SEARCH_TIMEOUT,
        headers={"Authorization": f"Bearer {ACCESS_TOKEN}"}
    ),
    tool_filter=['search']
)

# Answer nicely the following user queries:
#  - Please find my meetings for today, I need their titles and links
#  - What is the latest Drive file I created?
#  - What is the latest Gmail message I received?
#  - Please send the following message to someone@example.com: Hello, this is a test message.

root_agent = LlmAgent(
    model=MODEL,
    name='enterprise_ai',
    instruction=f"""
        You are a helpful assistant that always uses the Vertex AI MCP search tool to answer the user's message, unless the user asks you to send a message to someone.
        If the user asks you to send a message to someone, use the send_direct_message tool to send the message.
        You MUST unconditionally use the Vertex AI MCP search tool to find answer, even if you believe you already know the answer or believe the Vertex AI MCP search tool does not contain the data.
        The Vertex AI MCP search tool accesses the user's data through datastores including Google Drive, Google Calendar, and Gmail.
        Only use the Vertex AI MCP search tool with servingConfig and query parameters, do not use any other parameters.
        Always use the servingConfig {find_serving_config_path()} while using the Vertex AI MCP search tool.
    """,
    tools=[vertexai_mcp, FunctionTool(send_direct_message)]
)

সোর্স কোড ডাউনলোড করুন

কাজ শুরু করতে নমুনা কোডটি আপনার স্থানীয় পরিবেশে ডাউনলোড করুন।

  1. এই গিটহাব রিপোজিটরিটি ডাউনলোড করুন।

  1. টার্মিনালে solutions/enterprise-ai-agent-local ডিরেক্টরিটি খুলুন।

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

সমাধানটির জন্য অতিরিক্ত এপিআই সক্রিয় করার প্রয়োজন হবে:

  1. Google Cloud কনসোলে Vertex AI, Cloud Resource Manager, এবং Google Chat API-গুলো সক্রিয় করুন:

60bae4065338c5bf.png

  1. মেনু ☰ > এপিআই ও পরিষেবা > সক্রিয় এপিআই ও পরিষেবা- তে ক্লিক করুন এবং তারপরে নিশ্চিত করুন যে Vertex AI API , Cloud Resource Manager API , এবং Google Chat API তালিকায় রয়েছে।

সমাধানটির জন্য একটি সম্মতি স্ক্রিন কনফিগারেশন প্রয়োজন:

  1. Google Cloud কনসোলে , মেনু ☰ > Google Auth প্ল্যাটফর্ম > ব্র্যান্ডিং- এ ক্লিক করুন।

  1. শুরু করতে ক্লিক করুন।
  2. অ্যাপ ইনফরমেশন-এর অধীনে, অ্যাপের নাম Codelab এ সেট করুন।
  3. ব্যবহারকারী সহায়তা ইমেল- এ, এমন একটি সহায়তা ইমেল ঠিকানা বেছে নিন যেখানে ব্যবহারকারীরা তাদের সম্মতি সম্পর্কে কোনো প্রশ্ন থাকলে আপনার সাথে যোগাযোগ করতে পারে।
  4. পরবর্তী ধাপে যান।
  5. Audience-এর অধীনে Internal নির্বাচন করুন।
  6. পরবর্তী ধাপে যান।
  7. যোগাযোগের তথ্যের অধীনে, একটি ইমেল ঠিকানা লিখুন যেখানে আপনার প্রকল্পের যেকোনো পরিবর্তন সম্পর্কে আপনাকে জানানো যাবে।
  8. পরবর্তী ধাপে যান।
  9. Finish-এর অধীনে, Google API Services ব্যবহারকারীর ডেটা নীতি পর্যালোচনা করুন এবং যদি আপনি সম্মত হন, তাহলে I agree to the Google API Services: User Data Policy নির্বাচন করুন।
  10. চালিয়ে যান-এ ক্লিক করুন, তারপর তৈরি করুন

bb53eeb45c51d301.png

  1. কনফিগারেশনটি সংরক্ষিত হয়ে গেলে আপনাকে স্বয়ংক্রিয়ভাবে Google Auth Platform > Overview- তে পুনঃনির্দেশিত করা হবে।

আরও জানতে, OAuth সম্মতি কনফিগার করার সম্পূর্ণ নির্দেশিকাটি দেখুন।

OAuth ক্লায়েন্ট ক্রেডেনশিয়াল তৈরি করুন

স্থানীয় পরিবেশে ব্যবহারকারীকে প্রমাণীকরণের জন্য একটি নতুন ডেস্কটপ অ্যাপ OAuth ক্লায়েন্ট তৈরি করুন:

  1. Google Cloud কনসোলে , মেনু ☰ > Google Auth প্ল্যাটফর্ম > ক্লায়েন্টস- এ ক্লিক করুন।

  1. ক্লায়েন্ট তৈরি করতে ক্লিক করুন।
  2. অ্যাপ্লিকেশন টাইপের জন্য ডেস্কটপ অ্যাপ নির্বাচন করুন।
  3. নামটি codelab হিসেবে সেট করুন।
  4. তৈরি করুন- এ ক্লিক করুন। নতুন তৈরি করা পরিচয়পত্রটি প্রদর্শিত হবে।
  5. Download JSON-এ ক্লিক করুন এবং ফাইলটি solutions/enterprise-ai-agent-local ডিরেক্টরিতে client_secret.json নামে সেভ করুন।

c1c9bc2f8c14dd6c.png

ভার্টেক্স এআই সার্চ এমসিপি সক্ষম করুন

  1. টার্মিনালে, নিম্নলিখিত কমান্ডটি চালান:
gcloud beta services mcp enable discoveryengine.googleapis.com \
     --project=$(gcloud config get-value project)

চ্যাট অ্যাপ কনফিগার করুন

গুগল চ্যাট অ্যাপটি এর প্রাথমিক তথ্য দিয়ে কনফিগার করুন।

  1. গুগল ক্লাউড কনসোলে , গুগল ক্লাউড সার্চ ফিল্ডে Google Chat API লিখে সার্চ করুন, Google Chat API-তে ক্লিক করুন, Manage-এ ক্লিক করুন এবং Configuration-এ ক্লিক করুন।

  1. অ্যাপের নামবিবরণ Vertex AI তে সেট করুন।
  2. অ্যাভাটার ইউআরএলটি https://developers.google.com/workspace/add-ons/images/quickstart-app-avatar.png -এ সেট করুন।
  3. প্রদর্শিত মোডাল ডায়ালগে ‘Enable Interactive features’ থেকে টিক চিহ্ন তুলে দিন, তারপর ‘Disable’-এ ক্লিক করুন।
  4. লগিং-এ ত্রুটি লগ করুন নির্বাচন করুন।
  5. সংরক্ষণ করুন- এ ক্লিক করুন।

952e7ebcb945f1b2.png

ADK ওয়েবে এজেন্ট চালান

ADK ওয়েব ইন্টারফেস ব্যবহার করে এজেন্টটিকে স্থানীয়ভাবে চালু করুন।

  1. টার্মিনালে solutions/enterprise-ai-agent-local ডিরেক্টরিটি খুলুন এবং তারপর নিম্নলিখিত কমান্ডটি চালান:
# 1. Authenticate with all the required scopes
gcloud auth application-default login \
  --client-id-file=client_secret.json \
   --scopes=https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/chat.spaces,https://www.googleapis.com/auth/chat.messages

# 2. Configure environment
export ACCESS_TOKEN=$(gcloud auth application-default print-access-token)
export GOOGLE_GENAI_USE_VERTEXAI=1
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value project)
export GOOGLE_CLOUD_LOCATION=us-central1

# 3. Create and activate a new virtual environment
python3 -m venv .venv
source .venv/bin/activate

# 4. Install poetry and project dependencies
pip install poetry
poetry install

# 5. Start ADK Web
adk web

95fc30883ce3d56f.png

এজেন্টকে চেষ্টা করুন

আপনার কাস্টম এজেন্টের সাথে চ্যাট করে কার্যপ্রবাহটি যাচাই করুন।

  1. আপনার ইন্টারনেট ব্রাউজারে ADK ওয়েবসাইটটি খুলুন।
  2. চ্যাটে টাইপ করুন, Please find my meetings for today, I need their titles and links এবং enter চাপুন।
  3. এজেন্ট ব্যবহারকারীর অ্যাকাউন্টের ওপর নির্ভর করে ক্যালেন্ডার ইভেন্টের একটি তালিকা দিয়ে উত্তর দেয়।
  4. চ্যাটে, Please send a Chat message to someone@example.com with the following text: Hello! টাইপ করুন এবং enter চাপুন।
  5. এজেন্ট একটি নিশ্চিতকরণ বার্তা দিয়ে উত্তর দেয়।

145f47f45332e6be.png

293ec4d3e2bb6a0.png

৫. গুগল ওয়ার্কস্পেস অ্যাড-অন হিসেবে এজেন্ট

এই এজেন্টটি ব্যবহারকারীদের ওয়ার্কস্পেস অ্যাপ UI-এর প্রেক্ষাপটে তাদের স্বাভাবিক ভাষায় ওয়ার্কস্পেসের ডেটা অনুসন্ধান করার সুযোগ দেয়। এটি নিম্নলিখিত উপাদানগুলোর উপর নির্ভর করে:

  • মডেল: মিথুন।
  • ডেটা ও কার্যক্রম: গুগল ওয়ার্কস্পেসের (ক্যালেন্ডার, জিমেইল, ড্রাইভ) জন্য ভার্টেক্স এআই ডেটা স্টোর, গুগল-পরিচালিত ভার্টেক্স এআই সার্চ মডেল কনটেক্সট প্রোটোকল (এমসিপি) সার্ভার, গুগল চ্যাট মেসেজ পাঠানোর জন্য কাস্টম টুল ফাংশন (গুগল চ্যাট এপিআই-এর মাধ্যমে)।
  • এজেন্ট তৈরির সরঞ্জাম: এজেন্ট ডেভেলপমেন্ট কিট (ADK)।
  • এজেন্ট হোস্ট: ভার্টেক্স এআই এজেন্ট ইঞ্জিন।
  • ইউজার ইন্টারফেস: চ্যাট এবং জিমেইলের জন্য গুগল ওয়ার্কস্পেস অ্যাড-অন (সহজেই ক্যালেন্ডার, ড্রাইভ, ডক্স, শিটস এবং স্লাইডস পর্যন্ত সম্প্রসারণযোগ্য)।
  • গুগল ওয়ার্কস্পেস অ্যাড-অন: অ্যাপস স্ক্রিপ্ট, ভার্টেক্স এআই এজেন্ট ইঞ্জিন এপিআই, প্রাসঙ্গিক (নির্বাচিত জিমেইল বার্তা)।

ধারণা পর্যালোচনা করুন

গুগল ওয়ার্কস্পেস অ্যাড অন

গুগল ওয়ার্কস্পেস অ্যাড-অন হলো একটি কাস্টমাইজড অ্যাপ্লিকেশন যা এক বা একাধিক গুগল ওয়ার্কস্পেস অ্যাপ্লিকেশনকে (জিমেইল, চ্যাট, ক্যালেন্ডার, ডক্স, ড্রাইভ, মিট, শিটস এবং স্লাইডস) সম্প্রসারিত করে।

অ্যাপস স্ক্রিপ্ট

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

গুগল ওয়ার্কস্পেস কার্ড ফ্রেমওয়ার্ক

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

সমাধান স্থাপত্য পর্যালোচনা করুন

f2fd048ba298f431.png

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

এজেন্ট

agent.py

নিম্নলিখিত কোডটি ভার্টেক্স এআই-এর সাথে প্রমাণীকরণ করে, ভার্টেক্স এআই সার্চ এমসিপি এবং চ্যাট এপিআই টুলগুলো চালু করে, এবং এজেন্টের আচরণ নির্ধারণ করে।

  1. প্রমাণীকরণ : এটি ক্লায়েন্ট কর্তৃক ইনজেক্ট করা প্রমাণীকরণ টোকেন ( CLIENT_AUTH_NAME ) পুনরুদ্ধার করতে _get_access_token_from_context একটি হেল্পার ফাংশন ব্যবহার করে। Vertex AI Search MCP এবং Google Chat টুলের মতো ডাউনস্ট্রিম পরিষেবাগুলিকে নিরাপদে কল করার জন্য এই টোকেনটি অত্যন্ত গুরুত্বপূর্ণ।
  2. টুলস সেটআপ : এটি vertexai_mcp (একটি টুলসেট যা Vertex AI Search Model Context Protocol (MCP) সার্ভারের সাথে সংযোগ স্থাপন করে) এবং send_direct_message টুলটিকে ইনিশিয়ালাইজ করে। এর ফলে এজেন্ট আপনার সংযুক্ত ডেটা স্টোরগুলোতে অনুসন্ধান করতে এবং গুগল চ্যাট বার্তা পাঠাতে সক্ষম হয়।
  3. এজেন্ট সংজ্ঞা : এটি gemini-2.5-flash মডেল ব্যবহার করে root_agent সংজ্ঞায়িত করে। নির্দেশাবলীতে এজেন্টকে তথ্য পুনরুদ্ধারের জন্য সার্চ টুল এবং বিভিন্ন কাজের জন্য send_direct_message টুল ব্যবহারে অগ্রাধিকার দিতে বলা হয়, যা কার্যকরভাবে এজেন্টকে আপনার এন্টারপ্রাইজ ডেটার সাথে সংযুক্ত করে।
...
MODEL = "gemini-2.5-flash"

# Client injects a bearer token into the ToolContext state.
# The key pattern is "CLIENT_AUTH_NAME_<random_digits>".
# We dynamically parse this token to authenticate our MCP and API calls.
CLIENT_AUTH_NAME = "enterprise-ai"

VERTEXAI_SEARCH_TIMEOUT = 15.0

def get_project_id():
    """Fetches the consumer project ID from the environment natively."""
    _, project = google.auth.default()
    if project:
        return project
    raise Exception(f"Failed to resolve GCP Project ID from environment.")

def find_serving_config_path():
    """Dynamically finds the default serving config in the engine."""
    project_id = get_project_id()
    engines = discoveryengine_v1.EngineServiceClient().list_engines(
        parent=f"projects/{project_id}/locations/global/collections/default_collection"
    )
    for engine in engines:
        # engine.name natively contains the numeric Project Number
        return f"{engine.name}/servingConfigs/default_serving_config"
    raise Exception(f"No Discovery Engines found in project {project_id}")

def _get_access_token_from_context(tool_context: ToolContext) -> str:
    """Helper method to dynamically parse the intercepted bearer token from the context state."""
    escaped_name = re.escape(CLIENT_AUTH_NAME)
    pattern = re.compile(fr"^{escaped_name}_\d+$")
    # Handle ADK varying state object types (Raw Dict vs ADK State)
    state_dict = tool_context.state.to_dict() if hasattr(tool_context.state, 'to_dict') else tool_context.state
    matching_keys = [k for k in state_dict.keys() if pattern.match(k)]
    if matching_keys:
        return state_dict.get(matching_keys[0])
    raise Exception(f"No bearer token found in ToolContext state matching pattern {pattern.pattern}")

def auth_header_provider(tool_context: ToolContext) -> dict[str, str]:
    token = _get_access_token_from_context(tool_context)
    return {"Authorization": f"Bearer {token}"}

def send_direct_message(email: str, message: str, tool_context: ToolContext) -> dict:
    """Sends a Google Chat Direct Message (DM) to a specific user by email address."""
    chat_client = chat_v1.ChatServiceClient(
        credentials=Credentials(token=_get_access_token_from_context(tool_context))
    )

    # 1. Setup the DM space or find existing one
    person = chat_v1.User(
        name=f"users/{email}",
        type_=chat_v1.User.Type.HUMAN
    )
    membership = chat_v1.Membership(member=person)
    space_req = chat_v1.Space(space_type=chat_v1.Space.SpaceType.DIRECT_MESSAGE)
    setup_request = chat_v1.SetUpSpaceRequest(
        space=space_req,
        memberships=[membership]
    )
    space_response = chat_client.set_up_space(request=setup_request)
    space_name = space_response.name
    
    # 2. Send the message
    msg = chat_v1.Message(text=message)
    message_request = chat_v1.CreateMessageRequest(
        parent=space_name,
        message=msg
    )
    message_response = chat_client.create_message(request=message_request)
    
    return {"status": "success", "message_id": message_response.name, "space": space_name}

vertexai_mcp = McpToolset(
    connection_params=StreamableHTTPConnectionParams(
        url="https://discoveryengine.googleapis.com/mcp",
        timeout=VERTEXAI_SEARCH_TIMEOUT,
        sse_read_timeout=VERTEXAI_SEARCH_TIMEOUT
    ),
    tool_filter=['search'],
    # The auth_header_provider dynamically injects the bearer token from the ToolContext
    # into the MCP call for authentication.
    header_provider=auth_header_provider
)

# Answer nicely the following user queries:
#  - Please find my meetings for today, I need their titles and links
#  - What is the latest Drive file I created?
#  - What is the latest Gmail message I received?
#  - Please send the following message to someone@example.com: Hello, this is a test message.

root_agent = LlmAgent(
    model=MODEL,
    name='enterprise_ai',
    instruction=f"""
        You are a helpful assistant that always uses the Vertex AI MCP search tool to answer the user's message, unless the user asks you to send a message to someone.
        If the user asks you to send a message to someone, use the send_direct_message tool to send the message.
        You MUST unconditionally use the Vertex AI MCP search tool to find answer, even if you believe you already know the answer or believe the Vertex AI MCP search tool does not contain the data.
        The Vertex AI MCP search tool accesses the user's data through datastores including Google Drive, Google Calendar, and Gmail.
        Only use the Vertex AI MCP search tool with servingConfig and query parameters, do not use any other parameters.
        Always use the servingConfig {find_serving_config_path()} while using the Vertex AI MCP search tool.
    """,
    tools=[vertexai_mcp, FunctionTool(send_direct_message)]
)

ক্লায়েন্ট

appsscript.json

নিম্নলিখিত কনফিগারেশনটি অ্যাড-অনটির ট্রিগার এবং অনুমতিসমূহ নির্ধারণ করে।

  1. অ্যাড-অনটির সংজ্ঞা দেয় : এটি ওয়ার্কস্পেসকে জানায় যে এই প্রজেক্টটি চ্যাট এবং জিমেইল উভয়ের জন্যই একটি অ্যাড-অন।
  2. প্রাসঙ্গিক ট্রিগার : জিমেইলের জন্য, এটি একটি contextualTrigger সেট আপ করে যা ব্যবহারকারী যখনই কোনো ইমেল বার্তা খোলে তখন onAddonEvent সক্রিয় করে। এটি অ্যাড-অনটিকে ইমেলের বিষয়বস্তু "দেখতে" সক্ষম করে।
  3. অনুমতিসমূহ : এটি অ্যাড-অনটি চালানোর জন্য প্রয়োজনীয় oauthScopes গুলির তালিকা দেয়, যেমন বর্তমান ইমেল পড়ার, স্ক্রিপ্ট চালানোর এবং বাহ্যিক পরিষেবাগুলির (যেমন Vertex AI API) সাথে সংযোগ করার অনুমতি।
...
"addOns": {
    "common": {
      "name": "Vertex AI",
      "logoUrl": "https://developers.google.com/workspace/add-ons/images/quickstart-app-avatar.png"
    },
    "chat": {},
    "gmail": {
      "contextualTriggers": [
        {
          "unconditional": {},
          "onTriggerFunction": "onAddonEvent"
        }
      ]
    }
  },
  "oauthScopes": [
   "https://www.googleapis.com/auth/script.external_request",
   "https://www.googleapis.com/auth/cloud-platform",
   "https://www.googleapis.com/auth/gmail.addons.execute",
   "https://www.googleapis.com/auth/gmail.addons.current.message.readonly"
 ]
...

চ্যাট.জিএস

নিম্নলিখিত কোডটি আগত গুগল চ্যাট বার্তাগুলি পরিচালনা করে।

  1. বার্তা গ্রহণ : onMessage ফাংশনটি হলো বার্তা আদান-প্রদানের প্রবেশদ্বার।
  2. কনটেক্সট পরিচালনা করে : এটি ব্যবহারকারীর প্রপার্টিতে space.name (চ্যাট স্পেসের আইডি) সংরক্ষণ করে। এর ফলে, এজেন্ট যখন উত্তর দেওয়ার জন্য প্রস্তুত হয়, তখন সে সঠিকভাবে জানতে পারে যে বার্তাটি কোন কথোপকথনে পোস্ট করতে হবে।
  3. এজেন্টের কাছে দায়িত্ব অর্পণ : এটি requestAgent কল করে এবং ব্যবহারকারীর বার্তাটি সেই মূল লজিকের কাছে পাঠিয়ে দেয় যা এপিআই (API) যোগাযোগ পরিচালনা করে।
...
// Service that handles Google Chat operations.

// Handle incoming Google Chat message events, actions will be taken via Google Chat API calls
function onMessage(event) {
  if (isInDebugMode()) {
    console.log(`MESSAGE event received (Chat): ${JSON.stringify(event)}`);
  }
  // Extract data from the event.
  const chatEvent = event.chat;
  setChatConfig(chatEvent.messagePayload.space.name);

  // Request AI agent to answer the message
  requestAgent(chatEvent.messagePayload.message);
  // Respond with an empty response to the Google Chat platform to acknowledge execution
  return null; 
}

// --- Utility functions ---

// The Chat direct message (DM) space associated with the user
const SPACE_NAME_PROPERTY = "DM_SPACE_NAME"

// Sets the Chat DM space name for subsequent operations.
function setChatConfig(spaceName) {
  const userProperties = PropertiesService.getUserProperties();
  userProperties.setProperty(SPACE_NAME_PROPERTY, spaceName);
  console.log(`Space is set to ${spaceName}`);
}

// Retrieved the Chat DM space name to sent messages to.
function getConfiguredChat() {
  const userProperties = PropertiesService.getUserProperties();
  return userProperties.getProperty(SPACE_NAME_PROPERTY);
}

// Finds the Chat DM space name between the Chat app and the given user.
function findChatAppDm(userName) {
  return Chat.Spaces.findDirectMessage(
    { 'name': userName },
    {'Authorization': `Bearer ${getAddonCredentials().getAccessToken()}`}
  ).name;
}

// Creates a Chat message in the configured space.
function createMessage(message) {
  const spaceName = getConfiguredChat();
  console.log(`Creating message in space ${spaceName}...`);
  return Chat.Spaces.Messages.create(
    message,
    spaceName,
    {},
    {'Authorization': `Bearer ${getAddonCredentials().getAccessToken()}`}
  ).name;
}

সাইডবার.জিএস

নিম্নলিখিত কোডটি জিমেইল সাইডবার তৈরি করে এবং ইমেইলের বিষয়বস্তু সংগ্রহ করে।

  1. UI তৈরি করে : createSidebarCard Workspace Card Service ব্যবহার করে ভিজ্যুয়াল ইন্টারফেসটি নির্মাণ করে। এটি একটি টেক্সট ইনপুট এরিয়া এবং একটি "Send message" বাটন সহ একটি সাধারণ লেআউট তৈরি করে।
  2. ইমেইলের প্রেক্ষাপট সংগ্রহ করে : handleSendMessage এ কোডটি পরীক্ষা করে দেখে যে ব্যবহারকারী বর্তমানে কোনো ইমেইল দেখছেন কিনা ( event.gmail.messageId )। যদি তিনি দেখে থাকেন, তবে এটি নিরাপদে ইমেইলটির বিষয় এবং মূল অংশ সংগ্রহ করে ব্যবহারকারীর প্রম্পটে যুক্ত করে দেয়।
  3. ফলাফল প্রদর্শন করে : এজেন্ট সাড়া দিলে, কোডটি উত্তরটি দেখানোর জন্য সাইডবার কার্ডটি আপডেট করে।
...
// Service that handles Gmail operations.

// Triggered when the user opens the Gmail Add-on or selects an email.
function onAddonEvent(event) {
  // If this was triggered by a button click, handle it
  if (event.parameters && event.parameters.action === 'send') {
    return handleSendMessage(event);
  }

  // Otherwise, just render the default initial sidebar
  return createSidebarCard();
}

// Creates the standard Gmail sidebar card consisting of a text input and send button.
// Optionally includes an answer section if a response was generated.
function createSidebarCard(optionalAnswerSection) {
  const card = CardService.newCardBuilder();
  const actionSection = CardService.newCardSection();

  // Create text input for the user's message
  const messageInput = CardService.newTextInput()
    .setFieldName("message")
    .setTitle("Message")
    .setMultiline(true);

  // Create action for sending the message
  const sendAction = CardService.newAction()
    .setFunctionName('onAddonEvent')
    .setParameters({ 'action': 'send' });

  const sendButton = CardService.newTextButton()
    .setText("Send message")
    .setTextButtonStyle(CardService.TextButtonStyle.FILLED)
    .setOnClickAction(sendAction);

  actionSection.addWidget(messageInput);
  actionSection.addWidget(CardService.newButtonSet().addButton(sendButton));

  card.addSection(actionSection);

  // Attach the response at the bottom if we have one
  if (optionalAnswerSection) {
    card.addSection(optionalAnswerSection);
  }

  return card.build();
}

// Handles clicks from the Send message button.
function handleSendMessage(event) {
  const commonEventObject = event.commonEventObject || {};
  const formInputs = commonEventObject.formInputs || {};
  const messageInput = formInputs.message;

  let userMessage = "";
  if (messageInput && messageInput.stringInputs && messageInput.stringInputs.value.length > 0) {
    userMessage = messageInput.stringInputs.value[0];
  }

  if (!userMessage || userMessage.trim().length === 0) {
    return CardService.newActionResponseBuilder()
      .setNotification(CardService.newNotification().setText("Please enter a message."))
      .build();
  }

  let finalQueryText = `USER MESSAGE TO ANSWER: ${userMessage}`;

  // If we have an email selected in Gmail, append its content as context
  if (event.gmail && event.gmail.messageId) {
    try {
      GmailApp.setCurrentMessageAccessToken(event.gmail.accessToken);
      const message = GmailApp.getMessageById(event.gmail.messageId);

      const subject = message.getSubject();
      const bodyText = message.getPlainBody() || message.getBody();

      finalQueryText += `\n\nEMAIL THE USER HAS OPENED ON SCREEN:\nSubject: ${subject}\nBody:\n---\n${bodyText}\n---`;
    } catch (e) {
      console.error("Could not fetch Gmail context: " + e);
      // Invalidate the token explicitly so the next prompt requests the missing scopes
      ScriptApp.invalidateAuth();

      CardService.newAuthorizationException()
        .setResourceDisplayName("Enterprise AI")
        .setAuthorizationUrl(ScriptApp.getAuthorizationUrl())
        .throwException();
    }
  }

  try {
    const response = queryAgent({ text: finalQueryText });

    // We leverage the 'showdown' library to parse the LLM's Markdown output into HTML
    // We also substitute markdown listings with arrows and adjust newlines for clearer rendering in the sidebar
    let displayedText = substituteListingsFromMarkdown(response.text);
    displayedText = new showdown.Converter().makeHtml(displayedText).replace(/\n/g, '\n\n');

    const textParagraph = CardService.newTextParagraph();
    textParagraph.setText(displayedText);

    const answerSection = CardService.newCardSection()
      .addWidget(textParagraph);

    const updatedCard = createSidebarCard(answerSection);

    return CardService.newActionResponseBuilder()
      .setNavigation(CardService.newNavigation().updateCard(updatedCard))
      .build();

  } catch (err) {
    return CardService.newActionResponseBuilder()
      .setNotification(CardService.newNotification().setText("Error fetching response: " + err.message))
      .build();
  }
}
...

এজেন্টহ্যান্ডলার.জিএস

নিম্নলিখিত কোডটি ভার্টেক্স এআই-তে এপিআই কলটি পরিচালনা করে।

  1. এপিআই কল পরিচালনা করে : queryAgent হলো আপনার অ্যাড-অন এবং Vertex AI Agent Engine-এর মধ্যেকার সংযোগকারী। এটি এমন একটি রিকোয়েস্ট তৈরি করে, যার স্টেটে ব্যবহারকারীর কোয়েরি এবং অথ টোকেন অন্তর্ভুক্ত থাকে।
  2. প্রতিক্রিয়া স্ট্রিম করে : যেহেতু এজেন্টের প্রতিক্রিয়া আসতে কিছুটা সময় লাগতে পারে, তাই এটি সার্ভার-সেন্ট ইভেন্টস (SSE) সহ streamQuery API) ব্যবহার করে। কোডটি প্রতিক্রিয়াটিকে খণ্ডে খণ্ডে সংগ্রহ করে এবং সম্পূর্ণ উত্তরটি পুনর্গঠন করে।
...
// Service that handles Vertex AI Agent operations.

// Submits a query to the AI agent and returns the response string synchronously
function queryAgent(input) {
 let systemPrompt = "SYSTEM PROMPT START Do not respond with tables but use bullet points instead." +
   " Do not ask the user follow-up questions or converse with them as history is not kept in this interface." +
   " SYSTEM PROMPT END\n\n";

 const requestPayload = {
   "class_method": "async_stream_query",
   "input": {
     "user_id": "vertex_ai_add_on",
     "message": { "role": "user", "parts": [{ "text": systemPrompt + input.text }] },
     "state_delta": {
       "enterprise-ai_999": `${ScriptApp.getOAuthToken()}`
     }
   }
 };

 const responseContentText = UrlFetchApp.fetch(
   `https://${getLocation()}-aiplatform.googleapis.com/v1/${getReasoningEngine()}:streamQuery?alt=sse`,
   {
     method: 'post',
     headers: { 'Authorization': `Bearer ${ScriptApp.getOAuthToken()}` },
     contentType: 'application/json',
     payload: JSON.stringify(requestPayload),
     muteHttpExceptions: true
   }
 ).getContentText();
  if (isInDebugMode()) {
   console.log(`Response: ${responseContentText}`);
 }

 const events = responseContentText.split('\n').map(s => s.replace(/^data:\s*/, '')).filter(s => s.trim().length > 0);
 console.log(`Received ${events.length} agent events.`);

 let author = "default";
 let answerText = "";
 for (const eventJson of events) {
   if (isInDebugMode()) {
     console.log("Event: " + eventJson);
   }
   const event = JSON.parse(eventJson);

   // Retrieve the agent responsible for generating the content
   author = event.author;
  
   // Ignore events that are not useful for the end-user
   if (!event.content) {
     console.log(`${author}: internal event`);
     continue;
   }

   // Handle text answers
   const parts = event.content.parts || [];
   const textPart = parts.find(p => p.text);
   if (textPart) {
     answerText += textPart.text;
   }
 }
 return { author: author, text: answerText };
}
...

ভার্টেক্স এআই এজেন্ট ইঞ্জিনে এজেন্ট স্থাপন করুন

  1. টার্মিনালে, পূর্ববর্তী ধাপে ডাউনলোড করা সোর্স থেকে solutions/enterprise-ai-agent ডিরেক্টরিটি খুলুন এবং তারপর নিম্নলিখিত কমান্ডটি চালান:
# 1. Create and activate a new virtual environment
deactivate
python3 -m venv .venv
source .venv/bin/activate

# 2. Install poetry and project dependencies
pip install poetry
poetry install

# 3. Deploy the agent
adk deploy agent_engine \
  --project=$(gcloud config get-value project) \
  --region=us-central1 \
  --display_name="Enterprise AI" \
  enterprise_ai

eafd2f9c4fbf305.png

  1. যখন আপনি লগ-এ "Deploying to agent engine..." লাইনটি দেখতে পাবেন, তখন একটি নতুন টার্মিনাল খুলুন এবং Vertex AI Reasoning Engine Service Agent- এ প্রয়োজনীয় অনুমতি যোগ করতে নিম্নলিখিত কমান্ডটি চালান:
# 1. Get the current Project ID
PROJECT_ID=$(gcloud config get-value project)

# 2. Extract the Project Number for that ID
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')

# 3. Construct the Service Account name
SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-aiplatform-re.iam.gserviceaccount.com"

# 4. Apply the IAM policy binding
gcloud projects add-iam-policy-binding $PROJECT_ID \
     --member="serviceAccount:$SERVICE_ACCOUNT" \
     --role="roles/discoveryengine.viewer"
  1. adk deploy কমান্ডটি সম্পূর্ণ হওয়া পর্যন্ত অপেক্ষা করুন, তারপর কমান্ড আউটপুটে সবুজ রঙে দেখানো নতুন ডেপ্লয় করা এজেন্টের রিসোর্স নামটি কপি করুন।

d098fe1347d6581b.png

পরিষেবা অ্যাকাউন্ট শুরু করুন

অ্যাড-অনটির সার্ভার-সাইড কার্যক্রম অনুমোদন করার জন্য একটি নির্দিষ্ট সার্ভিস অ্যাকাউন্ট তৈরি করুন।

গুগল ক্লাউড কনসোলে , এই ধাপগুলো অনুসরণ করুন:

  1. মেনু ☰ > আইএএম ও অ্যাডমিন > সার্ভিস অ্যাকাউন্টস > + সার্ভিস অ্যাকাউন্ট তৈরি করুন- এ ক্লিক করুন।

  1. সার্ভিস অ্যাকাউন্টের নাম vertexai-add-on এ সেট করুন।

46be0eb53f416c59.png

  1. ' সম্পন্ন' (Done) ক্লিক করুন। আপনাকে পরিষেবা অ্যাকাউন্ট পৃষ্ঠায় পুনঃনির্দেশিত করা হবে এবং আপনি আপনার তৈরি করা পরিষেবা অ্যাকাউন্টটি দেখতে পাবেন।

f002fef61c71ed8.png

  1. নতুন তৈরি করা সার্ভিস অ্যাকাউন্টটি নির্বাচন করুন, তারপর Keys ট্যাবে যান।
  2. Add key-তে ক্লিক করুন, তারপর Create new key-তে ক্লিক করুন।
  3. JSON নির্বাচন করুন, তারপর Create-এ ক্লিক করুন।

7b140535d9e1af44.png

  1. ডায়ালগটি বন্ধ হয়ে যায় এবং আপনার নতুন তৈরি করা পাবলিক/প্রাইভেট কী পেয়ারটি স্বয়ংক্রিয়ভাবে আপনার স্থানীয় পরিবেশে একটি JSON ফাইল হিসেবে ডাউনলোড হয়ে যায়।

অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি এবং কনফিগার করুন

অ্যাড-অন কোড হোস্ট করতে একটি নতুন অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি করুন এবং এর সংযোগ বৈশিষ্ট্যগুলো কনফিগার করুন।

  1. এন্টারপ্রাইজ এআই অ্যাড-অন অ্যাপস স্ক্রিপ্ট প্রজেক্টটি খুলতে নিচের বাটনটিতে ক্লিক করুন:

  1. ওভারভিউ-তে ক্লিক করুন > একটি অনুলিপি তৈরি করুন
  2. আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টে, স্ক্রিপ্ট প্রোপার্টি যোগ করতে প্রজেক্ট সেটিংস > স্ক্রিপ্ট প্রোপার্টি সম্পাদনা > স্ক্রিপ্ট প্রোপার্টি যোগ করুন -এ ক্লিক করুন।
  3. পূর্ববর্তী ধাপগুলিতে কপি করা Vertex AI এজেন্ট রিসোর্স নামটি REASONING_ENGINE_RESOURCE_NAME- এ সেট করুন। এটির গঠন নিম্নরূপ:
projects/<PROJECT_NUMBER>/locations/us-central1/reasoningEngines/<AGENT_ID>
  1. পূর্ববর্তী ধাপে ডাউনলোড করা সার্ভিস অ্যাকাউন্ট ফাইল থেকে প্রাপ্ত JSON কী-টি দিয়ে APP_SERVICE_ACCOUNT_KEY সেট করুন।
  2. স্ক্রিপ্ট প্রোপার্টি সংরক্ষণ করতে ক্লিক করুন

জিমেইল এবং চ্যাটে স্থাপন করুন

অ্যাড-অনটি সরাসরি Gmail এবং Google Chat-এর মধ্যে পরীক্ষা করার জন্য স্থাপন করুন।

আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টে এই ধাপগুলো অনুসরণ করুন:

  1. Deploy > Test deployments-এ ক্লিক করুন, তারপর Install-এ ক্লিক করুন। এটি এখন Gmail-এ উপলব্ধ।
  2. হেড ডিপ্লয়মেন্ট আইডি- এর অধীনে কপি-তে ক্লিক করুন।

b0cba69eef271850.png

গুগল ক্লাউড কনসোলে , এই ধাপগুলো অনুসরণ করুন:

  1. গুগল ক্লাউড সার্চ ফিল্ডে Google Chat API অনুসন্ধান করুন, Google Chat API-তে ক্লিক করুন, Manage-এ ক্লিক করুন এবং Configuration-এ ক্লিক করুন।

  1. ইন্টারেক্টিভ বৈশিষ্ট্যগুলি সক্ষম করুন নির্বাচন করুন।
  2. স্পেস এবং গ্রুপ কথোপকথনে যোগদান করার বিকল্পটি অনির্বাচিত করুন।
  3. সংযোগ সেটিংস-এর অধীনে, অ্যাপস স্ক্রিপ্ট নির্বাচন করুন।
  4. পূর্ববর্তী ধাপগুলিতে কপি করা হেড ডিপ্লয়মেন্ট আইডি -তে ডিপ্লয়মেন্ট আইডি সেট করুন।
  5. ‘Visibility’-এর অধীনে, ‘Make this Chat app available to specific people and groups in Your Workspace Domain’ নির্বাচন করুন এবং আপনার ইমেল ঠিকানা লিখুন।
  6. সংরক্ষণ করুন- এ ক্লিক করুন।

6ea187ccb90a0e49.png

অ্যাড অন ব্যবহার করে দেখুন

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

একটি নতুন ট্যাবে গুগল চ্যাট খুলুন, তারপর এই ধাপগুলো অনুসরণ করুন:

  1. Vertex AI চ্যাট অ্যাপের মাধ্যমে একটি সরাসরি মেসেজ স্পেস খুলুন।

495632314dec5a5d.png

  1. কনফিগার-এ ক্লিক করুন এবং প্রমাণীকরণ প্রক্রিয়াটি অনুসরণ করুন।
  2. What are my meetings for today? টাইপ করুন এবং enter চাপুন। Vertex AI Chat অ্যাপটি ফলাফলসহ উত্তর দেবে।

172da43f310a0579.png

নতুন ট্যাবে Gmail খুলুন, তারপর এই ধাপগুলো অনুসরণ করুন:

  1. নিজেকে একটি ইমেল পাঠান, যার সাবজেক্ট হবে We need to talk এবং বডিতে লিখবেন ‘ Are you available today between 8 and 9 AM?
  2. নতুন প্রাপ্ত ইমেল বার্তাটি খুলুন।
  3. সাইডবারে থাকা Vertex AI অ্যাড-অনটি খুলুন।
  4. বার্তাটি Do I have any meeting conflicts? -এ সেট করুন।
  5. বার্তা পাঠান- এ ক্লিক করুন।
  6. বাটনটির পরে উত্তরটি প্রদর্শিত হয়।

840b494aa5eaa1ef.png

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

গুগল ক্লাউড প্রজেক্টটি মুছে ফেলুন

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

গুগল ক্লাউড কনসোলে , এই ধাপগুলো অনুসরণ করুন:

  1. মেনু ☰ > আইএএম ও অ্যাডমিন > সেটিংস-এ ক্লিক করুন।

  1. শাট ডাউন-এ ক্লিক করুন।
  2. প্রজেক্ট আইডিটি প্রবেশ করান।
  3. যাইহোক, শাট ডাউন-এ ক্লিক করুন।

3b9492d97f771b2c.png

৭. অভিনন্দন

অভিনন্দন! আপনি এমন সমাধান তৈরি করেছেন যা কর্মীদের জন্য ভার্টেক্স এআই এবং গুগল ওয়ার্কস্পেসকে আরও কাছাকাছি আনার শক্তিকে কাজে লাগায়!

এরপর কী?

এই কোডল্যাবে আমরা কেবল সবচেয়ে প্রচলিত ব্যবহারের ক্ষেত্রগুলোই তুলে ধরেছি, কিন্তু আপনার সমাধানে বিবেচনা করার মতো আরও অনেক সম্প্রসারণের ক্ষেত্র রয়েছে, যেমন—নিম্নলিখিতগুলো:

  • Gemini CLI এবং Antigravity-এর মতো AI-চালিত ডেভেলপার টুল ব্যবহার করুন।
  • অন্যান্য এজেন্ট ফ্রেমওয়ার্ক ও টুল, যেমন কাস্টম এমসিপি, কাস্টম ফাংশন কল এবং জেনারেটিভ ইউআই-এর সাথে সমন্বিত করুন।
  • ভার্টেক্স এআই-এর মতো ডেডিকেটেড প্ল্যাটফর্মে হোস্ট করা কাস্টমস সহ অন্যান্য এআই মডেলের সাথে একীভূত করুন।
  • Dialogflow-এর মতো ডেডিকেটেড প্ল্যাটফর্মে অথবা ক্লাউড মার্কেটপ্লেসের মাধ্যমে তৃতীয় পক্ষের দ্বারা হোস্ট করা অন্যান্য এজেন্টের সাথে ইন্টিগ্রেট করুন।
  • দল, সংস্থা বা সাধারণ ব্যবহারকারীদের ক্ষমতায়ন করতে ক্লাউড মার্কেটপ্লেসে এজেন্ট প্রকাশ করুন।

আরও জানুন

ডেভেলপারদের জন্য প্রচুর রিসোর্স উপলব্ধ আছে, যেমন ইউটিউব ভিডিও, ডকুমেন্টেশন ওয়েবসাইট, কোড স্যাম্পল এবং টিউটোরিয়াল: