Google Chat অ্যাপে মৌলিক AI ধারণাগুলিকে একীভূত করুন

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

AI সহ গুগল চ্যাট অ্যাপগুলি কী কী?

AI সহ Google Chat অ্যাপগুলি নিম্নলিখিত কাজগুলি করে:

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

গুগল চ্যাট অ্যাপগুলিকে এআই-এর সাথে কেন একীভূত করবেন?

সাধারণ ব্যবহারের ক্ষেত্রে নিম্নলিখিত বিভাগগুলি অন্তর্ভুক্ত:

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

গুগল চ্যাটের পরিচিত ইন্টারফেসের মধ্যে এই ক্ষমতাগুলি সরাসরি একীভূত করার ক্ষমতা তাদের ব্যবহারকারীদের অভিজ্ঞতা এবং উৎপাদনশীলতা উন্নত করতে চান এমন যে কারও জন্য একটি বিশাল সুযোগ।

পূর্বশর্ত

তুমি কী তৈরি করবে

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

2f1e2c66f6e2e2f0.png সম্পর্কে

এটি নিম্নরূপ কাজ করে:

  1. একজন ব্যবহারকারী Google Chat-এ একটি বার্তা একটি চ্যাট অ্যাপে পাঠান, হয় সরাসরি বার্তা হিসেবে অথবা চ্যাট স্পেসে।
  2. একটি HTTP অনুরোধ একটি Node.js Google Cloud Run ফাংশন হিসেবে চলমান ওয়েব সার্ভারে পাঠানো হয় যাতে চ্যাট অ্যাপ লজিক থাকে।
  3. ঐচ্ছিকভাবে, চ্যাট অ্যাপ লজিকটি Google Workspace পরিষেবা (যেমন ক্যালেন্ডার এবং শীট), অন্যান্য Google পরিষেবা (যেমন মানচিত্র, ইউটিউব এবং ভার্টেক্স এআই), অথবা অন্যান্য ওয়েব পরিষেবা (যেমন একটি প্রকল্প ব্যবস্থাপনা সিস্টেম বা টিকিটিং টুল) এর সাথে একীভূত হতে পারে।
  4. ওয়েব সার্ভার চ্যাটে চ্যাট অ্যাপ পরিষেবাতে একটি HTTP প্রতিক্রিয়া পাঠায়।
  5. প্রতিক্রিয়া ব্যবহারকারীর কাছে পৌঁছে দেওয়া হয়।
  6. ঐচ্ছিকভাবে, চ্যাট অ্যাপটি অ্যাসিঙ্ক্রোনাসভাবে বার্তা পোস্ট করতে বা অন্যান্য ক্রিয়াকলাপ সম্পাদন করতে চ্যাট API কল করতে পারে।

প্রতিটি Google Chat অ্যাপের Node.js Google Cloud Run ফাংশনে নিম্নলিখিত সোর্স ফাইলগুলির নিজস্ব সংস্করণ থাকে যাতে উপরের ধাপ #3 এবং #6-এ প্রয়োজনীয় পদক্ষেপ নেওয়া যায়:

  • package.json : একটি কেন্দ্রীয় ম্যানিফেস্ট যা Node.js প্রকল্পের জন্য একটি নীলনকশা হিসেবে কাজ করে। এটি মেটাডেটা, নির্ভরতা এবং স্ক্রিপ্টগুলি সংজ্ঞায়িত করতে ব্যবহৃত হয়।
  • env.js : একটি স্ক্রিপ্ট যা কার্যকর করার জন্য প্রয়োজনীয় ধ্রুবক সেট করে। এটি পরিবেশ এবং কনফিগারেশনের উপর ভিত্তি করে সম্পাদনা করা উচিত।
  • index.js: গুগল চ্যাট ইন্টারঅ্যাকশন ইভেন্টের লজিক পরিচালনা করে এমন প্রধান স্ক্রিপ্ট। এই কোডল্যাবে শুধুমাত্র মেসেজ ইভেন্ট টাইপ প্রয়োগ করা হয়েছে তবে বাস্তব জীবনের অ্যাপ্লিকেশনগুলিতে এটি সাধারণত কার্ড ক্লিক, স্ল্যাশ কমান্ড এবং ডায়ালগের মতো অন্যান্য ধরণের অন্তর্ভুক্ত করবে।

প্রম্পট অ্যাপ

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

5975b36968ab597a.gif সম্পর্কে

অ্যাপ ফর্ম্যাট করুন

এই অ্যাপটি Prompt app উপর ভিত্তি করে তৈরি, যা গুগল চ্যাট বার্তার নির্দিষ্ট টেক্সট ফর্ম্যাটের সাথে সঙ্গতিপূর্ণ রিচ টেক্সট উত্তরের জন্য সমর্থন যোগ করে।

অনুসরণ

গ্রাউন্ড অ্যাপ

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

অনুসরণ

MCP অ্যাপ

এই অ্যাপটি Google Workspace ডেভেলপার অ্যাসিস্ট মডেল কনটেক্সট প্রোটোকল (MCP)- এর জন্য সমর্থন যোগ করে Format app উপর ভিত্তি করে তৈরি।

8219c29366e9120e.gif সম্পর্কে

মাল্টি-টার্ন অ্যাপ

এই অ্যাপটি গুগল ক্লাউড ফায়ারস্টোর ডাটাবেসের সাথে কথোপকথনমূলক মেমোরির জন্য সমর্থন যোগ করে Format app উপর ভিত্তি করে তৈরি।

অনুসরণ

কাস্টম টুল অ্যাপ

এই অ্যাপটি Multi-turn app উপর ভিত্তি করে তৈরি করা হয়েছে, একটি ফাংশন কলিং কাস্টম টুলের জন্য সমর্থন যোগ করে যা ব্যবহারকারীর প্রদত্ত তথ্যের উপর ভিত্তি করে Google Workspace Calendar API কল করে।

অনুসরণ

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

এই অ্যাপটি ব্যবহারকারীদের দ্বারা প্রদত্ত থিমগুলির উপর ভিত্তি করে ছোট গল্প তৈরি করতে একটি জেমিনি মডেলের উপর নির্ভর করে। অগ্রগতির সাথে সাথে বার্তাগুলিতে ফলাফল এবং স্ট্যাটাস পাঠানোর জন্য Google Chat API ব্যবহার করা হয়।

অনুসরণ

মাল্টিমোডাল অ্যাপ

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

অনুসরণ

তুমি কি শিখবে

  • মৌলিক AI ধারণাগুলি Google Chat অ্যাপগুলির সাথে প্রাসঙ্গিক এবং সেগুলি কীভাবে প্রয়োগ করতে হয়।
  • Google Gen AI SDK ব্যবহার করে Vertex AI অ্যাক্সেস করতে।
  • আনন্দদায়ক এবং শক্তিশালী বৈশিষ্ট্যগুলি বিকাশের জন্য Google Workspace API ব্যবহার করা।
  • স্কেলেবল গুগল চ্যাট অ্যাপ তৈরি করতে ক্লাউড রান ব্যবহার করা।

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

  • Node.js দিয়ে দ্রুত শুরু করে একটি HTTP Google Chat অ্যাপ তৈরির কাজ সম্পন্ন করা। এই কোডল্যাবটি Google Cloud প্রকল্প, Google Chat অ্যাপ এবং Google Cloud Run ফাংশনের উপর ভিত্তি করে তৈরি।

2. সেট আপ করুন

রিসোর্স শুরু করুন এবং অ্যাক্সেস করুন

এই বিভাগে, আপনি আপনার পছন্দের ওয়েব ব্রাউজার থেকে নিম্নলিখিত সংস্থানগুলি অ্যাক্সেস এবং কনফিগার করতে পারবেন।

গুগল চ্যাট এপিআই কনফিগারেশন

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

  1. আপনার প্রকল্পটি নির্বাচন করুন।
  2. গুগল ক্লাউড অনুসন্ধান ক্ষেত্রে, "গুগল চ্যাট API" অনুসন্ধান করুন, তারপর গুগল চ্যাট API এ ক্লিক করুন, পরিচালনা করুন এ ক্লিক করুন এবং কনফিগারেশন এ ক্লিক করুন।

  1. অ্যাপের নাম এবং বর্ণনা Gen AI App সেট করুন।
  2. সংরক্ষণ করুন ক্লিক করুন।

9a06649cf9285b99.png সম্পর্কে

গুগল চ্যাট স্পেস

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

  1. যদি ইতিমধ্যেই করা না থাকে, তাহলে চ্যাট অ্যাপের মাধ্যমে একটি সরাসরি বার্তা স্থান খুলুন।
  2. Hello টাইপ করুন এবং enter টিপুন, চ্যাট অ্যাপটি আপনার নাম এবং অবতারের ছবি সহ উত্তর দেবে।

অনুসরণ

গুগল ক্লাউড রান ফাংশন পরিষেবা

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

  1. আপনার প্রকল্পটি নির্বাচন করুন।
  2. মেনু ☰ > ক্লাউড রান > পরিষেবাগুলিতে ক্লিক করুন।

  1. পরিষেবার তালিকায়, addonchatapp এ ক্লিক করুন, তারপর Source ট্যাবটি খুলুন।

b69df34ea0dc48a5.png সম্পর্কে

স্থানীয়ভাবে সোর্স কোড এবং রিসোর্স ডাউনলোড করুন

  1. এই GitHub সংগ্রহস্থলটি ডাউনলোড করুন।

  1. আপনার পছন্দের স্থানীয় ডেভেলপমেন্ট পরিবেশে, node/chat/gen-ai-apps ডিরেক্টরিটি খুলুন।

3c57c15db4ebfddb.png সম্পর্কে

৩. প্রম্পট অ্যাপ

এই অ্যাপটি Vertex AI-তে Gemini-কে ব্যবহারকারীদের সাথে তাদের স্বাভাবিক ভাষায় সংক্ষিপ্ত এবং সরল টেক্সট উত্তর ব্যবহার করে কথোপকথন করতে উৎসাহিত করে। Node.js-এর জন্য এই বাস্তবায়ন Google Gen AI SDK-এর উপর নির্ভর করে।

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

স্বাভাবিক ভাষা

কৃত্রিম বা কম্পিউটার-ভিত্তিক ভাষার বিপরীতে, দৈনন্দিন যোগাযোগের জন্য মানুষের দ্বারা কথিত বা লিখিত যেকোনো ভাষা।

ক্লাউড রান ফাংশন

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

প্ররোচনা

প্রম্পটিং বলতে একটি জেনারেটিভ এআই মডেলকে কাঙ্ক্ষিত আউটপুট তৈরির জন্য নির্দেশিকা প্রদানের জন্য ইনপুট (প্রম্পট) তৈরির কৌশলকে বোঝায়। এতে সাধারণত সাবধানে প্রশ্ন তৈরি করা, প্রসঙ্গ প্রদান করা, নির্দেশনা দেওয়া, অথবা মডেল থেকে নির্দিষ্ট এবং প্রাসঙ্গিক প্রতিক্রিয়া পাওয়ার জন্য উদাহরণ দেওয়া জড়িত।

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

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

c9e9c7a1945b22ac.png সম্পর্কে

মিথুন রাশি

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

গুগল জেনারেল এআই এসডিকে

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

পর্যালোচনা প্রবাহ

c625fdcc8b4a27f4.png সম্পর্কে

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

env.js সম্পর্কে

...
// Replace with your GCP project ID.
projectID: process.env.PROJECT_ID || 'your-google-cloud-project-id',

// Replace with your GCP project location.
location: process.env.LOCATION || 'your-google-cloud-project-location',

// Replace with the Gemini model to use.
model: process.env.MODEL || 'gemini-2.5-flash-lite',
...

ইনডেক্স.জেএস

// Import the Google Gen AI SDK.
import { GoogleGenAI } from '@google/genai';
...
// Use Vertex AI.
const genAI = new GoogleGenAI({vertexai: true, project: env.projectID, location: env.location});

http('gen-ai-app', async (req, res) => {
 // Send a new Chat message with the generated answer
 return res.send({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
   text: await generateAnswer(req.body.chat.messagePayload.message.text)
 }}}}});
});

async function generateAnswer(message) {
 // The prompt is made of the user's message and specific instructions for the model.
 const prompt = 'In a consice and with plain text only (no formatting), '
                 + 'answer the following message in the same language: ' + message;
 const aiResponse = await genAI.models.generateContent({model: env.model, contents: prompt});
 return aiResponse.candidates[0].content.parts[0].text;
};
...

প্যাকেজ.জেসন

...
"main": "index.js",
"type": "module",
"scripts": {
  "start": "node index.js"
},
"dependencies": {
  "@google-cloud/functions-framework": "^4.0.0",
  "@google/genai": "1.15.0"
},
...

Vertex AI API সক্ষম করুন

  1. গুগল ক্লাউড কনসোলে , Vertex AI API সক্ষম করুন:

  1. মেনু ☰ > APIs & Services > Enabled APIs & Services- এ ক্লিক করুন এবং তারপর নিশ্চিত করুন যে Vertex AI API তালিকায় আছে।

গুগল ক্লাউড রান নোড.জেএস ফাংশন আপডেট করুন

  1. আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশে, বর্তমান ডিরেক্টরিটি node/chat/gen-ai-apps/1-prompt এ পরিবর্তন করুন। এতে সম্পূর্ণ সোর্স কোড এবং রিসোর্স রয়েছে।
  2. একটি এডিটরে env.js খুলুন এবং নিম্নলিখিতগুলি সেট করুন:
  3. projectID : আপনার Google Cloud Project এর ID। এটি Google Cloud console এর স্বাগত পৃষ্ঠা থেকে পুনরুদ্ধার করা যেতে পারে।

  1. অবস্থান : আপনার গুগল ক্লাউড রান ফাংশন সার্ভিসের অঞ্চল। এটি গুগল ক্লাউড রান ফাংশন সার্ভিসের বিবরণ পৃষ্ঠা থেকে পুনরুদ্ধার করা যেতে পারে।

  1. মডেল : ব্যবহারের জন্য মডেল। আপনি Vertex AI ডকুমেন্টেশন থেকে সমস্ত উপলব্ধ মডেল খুঁজে পেতে পারেন। দ্রুত এবং সস্তা কার্যকরকরণের জন্য ডিফল্টভাবে সেট করা মডেলটি হল Flash।

6c2fb9f554f53a4a.png সম্পর্কে

  1. গুগল ক্লাউড রান ফাংশন সার্ভিসের বিবরণ পৃষ্ঠার সোর্স ট্যাবে যান।

  1. উৎস সম্পাদনা করুন ক্লিক করুন।
  2. ফাংশন এন্ট্রি পয়েন্ট gen-ai-app এ সেট করুন।
  3. অনুপস্থিত সোর্স ফাইলটি তৈরি করতে ➕ এ ক্লিক করুন, env.js টাইপ করুন এবং ✔️ এ ক্লিক করুন।
  4. index.js , env.js , এবং package.json ফাইলের সম্পূর্ণ বিষয়বস্তু আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশের বিষয়বস্তু দিয়ে প্রতিস্থাপন করুন।
  5. সংরক্ষণ করুন এবং পুনরায় স্থাপন করুন এ ক্লিক করুন।
  6. সংশোধন স্থাপনের সফল সমাপ্তির জন্য অপেক্ষা করুন।

487b64f2d3b1a104.png সম্পর্কে

চেষ্টা করে দেখুন

  1. গুগল চ্যাটে চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, Hello, how are you? টাইপ করুন এবং enter টিপুন। প্রম্পটে আমাদের নির্দেশাবলী অনুসারে অ্যাপটি সরল টেক্সটে সংক্ষিপ্তভাবে উত্তর দেবে।

3cc1fd1de2a9e239.png সম্পর্কে

  1. গুগল চ্যাটে চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, Bonjour comment allez-vous? টাইপ করুন এবং enter টিপুন। প্রম্পটে আমাদের নির্দেশাবলী অনুসারে অ্যাপটি ফরাসি ভাষায় উত্তর দেবে।

77010f4ad0bde5da.png সম্পর্কে

৪. অ্যাপ ফরম্যাট করুন

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

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

গুগল চ্যাট টেক্সট মেসেজ

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

পর্যালোচনা প্রবাহ

c625fdcc8b4a27f4.png সম্পর্কে

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

ইনডেক্স.জেএস

...
async function generateAnswer(message) {
 // Specify formatting options that are compatible with Google Chat messages
 // https://developers.google.com/workspace/chat/format-messages#format-texts
 const prompt = `Use simple text for concise answers. The only formatting options you can use is to
(1) surround some text with a single star for bold such as *text* for strong emphasis
(2) surround some text with a single underscore for italic such as _text_ for gentle emphasis
(3) surround some text with a single tild for strikethrough such as ~text~ for removal
(4) use a less than before followed by a URL followed by a pipe followed by a link text followed
    by a more than for a hyperlink such as <https://example.com|link text> for resource referencing
(5) use a backslash followed by the letter n for a new line such as \n for readibility
(6) surround some text with a single backquote such as \`text\` for quoting code
(7) surround an entire paragraph with three backquotes in dedicated lines such as
    \`\`\`\nparagraph\n\`\`\` for quoting code
(8) prepend lines with list items with a single star or hyphen followed by a single space
    such as * list item or - list item for bulleting ;
DO NOT USE ANY OTHER FORMATTING OTHER THAN THOSE.
Answer the following message in the same language: ${message}`;
...
};
...

গুগল ক্লাউড রান নোড.জেএস ফাংশন আপডেট করুন

  1. আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশে, বর্তমান ডিরেক্টরিটি node/chat/gen-ai-apps/2-format এ পরিবর্তন করুন। এতে সম্পূর্ণ সোর্স কোড এবং রিসোর্স রয়েছে।
  2. গুগল ক্লাউড রান ফাংশন সার্ভিসের বিবরণ পৃষ্ঠার সোর্স ট্যাবে যান।

  1. উৎস সম্পাদনা করুন ক্লিক করুন।
  2. index.js ফাইলের সম্পূর্ণ কন্টেন্ট আপনার স্থানীয় ডেভেলপমেন্ট এনভায়রনমেন্টের কন্টেন্ট দিয়ে প্রতিস্থাপন করুন।
  3. সংরক্ষণ করুন এবং পুনরায় স্থাপন করুন এ ক্লিক করুন।
  4. সংশোধন স্থাপনের সফল সমাপ্তির জন্য অপেক্ষা করুন।

487b64f2d3b1a104.png সম্পর্কে

চেষ্টা করে দেখুন

  1. গুগল চ্যাটে চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, Showcase all formatting options you have with one paragraph each লিখুন এবং enter টিপুন। প্রম্পটে আমাদের নির্দেশাবলীর উপর ভিত্তি করে অ্যাপটি ফর্ম্যাটিং নমুনা সহ উত্তর দেবে।

cc7f7101d9f7c10.png সম্পর্কে

  1. গুগল চ্যাটে চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, What are Google Chat apps? What's great about them? টাইপ করুন এবং enter টিপুন। অ্যাপটি যখন দরকারী তখন ফর্ম্যাটিং সহ উত্তর দেওয়া উচিত।

83557d4c7071aac8.png - [অনলাইন].

৫. গ্রাউন্ড অ্যাপ

এই অ্যাপটি গ্রাউন্ডিং এবং রিটার্নিং সোর্সের জন্য সমর্থন যোগ করে Format app উপর ভিত্তি করে তৈরি করে। এটি গুগল সার্চ টুল চালায় এবং উত্তরের লিঙ্ক সহ কার্ড সংযুক্ত করে।

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

গ্রাউন্ডিং

গ্রাউন্ডিং হল তথ্যের উৎসের সাথে মডেলগুলিকে সংযুক্ত করার কৌশল। এটি প্রায়শই বাস্তবিক তথ্য উল্লেখ করে তৈরি করা বিষয়বস্তুর নির্ভুলতা এবং প্রাসঙ্গিকতা উন্নত করার জন্য ব্যবহারিক প্রয়োগে ব্যবহৃত হয়, যার ফলে মডেলটিকে বিভ্রান্ত করা বা বাস্তবিকভাবে ভুল তথ্য তৈরি করা থেকে বিরত রাখা হয়।

গুগল সার্চ টুল

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

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

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

পর্যালোচনা প্রবাহ

b72d69a6e79858d6.png সম্পর্কে

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

ইনডেক্স.জেএস

...
const aiResponse = await genAI.models.generateContent({
 model: env.model,
 contents: prompt,
 // Google Search tool is enabled
 config: { tools: [{ googleSearch: {}}]}
});

let groundingCardsV2 = undefined;
const grounding = aiResponse.candidates[0].groundingMetadata;
// Go through the grounding metadata if any
if (grounding && grounding.groundingChunks && grounding.groundingChunks.length > 0) {
 let linkButtons = [];
 grounding.groundingChunks.forEach(groundingChunk => {
   if (groundingChunk.web) {
     // Create one link button per web URL returned
     linkButtons.push({
       text: groundingChunk.web.domain,
       onClick: { openLink: { url: groundingChunk.web.uri}}
     });
   }
 });
 // Create a card with link buttons
 groundingCardsV2 = [{
   cardId: "sourcesCard",
   card: { sections: [{
     header: "Sources",
     widgets: [{ buttonList: { buttons: linkButtons}}]
   }]}
 }];
}

// Send a Chat message with the generated answer
return res.send({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
 text: aiResponse.candidates[0].content.parts[0].text,
 // The sources are referenced in the card
 cardsV2: groundingCardsV2
}}}}});
...

গুগল ক্লাউড রান নোড.জেএস ফাংশন আপডেট করুন

  1. আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশে, বর্তমান ডিরেক্টরিটি node/chat/gen-ai-apps/3-ground এ পরিবর্তন করুন। এতে সম্পূর্ণ সোর্স কোড এবং রিসোর্স রয়েছে।
  2. গুগল ক্লাউড রান ফাংশন সার্ভিসের বিবরণ পৃষ্ঠার সোর্স ট্যাবে যান।

  1. উৎস সম্পাদনা করুন ক্লিক করুন।
  2. index.js ফাইলের সম্পূর্ণ কন্টেন্ট আপনার স্থানীয় ডেভেলপমেন্ট এনভায়রনমেন্টের কন্টেন্ট দিয়ে প্রতিস্থাপন করুন।
  3. সংরক্ষণ করুন এবং পুনরায় স্থাপন করুন এ ক্লিক করুন।
  4. সংশোধন স্থাপনের সফল সমাপ্তির জন্য অপেক্ষা করুন।

487b64f2d3b1a104.png সম্পর্কে

চেষ্টা করে দেখুন

গুগল চ্যাটে চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, What's the world population? টাইপ করুন এবং enter টিপুন। অ্যাপটি একটি কার্ডে সোর্স লিঙ্ক সংযুক্ত করে উত্তর দেবে।

cff461da29c05873.png সম্পর্কে

৬. এমসিপি অ্যাপ

এই অ্যাপটি Format app উপর ভিত্তি করে তৈরি করা হয়েছে, একটি মডেল কনটেক্সট প্রোটোকল (MCP) সার্ভার দ্বারা প্রদত্ত টুলের জন্য সমর্থন যোগ করে যা দূরবর্তীভাবে হোস্ট করা হয়। এটি Google Workspace Developer Assist MCP এর সাথে সংযোগ স্থাপন করে যা Google Workspace Developers ডকুমেন্টেশন অ্যাক্সেস এবং অনুসন্ধানের জন্য টুল সরবরাহ করে।

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

মডেল কনটেক্সট প্রোটোকল (এমসিপি)

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

এমসিপি টাইপস্ক্রিপ্ট এসডিকে

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

পর্যালোচনা প্রবাহ

e0b324e2cca21915.png সম্পর্কে

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

ইনডেক্স.জেএস

// Import the MCP TypeScript SDK.
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
...
// Create and connect the MCP client from the URL.
const mcpServerUrl = new URL("https://workspace-developer.goog/mcp");
const client = new Client({ name: "gen-ai-app-mcp", version: "1.0.0" });
// Try Streamable HTTP first (new) and SSE (old) as fallback for transport
try {
 await client.connect(new StreamableHTTPClientTransport(mcpServerUrl));
} catch (error) {
 await client.connect(new SSEClientTransport(mcpServerUrl));
}

http('gen-ai-app', async (req, res) => {
 ...
 const aiResponse = await genAI.models.generateContent({
   model: env.model,
   contents: prompt,
   // MCP tools are enabled
   config: { tools: [mcpToTool(client)]}
 });
 ...
}
...

প্যাকেজ.জেসন

...
"dependencies": {
  ...
  "@modelcontextprotocol/sdk": "^1.18.1"
},
...

গুগল ক্লাউড রান নোড.জেএস ফাংশন আপডেট করুন

  1. আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশে, বর্তমান ডিরেক্টরিটি node/chat/gen-ai-apps/4-mcp এ পরিবর্তন করুন। এতে সম্পূর্ণ সোর্স কোড এবং রিসোর্স রয়েছে।
  2. গুগল ক্লাউড রান ফাংশন সার্ভিসের বিবরণ পৃষ্ঠার সোর্স ট্যাবে যান।

  1. উৎস সম্পাদনা করুন ক্লিক করুন।
  2. index.js এবং package.json ফাইলের সম্পূর্ণ বিষয়বস্তু আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশের বিষয়বস্তু দিয়ে প্রতিস্থাপন করুন।
  3. সংরক্ষণ করুন এবং পুনরায় স্থাপন করুন এ ক্লিক করুন।
  4. সংশোধন স্থাপনের সফল সমাপ্তির জন্য অপেক্ষা করুন।

487b64f2d3b1a104.png সম্পর্কে

চেষ্টা করে দেখুন

  1. Google Chat- এ Chat অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, What can you do for me? টাইপ করুন এবং enter টিপুন। অ্যাপটি কী করতে সক্ষম তা বর্ণনা করবে (MCP টুলস)।

১৩৫৩৫বিএফডি৩১ডি৮৫এ৫০.পিএনজি

  1. গুগল চ্যাটে চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, I would like to get the latest official documentation for the Google Sheets API append values টাইপ করুন এবং enter টিপুন। অ্যাপটি অনুরোধকৃত ডকুমেন্টেশন (এমসিপি টুল ব্যবহার করে) সহ উত্তর দেবে।

8a6f4ac5b7d5fa4a.png সম্পর্কে

৭. মাল্টি-টার্ন অ্যাপ

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

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

মাল্টি-টার্ন

মাল্টি-টার্ন ধারণাটি একাধিক বিনিময় এবং কথোপকথনের মধ্যে প্রেক্ষাপট এবং ধারাবাহিকতা বজায় রাখার জন্য একটি মডেলের ক্ষমতাকে বোঝায়। জটিল কথোপকথন, পরিশীলিত AI-চালিত কার্যকারিতা এবং স্বাভাবিক ব্যবহারকারীর অভিজ্ঞতা সমর্থন করার জন্য এটি একটি আবশ্যক বৈশিষ্ট্য।

গুগল ক্লাউড ফায়ারস্টোর

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

পর্যালোচনা প্রবাহ

52920a2227467218.png সম্পর্কে

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

ইনডেক্স.জেএস

// Import the Google Cloud Firestore client library.
import { Firestore } from '@google-cloud/firestore';
...
// Configure DB
const USERS_PREFIX = 'users/';
const CHATS_COLLECTION = 'chats';
const db = new Firestore();
...
// Create or update data for a given user
async function createOrUpdateChatHistory(userId, data) {
 await db.collection(CHATS_COLLECTION).doc(userId.replace(USERS_PREFIX, '')).set(data);
};

// Retrieve data snapshot for a given user
async function getChatHistory(userId) {
 return await db.collection(CHATS_COLLECTION).doc(userId.replace(USERS_PREFIX, '')).get();
};
...
...
http('gen-ai-app', async (req, res) => {
 // Retrieve the chat history of the user
 const chatHistory = await getChatHistory(userId);
 const chat = genAI.chats.create({
   model: env.model,
   // Initiate the model with chat history for context
   history: chatHistory.exists ? chatHistory.data().contents : []
 });
 // If no history, send a first message to the model with instructions on how to behave
 if(!chatHistory.exists) {
   const preambule = 'The only formatting options you can use is to '
                   + ...
                   + 'DO NOT USE ANY OTHER FORMATTING OTHER THAN THOSE. '
                   + 'Answer in the same language that I use.';
   // The answer to this message is ignored
   await chat.sendMessage({message: preambule});
 }

 // Send the user's message to the model to generate the answer
 const aiResponse = await chat.sendMessage({message: userMessage});

 // Persist the updated chat history of the user
 await createOrUpdateChatHistory(userId, {contents: chat.getHistory({curated: true})});

 // Send a Chat message with the generated answer
 return res.send({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
   text: aiResponse.candidates[0].content.parts[0].text
 }}}}});
});
...

প্যাকেজ.জেসন

...
"dependencies": {
  ...
  "@google-cloud/firestore": "^7.11.5"
},
...

গুগল ক্লাউড ফায়ারস্টোর এপিআই সক্ষম করুন

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

  1. মেনু ☰ > API এবং পরিষেবা > সক্রিয় API এবং পরিষেবাগুলিতে ক্লিক করুন এবং তারপরে নিশ্চিত করুন যে ক্লাউড ফায়ারস্টোর API তালিকায় রয়েছে।

ক্লাউড ফায়ারস্টোর ডাটাবেস তৈরি করুন

  1. গুগল ক্লাউড কনসোলে , মেনু ☰ > ফায়ারস্টোরে ক্লিক করুন।

  1. একটি ফায়ারস্টোর ডাটাবেস তৈরি করুন ক্লিক করুন
  2. ডিফল্ট কনফিগারেশনটি ছেড়ে দিন এবং Create Database এ ক্লিক করুন।

গুগল ক্লাউড রান নোড.জেএস ফাংশন আপডেট করুন

  1. আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশে, বর্তমান ডিরেক্টরিটি node/chat/gen-ai-apps/5-multi-turn এ পরিবর্তন করুন। এতে সম্পূর্ণ সোর্স কোড এবং রিসোর্স রয়েছে।
  2. গুগল ক্লাউড রান ফাংশন সার্ভিসের বিবরণ পৃষ্ঠার সোর্স ট্যাবে যান।

  1. উৎস সম্পাদনা করুন ক্লিক করুন।
  2. index.js এবং package.json ফাইলের সম্পূর্ণ বিষয়বস্তু আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশের বিষয়বস্তু দিয়ে প্রতিস্থাপন করুন।
  3. সংরক্ষণ করুন এবং পুনরায় স্থাপন করুন এ ক্লিক করুন।
  4. সংশোধন স্থাপনের সফল সমাপ্তির জন্য অপেক্ষা করুন।

487b64f2d3b1a104.png সম্পর্কে

চেষ্টা করে দেখুন

  1. গুগল চ্যাটে চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, Can you speak with the English from the 80's for now on? টাইপ করুন এবং enter টিপুন। অ্যাপটি ইতিবাচকভাবে সাড়া দেবে।

b273beda7e203b23.png সম্পর্কে

  1. গুগল চ্যাটে চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, Define what Google Chat apps are in one sentence টাইপ করুন এবং enter টিপুন। অ্যাপটি ৮০ এর দশকের ইংরেজিতে সাড়া দেওয়া চালিয়ে যাওয়া উচিত।

9156f563c369f186.png সম্পর্কে

৮. কাস্টম টুল অ্যাপ

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

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

ফাংশন কলিং

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

গুগল ওয়ার্কস্পেস এপিআই

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

পর্যালোচনা প্রবাহ

ed866ca369a4512f.png সম্পর্কে

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

env.js সম্পর্কে

...
// Replace with your Google API key.
googleApiKey: process.env.GOOGLE_API_KEY || 'your-google-api-key',
...

ইনডেক্স.জেএস

// Import parameter type definitions from Google Gen AI SDK.
import { GoogleGenAI, Type } from '@google/genai';
// Import Google APIs that include the Google Calendar API.
import { google } from 'googleapis';
...
// Create a Google Calendar API client using a Google API key.
const calendar = google.calendar({version: 'v3', auth: env.googleApiKey});
...
// Define the tool used for function calling
const getNextPublicCalendarEventTitleFunctionDeclaration = {
 name: 'getNextPublicCalendarEventTitle',
 parameters: {
   type: Type.OBJECT,
   description: 'Get the title of the next event of a public calendar.',
   properties: {
     calendarId: {
       type: Type.STRING,
       description: 'ID of the public calendar to get the next event title.',
     }
   },
   required: ['calendarId']
 }
};

// The function referenced in the tool definition
async function getNextPublicCalendarEventTitle(calendarId) {
 // Use Calendar API to retrieve the next event in the given calendar
 const response = await calendar.events.list({
   calendarId: calendarId,
   timeMin: new Date().toISOString(),
   maxResults: 1,
   singleEvents: true,
   orderBy: 'startTime',
 });
 const events = response.data.items;
 if (!events || events.length === 0) {
   return null;
 }
 return `${events[0].summary}`;
};
...
...
http('gen-ai-app', async (req, res) => {
 ...
 // Send the user's message to the model to generate the answer
 let aiResponse = await chat.sendMessage({
   message: userMessage,
   // The tool used for function calling is enabled
   config: { tools: [{ functionDeclarations: [getNextPublicCalendarEventTitleFunctionDeclaration]}]}
 });

 // Handle the function calling turn with the model if any
 const functionCall = aiResponse.candidates[0].content.parts[0].functionCall;
 if (functionCall) {
   let functionResult = null;
   switch(functionCall.name) {
     case 'getNextPublicCalendarEventTitle':
       // Make the function call as per model request
       functionResult = await getNextPublicCalendarEventTitle(functionCall.args['calendarId']);
       break;
     default:
   }
   // Finish the function calling turn by sending the execution result to the model
   aiResponse = await chat.sendMessage({ message: { functionResponse: {
     name: functionCall.name,
     response: { output: functionResult }
   }}});
 }
 ...
 // Send a Chat message with the generated answer
 return res.send({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
   text: aiResponse.candidates[0].content.parts[0].text
 }}}}});
});
...

প্যাকেজ.জেসন

...
"dependencies": {
  ...
   "googleapis": "^160.0.0"
},
...

ক্যালেন্ডার API সক্ষম করুন

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

  1. মেনু ☰ > API এবং পরিষেবা > সক্রিয় API এবং পরিষেবাগুলিতে ক্লিক করুন এবং তারপরে নিশ্চিত করুন যে Google Calendar API তালিকায় রয়েছে।

গুগল এপিআই কী তৈরি করুন

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

  1. মেনু ☰ > API এবং পরিষেবা > শংসাপত্র ক্লিক করুন।

  1. + ক্রেডেনশিয়াল তৈরি করুন ক্লিক করুন এবং তারপর API কী নির্বাচন করুন।
  2. অপারেশন সম্পন্ন হওয়ার জন্য অপেক্ষা করুন।
  3. নিশ্চিতকরণ ডায়ালগে, আপনার API Key টেক্সট ফিল্ডটি খুঁজুন এবং Copy to clipboard এ ক্লিক করুন।

গুগল ক্লাউড রান নোড.জেএস ফাংশন আপডেট করুন

  1. আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশে, বর্তমান ডিরেক্টরিটি node/chat/gen-ai-apps/6-custom-tool এ পরিবর্তন করুন। এতে সম্পূর্ণ সোর্স কোড এবং রিসোর্স রয়েছে।
  2. গুগল ক্লাউড রান ফাংশন সার্ভিসের বিবরণ পৃষ্ঠার সোর্স ট্যাবে যান।

  1. উৎস সম্পাদনা করুন ক্লিক করুন।
  2. index.js এবং package.json ফাইলের সম্পূর্ণ বিষয়বস্তু আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশের বিষয়বস্তু দিয়ে প্রতিস্থাপন করুন।
  3. env.js ফাইলটি খুলুন এবং নিম্নলিখিতগুলি করুন
  4. এক্সপোর্ট করা ক্ষেত্রগুলিতে googleApiKey যোগ করুন
export const env = {
 ...
 googleApiKey: 'your-google-api-key',
};
  1. your-google-api-key আগের ধাপে কপি করা Google API Key দিয়ে প্রতিস্থাপন করুন। Show key এ ক্লিক করে এটি Google Cloud শংসাপত্র পৃষ্ঠা থেকে পুনরুদ্ধার করা যেতে পারে।

  1. সংরক্ষণ করুন এবং পুনরায় স্থাপন করুন এ ক্লিক করুন।
  2. সংশোধন স্থাপনের সফল সমাপ্তির জন্য অপেক্ষা করুন।

487b64f2d3b1a104.png সম্পর্কে

চেষ্টা করে দেখুন

  1. গুগল ক্যালেন্ডারে , এই পদক্ষেপগুলি অনুসরণ করুন:
  2. অন্যান্য ক্যালেন্ডারের অধীনে, + ক্লিক করুন, তারপর নতুন ক্যালেন্ডার তৈরি করুন এ ক্লিক করুন।
  3. My Public Calendar নাম সেট করুন
  4. ক্যালেন্ডার তৈরি করুন ক্লিক করুন
  5. অপারেশন সম্পন্ন হওয়ার জন্য অপেক্ষা করুন।
  6. Settings for my calendars এর অধীনে, নতুন তৈরি ক্যালেন্ডার My Public Calendar নির্বাচন করুন।
  7. ইভেন্টের জন্য অ্যাক্সেস অনুমতিগুলির অধীনে, সর্বজনীনভাবে উপলব্ধ করুন নির্বাচন করুন, এবং তারপর সতর্কতা সংলাপে ঠিক আছে ক্লিক করুন।
  8. ইভেন্টের জন্য অ্যাক্সেস অনুমতিগুলির অধীনে, "জনসাধারণের জন্য উপলব্ধ করুন" বিকল্পের পাশে ড্রপডাউন মেনু থেকে "সকল ইভেন্টের বিবরণ দেখুন" নির্বাচন করুন।
  9. ইন্টিগ্রেট ক্যালেন্ডারের অধীনে, ক্যালেন্ডার আইডি ফিল্ডের মান ক্লিপবোর্ডে কপি করুন।
  10. সেটিংস থেকে বেরিয়ে আসতে উপরের বাম কোণে বাম তীরটিতে ক্লিক করুন।
  11. আগামীকালের জন্য একটি নতুন ইভেন্ট তৈরি করতে ক্যালেন্ডারে ক্লিক করুন, Important meeting টাইপ করুন, ড্রপডাউন থেকে আমার পাবলিক ক্যালেন্ডার নির্বাচন করুন, তারপর সংরক্ষণ করুন এ ক্লিক করুন।
  12. গুগল চ্যাটে চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, When is the next meeting? টাইপ করুন এবং enter টিপুন। অ্যাপটি একটি স্পষ্টতা অনুরোধ করবে কারণ কোন ক্যালেন্ডারটি উল্লেখ করা হচ্ছে তা স্পষ্ট নয়।

40383099311b0813.png সম্পর্কে

  1. গুগল চ্যাটে চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, ক্লিপবোর্ডে পূর্বে কপি করা ক্যালেন্ডার আইডিটি পেস্ট করুন এবং enter টিপুন। অ্যাপটি পূর্বে তৈরি ইভেন্ট সম্পর্কে বিশদ সহ উত্তর দেবে।

4c614c7e444e3b45.png সম্পর্কে

9. স্ট্রিম অ্যাপ

এই অ্যাপটি ব্যবহারকারীদের দেওয়া থিমগুলির উপর ভিত্তি করে ২ মিনিটের গল্প তৈরি করতে একটি জেমিনি মডেলের উপর নির্ভর করে। যেহেতু সম্পূর্ণ উত্তর তৈরি করতে সময় লাগে, তাই অ্যাপটি স্ট্রিমিং মোডে মডেলটিতে কল করে এবং অগ্রগতির সাথে সাথে বার্তাগুলিতে বিষয়বস্তু এবং স্ট্যাটাস পাঠানোর জন্য Google Chat API এর উপর নির্ভর করে।

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

গুগল চ্যাট এপিআই

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

স্ট্রিমিং

স্ট্রিমিং বলতে বোঝায় সম্পূর্ণ প্রতিক্রিয়া তৈরির জন্য অপেক্ষা করার পরিবর্তে একটি অবিচ্ছিন্ন প্রবাহে ডেটা গ্রহণের প্রক্রিয়া। যখন AI মডেল কলের কথা আসে, তখন স্ট্রিমিং অ্যাপ্লিকেশনগুলিকে ব্যবহারকারীদের কাছে আংশিক ফলাফল প্রদর্শন করতে দেয়, যা অনুভূত কর্মক্ষমতা এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করে, বিশেষ করে দীর্ঘ প্রজন্মের কাজের জন্য। এটি বিশেষভাবে জেনারেটিভ AI মডেলগুলির জন্য প্রাসঙ্গিক যেখানে সম্পূর্ণ আউটপুট তৈরি করতে উল্লেখযোগ্য পরিমাণ সময় লাগতে পারে।

পর্যালোচনা প্রবাহ

25f9036eecd9a48b.png সম্পর্কে

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

ইনডেক্স.জেএস

// Import Google Auth library used to create Google Chat API client
import { GoogleAuth } from 'google-auth-library';
...
http('gen-ai-app', async (req, res) => {
 // Use app authentication.
 // Application Default Credentials (ADC) will use the Cloud Run function's
 // default service account, we just need to specify the Chat API app auth scopes.
 const auth = new GoogleAuth({
   // Chat API app authentication scopes
   scopes: ['https://www.googleapis.com/auth/chat.bot']
 });

 // Create Chat service client with application credentials
 const chatClient = google.chat({
   version: 'v1',
   auth: await auth.getClient()
 });

 // Send a server streaming request to generate the answer
 const aiResponse = await genAI.models.generateContentStream({
   model: env.model,
   contents: `Generate a story about a ${userMessage}. `
               + `It should take 2 minutes to read it out loud.`
 });

 // Send a first Chat message to summarize what will be done
 await chatClient.spaces.messages.create({
   parent: spaceName,
   requestBody: { text: `Sure, let me work on generating a short story `
                           + `about a ${userMessage} like you requested.`}
 });

 // Go through the response chunks received from the stream
 let messageName = undefined;
 let answer = "";
 for await (const chunk of aiResponse) {
   const text = chunk.text;
   if (text) {
     // Update the answer by concatenating the response chunks
     answer += text;
     // The Chat message request body is the same for message creation and update
     const responseBody = {
       text: answer,
       accessoryWidgets: [getStatusAccessoryWidget('Generating story...', 'progress_activity')]
     }
     if (!messageName) {
       // Create a Chat message dedicated to the generated content
       const messageResponse = await chatClient.spaces.messages.create({
         parent: spaceName,
         requestBody: responseBody
       });
       messageName = messageResponse.data.name;
     } else {
       // Update the Chat message dedicated to the generated content
       await chatClient.spaces.messages.patch({
         name: messageName,
         updateMask: 'text,accessory_widgets',
         requestBody: responseBody
       });
     }
   }
 }

 // Update the accessory widget with final progress status
 await chatClient.spaces.messages.patch({
   name: messageName,
   updateMask: 'accessory_widgets',
   requestBody: {
     accessoryWidgets: [getStatusAccessoryWidget('Story is fully generated', 'check')]
   }
 });

 // Send a last Chat message to confirm it's done
 return res.send({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
   text: 'All done, I hope you like it!'
 }}}}});
});

// Create an accessory widget with progress status
function getStatusAccessoryWidget(text, icon) {
 return { buttonList: { buttons: [{
   text: text,
   icon: { materialIcon: { name: icon}},
   // This is a workaround to have the icon shown, it's not clickable
   onClick: { openLink: { url: "https://google.com"}},
   disabled: true
 }]}};
}

প্যাকেজ.জেসন

...
"dependencies": {
  ...
   "google-auth-library": "^10.3.0"
},
...

গুগল ক্লাউড রান নোড.জেএস ফাংশন আপডেট করুন

  1. আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশে, বর্তমান ডিরেক্টরিটি node/chat/gen-ai-apps/7-stream এ পরিবর্তন করুন। এতে সম্পূর্ণ সোর্স কোড এবং রিসোর্স রয়েছে।
  2. গুগল ক্লাউড রান ফাংশন সার্ভিসের বিবরণ পৃষ্ঠার সোর্স ট্যাবে যান।

  1. উৎস সম্পাদনা করুন ক্লিক করুন।
  2. index.js এবং package.json ফাইলের সম্পূর্ণ বিষয়বস্তু আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশের বিষয়বস্তু দিয়ে প্রতিস্থাপন করুন।
  3. সংরক্ষণ করুন এবং পুনরায় স্থাপন করুন এ ক্লিক করুন।
  4. সংশোধন স্থাপনের সফল সমাপ্তির জন্য অপেক্ষা করুন।

487b64f2d3b1a104.png সম্পর্কে

চেষ্টা করে দেখুন

গুগল চ্যাটে চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, turtle টাইপ করুন এবং enter টিপুন। অ্যাপটি একটি স্বীকৃতি বার্তা, অগ্রগতির স্থিতি সহ তৈরি করা গল্প এবং একটি সমাপ্তির নিশ্চিতকরণ বার্তা সহ উত্তর দেবে।

১৭৬০০সিডি১৪৯০৯৭২সি৭.পিএনজি

26af4b3d442712a5.png সম্পর্কে

১০. মাল্টিমোডাল অ্যাপ

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

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

Google Chat মেসেজ অ্যাটাচমেন্ট

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

ডোমেইন-ওয়াইড ডেলিগেশন (DWD)

ডোমেন-ওয়াইড ডেলিগেশন (DWD) একটি পরিষেবা অ্যাকাউন্টকে Google Workspace ডোমেনে ব্যবহারকারীদের ছদ্মবেশ ধারণ করার অনুমতি দেয়, যার ফলে অ্যাপ্লিকেশনগুলি সরাসরি অনুমোদন ছাড়াই সেই ব্যবহারকারীদের পক্ষে পদক্ষেপ নিতে পারে। এটি এমন অ্যাপগুলির জন্য কার্যকর যাদের ব্যবহারকারীর ডেটা অ্যাক্সেস করতে হয় বা ব্যবহারকারীর প্রসঙ্গে কাজ করতে হয় (যেমন Google Chat-এ সংযুক্তি আপলোড করা), এমনকি ব্যবহারকারী সক্রিয়ভাবে উপস্থিত না থাকলেও, পরিষেবা অ্যাকাউন্টকে ডোমেন জুড়ে বিস্তৃত অ্যাক্সেস প্রদান করে।

পর্যালোচনা প্রবাহ

74295b25761f1682.png সম্পর্কে

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

env.js সম্পর্কে

...
// Replace with the Gemini model to use.
model: process.env.MODEL || 'gemini-2.0-flash-preview-image-generation',
...

ইনডেক্স.জেএস

...
// Import byte stream management libraries.
import { Buffer } from 'buffer';
import { Readable } from 'stream';
...
// Download a Google Chat attachment as base 64 string.
async function downloadFile(appChatClient, attachmentName) {
 const response = await appChatClient.media.download({
     resourceName: attachmentName,
     alt: 'media'
   }, {
     responseType: 'stream'
 });
 const chunks = [];
 return new Promise((resolve) => {
   response.data.on('data', (chunk) => {
     chunks.push(chunk);
   });
   response.data.on('end', () => {
     const fileBuffer = Buffer.concat(chunks);
     const base64String = fileBuffer.toString('base64');
     resolve(base64String);
   });
 });
}

// Upload a base 64 string as Google Chat attachment of a space.
async function uploadFile(useChatClient, spaceName, data) {
 const filename = 'generated_image.png';
 return await userChatClient.media.upload({
   parent: spaceName,
   requestBody: { filename: filename },
   media: {
     mimeType: 'image/png',
     body: Readable.from(Buffer.from(data, 'base64'))
   }
 });
}
...
...
http('gen-ai-app', async (req, res) => {
 const userEmail = req.body.chat.user.email;
 const spaceName = req.body.chat.messagePayload.space.name;
 const userMessage = req.body.chat.messagePayload.message.text;
 const attachmentName = req.body.chat.messagePayload.message.attachment[0].attachmentDataRef.resourceName;
 const attachmentContentType = req.body.chat.messagePayload.message.attachment[0].contentType;

 // Set up app authentication used to download the attachment input
 // Application Default Credentials (ADC) will use the Cloud Run function's
 // default service account.
 const appAuth = new GoogleAuth({
   // Specify the Chat API app authentication scopes
   scopes: ['https://www.googleapis.com/auth/chat.bot']
 });
 // Create Chat service client with application credentials
 const appChatClient = google.chat({
   version: 'v1',
   auth: await appAuth.getClient()
 });

 // Send a request to generate the answer with both text and image contents
 const aiResponse = await genAI.models.generateContent({
   model: env.model,
   contents: [{
     role: 'USER',
     parts: [
       // The text content of the message
       { text: userMessage },
       // The attachment of the message is downloaded and added inline
       { inlineData: {
         data: await downloadFile(appChatClient, attachmentName),
         mimeType: attachmentContentType
       }}
     ]
   }],
   config: { responseModalities: ['TEXT', 'IMAGE']}
 });

 // Set up user impersonation authentication used to upload the attachment output
 // and send the response.
 const impersonatedUserAuth = new GoogleAuth({
   // Specify the Chat API user authentication scopes
   scopes: ['https://www.googleapis.com/auth/chat.messages'],
   keyFile: './credentials.json',
   clientOptions: {
     // Impersonate the user who sent the original message
     subject: userEmail
   }
 });
 // Create Chat service client with impersonated user credentials
 const userChatClient = google.chat({
   version: 'v1',
   auth: await impersonatedUserAuth.getClient()
 });

 let responseText = undefined;
 let responseAttachment = undefined;
 // Go through the response parts received
 for (const part of aiResponse.candidates[0].content.parts) {
   if (part.inlineData) {
     // The resulting image is retrieved inline and uploaded
     const mediaResponse = await uploadFile(userChatClient, spaceName, part.inlineData.data);
     responseAttachment = mediaResponse.data;
   } else {
     responseText = part.text;
   }
 }

 // Create a Chat message dedicated to the generated content
 await userChatClient.spaces.messages.create({
   parent: spaceName,
   requestBody: {
     text: responseText ? responseText : 'Here it is!',
     // The uploaded image is referenced as attachment
     attachment: responseAttachment ? [responseAttachment] : undefined
   }
 });

 // Send a last Chat message to confirm it's done
 return res.send({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
   text: 'Done, feel free to let me know if you need anything else!'
 }}}}});
});
...

পরিষেবা অ্যাকাউন্ট কনফিগার করুন এবং ব্যক্তিগত কী রপ্তানি করুন

  1. ব্যবহারকারীদের জন্য Google Chat বার্তা পরিচালনা করার জন্য Cloud Run ডিফল্ট পরিষেবা অ্যাকাউন্টটি অর্পণ করুন। https://www.googleapis.com/auth/chat.messages স্কোপের নির্দেশাবলী অনুসরণ করুন। Cloud Run ডিফল্ট পরিষেবা অ্যাকাউন্ট ক্লায়েন্ট আইডি পুনরুদ্ধার করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
  2. মেনু ☰ > IAM & Admin > পরিষেবা অ্যাকাউন্টগুলিতে ক্লিক করুন।

  1. ডিফল্ট কম্পিউট সার্ভিস অ্যাকাউন্ট নামের পরিষেবা অ্যাকাউন্টে ক্লিক করুন।
  2. বিভাগটি প্রসারিত করুন উন্নত সেটিংস
  3. ক্লিপবোর্ডে ক্লায়েন্ট আইডি কপি করুন।
  4. ক্লাউড রান ডিফল্ট পরিষেবা অ্যাকাউন্টের জন্য একটি নতুন প্রাইভেট কী তৈরি এবং ডাউনলোড করুন
  5. মেনু ☰ > IAM & Admin > পরিষেবা অ্যাকাউন্টগুলিতে ক্লিক করুন।

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

গুগল ক্লাউড রান নোড.জেএস ফাংশন আপডেট করুন

  1. আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশে, বর্তমান ডিরেক্টরিটি node/chat/gen-ai-apps/8-multimodal এ পরিবর্তন করুন। এতে সম্পূর্ণ সোর্স কোড এবং রিসোর্স রয়েছে।
  2. গুগল ক্লাউড রান ফাংশন সার্ভিসের বিবরণ পৃষ্ঠার সোর্স ট্যাবে যান।

  1. উৎস সম্পাদনা করুন ক্লিক করুন।
  2. ➕ এ ক্লিক করুন, credentials.json টাইপ করুন এবং ✔️ এ ক্লিক করে অনুপস্থিত রিসোর্স ফাইলটি তৈরি করুন।
  3. পূর্ববর্তী ধাপে ডাউনলোড করা JSON ফাইলের বিষয়বস্তু নতুন তৈরি credentials.json ফাইলে পেস্ট করুন।
  4. index.js ফাইলের সম্পূর্ণ বিষয়বস্তু আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশের সাথে প্রতিস্থাপন করুন।
  5. env.js ফাইলটি খুলুন এবং মডেলের মান gemini-2.0-flash-preview-image-generation এ সেট করুন।
...
model: 'gemini-2.0-flash-preview-image-generation',
...
  1. সংরক্ষণ করুন এবং পুনরায় স্থাপন করুন এ ক্লিক করুন।
  2. সংশোধন স্থাপনের সফল সমাপ্তির জন্য অপেক্ষা করুন।

487b64f2d3b1a104.png সম্পর্কে

চেষ্টা করে দেখুন

গুগল চ্যাটে চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, PNG ফর্ম্যাটে নিজের একটি পোর্ট্রেট ছবি আপলোড করুন, Change the background color to blue টাইপ করুন এবং enter টিপুন। অ্যাপটি নীল ব্যাকগ্রাউন্ড সহ ছবির একটি সংস্করণ এবং একটি সম্পূর্ণতা নিশ্চিতকরণ বার্তা সহ উত্তর দেবে।

270547e7a83c1841.png সম্পর্কে

১১. পরিষ্কার করা

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

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

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

  1. মেনু ☰ > IAM & Admin > সেটিংস এ ক্লিক করুন।

  1. বন্ধ করুন ক্লিক করুন।
  2. প্রকল্প আইডি লিখুন।
  3. যাই হোক বন্ধ করুন ক্লিক করুন।

407699a4e03afea6.png সম্পর্কে

১২. অভিনন্দন

অভিনন্দন! আপনি Google Workspace অ্যাড-অন হিসেবে Google Chat অ্যাপ তৈরি করেছেন যা মৌলিক AI ধারণাগুলিকে একীভূত করে!

এরপর কী?

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

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

আরও জানুন

There are plenty of resources available for developers such as YouTube videos, documentation websites, code samples, and tutorials: