ADK, MCP টুলবক্স এবং AlloyDB এর সাথে একটি স্পোর্টস শপ এজেন্ট এআই সহকারী তৈরি করুন

1. ভূমিকা

আপনি কি নির্মাণ করবেন

এই কোডল্যাবে, আপনি শিখবেন কিভাবে একটি স্পোর্টস শপ এজেন্ট এআই সহকারী তৈরি করতে হয়। এই পরবর্তী প্রজন্মের এজেন্ট AI অ্যাপ্লিকেশন, যা ADK , MCP টুলবক্স এবং AlloyDB দ্বারা চালিত, ব্যবহারকারীদের বিভিন্ন কাজে সহায়তা করবে, যার মধ্যে রয়েছে:

  • প্রাকৃতিক ভাষা ব্যবহার করে পণ্য অনুসন্ধান করা হচ্ছে।
  • প্রস্তাবিত পণ্য কেনার জন্য কাছাকাছি দোকান খুঁজে বের করা.
  • নতুন অর্ডার স্থাপন.
  • বিদ্যমান অর্ডার স্থিতি পরীক্ষা করা হচ্ছে।
  • পছন্দের ডেলিভারি পদ্ধতি সহ অর্ডার আপডেট করা হচ্ছে।

7d9b5c1b10d1c654.png

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

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

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

এই কোডল্যাবটি সম্পূর্ণ করতে আপনার প্রয়োজন হবে:

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

এই কোডল্যাবটি নতুনদের সহ সকল স্তরের বিকাশকারীদের জন্য ডিজাইন করা হয়েছে৷

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

আপনি স্পোর্টস শপ এজেন্ট এআই সহকারী তৈরি করা শুরু করার আগে আপনার Google ক্লাউড প্রকল্পে প্রয়োজনীয় প্রাথমিক সেটআপের মাধ্যমে এই বিভাগটি আপনাকে গাইড করে।

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

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

e44cf973ddf8b70f.png

  1. একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি পরীক্ষা করে দেখুন যে আপনি ইতিমধ্যেই প্রমাণীকৃত হয়েছেন এবং নিম্নলিখিত কমান্ডটি ব্যবহার করে প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে:
gcloud auth list
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
  1. ভেরিয়েবল PROJECT_ID সেট করুন, এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
export PROJECT_ID=[YOUR_PROJECT_ID]
gcloud config set project $PROJECT_ID
  1. নিম্নলিখিত কমান্ডগুলি চালিয়ে নিম্নলিখিত APIগুলি সক্ষম করুন:
gcloud services enable alloydb.googleapis.com \
                       compute.googleapis.com \
                       cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       vpcaccess.googleapis.com \
                       aiplatform.googleapis.com

3. AlloyDB ইনস্ট্যান্স তৈরি করুন

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

প্রথমে, AlloyDB ক্লাস্টার তৈরি করতে আপনার ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:

gcloud alloydb clusters create alloydb-cluster \
    --password=alloydb\
    --network=default \
    --region=us-central1 \
    --database-version=POSTGRES_16

নিরাপদ এবং উচ্চ-কর্মক্ষমতা অ্যাক্সেসের জন্য AlloyDB ব্যক্তিগত আইপি সংযোগের উপর নির্ভর করে। Google-এর দ্বারা পরিচালিত পরিষেবা নেটওয়ার্কিং পরিকাঠামোতে পরিষেবা পিয়ারিং সংযোগের জন্য ব্যবহার করার জন্য আপনাকে আপনার VPC-এর মধ্যে একটি ব্যক্তিগত IP পরিসর বরাদ্দ করতে হবে৷ নিম্নলিখিত কমান্ড চালান:

gcloud compute addresses create peering-range-for-alloydb \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --description="Automatically allocated IP range for service networking" \
    --network=default

এরপরে, ভিপিসি সার্ভিস পিয়ারিং সংযোগ তৈরি করুন। এটি আপনার Google ক্লাউড ভার্চুয়াল প্রাইভেট ক্লাউড (VPC) নেটওয়ার্ককে AlloyDB সহ Google এর পরিচালিত পরিষেবাগুলির সাথে নিরাপদে এবং ব্যক্তিগতভাবে যোগাযোগ করার অনুমতি দেয়৷ নিম্নলিখিত কমান্ড চালান:

gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=peering-range-for-alloydb \
--network=default

এখন, আপনার AlloyDB ক্লাস্টারের মধ্যে প্রাথমিক উদাহরণ তৈরি করুন। এটিই প্রকৃত ডাটাবেস এন্ডপয়েন্ট যার সাথে আপনার অ্যাপ্লিকেশন সংযুক্ত হবে। একটি AlloyDB ইনস্ট্যান্স তৈরি করতে নিম্নলিখিত কমান্ডটি চালান:

gcloud alloydb instances create alloydb-inst \
     --instance-type=PRIMARY \
     --cpu-count=2 \
     --region=us-central1 \
     --cluster=alloydb-cluster \
     --availability-type=ZONAL \
     --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED

দ্রষ্টব্য: উদাহরণ তৈরি সম্পূর্ণ হতে প্রায় 10 মিনিট সময় নিতে পারে৷ অনুগ্রহ করে এগিয়ে যাওয়ার আগে এই অপারেশনটি শেষ হওয়ার জন্য অপেক্ষা করুন।

Vertex AI ইন্টিগ্রেশন সক্ষম করুন

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

প্রথমে, আপনার Google ক্লাউড প্রজেক্ট নম্বর পুনরুদ্ধার করুন, কারণ এটি IAM বাইন্ডিংয়ের জন্য প্রয়োজনীয়।

PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
gcloud projects describe $PROJECT_ID --format="value(projectNumber)"

তারপর AlloyDB পরিষেবা এজেন্টকে Vertex AI অনুমতি দিন:

gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:service-$PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"

পাবলিক আইপি সক্ষম করুন

নিম্নলিখিত পদক্ষেপগুলির জন্য প্রস্তুতির জন্য, আমরা আমাদের AlloyDB উদাহরণে পাবলিক আইপি সংযোগ সক্ষম করব।

কনসোলে, স্ক্রিনের উপরের মাঝখানে সার্চ ফিল্ডে যান এবং "অ্যালয়ডিবি" প্রবর্তন করুন, তারপরে, সম্পাদনা করুন এবং পাবলিক আইপি সংযোগ বিভাগে যান। "পাবলিক আইপি সক্ষম করুন" চেকবক্সটি চেক করুন এবং আপনার ক্লাউড শেল মেশিনের আইপি ঠিকানা লিখুন।

c200ee8f8b776ed4.png

আপনার ক্লাউড শেল মেশিনের আইপি পেতে, ক্লাউড শেল টার্মিনালে যান এবং " ifconfig | grep -A 1 eth0" কমান্ডটি লিখুন। ফলাফল থেকে, শেষ 2টি সংখ্যা 0.0 দিয়ে প্রতিস্থাপন করুন একটি মাস্ক আকার '/16' দিয়ে। উদাহরণের জন্য এটি দেখতে "XX.XX.0.0/16" এর মত হবে যেখানে XX সংখ্যা।

সম্পাদনা উদাহরণ পৃষ্ঠার অনুমোদিত বহিরাগত নেটওয়ার্ক "নেটওয়ার্ক" পাঠ্যবক্সে এই আইপিটি আটকান৷

a274101902019848.png

দ্রষ্টব্য: আপডেট অপারেশন 3 মিনিট পর্যন্ত সময় নিতে পারে

4. ডাটাবেস লোড করুন

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

এখন আপনার ডাটাবেস তৈরি করার এবং আপনার স্পোর্টস শপের জন্য প্রাথমিক ডেটা লোড করার সময়।

ক্লাউড শেল থেকে আপনার ব্যক্তিগত AlloyDB উদাহরণের সাথে সংযোগ করতে psql সক্ষম করতে, আপনি AlloyDB Auth Proxy ব্যবহার করবেন। এই ইউটিলিটি নিরাপদে ডাটাবেসের সাথে আপনার সংযোগ টানেল করে। ( AloyDB Auth Proxy পড়ুন)

নিম্নলিখিত কমান্ড ব্যবহার করে AlloyDB Auth Proxy ডাউনলোড করুন:

wget https://storage.googleapis.com/alloydb-auth-proxy/v1.13.3/alloydb-auth-proxy.linux.amd64 -O alloydb-auth-proxy

এটি কার্যকর করুন:

chmod +x alloydb-auth-proxy

আপনার প্রথম ক্লাউড শেল টার্মিনাল উইন্ডোতে এই কমান্ডটি চালান। প্রক্সি ব্যাকগ্রাউন্ডে এবং ফরোয়ার্ড কানেকশনে চলবে।

./alloydb-auth-proxy "projects/$PROJECT_ID/locations/us-central1/clusters/alloydb-cluster/instances/alloydb-inst" --public-ip

গুরুত্বপূর্ণ: এই টার্মিনাল উইন্ডোটি খোলা রেখে প্রক্সি চালান। এটা বন্ধ করবেন না।

ক্লাউড শেল-এ একটি নতুন টার্মিনাল উইন্ডো খুলুন (শীর্ষে "ক্লাউড শেল টার্মিনাল" ট্যাবের পাশে + আইকনে ক্লিক করুন)।

4495f22b29cd62e8.png

psql ব্যবহার করে AlloyDB ইনস্ট্যান্সের সাথে সংযোগ করুন:

psql -h 127.0.0.1 -U postgres

দ্রষ্টব্য: প্রম্পট করা হলে, ক্লাস্টার তৈরির সময় আপনি postgres ব্যবহারকারীর জন্য যে পাসওয়ার্ড সেট করেন তা লিখুন (যদি আপনি সরাসরি ডকুমেন্টেশন অনুসরণ করেন তবে পাসওয়ার্ডটি হল alloydb )।

এবং আমাদের অ্যাপ্লিকেশনের জন্য স্টোর ডাটাবেস তৈরি করুন (একের পর এক কমান্ড চালান):

CREATE DATABASE store;
\c store
exit

আমাদের কোড

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

git clone https://github.com/mtoscano84/sports-agent-adk-mcp-alloydb.git

ডাটাবেস পপুলেট করুন

ডাটাবেস ডাম্প ফাইল অ্যাক্সেস করতে ক্লোন করা প্রকল্পের data ফোল্ডারে নেভিগেট করুন।

cd sports-agent-adk-mcp-alloydb/data

তারপর, সংগ্রহস্থল থেকে store_backup.sql ফাইল ব্যবহার করে আপনার store ডাটাবেসে নমুনা ডেটাসেট আমদানি করুন।

psql -h 127.0.0.1 -U postgres -d store -f store_backup.sql

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

5. অনুমোদন পরিষেবা সেট আপ

এই বিভাগে, আপনি আপনার আবেদনের জন্য অনুমোদন পরিষেবা সেট আপ করবেন। এই পরিষেবাটি আপনার এআই এজেন্টে প্রম্পট ইনজেকশন দুর্বলতার বিরুদ্ধে অ্যাক্সেস সুরক্ষিত করার জন্য এবং সুরক্ষা প্রদানের জন্য অত্যন্ত গুরুত্বপূর্ণ।

প্রথমে, আপনি আপনার store ডাটাবেসের users টেবিলে একটি নমুনা ব্যবহারকারী যোগ করবেন। এই ব্যবহারকারীকে আপনার অ্যাপ্লিকেশনে প্রমাণীকরণের জন্য ব্যবহার করা হবে।

কনসোলে যান এবং অ্যালোয়ডিবিতে নেভিগেট করুন, প্রাথমিক উদাহরণ নির্বাচন করুন এবং তারপরে অ্যালোয়ডিবি স্টুডিও:

a15964d53b4b15e1.png

যখন অনুরোধ করা হয়, আপনি ক্লাস্টার সেট আপ করার সময় আপনার তৈরি শংসাপত্রগুলি ব্যবহার করে AlloyDB স্টুডিওতে সাইন ইন করুন:

  • ব্যবহারকারীর নাম: "postgres"
  • ডাটাবেস: "স্টোর"
  • পাসওয়ার্ড: "alloydb"

এসকিউএল এডিটরে, আপনার ব্যবহারকারীকে ডাটাবেসে যুক্ত করতে একটি INSERT বিবৃতি কার্যকর করুন। নাম এবং উপাধি এবং ইমেল ঠিকানা পরিবর্তন করুন।

গুরুত্বপূর্ণ:

  • LOCATION যেমন উদাহরণে আছে তেমনই রাখুন
  • Google ক্লাউড কনসোলে নিবন্ধন করতে আপনার ব্যবহার করা একই ইমেল ঠিকানাটি ব্যবহার করুন৷
INSERT INTO users (user_id, first_name, last_name, Address, city, postal_code, location, email)
VALUES (10,'John', 'Doe', 'Carrer Muntaner 39', 'Barcelona', '08019', '0101000020E61000008AAE0B3F38B144401FBB0B9414780140', 'john.doe@example.com');

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

কনসোলে, "APIs এবং পরিষেবাগুলি", "Google OAuth Consent"-এ নেভিগেট করুন:

cb4db28df92abcb2.png

আপনার অ্যাপ্লিকেশনের ব্র্যান্ড তৈরি করতে নিম্নলিখিত তথ্য প্রদান করুন:

  • অ্যাপের নাম: "স্পোর্টস শপিং এজেন্ট এআই"
  • ব্যবহারকারী সমর্থন ইমেল: "YOUR_EMAIL"
  • শ্রোতা: "বহিরাগত"
  • যোগাযোগের তথ্য: "YOUR_EMAIL"

এখন, আপনি OAuth ক্লায়েন্ট আইডি তৈরি করবেন যা আপনার ফ্রন্টএন্ড অ্যাপ্লিকেশন Google-এর সাথে ব্যবহারকারীর পরিচয় যাচাই করতে ব্যবহার করবে।

প্রথমে, আপনার Google ক্লাউড প্রজেক্ট নম্বর আছে তা নিশ্চিত করুন। রিডাইরেক্ট ইউআরআই সঠিকভাবে কনফিগার করার জন্য এটি প্রয়োজনীয়। একটি ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:

এই ক্লাউড শেল টার্মিনাল উইন্ডোতে আপনার PROJECT_ID ভেরিয়েবল সেট না থাকলে, চালান:

export PROJECT_ID=[YOUR_PROJECT_ID]

তারপর, নিম্নলিখিত কমান্ড ব্যবহার করে PROJECT_NUMBER পান:

gcloud projects describe $PROJECT_ID --format="value(projectNumber)"

তারপরে, "এপিআই এবং পরিষেবাগুলি" -> "শংসাপত্র" -> "শংসাপত্র তৈরি করুন" -> "OAuth ক্লায়েন্ট আইডি" এ নেভিগেট করুন

45623e96d417192d.png

শংসাপত্র তৈরি করতে নিম্নলিখিত তথ্য ব্যবহার করুন:

  • আবেদনের ধরন: "ওয়েব অ্যাপ্লিকেশন"
  • নাম: "স্পোর্টস শপিং এজেন্ট এআই অ্যাপ"

অনুমোদিত জাভাস্ক্রিপ্ট উত্স:

  • URL1: https://finn-frontend-[YOUR_PROJECT_NUMBER].us-central1.run.app

অনুমোদিত পুনঃনির্দেশ URI:

  • URL1: https://finn-frontend-[YOUR_PROJECT_NUMBER].us-central1.run.app

দ্রষ্টব্য: URL https://finn-frontend-[YOUR_PROJECT_NUMBER].us-central1.run.app হল আপনার ফ্রন্টএন্ড অ্যাপ্লিকেশনের জন্য প্রত্যাশিত স্থাপনার URL, যা পরে এই কোডল্যাবে সেট আপ করা হবে৷ নিশ্চিত করুন যে আপনি [YOUR_PROJECT_NUMBER] কে আপনার কপি করা আসল নম্বর দিয়ে প্রতিস্থাপন করুন।

1873d292fd27f07c.png

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

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

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

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

26596138ffc32d98.png

প্রথমে, আপনি আপনার ক্লাউড শেল পরিবেশে MCP টুলবক্স সার্ভারের কার্যকারিতা যাচাই করতে স্থানীয়ভাবে সেট আপ করবেন।

  1. আপনার ক্লাউড শেল টার্মিনালে, আপনার ক্লোন করা প্রকল্প সংগ্রহস্থলের মধ্যে অবস্থিত toolbox ফোল্ডারে নেভিগেট করুন:"
cd sports-agent-adk-mcp-alloydb/src/toolbox
  1. টুলবক্স বাইনারি ডাউনলোড করতে এবং এটি কার্যকর করার অনুমতি দিতে নিম্নলিখিত কমান্ডগুলি চালান:
# see releases page for other versions
export VERSION=0.7.0

curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox

chmod +x toolbox

দ্রষ্টব্য: সংস্করণ 0.7.0 এখানে উল্লেখ করা হয়েছে। উৎপাদন পরিবেশের জন্য, সর্বদা টুলবক্স রিলিজ পৃষ্ঠা থেকে সর্বশেষ স্থিতিশীল রিলিজ যাচাই করুন এবং ব্যবহার করুন।

  1. ক্লাউড শেল এডিটরে নেভিগেট করুন (এডিটর আইকনে ক্লিক করে আপনি টার্মিনাল থেকে টগল করতে পারেন)।

4000e21f50fa507e.png

একই sports-agent-adk-mcp-alloydb/src/toolbox ডিরেক্টরিতে, আপনি tools.yaml নামে একটি ফাইল পাবেন। এই ফাইলটি খুলুন এবং আগের ধাপগুলি থেকে আপনার OAuth ক্লায়েন্ট আইডি এবং Google ক্লাউড প্রকল্প আইডি সহ স্থানধারক আপডেট করুন৷

4c0008d3d0f3bcfb.png

আসুন tools.yaml বুঝুন

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

সরঞ্জামগুলি একটি এজেন্ট যে কাজগুলি নিতে পারে তা সংজ্ঞায়িত করে - যেমন একটি উত্স পড়া এবং লেখা৷ একটি টুল আপনার এজেন্ট নিতে পারে এমন একটি কাজকে প্রতিনিধিত্ব করে, যেমন একটি SQL স্টেটমেন্ট চালানো। আপনি আপনার tools.yaml ফাইলের টুলস বিভাগে একটি মানচিত্র হিসেবে টুলকে সংজ্ঞায়িত করতে পারেন। সাধারণত, একটি টুলের উপর কাজ করার জন্য একটি উৎসের প্রয়োজন হবে।

আপনার tools.yaml কনফিগার করার বিষয়ে আরো বিস্তারিত জানার জন্য, এই ডকুমেন্টেশন পড়ুন।

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

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

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

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

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

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

2a5bc3fb3bc5056e.png

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

cec224667bff2293.png

এটি আউটপুট আনতে হবে:

ce4c72e5be0f44c4.png

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

ক্লাউড রানে আমাদের টুলবক্স স্থাপন করা যাক

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

ক্লাউড শেল টার্মিনালে ফিরে আসুন এবং টুলবক্স ফোল্ডারে নেভিগেট করুন:

cd sports-agent-adk-mcp-alloydb/src/toolbox

আপনার PROJECT_ID এনভায়রনমেন্ট ভেরিয়েবল আপনার Google ক্লাউড প্রোজেক্ট আইডিতে সেট করা আছে তা নিশ্চিত করুন।

export PROJECT_ID=$PROJECT_ID

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

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

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

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/alloydb.client'


gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member='serviceAccount:toolbox-identity@'$PROJECT_ID'.iam.gserviceaccount.com' \
    --role='roles/serviceusage.serviceUsageConsumer'

তারপর, আপনি একটি গোপনীয় হিসাবে 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 [sports-store-agent-ai] region [us-central1]
OK Deploying... Done.
  OK Creating Revision...
  OK Routing traffic...
  OK Setting IAM Policy...
Done.
Service [toolbox] revision [toolbox-00002-dn2] has been deployed and is serving 100 percent of traffic.
Service URL: https://toolbox-[YOUR_PROJECT_NUMBER].us-central1.run.app

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

https://toolbox-[YOUR_PROJECT_NUMBER].us-central1.run.app/api/toolset

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

7. এজেন্ট ADK-তে নির্মিত

এই বিভাগে, আপনি আপনার AI এজেন্টকে মোতায়েন করবেন, যা এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে তৈরি করা হয়েছে, ক্লাউড রানে।

প্রথমে, ক্লাউড রানে আপনার এজেন্ট তৈরি এবং স্থাপনের জন্য এবং আর্টিফ্যাক্ট রেজিস্ট্রি এবং ক্লাউড স্টোরেজের সাথে ইন্টারঅ্যাক্ট করার জন্য আপনার প্রকল্পে প্রয়োজনীয় APIগুলি সক্ষম করুন৷ আপনার ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:

gcloud services enable artifactregistry.googleapis.com \
                       cloudbuild.googleapis.com \
                       run.googleapis.com \
                       storage.googleapis.com

তারপর, আমরা আমাদের প্রকল্পে ডিফল্ট কম্পিউট পরিষেবা অ্যাকাউন্টে প্রয়োজনীয় অনুমতিগুলি বরাদ্দ করব। প্রথমে, PROJECT_NUMBER পেতে আপনার ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:

PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")

ডিফল্ট কম্পিউট সার্ভিস অ্যাকাউন্টে অনুমতি বরাদ্দ করুন:

# Grant Cloud Run service account access to GCS
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/storage.admin"

gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/run.admin"

gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/artifactregistry.writer"

gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \
--role="roles/artifactregistry.repoAdmin"

# Grant Vertex AI User role to the service account
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/aiplatform.user"

# Grant Vertex AI Model User role to the service account
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/aiplatform.modelUser"

আমাদের এজেন্টকে টুলের সাথে সংযুক্ত করুন

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

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

ক্লাউড শেল এডিটর ব্যবহার করে, sports-agent-adk-mcp-alloydb/src/backend/-এ নেভিগেট করুন এবং নিম্নলিখিত কোড সহ "finn_agent.py" ফাইলটি সম্পাদনা করুন৷ লক্ষ্য করুন যে আমরা পূর্ববর্তী ধাপে স্থাপন করা MCP টুলবক্স সার্ভার থেকে ক্লাউড রান সার্ভিস URL ব্যবহার করছি:

14cdb7fdcb9f6176.png

ক্লাউড রানে আমাদের এজেন্টকে স্থাপন করুন

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

প্রথমে, আপনার এজেন্টের কন্টেইনার ইমেজ সংরক্ষণ করতে আর্টিফ্যাক্ট রেজিস্ট্রিতে একটি ডকার সংগ্রহস্থল তৈরি করুন। ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:

gcloud artifacts repositories create finn-agent-images \
    --repository-format=docker \
    --location=us-central1 \
    --project=$PROJECT_ID \
    --description="Repository for finn-agent images"

এরপরে, ক্লাউড বিল্ড ব্যবহার করে আপনার এজেন্টের জন্য ডকার ইমেজ তৈরি করুন। আপনার ক্লোন করা প্রকল্পের রুট ডিরেক্টরি থেকে এই কমান্ডটি চালান ( sports-agent-adk-mcp-alloydb/ ):

gcloud builds submit src/backend/ --tag us-central1-docker.pkg.dev/$PROJECT_ID/finn-agent-images/finn-agent

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

gcloud run deploy finn-agent \
    --image us-central1-docker.pkg.dev/$PROJECT_ID/finn-agent-images/finn-agent \
    --platform managed \
    --allow-unauthenticated \
    --region us-central1 \
    --project $PROJECT_ID --set-env-vars="GOOGLE_CLOUD_PROJECT=$PROJECT_ID,GOOGLE_CLOUD_LOCATION=us-central1,GOOGLE_GENAI_USE_VERTEXAI=TRUE"

দ্রষ্টব্য: আমরা GOOGLE_CLOUD_PROJECT সহ (শেল ভেরিয়েবল $PROJECT_ID ব্যবহার করে) সহ পরিবেশের ভেরিয়েবলগুলি গতিশীলভাবে সেট করছি

আপনার এজেন্টের সফল স্থাপনার ইঙ্গিত করে এর অনুরূপ একটি আউটপুট পাওয়া উচিত:

Deploying container to Cloud Run service [finn-agent] in project [sports-store-agent-ai] region [us-central1]
OK Deploying... Done.
  OK Creating Revision...
  OK Routing traffic...
  OK Setting IAM Policy...
Done.
Service [finn-agent] revision [finn-agent-00005-476] has been deployed and is serving 100 percent of traffic.
Service URL: https://finn-agent-359225437509.us-central1.run.app

অবশেষে, আপনার ক্লাউড শেল টার্মিনাল থেকে এই curl কমান্ডটি কার্যকর করে আপনার এজেন্ট পরীক্ষা করুন:

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"message":"Hello"}' \
  https://finn-agent-[YOUR_PROJECT_NUMBER].us-central1.run.app/chat

আপনি এর অনুরূপ একটি আউটপুট পাবেন:

"হ্যালো! আমি ফিন, আপনার এআই স্পোর্টস শপিং সহকারী। আমি আপনাকে খেলাধুলার পণ্য, গিয়ার এবং সরঞ্জাম খুঁজে পেতে সাহায্য করতে পারি। আজকে আমি কীভাবে আপনাকে সহায়তা করতে পারি?"

এই মুহুর্তে, আপনি সফলভাবে ADK ব্যবহার করে নির্মিত AlloyDB, MCP টুলবক্স এবং আপনার এজেন্টের স্থাপনা যাচাই করেছেন।

8. ফ্রন্টএন্ড স্থাপন করুন

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

স্থাপন করার আগে, আপনাকে আপনার নিয়োজিত এজেন্টের URL এবং আপনার OAuth ক্লায়েন্ট আইডি সহ ফ্রন্টএন্ডের সোর্স কোড আপডেট করতে হবে।

ক্লাউড শেল এডিটর ব্যবহার করে, sports-agent-adk-mcp-alloydb/src/frontend/src/pages/ এ নেভিগেট করুন এবং Home.jsx ফাইলটি খুলুন। আপনাকে আপনার এজেন্টের ক্লাউড রান সার্ভিস URL-এর জন্য স্থানধারক আপডেট করতে হবে। তারপর, পূর্ববর্তী ধাপ থেকে এটিকে আপনার এজেন্টের ক্লাউড রান পরিষেবা URL দিয়ে প্রতিস্থাপন করুন (যেমন, https://finn-agent-[YOUR_PROJECT_NUMBER].us-central1.run.app )।

dac45857844de929.png

এখন, পরবর্তী, sports-agent-adk-mcp-alloydb/src/frontend/src/components/ এ নেভিগেট করুন এবং GoogleSignInButton.jsx ফাইলটি খুলুন। আপনি "অনুমোদন পরিষেবা সেটআপ" বিভাগে প্রাপ্ত OAuth ক্লায়েন্ট আইডি দিয়ে এই ফাইলটি আপডেট করবেন:

82db1e66c439a9cb.png

ক্লাউড রানে ফ্রন্টএন্ড স্থাপন করুন

এখন আপনার ফ্রন্টএন্ড অ্যাপ্লিকেশনটি কনফিগার করা হয়েছে, আপনি এটিকে ক্লাউড রানে স্থাপন করতে প্রস্তুত।

আপনার ফ্রন্টএন্ড ইমেজগুলির জন্য আর্টিফ্যাক্ট রেজিস্ট্রিতে একটি ডকার রিপোজিটরি তৈরি করতে রুট ডিরেক্টরি ( sports-agent-adk-mcp-alloydb/ ) থেকে একটি ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান।

gcloud artifacts repositories create finn-frontend-images \
    --repository-format=docker \
    --location=us-central1 \
    --project=$PROJECT_ID \
    --description="Repository for finn-frontend images"

এরপরে, ক্লাউড বিল্ড ব্যবহার করে আপনার ফ্রন্টএন্ড অ্যাপ্লিকেশনের জন্য ডকার ইমেজ তৈরি করুন। আপনার প্রকল্পের রুট ডিরেক্টরি থেকে এই কমান্ডটি চালান:

gcloud builds submit src/frontend/ --tag us-central1-docker.pkg.dev/$PROJECT_ID/finn-frontend-images/finn-frontend

অবশেষে, আমরা নিম্নলিখিত কমান্ডটি ব্যবহার করে ক্লাউড রানে ফ্রন্টএন্ড স্থাপন করব:

gcloud run deploy finn-frontend \
    --image us-central1-docker.pkg.dev/$PROJECT_ID/finn-frontend-images/finn-frontend \
    --platform managed \
    --allow-unauthenticated \
    --region us-central1 \
    --project $PROJECT_ID

আপনার ফ্রন্টএন্ডের সফল স্থাপনার ইঙ্গিত করে এটির অনুরূপ একটি আউটপুট পাওয়া উচিত:

Deploying container to Cloud Run service [finn-frontend] in project [sport-store-agent-ai] region [us-central1]
OK Deploying... Done.
  OK Creating Revision...
  OK Routing traffic...
  OK Setting IAM Policy...
Done.
Service [finn-frontend] revision [finn-frontend-00002-mwc] has been deployed and is serving 100 percent of traffic.
Service URL: https://finn-frontend-535807247199.us-central1.run.app

আপনার ওয়েব ব্রাউজার খুলুন এবং আপনার এআই এজেন্ট দ্বারা চালিত আপনার নতুন স্থাপন করা অ্যাপ্লিকেশন খুলতে পূর্ববর্তী ধাপ থেকে পরিষেবা URL ব্যবহার করুন!

15bdc2dfd6e47c69.png

9. আমাদের এজেন্ট চালান

আপনার স্পোর্টস স্টোর এজেন্ট এআই সহকারী, ফিন, এখন সম্পূর্ণরূপে নিযুক্ত এবং কেনাকাটায় সাহায্য করার জন্য প্রস্তুত!

আপনার ওয়েব ব্রাউজার খুলুন এবং পূর্ববর্তী ধাপ থেকে আপনার ফ্রন্টএন্ড অ্যাপ্লিকেশনের পরিষেবা URL-এ নেভিগেট করুন। URLটি এই ফর্ম্যাটটি অনুসরণ করে: https://finn-frontend-[YOUR_PROJECT_NUMBER].us-central1.run.app

ফ্রন্টএন্ড লোড হয়ে গেলে, আপনার Google শংসাপত্রগুলি ব্যবহার করে প্রমাণীকরণ করতে উপরের-ডান বোতামে ক্লিক করুন (সাধারণত "সাইন ইন" বা অনুরূপ প্রম্পট লেবেল করা হয়)। এই অ্যাকশনটি আপনার আগে সেট আপ করা OAuth কনফিগারেশনের সুবিধা দেবে।

সফল প্রমাণীকরণের পরে, আপনি ফিনের সাথে যোগাযোগ করতে প্রস্তুত! আপনার কথোপকথন কেনাকাটার অভিজ্ঞতা শুরু করতে "এখনই কেনাকাটা করুন" বোতামে ক্লিক করুন৷

2b22ae486cebff1b.png

আপনার এআই এজেন্টের বিভিন্ন কার্যকারিতা পরীক্ষা করতে নিম্নলিখিত স্ক্রিপ্টটি ব্যবহার করুন। একের পর এক চ্যাট ইন্টারফেসে এই প্রম্পটগুলি কপি এবং পেস্ট করুন:

  1. হ্যালো ফিন!
  2. আমি একটি আল্ট্রা-ট্রেলের জন্য দৌড়ানোর জুতা খুঁজছি
  3. আল্ট্রা গ্লাইড সম্পর্কে আমাকে আরও বিস্তারিত বলুন
  4. আমার কেনাকাটার তালিকায় আল্ট্রা গ্লাইড, সাইজ 40, রঙ লাল/ধূসর যোগ করুন
  5. আমার কেনাকাটা তালিকা দেখান
  6. আমার কাছাকাছি দোকান খুঁজুন
  7. অনুগ্রহ করে, স্পোর্টস ডায়াগোনাল মার স্টোরের জন্য আমার কেনাকাটার তালিকা ব্যবহার করে একটি অর্ডার দিন
  8. আমার আদেশের জন্য স্থিতি পরীক্ষা করুন
  9. দোকান স্পোর্টস ডায়াগোনাল মার জন্য বিতরণ পদ্ধতি তালিকা করুন
  10. আমার অর্ডারের জন্য এক্সপ্রেস ডেলিভারিতে ডেলিভারি পদ্ধতি আপডেট করুন [YOUR_ORDER_NUMBER]
  11. আমার আদেশের জন্য স্থিতি পরীক্ষা করুন
  12. ধন্যবাদ ফিন!

নিয়োজিত ফিন এজেন্ট এবং এর ক্ষমতাগুলির একটি ভিজ্যুয়াল প্রদর্শনের জন্য, নীচের ভিডিওটি দেখুন:

অ্যালোয়ডিবি দ্বারা চালিত স্পোর্টস এজেন্ট এআই সহকারীর ডেমো

10. ফলাফল

পূর্ববর্তী স্ক্রিপ্টটি কার্যকর করার পরে, আপনি সফলভাবে আপনার ADK এজেন্টের সম্পূর্ণ একীকরণ, AlloyDB এর সাথে এর সংযোগ এবং MCP টুলবক্সের ব্যবহারকে যাচাই করেছেন। এই বিভাগটি আপনার প্রয়োগ করা মূল ক্ষমতাগুলি হাইলাইট করে৷

  1. অনুমোদন পরিষেবা

ডাটাবেসের জন্য MCP টুলবক্স আপনার অ্যাপ্লিকেশনের মধ্যে ব্যবহারকারীদের প্রমাণীকরণের জন্য একটি অনুমোদন পরিষেবা (বিশেষত, এই কোডল্যাবে Google সাইন-ইন) ফেডারেট করার ক্ষমতা প্রদান করে। MCP টুলবক্সের সাথে, আপনার OAuth ক্লায়েন্ট আইডি ব্যবহার করা হয় ব্যবহারকারীর পরিচয় যাচাই করার জন্য যখন একটি টুল চালু করা হয়।

এই শক্তিশালী প্রমাণীকরণ প্রক্রিয়াটি আপনার এজেন্টিক অ্যাপ্লিকেশনকে প্রম্পট ইনজেকশনের বিরুদ্ধে রক্ষা করার জন্য একটি চমৎকার সমাধান প্রদান করে, এক ধরনের আক্রমণ যেখানে দূষিত ইনপুট এজেন্টের উদ্দেশ্যমূলক আচরণকে বাইপাস বা ম্যানিপুলেট করার চেষ্টা করে। আরো বিস্তারিত জানার জন্য, আপনি প্রম্পট ইনজেকশনের উইকিপিডিয়া নিবন্ধটি দেখতে পারেন

এই অ্যাপ্লিকেশনটিতে, এই কৌশলটি ব্যবহার করা হয় যখন একজন ব্যবহারকারী "আমাদের আদেশের স্থিতি পরীক্ষা করতে" বলে। অথবা "আমার কেনাকাটার তালিকা দেখান"। এজেন্টকে শুধুমাত্র সেই অর্ডারগুলি দেখানোর জন্য ডিজাইন করা হয়েছে যা প্রমাণীকৃত ব্যবহারকারীর অন্তর্গত , অর্ডারের তথ্যে অননুমোদিত অ্যাক্সেস রোধ করে।

27b03aa215c454a.png

  1. ভেক্টর অনুসন্ধান

আপনার এজেন্টিক অ্যাপ্লিকেশন উন্নত ক্যোয়ারী ক্ষমতা প্রদান করতে PostgreSQL এর জন্য AlloyDB ব্যবহার করে, বিশেষ করে ভেক্টর অনুসন্ধানের মাধ্যমে। AlloyDB SQL ফাংশন ব্যবহার করে সরাসরি ডাটাবেসের ভিতরে অনলাইন এমবেডিং জেনারেশন সমর্থন করে।

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

আপনার অ্যাপ্লিকেশনে, আপনি এই কৌশলটি অনুভব করেন যখন আপনি ফিনকে জিজ্ঞাসা করেন: "আমি একটি আল্ট্রা-ট্রেলের জন্য চলমান জুতা খুঁজছি"।

1a9172b827077bde.png

  1. ভূ-স্থানিক ক্ষমতা (পোস্টজিস)

PostgreSQL এর জন্য AlloyDB স্ট্যান্ডার্ড PostgreSQL বৈশিষ্ট্যগুলির সাথে 100% সামঞ্জস্য বজায় রাখে। এই অ্যাপ্লিকেশনটিতে, আমরা এজেন্টকে ভূ-স্থানিক অবস্থানের ক্ষমতা প্রদানের জন্য জনপ্রিয় PostgreSQL এক্সটেনশন PostGIS ব্যবহার করি।

আপনি যখন এজেন্টকে জিজ্ঞাসা করেন: "আমার কাছাকাছি স্টোরগুলি খুঁজুন", এজেন্ট একটি টুল এক্সিকিউট করে যা ব্যবহারকারীর নির্দিষ্ট বা অনুমানকৃত অবস্থানের কাছাকাছি স্টোরগুলিকে দক্ষতার সাথে সনাক্ত করতে ডেটাবেসের মধ্যে পোস্টজিআইএস সূচী ব্যবহার করে।

fa491f214521371.png

11. (ঐচ্ছিক) SQL এ AlloyDB AI প্রাকৃতিক ভাষা পরীক্ষা করুন

এই বিভাগে PostgreSQL-এর জন্য AlloyDB-এর একটি উন্নত, প্রাক-GA বৈশিষ্ট্য উপস্থাপন করা হয়েছে: SQL-এ প্রাকৃতিক ভাষা । এই বৈশিষ্ট্যটি আপনাকে আপনার ডাটাবেসের মধ্যে AI-এর শক্তিকে কাজে লাগিয়ে, প্রাকৃতিক ভাষা প্রম্পট থেকে সরাসরি SQL কোয়েরি তৈরি করতে দেয়।

গুরুত্বপূর্ণ: যেহেতু এটি একটি প্রাক-GA বৈশিষ্ট্য, এর জন্য আপনাকে সাইন আপ করতে হবে এবং আপনার Google ক্লাউড প্রকল্প, AlloyDB ক্লাস্টার এবং ডাটাবেসের জন্য অ্যাক্সেস সক্ষম করতে হবে৷

  • অ্যাক্সেসের জন্য সাইন আপ করুন: আপনার প্রকল্পের জন্য অ্যাক্সেসের অনুরোধ করতে এই ফর্মটি অনুসরণ করুন
  • ডকুমেন্টেশন: আপনি অফিসিয়াল ডকুমেন্টেশনে অ্যালোয়ডিবি এআই ন্যাচারাল ল্যাঙ্গুয়েজ থেকে এসকিউএল-এর ব্যবহার সম্পর্কে আরও জানতে পারবেন

আপনি সাইন আপ করার পরে এবং আপনার প্রকল্পের জন্য অ্যাক্সেস নিশ্চিত করার পরে, AlloyDB স্টুডিওতে নিম্নলিখিত পদক্ষেপগুলি নিয়ে এগিয়ে যান।

a15964d53b4b15e1.png

আপনি ক্লাস্টার তৈরি করার সময় আমাদের তৈরি শংসাপত্রগুলি ব্যবহার করে AlloyDB-এ সাইন ইন করুন:

  • ব্যবহারকারীর নাম: "postgres"
  • ডাটাবেস: "স্টোর"
  • পাসওয়ার্ড: "alloydb"

1- alloydb_ai_nl এক্সটেনশন তৈরি করুন। এই এক্সটেনশনটি AlloyDB AI প্রাকৃতিক ভাষা ক্ষমতার জন্য প্রয়োজনীয় ফাংশন প্রদান করে।

CREATE EXTENSION alloydb_ai_nl cascade;

2- আপনার অ্যাপ্লিকেশনের জন্য একটি কনফিগারেশন তৈরি করুন। একটি কনফিগারেশন স্কিমা প্রসঙ্গকে সংজ্ঞায়িত করে যা এআই মডেল আপনার ডাটাবেস বোঝার জন্য ব্যবহার করবে।

SELECT
 alloydb_ai_nl.g_create_configuration(
   'finn_app_config'        -- configuration_id
 );

3- কনফিগারেশনের সাথে স্কিমা/টেবিল নিবন্ধন করুন। আপনার অ্যাপ্লিকেশনের এজেন্ট কনফিগারেশনের সাথে ইন্টারঅ্যাক্ট করবে এমন নির্দিষ্ট টেবিল এবং স্কিমা যোগ করুন।

SELECT alloydb_ai_nl.g_manage_configuration(
   operation => 'register_table_view',
   configuration_id_in => 'finn_app_config',
   table_views_in=>'{public.products, public.products_variants, public.orders, public.orders_items, public.users, public.inventory, public.stores}'
);

4- স্কিমা / টেবিলের জন্য প্রসঙ্গ তৈরি করুন। এই ধাপটি এআই মডেলের জন্য প্রয়োজনীয় প্রসঙ্গ তৈরি করতে নিবন্ধিত টেবিলগুলিকে প্রক্রিয়া করে। এই প্রক্রিয়াটি প্রায় 2-3 মিনিট সময় নিতে পারে।

SELECT alloydb_ai_nl.generate_schema_context(
 'finn_app_config',
 TRUE
);

5- নির্দিষ্ট টেবিল এবং কলাম (ঐচ্ছিক) জন্য স্বয়ংক্রিয়ভাবে তৈরি প্রসঙ্গ পরীক্ষা করুন। AI মডেল আপনার স্কিমাকে কীভাবে ব্যাখ্যা করে তা বোঝার জন্য আপনি জেনারেট করা প্রসঙ্গ পরিদর্শন করতে পারেন।

SELECT object_context
FROM alloydb_ai_nl.generated_schema_context_view
WHERE schema_object = 'public.inventory';


SELECT object_context
FROM alloydb_ai_nl.generated_schema_context_view
WHERE schema_object = 'public.products.name';


SELECT object_context
FROM alloydb_ai_nl.generated_schema_context_view
WHERE schema_object = 'public.products.popularity_score';

আপনি আমাদের এজেন্টের "tools.yaml"-এ "check-inventory-by-store-brand-category" নামে একটি টুল পাবেন। এই টুলটি SQL এ AlloyDB প্রাকৃতিক ভাষা ব্যবহার করে:

2cd70da8caefe2f5.png

একটি ওয়েব ব্রাউজার খুলুন, এবং অ্যাপ্লিকেশন খুলতে পরিষেবা URL ব্যবহার করুন: "https://finn-frontend-[YOUR_PROJECT_NUMBER].us-central1.run.app"

তারপর, এই নতুন ক্ষমতা পরীক্ষা করতে চ্যাট ইন্টারফেসে নিম্নলিখিত স্ক্রিপ্টটি ব্যবহার করুন:

  • হ্যালো ফিন!
  • "স্পোর্টস ডায়াগোনাল মার" স্টোরে স্টক থাকা স্যালোমনের মোট কতটি ক্যাটাগরির পণ্য রয়েছে?

আপনার প্রাকৃতিক ভাষা ইনপুট থেকে AlloyDB AI যে প্রকৃত SQL কোয়েরি তৈরি করেছে তা দেখতে, AlloyDB স্টুডিওতে ফিরে যান এবং নিম্নলিখিত ক্যোয়ারীটি চালান:

SELECT
   alloydb_ai_nl.get_sql(
       'finn_app_config',
       'What is the total quantity of category Running products of Salomon in stock at the "Sports Diagonal Mar" store?'
   ) ->> 'sql';

এটি AlloyDB AI দ্বারা তৈরি করা SQL স্টেটমেন্ট প্রদর্শন করবে।

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

এই ল্যাবে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Google ক্লাউড কনসোলে, সম্পদ পরিচালনা পৃষ্ঠাতে যান।
  2. প্রকল্প তালিকায়, আপনি যে প্রকল্পটি মুছতে চান সেটি নির্বাচন করুন এবং তারপরে মুছুন ক্লিক করুন।
  3. ডায়ালগে, প্রজেক্ট আইডি টাইপ করুন এবং তারপরে প্রোজেক্ট মুছে ফেলতে শাট ডাউন ক্লিক করুন।

13. অভিনন্দন

অভিনন্দন! আপনি সফলভাবে ADK ব্যবহার করে একটি ডেটা-চালিত এজেন্টিক এআই অ্যাপ্লিকেশন তৈরি করেছেন, ডেটাবেসের জন্য MCP টুলবক্স এবং PostgreSQL-এর জন্য AlloyDB

আরও তথ্যের জন্য, পণ্যের ডক্স দেখুন: এজেন্ট ডেভেলপমেন্ট কিট , ডাটাবেসের জন্য MCP টুলবক্স এবং PostgreSQL-এর জন্য AlloyDB