ডাটাবেস এবং এজেন্ট ডেভেলপমেন্ট কিট (ADK) এর জন্য MCP টুলবক্স ব্যবহার করে একটি ট্রাভেল এজেন্ট তৈরি করুন

ডাটাবেস এবং এজেন্ট ডেভেলপমেন্ট কিট (ADK) এর জন্য MCP টুলবক্স ব্যবহার করে একটি ট্রাভেল এজেন্ট তৈরি করুন

এই কোডল্যাব সম্পর্কে

subjectজুন ৮, ২০২৫-এ শেষবার আপডেট করা হয়েছে
account_circleRomin Irani Jack Wotherspoon-এর লেখা

1. ভূমিকা

এই কোডল্যাবে, আপনি এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে একটি এজেন্ট তৈরি করবেন যা ডেটাবেসের জন্য MCP টুলবক্স ব্যবহার করে।

কোডল্যাবের মাধ্যমে, আপনি নিম্নলিখিত হিসাবে একটি ধাপে ধাপে পদ্ধতি ব্যবহার করবেন:

  1. PostgreSQL ডাটাবেসের জন্য একটি ক্লাউড SQL প্রদান করুন যাতে হোটেলের ডাটাবেস এবং নমুনা ডেটা থাকবে।
  2. ডেটাবেসের জন্য MCP টুলবক্স সেটআপ করুন, যা ডেটাতে অ্যাক্সেস প্রদান করে।
  3. এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে একটি এজেন্ট ডিজাইন এবং ডেভেলপ করুন যা ব্যবহারকারীর প্রশ্নের উত্তর দিতে MCP টুলবক্স ব্যবহার করবে।
  4. ক্লাউড রান পরিষেবার মাধ্যমে স্থানীয়ভাবে এবং Google ক্লাউডে ডেটাবেসের জন্য এজেন্ট এবং MCP টুলবক্স পরীক্ষা করার বিকল্পগুলি অন্বেষণ করুন৷

b3768488d144b8f6.png

আপনি কি করবেন

  • একটি এজেন্ট ডিজাইন করুন, তৈরি করুন এবং মোতায়েন করুন যা একটি অবস্থানের হোটেলগুলিতে ব্যবহারকারীর প্রশ্নের উত্তর দেবে বা নাম অনুসারে হোটেলগুলি অনুসন্ধান করবে৷

আপনি কি শিখবেন

  • নমুনা ডেটা সহ PostgreSQL ডাটাবেসের জন্য একটি ক্লাউড এসকিউএল প্রভিশনিং এবং পপুলেট করা।
  • PostgreSQL ডাটাবেস উদাহরণের জন্য ক্লাউড SQL-এর জন্য ডাটাবেসের জন্য MCP টুলবক্স সেটআপ করুন।
  • ব্যবহারকারীর প্রশ্নের উত্তর দেওয়ার জন্য এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে একটি এজেন্ট ডিজাইন এবং বিকাশ করুন।
  • স্থানীয় পরিবেশে ডাটাবেসের জন্য এজেন্ট এবং MCP টুলবক্স পরীক্ষা করুন।
  • (ঐচ্ছিকভাবে) Google ক্লাউডে ডেটাবেসের জন্য এজেন্ট এবং MCP টুলবক্স স্থাপন করুন।

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

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

এই কোডল্যাব, সমস্ত স্তরের বিকাশকারীদের জন্য ডিজাইন করা হয়েছে (শিশুদের সহ), এর নমুনা অ্যাপ্লিকেশনে পাইথন ব্যবহার করে। যাইহোক, উপস্থাপিত ধারণাগুলি বোঝার জন্য পাইথন জ্ঞানের প্রয়োজন নেই।

2. আপনি শুরু করার আগে

একটি প্রকল্প তৈরি করুন

  1. Google ক্লাউড কনসোলে , প্রকল্প নির্বাচক পৃষ্ঠায়, একটি Google ক্লাউড প্রকল্প নির্বাচন করুন বা তৈরি করুন।
  2. নিশ্চিত করুন যে আপনার ক্লাউড প্রকল্পের জন্য বিলিং সক্ষম করা আছে৷ একটি প্রকল্পে বিলিং সক্ষম কিনা তা পরীক্ষা করতে শিখুন।
  3. আপনি ক্লাউড শেল ব্যবহার করবেন, Google ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ যা bq এর সাথে প্রিলোড করা হয়। গুগল ক্লাউড কনসোলের শীর্ষে সক্রিয় ক্লাউড শেল ক্লিক করুন।

ক্লাউড শেল বোতামের ছবি সক্রিয় করুন

  1. একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি পরীক্ষা করে দেখুন যে আপনি ইতিমধ্যেই প্রমাণীকৃত হয়েছেন এবং নিম্নলিখিত কমান্ডটি ব্যবহার করে প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে:
gcloud auth list
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
  1. যদি আপনার প্রজেক্ট সেট করা না থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>
  1. নীচে দেখানো কমান্ডের মাধ্যমে প্রয়োজনীয় API গুলি সক্ষম করুন৷ এটি কয়েক মিনিট সময় নিতে পারে, তাই ধৈর্য ধরুন।
gcloud services enable cloudresourcemanager.googleapis.com \
                       servicenetworking
.googleapis.com \
                       run
.googleapis.com \
                       cloudbuild
.googleapis.com \
                       cloudfunctions
.googleapis.com \
                       aiplatform
.googleapis.com \
                       sqladmin
.googleapis.com \
                       compute
.googleapis.com

কমান্ডের সফল সঞ্চালন হলে, আপনি নীচের দেখানো একটি অনুরূপ একটি বার্তা দেখতে হবে:

Operation "operations/..." finished successfully.

gcloud কমান্ডের বিকল্প হল কনসোলের মাধ্যমে প্রতিটি পণ্য অনুসন্ধান করে বা এই লিঙ্কটি ব্যবহার করে।

যদি কোনো API মিস হয়, আপনি সর্বদা বাস্তবায়নের সময় এটি সক্রিয় করতে পারেন।

জিক্লাউড কমান্ড এবং ব্যবহারের জন্য ডকুমেন্টেশন পড়ুন।

3. একটি ক্লাউড এসকিউএল উদাহরণ তৈরি করুন

আমরা আমাদের হোটেলের ডেটা সঞ্চয় করার জন্য PostgreSQL উদাহরণের জন্য একটি Google Cloud SQL ব্যবহার করব। PostgreSQL-এর জন্য Cloud SQL হল একটি সম্পূর্ণ-পরিচালিত ডাটাবেস পরিষেবা যা আপনাকে Google ক্লাউড প্ল্যাটফর্মে আপনার PostgreSQL রিলেশনাল ডেটাবেস সেট আপ, রক্ষণাবেক্ষণ, পরিচালনা এবং পরিচালনা করতে সাহায্য করে।

উদাহরণ তৈরি করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:

gcloud sql instances create hoteldb-instance \
--database-version=POSTGRES_15 \
--cpu=2 \
--memory=8GiB \
--region=us-central1 \
--edition=ENTERPRISE \
--root-password=postgres

এই কমান্ডটি কার্যকর করতে প্রায় 3-5 মিনিট সময় লাগে। কমান্ডটি সফলভাবে কার্যকর হয়ে গেলে, আপনি একটি আউটপুট দেখতে পাবেন যা নির্দেশ করে যে কমান্ডটি সম্পন্ন হয়েছে, সাথে আপনার ক্লাউড SQL ইনস্ট্যান্স তথ্য যেমন NAME, DATABASE_VERSION, LOCATION, ইত্যাদি।

4. হোটেলের ডাটাবেস প্রস্তুত করুন

আমাদের কাজ এখন আমাদের হোটেল এজেন্টের জন্য কিছু নমুনা ডেটা তৈরি করা।

ক্লাউড কনসোলে ক্লাউড এসকিউএল পৃষ্ঠায় যান৷ hoteldb-instance প্রস্তুত এবং তৈরি দেখতে পাবেন৷ উদাহরণের নামের উপর ক্লিক করুন ( hoteldb-instance ) নীচে দেখানো হিসাবে:

29dbc55e97f6f7b.png

ক্লাউড এসকিউএল বাম মেনু থেকে, Cloud SQL Studio মেনু অপশনে যান নিচের মতো:

c11cc134c83ce327.png

এটি আপনাকে ক্লাউড এসকিউএল স্টুডিওতে সাইন ইন করতে বলবে যার মাধ্যমে আমরা কয়েকটি SQL কমান্ড দেব। ডেটাবেস বিকল্পের জন্য postgres নির্বাচন করুন এবং ব্যবহারকারী এবং পাসওয়ার্ড উভয়ের জন্যই ব্যবহার করার মান হল postgresAUTHENTICATE এ ক্লিক করুন।

প্রথমে নিচের স্কিমা অনুযায়ী হোটেল টেবিল তৈরি করা যাক। ক্লাউড এসকিউএল স্টুডিওর একটি সম্পাদক প্যানে, নিম্নলিখিত এসকিউএলটি চালান:

CREATE TABLE hotels(
 id            INTEGER NOT NULL PRIMARY KEY,
 name          VARCHAR NOT NULL,
 location      VARCHAR NOT NULL,
 price_tier    VARCHAR NOT NULL,
 checkin_date  DATE    NOT NULL,
 checkout_date DATE    NOT NULL,
 booked        BIT     NOT NULL
);

এখন, নমুনা ডেটা সহ হোটেল টেবিল তৈরি করা যাক। নিম্নলিখিত SQL চালান:

INSERT INTO hotels(id, name, location, price_tier, checkin_date, checkout_date, booked)
VALUES
 
(1, 'Hilton Basel', 'Basel', 'Luxury', '2024-04-22', '2024-04-20', B'0'),
 
(2, 'Marriott Zurich', 'Zurich', 'Upscale', '2024-04-14', '2024-04-21', B'0'),
 
(3, 'Hyatt Regency Basel', 'Basel', 'Upper Upscale', '2024-04-02', '2024-04-20', B'0'),
 
(4, 'Radisson Blu Lucerne', 'Lucerne', 'Midscale', '2024-04-24', '2024-04-05', B'0'),
 
(5, 'Best Western Bern', 'Bern', 'Upper Midscale', '2024-04-23', '2024-04-01', B'0'),
 
(6, 'InterContinental Geneva', 'Geneva', 'Luxury', '2024-04-23', '2024-04-28', B'0'),
 
(7, 'Sheraton Zurich', 'Zurich', 'Upper Upscale', '2024-04-27', '2024-04-02', B'0'),
 
(8, 'Holiday Inn Basel', 'Basel', 'Upper Midscale', '2024-04-24', '2024-04-09', B'0'),
 
(9, 'Courtyard Zurich', 'Zurich', 'Upscale', '2024-04-03', '2024-04-13', B'0'),
 
(10, 'Comfort Inn Bern', 'Bern', 'Midscale', '2024-04-04', '2024-04-16', B'0');

আসুন নীচে দেখানো হিসাবে একটি SELECT SQL চালানোর মাধ্যমে ডেটা যাচাই করি:

SELECT * FROM hotels;

নীচে দেখানো হিসাবে আপনি হোটেল টেবিলে রেকর্ডের একটি সংখ্যা দেখতে হবে:

a7dd838f1962d412.png

আমরা একটি ক্লাউড এসকিউএল ইনস্ট্যান্স সেট আপ করার প্রক্রিয়া সম্পন্ন করেছি এবং আমাদের নমুনা ডেটা তৈরি করেছি। পরবর্তী বিভাগে, আমরা ডাটাবেসের জন্য MCP টুলবক্স সেট আপ করব।

5. ডাটাবেসের জন্য MCP টুলবক্স সেটআপ করুন

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

টুলবক্স আপনাকে Gen AI টুল তৈরি করতে সাহায্য করে যা আপনার এজেন্টদের আপনার ডাটাবেসের ডেটা অ্যাক্সেস করতে দেয়। টুলবক্স প্রদান করে:

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

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

e316aed02b9861a6.png

আপনি দেখতে পাচ্ছেন যে ডাটাবেসের জন্য MCP টুলবক্স দ্বারা সমর্থিত ডাটাবেসগুলির মধ্যে একটি হল ক্লাউড এসকিউএল এবং আমরা পূর্ববর্তী বিভাগে এটির ব্যবস্থা করেছি।

টুলবক্স ইনস্টল করা হচ্ছে

ক্লাউড শেল টার্মিনাল খুলুন এবং mcp-toolbox নামে একটি ফোল্ডার তৈরি করুন।

mkdir mcp-toolbox

নীচে দেখানো কমান্ডের মাধ্যমে mcp-toolbox ফোল্ডারে যান:

cd mcp-toolbox

নিচের স্ক্রিপ্টের মাধ্যমে ডাটাবেসের জন্য MCP টুলবক্সের বাইনারি সংস্করণ ইনস্টল করুন:

export VERSION=0.6.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox

আমরা এখন আমাদের ব্যবহারের জন্য টুলবক্সের বাইনারি সংস্করণ প্রস্তুত করেছি। পরবর্তী ধাপ হল টুলবক্সকে আমাদের ডেটা উৎস এবং অন্যান্য কনফিগারেশনের সাথে কনফিগার করা।

tools.yaml কনফিগার করা হচ্ছে

টুলবক্স কনফিগার করার প্রাথমিক উপায় হল tools.yaml ফাইলের মাধ্যমে। একই ফোল্ডারে tools.yaml নামে একটি ফাইল তৈরি করুন যেমন mcp-toolbox , যার বিষয়বস্তু নীচে দেখানো হয়েছে।

আপনি ক্লাউড শেলে উপলব্ধ ন্যানো সম্পাদক ব্যবহার করতে পারেন। ন্যানো কমান্ডটি নিম্নরূপ: " nano tools.yaml "।

আপনার Google ক্লাউড প্রজেক্ট আইডি দিয়ে YOUR_PROJECT_ID মান প্রতিস্থাপন করতে ভুলবেন না।

sources:
 my-cloud-sql-source:
   kind: cloud-sql-postgres
   project: YOUR_PROJECT_ID
   region: us-central1
   instance: hoteldb-instance
   database: postgres
   user: postgres
   password: postgres

tools:
 search-hotels-by-name:
   kind: postgres-sql
   source: my-cloud-sql-source
   description: Search for hotels based on name.
   parameters:
     - name: name
       type: string
       description: The name of the hotel.
   statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';
 search-hotels-by-location:
   kind: postgres-sql
   source: my-cloud-sql-source
   description: Search for hotels based on location.
   parameters:
     - name: location
       type: string
       description: The location of the hotel.
   statement: SELECT * FROM hotels WHERE location ILIKE '%' || $1 || '%';

toolsets:
   my_first_toolset:
     - search-hotels-by-name
     - search-hotels-by-location

আসুন সংক্ষেপে ফাইলটি বুঝতে পারি:

  1. Sources আপনার বিভিন্ন ডেটা উত্সের প্রতিনিধিত্ব করে যার সাথে একটি টুল ইন্টারঅ্যাক্ট করতে পারে। একটি উৎস একটি তথ্য উৎস প্রতিনিধিত্ব করে যার সাথে একটি টুল ইন্টারঅ্যাক্ট করতে পারে। আপনি আপনার tools.yaml ফাইলের উত্স বিভাগে একটি মানচিত্র হিসাবে Sources সংজ্ঞায়িত করতে পারেন৷ সাধারণত, একটি উৎস কনফিগারেশনে ডাটাবেসের সাথে সংযোগ এবং ইন্টারঅ্যাক্ট করার জন্য প্রয়োজনীয় যেকোন তথ্য থাকবে। আমাদের ক্ষেত্রে, আমরা একটি একক উত্স কনফিগার করেছি যা প্রমাণপত্রের সাথে PostgreSQL উদাহরণের জন্য আমাদের Cloud SQL নির্দেশ করে৷ আরও তথ্যের জন্য, উত্স রেফারেন্স পড়ুন.
  2. Tools একটি এজেন্ট যে কাজগুলি নিতে পারে তা সংজ্ঞায়িত করে - যেমন একটি উত্স পড়া এবং লেখা৷ একটি টুল আপনার এজেন্ট নিতে পারে এমন একটি কাজকে প্রতিনিধিত্ব করে, যেমন একটি SQL স্টেটমেন্ট চালানো। আপনি আপনার tools.yaml ফাইলের টুলস বিভাগে একটি মানচিত্র হিসেবে Tools সংজ্ঞায়িত করতে পারেন। সাধারণত, একটি টুলের উপর কাজ করার জন্য একটি উৎসের প্রয়োজন হবে। আমাদের ক্ষেত্রে, আমরা দুটি টুল সংজ্ঞায়িত করছি: search-hotels-by-name এবং search-hotels-by-location এবং এসকিউএল এবং পরামিতিগুলির সাথে এটি যে উত্সটি কাজ করছে তা নির্দিষ্ট করছি। আরও তথ্যের জন্য, টুল রেফারেন্স পড়ুন।
  3. অবশেষে, আমাদের কাছে Toolset আছে, যা আপনাকে টুলসগুলির গ্রুপ সংজ্ঞায়িত করতে দেয় যা আপনি একসাথে লোড করতে সক্ষম হতে চান। এজেন্ট বা অ্যাপ্লিকেশনের উপর ভিত্তি করে বিভিন্ন গ্রুপ সংজ্ঞায়িত করার জন্য এটি কার্যকর হতে পারে। আমাদের ক্ষেত্রে, আমাদের কাছে my_first_toolset নামে একটি একক টুলসেট আছে, যেটিতে আমরা সংজ্ঞায়িত দুটি টুল ধারণ করেছি।

ডাটাবেস সার্ভারের জন্য MCP টুলবক্স চালান

সার্ভার শুরু করতে নিম্নলিখিত কমান্ডটি চালান ( mcp-toolbox ফোল্ডার থেকে):

./toolbox --tools-file "tools.yaml"

আদর্শভাবে আপনি একটি আউটপুট দেখতে পাবেন যে সার্ভার আমাদের ডেটা উত্সগুলির সাথে সংযোগ করতে সক্ষম হয়েছে এবং টুলসেট এবং সরঞ্জামগুলি লোড করেছে৷ একটি নমুনা আউটপুট নীচে দেওয়া হল:

./toolbox --tools-file "tools.yaml"
2025-04-23T14:32:29.564903079Z INFO "Initialized 1 sources."
2025-04-23T14:32:29.565009291Z INFO "Initialized 0 authServices."
2025-04-23T14:32:29.565070176Z INFO "Initialized 2 tools."
2025-04-23T14:32:29.565120847Z INFO "Initialized 2 toolsets."
2025-04-23T14:32:29.565510068Z INFO "Server ready to serve!"

MCP টুলবক্স সার্ভার ডিফল্টভাবে পোর্ট 5000 এ চলে। আপনি যদি দেখেন যে পোর্ট 5000 ইতিমধ্যেই ব্যবহার করা হচ্ছে, নীচে দেখানো কমান্ড অনুযায়ী অন্য পোর্ট (বলুন 7000 ) ব্যবহার করতে দ্বিধা বোধ করুন। অনুগ্রহ করে পরবর্তী কমান্ডে 5000 পোর্টের পরিবর্তে 7000 ব্যবহার করুন।

./toolbox --tools-file "tools.yaml" --port 7000

আসুন এটি পরীক্ষা করার জন্য ক্লাউড শেল ব্যবহার করি।

ক্লাউড শেলের ওয়েব প্রিভিউতে ক্লিক করুন নিচের মত:

f990712162e8e924.png

চেঞ্জ পোর্টে ক্লিক করুন এবং নীচের চিত্রের মতো পোর্টটিকে 5000 এ সেট করুন এবং পরিবর্তন এবং পূর্বরূপ ক্লিক করুন।

d1b9de0c46ecef8a.png

এটি নিম্নলিখিত আউটপুট আনতে হবে:

2fdcdac326034d41.png

ব্রাউজার URL-এ, URL-এর শেষে নিম্নলিখিত যোগ করুন:

/api/toolset

এটি বর্তমানে কনফিগার করা সরঞ্জামগুলিকে আনতে হবে। একটি নমুনা আউটপুট নীচে দেখানো হয়েছে:

{
  "serverVersion": "0.3.0+container.12222fe27ae070f2689a0632d60fda45412d1f97",
  "tools": {
    "search-hotels-by-location": {
      "description": "Search for hotels based on location.",
      "parameters": [
        {
          "name": "location",
          "type": "string",
          "description": "The location of the hotel.",
          "authSources": []
        }
      ]
    },
    "search-hotels-by-name": {
      "description": "Search for hotels based on name.",
      "parameters": [
        {
          "name": "name",
          "type": "string",
          "description": "The name of the hotel.",
          "authSources": []
        }
      ]
    }
  }
}

ডাটাবেসের জন্য এমসিপি টুলকিট আপনার জন্য একটি পাইথনিক উপায় বর্ণনা করে টুলগুলিকে যাচাই ও পরীক্ষা করার জন্য, যা এখানে নথিভুক্ত করা হয়েছে। আমরা এটি এড়িয়ে যাবো এবং পরবর্তী বিভাগে সরাসরি এজেন্ট ডেভেলপমেন্ট কিট (ADK) এ ঝাঁপ দেব যা এই সরঞ্জামগুলি ব্যবহার করবে।

6. এজেন্ট ডেভেলপমেন্ট কিট (ADK) দিয়ে আমাদের এজেন্ট লেখা

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

ক্লাউড শেলে একটি নতুন টার্মিনাল ট্যাব খুলুন এবং নিম্নরূপ my-agents নামে একটি ফোল্ডার তৈরি করুন। my-agents ফোল্ডারেও নেভিগেট করুন।

mkdir my-agents
cd
my-agents

এখন, venv ব্যবহার করে একটি ভার্চুয়াল পাইথন পরিবেশ তৈরি করা যাক:

python -m venv .venv

নিম্নরূপ ভার্চুয়াল পরিবেশ সক্রিয় করুন:

source .venv/bin/activate

ল্যাংচেইন নির্ভরতা সহ ডাটাবেস প্যাকেজের জন্য ADK এবং MCP টুলবক্স ইনস্টল করুন:

pip install google-adk toolbox-core

আপনি এখন নিম্নলিখিত হিসাবে adk ইউটিলিটি আহ্বান করতে সক্ষম হবেন।

adk

এটি আপনাকে কমান্ডের একটি তালিকা দেখাবে।

$ adk
Usage: adk [OPTIONS] COMMAND [ARGS]...

  Agent Development Kit CLI tools.

Options:
  --help  Show this message and exit.

Commands:
  api_server  Starts a FastAPI server for agents.
  create      Creates a new app in the current folder with prepopulated agent template.
  deploy      Deploys agent to hosted environments.
  eval        Evaluates an agent given the eval sets.
  run         Runs an interactive CLI for a certain agent.
  web         Starts a FastAPI server with Web UI for agents.

আমাদের প্রথম এজেন্ট অ্যাপ্লিকেশন তৈরি করা হচ্ছে

আমরা এখন adk ব্যবহার করতে যাচ্ছি আমাদের হোটেল এজেন্ট অ্যাপ্লিকেশনের জন্য একটি স্ক্যাফোল্ডিং তৈরি করতে adk create কমান্ডের মাধ্যমে একটি অ্যাপ নাম ** (hotel-agent-app) ** নীচে দেওয়া হয়েছে।

adk create hotel-agent-app

ধাপ অনুসরণ করুন এবং নিম্নলিখিত নির্বাচন করুন:

  • রুট এজেন্ট জন্য একটি মডেল নির্বাচন করার জন্য মিথুন মডেল।
  • ব্যাকএন্ডের জন্য ভার্টেক্স এআই বেছে নিন।
  • আপনার ডিফল্ট Google প্রকল্প আইডি এবং অঞ্চল প্রদর্শিত হবে৷ ডিফল্ট নিজেই নির্বাচন করুন.
Choose a model for the root agent:
1. gemini-2.0-flash-001
2. Other models (fill later)

Choose model (1, 2): 1
1. Google AI
2. Vertex AI
Choose a backend (1, 2): 2

You need an existing Google Cloud account and project, check out this link for details:
https://google.github.io/adk-docs/get-started/quickstart/#gemini---google-cloud-vertex-ai

Enter Google Cloud project ID [gcp-experiments-349209]:
Enter Google Cloud region [us-central1]:

Agent created in /home/romin/hotel-agent-app:
- .env
- __init__.py
- agent.py

যে ফোল্ডারে একটি ডিফল্ট টেমপ্লেট এবং এজেন্টের জন্য প্রয়োজনীয় ফাইল তৈরি করা হয়েছে তা পর্যবেক্ষণ করুন।

প্রথমে .env ফাইল। যার বিষয়বস্তু নিচে দেখানো হল:

GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT
=YOUR_GOOGLE_PROJECT_ID
GOOGLE_CLOUD_LOCATION
=YOUR_GOOGLE_PROJECT_REGION

মানগুলি নির্দেশ করে যে আমরা Google ক্লাউড প্রকল্প আইডি এবং অবস্থানের জন্য সংশ্লিষ্ট মানগুলির সাথে Vertex AI এর মাধ্যমে Gemini ব্যবহার করব৷

তারপরে আমাদের কাছে __init__.py ফাইলটি রয়েছে যা ফোল্ডারটিকে একটি মডিউল হিসাবে চিহ্নিত করে এবং একটি একক বিবৃতি রয়েছে যা agent.py ফাইল থেকে এজেন্টকে আমদানি করে।

from . import agent

অবশেষে, আসুন agent.py ফাইলটি দেখে নেওয়া যাক। বিষয়বস্তু নীচে দেখানো হয়:

from google.adk.agents import Agent

root_agent = Agent(
   
model='gemini-2.0-flash-001',
   
name='root_agent',
   
description='A helpful assistant for user questions.',
   
instruction='Answer user questions to the best of your knowledge',
)

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

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

আসুন agent.py এর কোডটি নিম্নরূপ পরিবর্তন করি:

from google.adk.agents import Agent

root_agent = Agent(
   
model='gemini-2.0-flash-001',
   
name='hotel_agent',
   
description='A helpful assistant that answers questions about a specific city.',
   
instruction='Answer user questions about a specific city to the best of your knowledge. Do not answer questions outside of this.',
)

স্থানীয়ভাবে এজেন্ট অ্যাপ পরীক্ষা করুন

বিদ্যমান টার্মিনাল উইন্ডো থেকে এবং নিম্নলিখিত কমান্ড দিন। hotel-agent-app ফোল্ডার ধারণকারী প্যারেন্ট ফোল্ডারে (my-agents) আছেন তা নিশ্চিত করুন।

adk web

একটি নমুনা মৃত্যুদন্ড নীচে দেখানো হয়েছে:

INFO:     Started server process [5015]
INFO:     Waiting for application startup.

+-----------------------------------------------------------------------------+
| ADK Web Server started                                                      |
|                                                                             |
| For local testing, access at http://localhost:8000.                         |
+-----------------------------------------------------------------------------+

INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

শেষ লিঙ্কে ক্লিক করুন এবং এজেন্ট পরীক্ষা করার জন্য এটি একটি ওয়েব কনসোল আনতে হবে। আপনি নীচে দেখানো ব্রাউজারে নিম্নলিখিত চালু করা দেখতে হবে:

fe775e0eac5df274.png

লক্ষ্য করুন উপরের বামদিকে, হোটেল-এজেন্ট-অ্যাপটি চিহ্নিত করা হয়েছে। আপনি এখন এজেন্টের সাথে কথোপকথন শুরু করতে পারেন। শহর সম্পর্কে অনুসন্ধানের জন্য কয়েকটি প্রম্পট প্রদান করুন। একটি উদাহরণ কথোপকথন নীচে দেখানো হয়েছে:

b732feb383668869.png

আপনি ক্লাউড শেল টার্মিনালে (Ctrl-C) চলমান প্রক্রিয়াটি বন্ধ করতে পারেন।

এজেন্ট পরীক্ষা করার একটি বিকল্প উপায় হল adk run কমান্ডের মাধ্যমে যা my-agents ফোল্ডার থেকে নীচে দেওয়া হয়েছে।

adk run hotel-agent-app

কমান্ডটি ব্যবহার করে দেখুন এবং আপনি কমান্ড লাইন (টার্মিনাল) এর মাধ্যমে এজেন্টের সাথে কথোপকথন করতে পারেন। কথোপকথন বন্ধ করতে exit টাইপ করুন.

7. আমাদের এজেন্টকে টুলের সাথে সংযুক্ত করা হচ্ছে

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

আমাদের ক্ষেত্রে, আমরা এখন আমাদের এজেন্টকে সেই টুলস দিয়ে সজ্জিত করতে যাচ্ছি যা আমরা ডেটাবেসের জন্য MCP টুলবক্সে কনফিগার করেছি।

নিম্নলিখিত কোড দিয়ে agent.py ফাইলটি পরিবর্তন করুন। লক্ষ্য করুন যে আমরা কোডে ডিফল্ট পোর্ট 5000 ব্যবহার করছি, কিন্তু আপনি যদি একটি বিকল্প পোর্ট নম্বর ব্যবহার করেন তবে দয়া করে সেটি ব্যবহার করুন।

from google.adk.agents import Agent
from toolbox_core import ToolboxSyncClient

toolbox = ToolboxSyncClient("http://127.0.0.1:5000")

# Load single tool
# tools = toolbox.load_tool('search-hotels-by-location')

# Load all the tools
tools = toolbox.load_toolset('my_first_toolset')

root_agent = Agent(
   
name="hotel_agent",
   
model="gemini-2.0-flash",
   
description=(
       
"Agent to answer questions about hotels in a city or hotels by name."
   
),
   
instruction=(
       
"You are a helpful agent who can answer user questions about the hotels in a specific city or hotels by name. Use the tools to answer the question"
   
),
   
tools=tools,
)

আমরা এখন এজেন্টকে পরীক্ষা করতে পারি যা আমাদের PostgreSQL ডাটাবেস থেকে প্রকৃত ডেটা আনবে যা ডাটাবেসের জন্য MCP টুলবক্সের সাথে কনফিগার করা হয়েছে।

এটি করার জন্য, এই ক্রম অনুসরণ করুন:

ক্লাউড শেলের একটি টার্মিনালে, ডাটাবেসের জন্য MCP টুলবক্স চালু করুন। আমরা আগে পরীক্ষিত হিসাবে আপনার কাছে এটি ইতিমধ্যেই পোর্ট 5000-এ স্থানীয়ভাবে চলমান থাকতে পারে। যদি না হয়, সার্ভার শুরু করতে নিম্নলিখিত কমান্ডটি চালান ( mcp-toolbox ফোল্ডার থেকে):

./toolbox --tools_file "tools.yaml"

আদর্শভাবে আপনি একটি আউটপুট দেখতে পাবেন যে সার্ভার আমাদের ডেটা উত্সগুলির সাথে সংযোগ করতে সক্ষম হয়েছে এবং টুলসেট এবং সরঞ্জামগুলি লোড করেছে৷ একটি নমুনা আউটপুট নীচে দেওয়া হল:

./toolbox --tools-file "tools.yaml"
2025-04-23T14:32:29.564903079Z INFO "Initialized 1 sources."
2025-04-23T14:32:29.565009291Z INFO "Initialized 0 authServices."
2025-04-23T14:32:29.565070176Z INFO "Initialized 2 tools."
2025-04-23T14:32:29.565120847Z INFO "Initialized 2 toolsets."
2025-04-23T14:32:29.565510068Z INFO "Server ready to serve!"

MCP সার্ভার সফলভাবে শুরু হয়ে গেলে, অন্য একটি টার্মিনালে, নিচে দেখানো adk run ( my-agents ফোল্ডার থেকে) কমান্ডের মাধ্যমে এজেন্ট চালু করুন। আপনি চাইলে adk web কমান্ডও ব্যবহার করতে পারেন।

$ adk run hotel-agent-app/

Log setup complete: /tmp/agents_log/agent.20250423_170001.log
To access latest log: tail -F /tmp/agents_log/agent.latest.log
Running agent hotel_agent, type exit to exit.

user: what can you do for me?
[hotel_agent]: I can help you find hotels in a specific city or search for hotels by name.

user: I would like to search for hotels
[hotel_agent]: Great, do you have a specific city or hotel name in mind?

user: Yes a specific city
[hotel_agent]: Great, which city are you interested in?

user: Basel
[hotel_agent]: OK. I found three hotels in Basel: Hilton Basel, Hyatt Regency Basel, and Holiday Inn Basel.

লক্ষ্য করুন যে এজেন্ট এখন ডাটাবেসের জন্য MCP টুলবক্সে কনফিগার করা দুটি টুল ব্যবহার করছে ( search-hotels-by-name এবং search-hotels-by-location ) এবং আমাদের সঠিক বিকল্প প্রদান করছে। তারপরে এটি PostgreSQL ইনস্ট্যান্স ডাটাবেস থেকে নির্বিঘ্নে ডেটা পুনরুদ্ধার করতে এবং সেই অনুযায়ী প্রতিক্রিয়া ফর্ম্যাট করতে সক্ষম হয়।

এটি আমাদের হোটেল এজেন্টের স্থানীয় উন্নয়ন এবং পরীক্ষা সম্পূর্ণ করে যা আমরা এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে তৈরি করেছি এবং যা ডেটাবেসের জন্য MCP টুলবক্সে কনফিগার করা টুল দ্বারা চালিত হয়েছিল।

8. (ঐচ্ছিক) ক্লাউড রানে ডাটাবেস এবং এজেন্টের জন্য MCP টুলবক্স স্থাপন করা

পূর্ববর্তী বিভাগে, আমরা MCP টুলবক্স সার্ভার চালু করতে ক্লাউড শেল টার্মিনাল ব্যবহার করেছি এবং এজেন্টের সাথে সরঞ্জামগুলি পরীক্ষা করেছি। এটি ক্লাউড শেল পরিবেশে স্থানীয়ভাবে চলছিল।

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

ক্লাউড রানে MCP টুলবক্স সার্ভার হোস্টিং

প্রথমত, আমরা MCP টুলবক্স সার্ভার দিয়ে শুরু করতে পারি এবং এটিকে ক্লাউড রানে হোস্ট করতে পারি। এটি তখন আমাদের একটি পাবলিক এন্ডপয়েন্ট দেবে যা আমরা অন্য কোনো অ্যাপ্লিকেশন এবং/অথবা এজেন্ট অ্যাপ্লিকেশনগুলির সাথেও একীভূত করতে পারি। ক্লাউড রানে এটি হোস্ট করার নির্দেশাবলী এখানে দেওয়া হয়েছে। আমরা এখন মূল পদক্ষেপের মধ্য দিয়ে যেতে হবে.

একটি নতুন ক্লাউড শেল টার্মিনাল চালু করুন বা একটি বিদ্যমান ক্লাউড শেল টার্মিনাল ব্যবহার করুন৷ mcp-toolbox ফোল্ডারে যান, যেখানে toolbox বাইনারি এবং tools.yaml উপস্থিত রয়েছে।

নিম্নলিখিত কমান্ডগুলি চালান (প্রতিটি কমান্ডের জন্য একটি ব্যাখ্যা প্রদান করা হয়):

আপনার Google ক্লাউড প্রকল্প আইডি নির্দেশ করতে PROJECT_ID ভেরিয়েবল সেট করুন।

export PROJECT_ID="YOUR_GOOGLE_CLOUD_PROJECT_ID" 

এরপরে, যাচাই করুন যে নিম্নলিখিত Google ক্লাউড পরিষেবাগুলি প্রকল্পে সক্ষম করা হয়েছে৷

gcloud services enable run.googleapis.com \
                       cloudbuild.googleapis.com \
                       artifactregistry.googleapis.com \
                       iam.googleapis.com \
                       secretmanager.googleapis.com

আসুন একটি পৃথক পরিষেবা অ্যাকাউন্ট তৈরি করি যা টুলবক্স পরিষেবার পরিচয় হিসাবে কাজ করবে যা আমরা Google ক্লাউড রানে স্থাপন করব৷ আমরা নিশ্চিত করছি যে এই পরিষেবা অ্যাকাউন্টের সঠিক ভূমিকা রয়েছে যেমন সিক্রেট ম্যানেজার অ্যাক্সেস করার এবং ক্লাউড SQL এর সাথে কথা বলার ক্ষমতা।

gcloud iam service-accounts create toolbox-identity

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/secretmanager.secretAccessor

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/cloudsql.client

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

gcloud secrets create tools --data-file=tools.yaml

export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest

ক্লাউড রানে পরিচিত স্থাপনার কমান্ডের শেষ ধাপ:

gcloud run deploy toolbox \
--image $IMAGE \
--service-account toolbox-identity \
--region us-central1 \
--set-secrets "/app/tools.yaml=tools:latest" \
--args="--tools_file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \
--allow-unauthenticated

এটি আমাদের কনফিগার করা tools.yaml এর সাথে ক্লাউড রানে টুলবক্স সার্ভার স্থাপনের প্রক্রিয়া শুরু করবে। সফল স্থাপনায়, আপনি নিম্নলিখিতগুলির মতো একটি বার্তা দেখতে পাবেন:

Deploying container to Cloud Run service [toolbox] in project [YOUR_PROJECT_ID] region [us-central1]
OK Deploying new service... Done.                                                                                                                                                                                    
  OK Creating Revision...                                                                                                                                                                                            
  OK Routing traffic...                                                                                                                                                                                              
  OK Setting IAM Policy...                                                                                                                                                                                            
Done.                                                                                                                                                                                                                
Service [toolbox] revision [toolbox-00001-zsk] has been deployed and is serving 100 percent of traffic.
Service URL: https://toolbox-<SOME_ID>.us-central1.run.app

আপনি এখন ব্রাউজারে উপরে তালিকাভুক্ত Service URL দেখতে পারেন। এটি "হ্যালো ওয়ার্ল্ড" বার্তাটি প্রদর্শন করা উচিত যা আমরা আগে দেখেছি। উপরন্তু, আপনি উপলব্ধ সরঞ্জামগুলি দেখতে নিম্নলিখিত URL-এ যেতে পারেন:

SERVICE URL/api/toolset

এছাড়াও আপনি Google ক্লাউড কনসোল থেকে ক্লাউড রান পরিদর্শন করতে পারেন এবং আপনি ক্লাউড রানে পরিষেবার তালিকায় উপলব্ধ টুলবক্স পরিষেবা দেখতে পাবেন।

দ্রষ্টব্য: আপনি যদি এখনও স্থানীয়ভাবে আপনার হোটেল এজেন্ট চালাতে চান এবং এখনও নতুন নিয়োজিত ক্লাউড রান পরিষেবার সাথে সংযোগ করতে চান, তাহলে আপনাকে শুধুমাত্র my-agents/hotel-agent-app/agent.py ফাইলে একটি পরিবর্তন করতে হবে৷

নিম্নলিখিত পরিবর্তে:

toolbox = ToolboxTool("http://127.0.0.1:5000")

নীচে দেওয়া হিসাবে ক্লাউড রান পরিষেবার পরিষেবা URL এ এটি পরিবর্তন করুন:

toolbox = ToolboxTool("CLOUD_RUN_SERVICE_URL")

adk run বা adk web ব্যবহার করে এজেন্ট অ্যাপ্লিকেশন পরীক্ষা করুন যেমন আমরা আগে দেখেছি।

ক্লাউড রানে হোটেল এজেন্ট অ্যাপ স্থাপন করা হচ্ছে

প্রথম ধাপ হল নিশ্চিত করা যে আপনি my-agents/hotel-agent-app/agent.py এ পরিবর্তন করেছেন উপরে নির্দেশিত টুলবক্স পরিষেবা URL যা ক্লাউড রানে চলছে এবং স্থানীয় হোস্টে নয়।

একটি নতুন ক্লাউড শেল টার্মিনাল বা বিদ্যমান টার্মিনাল সেশনে, নিশ্চিত করুন যে আপনি সঠিক পাইথন ভার্চুয়াল পরিবেশে আছেন যা আমরা আগে সেট আপ করেছি।

প্রথমে, আসুন নিচের মতো my-agents/hotel-agent-app ফোল্ডারে একটি requirements.txt ফাইল তৈরি করি:

google-adk
toolbox-core

my-agents ফোল্ডারে নেভিগেট করুন এবং প্রথমে নিম্নলিখিত পরিবেশের ভেরিয়েবল সেট করুন:

export GOOGLE_CLOUD_PROJECT=YOUR_GOOGLE_CLOUD_PROJECT_ID
export GOOGLE_CLOUD_LOCATION=us-central1
export AGENT_PATH="hotel-agent-app/"
export SERVICE_NAME="hotels-service"
export APP_NAME="hotels-app"
export GOOGLE_GENAI_USE_VERTEXAI=True

অবশেষে, নিচের মত adk deploy cloud_run কমান্ডের মাধ্যমে ক্লাউড রানে এজেন্ট অ্যাপ্লিকেশনটি স্থাপন করা যাক। যদি আপনাকে পরিষেবাতে অননুমোদিত আহ্বানের অনুমতি দিতে বলা হয়, অনুগ্রহ করে এখনকার মান হিসাবে "y" প্রদান করুন৷

adk deploy cloud_run \
--project=$GOOGLE_CLOUD_PROJECT \
--region=$GOOGLE_CLOUD_LOCATION \
--service_name=$SERVICE_NAME  \
--app_name=$APP_NAME \
--with_ui \
$AGENT_PATH

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

আপনি নীচের একটি অনুরূপ একটি বার্তা দেখতে হবে:

Start generating Cloud Run source files in /tmp/cloud_run_deploy_src/20250424_045623
Copying agent source code...
Copying agent source code complete.
Creating Dockerfile...
Creating Dockerfile complete: /tmp/cloud_run_deploy_src/20250424_045623/Dockerfile
Deploying to Cloud Run...
Building using Dockerfile and deploying container to Cloud Run service [hotels-service] in project [YOUR_GOOGLE_CLOUD_PROJECT] region [us-central1]
|  Building and deploying... Uploading sources.                                                                                                                                                                      
  |  Uploading sources...                                                                                                                                                                                            
OK Building and deploying... Done.                                                                                                                                                                                    
  OK Uploading sources...                                                                                                                                                                                            
  OK Building Container... Logs are available at [https://console.cloud.google.com/cloud-build/builds;region=us-central1/b02f5a74-6da6-4367-aaba-0c8aa098edf5?project=415458962931].                                  
  OK Creating Revision...                                                                                                                                                                                            
  OK Routing traffic...                                                                                                                                                                                              
Done.                                                                                                                                                                                                                
Service [hotels-service] revision [hotels-service-00002-cpm] has been deployed and is serving 100 percent of traffic.
Service URL: https://hotels-service-<SOME_ID>.us-central1.run.app
Cleaning up the temp folder: /tmp/cloud_run_deploy_src/20250424_045623

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

56bc8b29fa9c9989.png

9. ক্লিনআপ

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

আপনার প্রকল্প এবং অঞ্চল অনুযায়ী নিম্নলিখিত পরিবেশ ভেরিয়েবলগুলি সঠিকভাবে সেট করা হয়েছে তা নিশ্চিত করুন:

export PROJECT_ID="YOUR_PROJECT_ID"
export REGION="YOUR_REGION"

নিম্নলিখিত দুটি কমান্ড ক্লাউড রান পরিষেবাগুলিকে মুছে দেয় যা আমরা স্থাপন করেছি:

gcloud run services delete toolbox --platform=managed --region=${REGION} --project=${PROJECT_ID} --quiet

gcloud run services delete hotels-app --platform=managed --region=${REGION} --project=${PROJECT_ID} --quiet

নিম্নলিখিত কমান্ডটি ক্লাউড এসকিউএল ইনস্ট্যান্স মুছে দেয়:

gcloud sql instances delete hoteldb-instance

10. অভিনন্দন

অভিনন্দন, আপনি সফলভাবে এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে একটি এজেন্ট তৈরি করেছেন যা ডাটাবেসের জন্য MCP টুলবক্স ব্যবহার করে।

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