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

1. ভূমিকা

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

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

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

7d9b5c1b10d1c654.png সম্পর্কে

তুমি কি শিখবে

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

তোমার যা লাগবে

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

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

এই কোডল্যাবটি সকল স্তরের ডেভেলপারদের জন্য ডিজাইন করা হয়েছে, যার মধ্যে নতুনরাও রয়েছে।

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

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

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

  1. গুগল ক্লাউড কনসোলে , প্রজেক্ট সিলেক্টর পৃষ্ঠায়, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
  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

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

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

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

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

AlloyDB নিরাপদ এবং উচ্চ-কার্যক্ষমতাসম্পন্ন অ্যাক্সেসের জন্য ব্যক্তিগত IP সংযোগের উপর নির্ভর করে। Google-পরিচালিত পরিষেবা নেটওয়ার্কিং পরিকাঠামোর সাথে পরিষেবা পিয়ারিং সংযোগের জন্য 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

এরপর, VPC সার্ভিস পিয়ারিং সংযোগ তৈরি করুন। এটি আপনার Google Cloud Virtual Private Cloud (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

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

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

আপনার 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 ইনস্ট্যান্সে পাবলিক আইপি সংযোগ সক্ষম করব।

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

c200ee8f8b776ed4.png সম্পর্কে

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

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

a274101902019848.png সম্পর্কে

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

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

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

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

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

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

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

এটিকে এক্সিকিউটেবল করুন:

chmod +x alloydb-auth-proxy

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

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

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

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

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

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

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

কনসোলে যান এবং AlloyDB-তে নেভিগেট করুন, প্রাথমিক ইনস্ট্যান্স নির্বাচন করুন এবং তারপর AlloyDB স্টুডিও:

a15964d53b4b15e1.png সম্পর্কে

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

  • ব্যবহারকারীর নাম: "পোস্টগ্রেস"
  • ডাটাবেস: "স্টোর"
  • পাসওয়ার্ড: "অ্যালয়ডিবি"

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

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

  • উদাহরণে যেমন আছে তেমনই LOCATION রাখুন।
  • গুগল ক্লাউড কনসোলে নিবন্ধনের জন্য আপনি যে ইমেল ঠিকানাটি ব্যবহার করছেন সেই একই ইমেল ঠিকানা ব্যবহার করুন।
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 and Services", "Google OAuth Consent" এ নেভিগেট করুন:

অনুসরণ

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

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

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

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

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

export PROJECT_ID=[YOUR_PROJECT_ID]

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

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

তারপর, "APIs and Services" -> "Credentials" -> "Create Credentials" -> "OAuth Client ID" এ নেভিগেট করুন।

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

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

1873d292fd27f07c.png

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

৬. ডাটাবেস সেটআপের জন্য 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.16.0

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

chmod +x toolbox

দ্রষ্টব্য: 0.16.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"

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

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

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

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

Change port-এ ক্লিক করুন এবং নিচের চিত্রের মতো পোর্টটি 5000-এ সেট করুন এবং Change and Preview-এ ক্লিক করুন।

অনুসরণ

এর ফলে আউটপুট আসবে:

অনুসরণ

ডেটাবেসের জন্য 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

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

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 ফাইলটি গোপনে আপলোড করবেন এবং যেহেতু আমাদের Cloud Run-এ Toolbox ইনস্টল করতে হবে, তাই আমরা টুলবক্সের জন্য সর্বশেষ Container ইমেজটি ব্যবহার করব এবং 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

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

৭. ADK-তে তৈরি এজেন্ট

এই বিভাগে, আপনি আপনার এআই এজেন্ট, যা এজেন্ট ডেভেলপমেন্ট কিট (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 সম্পর্কে

ক্লাউড রানে আমাদের এজেন্ট মোতায়েন করুন

অবশেষে, আপনি আপনার কনফিগার করা AI এজেন্টকে ক্লাউড রানে স্থাপন করবেন, এটি একটি 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

আপনি এইরকম একটি আউটপুট পাবেন:

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

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

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

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

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

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

dac45857844de929.png সম্পর্কে

এখন, এরপর, sports-agent-adk-mcp-alloydb/src/frontend/src/components/ এ যান এবং GoogleSignInButton.jsx ফাইলটি খুলুন। আপনি "Authorization Service Setup" বিভাগে প্রাপ্ত 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 কনফিগারেশনকে কাজে লাগাবে।

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

অনুসরণ

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

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

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

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

১০. ফলাফল

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

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

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

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

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

27b03aa215c454a.png - [অনলাইন].

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

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

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

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

1a9172b827077bde.png সম্পর্কে

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

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

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

fa491f214521371.png সম্পর্কে

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

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

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

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

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

a15964d53b4b15e1.png সম্পর্কে

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

  • ব্যবহারকারীর নাম: "পোস্টগ্রেস"
  • ডাটাবেস: "স্টোর"
  • পাসওয়ার্ড: "অ্যালয়ডিবি"

১- alloydb_ai_nl এক্সটেনশন তৈরি করুন। এই এক্সটেনশনটি AlloyDB AI ন্যাচারাল ল্যাঙ্গুয়েজ ক্ষমতার জন্য প্রয়োজনীয় ফাংশন প্রদান করে।

CREATE EXTENSION alloydb_ai_nl cascade;

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

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

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

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}'
);

৪- স্কিমা / টেবিলের জন্য প্রসঙ্গ তৈরি করুন। এই ধাপে নিবন্ধিত টেবিলগুলি প্রক্রিয়া করে AI মডেলের জন্য প্রয়োজনীয় প্রসঙ্গ তৈরি করা হয়। এই প্রক্রিয়াটি প্রায় ২-৩ মিনিট সময় নিতে পারে।

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

৫- নির্দিষ্ট টেবিল এবং কলামের জন্য স্বয়ংক্রিয়ভাবে তৈরি প্রসঙ্গ পরীক্ষা করুন (ঐচ্ছিক)। 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 স্টেটমেন্টটি প্রদর্শন করবে।

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

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

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

১৩. অভিনন্দন

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

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