AlloyDB এর জন্য MCP টুলবক্স সহ একটি মাল্টি-এজেন্ট অ্যাপ তৈরি করুন & এডিকে

1. সংক্ষিপ্ত বিবরণ

এজেন্ট হলো একটি স্বায়ত্তশাসিত প্রোগ্রাম যা একটি AI মডেলের সাথে কথা বলে লক্ষ্য-ভিত্তিক ক্রিয়াকলাপ সম্পাদন করে তার কাছে থাকা সরঞ্জাম এবং প্রেক্ষাপট ব্যবহার করে এবং সত্যের উপর ভিত্তি করে স্বায়ত্তশাসিত সিদ্ধান্ত গ্রহণে সক্ষম!

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

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

এজেন্ট ডেভেলপমেন্ট কিট (ADK) হল AI এজেন্ট তৈরি এবং স্থাপনের জন্য একটি নমনীয় এবং মডুলার কাঠামো। ADK একাধিক, স্বতন্ত্র এজেন্ট ইনস্ট্যান্সকে একটি মাল্টি-এজেন্ট সিস্টেম (MAS) এ সংকলন করে অত্যাধুনিক অ্যাপ্লিকেশন তৈরিতে সহায়তা করে।

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

মাল্টি-এজেন্ট সিস্টেমের জন্য মনে রাখার বিষয়গুলি

প্রথমত , প্রতিটি এজেন্টের জন্য বিশেষীকরণ সম্পর্কে সঠিক ধারণা এবং যুক্তি থাকা গুরুত্বপূর্ণ। — "আপনি কি জানেন কেন কোনও কিছুর জন্য আপনার একটি নির্দিষ্ট সাব-এজেন্টের প্রয়োজন", প্রথমে এটি সমাধান করুন।

দ্বিতীয়ত , প্রতিটি প্রতিক্রিয়া রুট করার জন্য এবং বোঝার জন্য কীভাবে তাদের একটি রুট এজেন্টের সাথে একত্রিত করা যায়।

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

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

আসুন AlloyDB এবং ADK-এর জন্য MCP টুলবক্স ব্যবহার করে রান্নাঘর সংস্কারের জন্য একটি মাল্টি-এজেন্ট সিস্টেম তৈরি করি।

  1. সংস্কার প্রস্তাব এজেন্ট
  2. পারমিট এবং কমপ্লায়েন্স চেক এজেন্ট
  3. অর্ডার স্ট্যাটাস চেক (ডাটাবেসের জন্য MCP টুলবক্স ব্যবহার করে টুল)

সংস্কার প্রস্তাব এজেন্ট, রান্নাঘর সংস্কার প্রস্তাবের নথি তৈরি করার জন্য।

পারমিট এবং কমপ্লায়েন্স এজেন্ট, পারমিট এবং কমপ্লায়েন্স সম্পর্কিত কাজগুলি দেখাশোনা করার জন্য।

অর্ডার স্ট্যাটাস চেক এজেন্ট, যা AlloyDB-তে আমরা যে অর্ডার ম্যানেজমেন্ট ডাটাবেস সেট আপ করেছি তার উপর কাজ করে উপকরণের অর্ডার স্ট্যাটাস পরীক্ষা করে। কিন্তু এই ডাটাবেস অংশের জন্য, আমরা অর্ডারের জন্য স্ট্যাটাস পুনরুদ্ধার লজিক বাস্তবায়নের জন্য AlloyDB-এর জন্য MCP টুলবক্স ব্যবহার করব।

২. এমসিপি

MCP এর অর্থ হল মডেল কনটেক্সট প্রোটোকল, যা অ্যানথ্রপিক দ্বারা তৈরি একটি উন্মুক্ত মানদণ্ড যা AI এজেন্টদের বহিরাগত সরঞ্জাম, পরিষেবা এবং ডেটার সাথে সংযোগ স্থাপনের জন্য একটি সামঞ্জস্যপূর্ণ উপায় প্রদান করে। এটি মূলত AI অ্যাপ্লিকেশনগুলির জন্য একটি সাধারণ মান হিসাবে কাজ করে, যা তাদের বিভিন্ন ডেটা উৎস এবং সরঞ্জামের সাথে নির্বিঘ্নে ইন্টারঅ্যাক্ট করার অনুমতি দেয়।

  1. এটি একটি ক্লায়েন্ট-সার্ভার মডেল ব্যবহার করে, যেখানে AI অ্যাপ্লিকেশনগুলি (হোস্টগুলি) MCP ক্লায়েন্ট চালায়, যা MCP সার্ভারের সাথে যোগাযোগ করে।
  2. যখন কোনও এআই এজেন্টের কোনও নির্দিষ্ট সরঞ্জাম বা ডেটা অ্যাক্সেস করার প্রয়োজন হয়, তখন এটি এমসিপি ক্লায়েন্টের কাছে একটি কাঠামোগত অনুরোধ পাঠায়, যা এটি উপযুক্ত এমসিপি সার্ভারে ফরোয়ার্ড করে।
  3. প্রতিটি ইন্টিগ্রেশনের জন্য কাস্টম কোডের প্রয়োজন ছাড়াই AI মডেলগুলিকে বহিরাগত ডেটা এবং সরঞ্জামগুলি অ্যাক্সেস করার অনুমতি দেয়।
  4. লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) এর উপরে এজেন্ট এবং জটিল কর্মপ্রবাহ তৈরির প্রক্রিয়াকে সহজ করে তোলে।

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

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

আপনার এজেন্টদের আপনার ডাটাবেসের ডেটা অ্যাক্সেস করতে দিন!!! কিভাবে?

সরলীকৃত উন্নয়ন: ১০টিরও কম লাইনের কোডে আপনার এজেন্টের সাথে টুলগুলিকে একীভূত করুন, একাধিক এজেন্ট বা ফ্রেমওয়ার্কের মধ্যে টুলগুলি পুনঃব্যবহার করুন এবং আরও সহজে টুলের নতুন সংস্করণ স্থাপন করুন।

উন্নত কর্মক্ষমতা: সংযোগ পুলিং, প্রমাণীকরণ এবং আরও অনেক কিছুর মতো সর্বোত্তম অনুশীলন।

উন্নত নিরাপত্তা: আপনার ডেটাতে আরও নিরাপদ অ্যাক্সেসের জন্য সমন্বিত প্রমাণীকরণ

এন্ড-টু-এন্ড পর্যবেক্ষণযোগ্যতা: ওপেনটেলিমেট্রির জন্য অন্তর্নির্মিত সমর্থন সহ আউট অফ দ্য বক্স মেট্রিক্স এবং ট্রেসিং।

এই পূর্ববর্তী এমসিপির সত্যতা স্বীকার করতে হবে!!!

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

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

আমাদের একটি রুট এজেন্ট থাকবে যেটি প্রয়োজনের উপর ভিত্তি করে এই এজেন্টগুলিকে পরিচালনা করবে।

আবশ্যকতা

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

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

  1. গুগল ক্লাউড কনসোলে , প্রজেক্ট সিলেক্টর পৃষ্ঠায়, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং সক্ষম আছে কিনা তা নিশ্চিত করুন। কোনও প্রোজেক্টে বিলিং সক্ষম আছে কিনা তা কীভাবে পরীক্ষা করবেন তা শিখুন।

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

  1. এই লিঙ্কে ক্লিক করে ক্লাউড শেল সক্রিয় করুন। আপনি ক্লাউড শেল থেকে সংশ্লিষ্ট বোতামে ক্লিক করে ক্লাউড শেল টার্মিনাল (ক্লাউড কমান্ড চালানোর জন্য) এবং এডিটর (প্রকল্প তৈরির জন্য) এর মধ্যে টগল করতে পারেন।
  2. ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি নিম্নলিখিত কমান্ড ব্যবহার করে পরীক্ষা করতে পারবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণপ্রাপ্ত এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে কিনা:
gcloud auth list
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
  1. যদি আপনার প্রকল্পটি সেট না করা থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>
  1. নিম্নলিখিত কমান্ডগুলি চালিয়ে নিম্নলিখিত API গুলি সক্ষম করুন:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com \alloydb.googleapis.com
  1. পাইথন ৩.৯+ আছে কিনা তা নিশ্চিত করুন।
  2. gcloud কমান্ড এবং ব্যবহারের জন্য ডকুমেন্টেশন দেখুন।

৪. ADK সেটআপ

  1. ভার্চুয়াল পরিবেশ তৈরি এবং সক্রিয় করুন (প্রস্তাবিত)

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

python -m venv .venv

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

source .venv/bin/activate
  1. ADK ইনস্টল করুন
pip install google-adk

৫. প্রকল্প কাঠামো

  1. ক্লাউড শেল টার্মিনাল থেকে, রুট এবং প্রজেক্ট ফোল্ডার তৈরি করতে নিম্নলিখিত কমান্ডগুলি একের পর এক চালান:
mkdir agentic-apps
cd agentic-apps
mkdir renovation-agent
  1. ক্লাউড শেল এডিটরে যান এবং ফাইলগুলি তৈরি করে নিম্নলিখিত প্রকল্প কাঠামো তৈরি করুন (শুরুতে খালি):
renovation-agent/
        __init__.py
        agent.py
        .env

6. সোর্স কোড

  1. init .py তে যান এবং নিম্নলিখিত কন্টেন্ট দিয়ে আপডেট করুন:
from . import agent
  1. agent.py এ যান এবং নিম্নলিখিত পথ থেকে নিম্নলিখিত বিষয়বস্তু সহ ফাইলটি আপডেট করুন:
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py

agent.py-তে, আমরা প্রয়োজনীয় নির্ভরতা আমদানি করি, .env ফাইল থেকে কনফিগারেশন প্যারামিটারগুলি পুনরুদ্ধার করি এবং root_agent সংজ্ঞায়িত করি যা টুলবক্স টুলটি চালু করার জন্য 1টি টুল ব্যবহার করে।

  1. requirements.txt-এ যান এবং নিম্নলিখিত বিষয়বস্তু দিয়ে এটি আপডেট করুন:
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt

৭. ডাটাবেস সেটআপ

ordering_agent দ্বারা ব্যবহৃত একটি টুল, যাকে "check_status" বলা হয়, আমরা অর্ডারের অবস্থা জানতে AlloyDB অর্ডার ডাটাবেস অ্যাক্সেস করি। এই বিভাগে, আমরা AlloyDB ডাটাবেস ক্লাস্টার এবং ইনস্ট্যান্স সেট আপ করব।

একটি ক্লাস্টার এবং ইনস্ট্যান্স তৈরি করুন

  1. ক্লাউড কনসোলে AlloyDB পৃষ্ঠাটি নেভিগেট করুন। ক্লাউড কনসোলে বেশিরভাগ পৃষ্ঠা খুঁজে পাওয়ার একটি সহজ উপায় হল কনসোলের অনুসন্ধান বার ব্যবহার করে সেগুলি অনুসন্ধান করা।
  2. সেই পৃষ্ঠা থেকে CREATE CLUSTER নির্বাচন করুন:

f76ff480c8c889aa.png সম্পর্কে

  1. আপনি নীচের মত একটি স্ক্রিন দেখতে পাবেন। নিম্নলিখিত মানগুলি দিয়ে একটি ক্লাস্টার এবং ইনস্ট্যান্স তৈরি করুন (রেপো থেকে অ্যাপ্লিকেশন কোড ক্লোন করার ক্ষেত্রে মানগুলি মিলেছে কিনা তা নিশ্চিত করুন):
  • ক্লাস্টার আইডি : " vector-cluster "
  • পাসওয়ার্ড : " alloydb "
  • PostgreSQL 16 সামঞ্জস্যপূর্ণ / যা কিছু সর্বশেষ তা সুপারিশ করা হয়
  • অঞ্চল : " us-central1 "
  • নেটওয়ার্কিং : " default "

538dba58908162fb.png সম্পর্কে

  1. যখন আপনি ডিফল্ট নেটওয়ার্ক নির্বাচন করবেন, তখন আপনি নীচের মতো একটি স্ক্রিন দেখতে পাবেন।

সংযোগ সেট আপ নির্বাচন করুন।
7939bbb6802a91bf.png সম্পর্কে

  1. সেখান থেকে, " Use an automatically allocated IP range " নির্বাচন করুন এবং চালিয়ে যান। তথ্য পর্যালোচনা করার পরে, CREATE CONNECTION নির্বাচন করুন। 768ff5210e79676f.png সম্পর্কে

৬. গুরুত্বপূর্ণ দ্রষ্টব্য: ইনস্ট্যান্স আইডি (যা আপনি ক্লাস্টার / ইনস্ট্যান্স কনফিগারেশনের সময় খুঁজে পেতে পারেন) পরিবর্তন করতে ভুলবেন না

vector-instance । যদি আপনি এটি পরিবর্তন করতে না পারেন, তাহলে আসন্ন সমস্ত রেফারেন্সে আপনার ইনস্ট্যান্স আইডি ব্যবহার করতে ভুলবেন না।

  1. টুলবক্স সেট আপ করার প্রস্তুতি হিসেবে, আসুন আমাদের AlloyDB ইনস্ট্যান্সে পাবলিক আইপি সংযোগ সক্ষম করি যাতে নতুন টুলটি ডাটাবেস অ্যাক্সেস করতে পারে।
  2. পাবলিক আইপি কানেক্টিভিটি বিভাগে যান, পাবলিক আইপি সক্ষম করুন চেকবক্সটি চেক করুন এবং আপনার ক্লাউড শেল মেশিনের আইপি ঠিকানা লিখুন।
  3. আপনার ক্লাউড শেল মেশিনের আইপি পেতে, ক্লাউড শেল টার্মিনালে যান এবং ifconfig লিখুন। ফলাফল থেকে eth0 inet ঠিকানাটি সনাক্ত করুন এবং শেষ 2টি সংখ্যা 0.0 দিয়ে প্রতিস্থাপন করুন একটি মাস্ক আকার '/16' দিয়ে। উদাহরণস্বরূপ, এটি "XX.XX.0.0/16" এর মতো দেখাবে যেখানে XX হল সংখ্যা।
  4. সম্পাদনা ইনস্ট্যান্স পৃষ্ঠার অনুমোদিত বহিরাগত নেটওয়ার্ক "নেটওয়ার্কস" টেক্সটবক্সে এই আইপিটি পেস্ট করুন।

e4d1045e1255e40f.png

  1. একবার আপনার নেটওয়ার্ক সেট আপ হয়ে গেলে, আপনি আপনার ক্লাস্টার তৈরি করা চালিয়ে যেতে পারেন। নীচে দেখানো হিসাবে ক্লাস্টার সেট আপ সম্পূর্ণ করতে CREATE CLUSTER এ ক্লিক করুন:

e06623e55195e16e.png

মনে রাখবেন যে ক্লাস্টার তৈরি করতে প্রায় ১০ মিনিট সময় লাগবে। এটি সফল হয়ে গেলে, আপনার তৈরি করা ক্লাস্টারের একটি ওভারভিউ স্ক্রিনে দেখানো হবে।

ডেটা ইনজেশন

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

847e35f1bf8a8bd8.png সম্পর্কে

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

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

AlloyDB স্টুডিওতে সফলভাবে প্রমাণীকরণ করার পরে, SQL কমান্ডগুলি এডিটরে প্রবেশ করানো হবে। আপনি শেষ উইন্ডোর ডানদিকে প্লাস ব্যবহার করে একাধিক এডিটর উইন্ডো যুক্ত করতে পারেন।

91a86d9469d499c4.png সম্পর্কে

আপনি এডিটর উইন্ডোতে AlloyDB-এর জন্য কমান্ড লিখবেন, প্রয়োজনে Run, Format এবং Clear অপশন ব্যবহার করে।

একটি টেবিল তৈরি করুন

AlloyDB স্টুডিওতে নিচের DDL স্টেটমেন্টটি ব্যবহার করে আপনি একটি টেবিল তৈরি করতে পারেন:

-- Table DDL for Procurement Material Order Status

CREATE TABLE material_order_status (
    order_id VARCHAR(50) PRIMARY KEY,
    material_name VARCHAR(100) NOT NULL,
    supplier_name VARCHAR(100) NOT NULL,
    order_date DATE NOT NULL,
    estimated_delivery_date DATE,
    actual_delivery_date DATE,
    quantity_ordered INT NOT NULL,
    quantity_received INT,
    unit_price DECIMAL(10, 2) NOT NULL,
    total_amount DECIMAL(12, 2),
    order_status VARCHAR(50) NOT NULL, -- e.g., "Ordered", "Shipped", "Delivered", "Cancelled"
    delivery_address VARCHAR(255),
    contact_person VARCHAR(100),
    contact_phone VARCHAR(20),
    tracking_number VARCHAR(100),
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    quality_check_passed BOOLEAN,  -- Indicates if the material passed quality control
    quality_check_notes TEXT,        -- Notes from the quality control check
    priority VARCHAR(20),            -- e.g., "High", "Medium", "Low"
    project_id VARCHAR(50),          -- Link to a specific project
    receiver_name VARCHAR(100),        -- Name of the person who received the delivery
    return_reason TEXT,               -- Reason for returning material if applicable
    po_number VARCHAR(50)             -- Purchase order number
);

রেকর্ড সন্নিবেশ করান

উপরে উল্লিখিত database_script.sql স্ক্রিপ্ট থেকে insert query স্টেটমেন্টটি এডিটরে কপি করুন।

রান ক্লিক করুন।

এখন যেহেতু ডেটাসেট প্রস্তুত, আসুন AlloyDB-তে আমাদের সমস্ত অর্ডার ডেটাবেস ইন্টারঅ্যাকশনের জন্য নিয়ন্ত্রণ সমতল হিসাবে কাজ করার জন্য ডেটাবেসের জন্য MCP টুলবক্স সেট আপ করি!!!

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

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

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

  1. আপনার ক্লাউড শেল টার্মিনালে নেভিগেট করুন এবং নিশ্চিত করুন যে আপনার প্রকল্পটি নির্বাচিত হয়েছে এবং টার্মিনালের প্রম্পটে দেখানো হয়েছে। আপনার প্রকল্প ডিরেক্টরিতে নেভিগেট করতে আপনার ক্লাউড শেল টার্মিনাল থেকে নীচের কমান্ডটি চালান:
cd adk-renovation-agent
  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
  1. ক্লাউড শেল এডিটরে (কোড এডিট মোডের জন্য) নেভিগেট করুন এবং প্রজেক্ট রুট ফোল্ডারে "tools.yaml" নামে একটি ফাইল যুক্ত করুন।
sources:
    alloydb-orders:
        kind: "alloydb-postgres"
        project: "<<YOUR_PROJECT_ID>>"
        region: "us-central1"
        cluster: "<<YOUR_ALLOYDB_CLUSTER>>"
        instance: "<<YOUR_ALLOYDB_INSTANCE>>"
        database: "<<YOUR_ALLOYDB_DATABASE>>"
        user: "<<YOUR_ALLOYDB_USER>>"
        password: "<<YOUR_ALLOYDB_PASSWORD>>"

tools:
  get-order-data:
    kind: postgres-sql
    source: alloydb-orders
    description: Get the status of an order based on the material description.
    parameters:
      - name: description
        type: string
        description: A description of the material to search for its order status.
    statement: |
      select order_status from material_order_status where lower(material_name) like lower($1) 
      LIMIT 1;

কোয়েরি অংশে (উপরের "বিবৃতি" প্যারামিটারটি দেখুন), আমরা কেবলমাত্র ক্ষেত্রের order_status এর মানটি পুনরুদ্ধার করছি যখন উপাদানের নাম ব্যবহারকারীর অনুসন্ধান পাঠ্যের সাথে মিলে যায়।

আসুন বুঝতে পারি tools.yaml

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

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

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

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

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

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

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

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

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

f990712162e8e924.png

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

d1b9de0c46ecef8a.png

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

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

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

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

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

  1. একটি নতুন ক্লাউড শেল টার্মিনাল চালু করুন অথবা একটি বিদ্যমান ক্লাউড শেল টার্মিনাল ব্যবহার করুন। প্রজেক্ট ফোল্ডারে যান যেখানে টুলবক্স বাইনারি এবং tools.yaml উপস্থিত রয়েছে, এই ক্ষেত্রে adk-renovation-agent
  2. আপনার Google ক্লাউড প্রজেক্ট আইডির দিকে নির্দেশ করার জন্য PROJECT_ID ভেরিয়েবল সেট করুন।
export PROJECT_ID="<<YOUR_GOOGLE_CLOUD_PROJECT_ID>>"
  1. এই Google ক্লাউড পরিষেবাগুলি সক্ষম করুন
gcloud services enable run.googleapis.com \
                       cloudbuild.googleapis.com \
                       artifactregistry.googleapis.com \
                       iam.googleapis.com \
                       secretmanager.googleapis.com
  1. আসুন একটি পৃথক পরিষেবা অ্যাকাউন্ট তৈরি করি যা গুগল ক্লাউড রানে আমরা যে টুলবক্স পরিষেবাটি স্থাপন করব তার পরিচয় হিসেবে কাজ করবে।
gcloud iam service-accounts create toolbox-identity
  1. আমরা নিশ্চিত করছি যে এই পরিষেবা অ্যাকাউন্টের সঠিক ভূমিকা রয়েছে যেমন সিক্রেট ম্যানেজার অ্যাক্সেস করার এবং AlloyDB-এর সাথে কথা বলার ক্ষমতা।
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
  1. আমরা tools.yaml ফাইলটি গোপনে আপলোড করব:
gcloud secrets create tools --data-file=tools.yaml

যদি আপনার ইতিমধ্যেই কোনও গোপন তথ্য থাকে এবং আপনি গোপন সংস্করণটি আপডেট করতে চান, তাহলে নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud secrets versions add tools --data-file=tools.yaml

ক্লাউড রানের জন্য আপনি যে কন্টেইনার ইমেজটি ব্যবহার করতে চান তাতে একটি এনভায়রনমেন্ট ভেরিয়েবল সেট করুন:

export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
  1. ক্লাউড রানে পরিচিত ডিপ্লয়মেন্ট কমান্ডের শেষ ধাপ:
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

তুমি তোমার এজেন্টিক অ্যাপ্লিকেশনে তোমার নতুন মোতায়েন করা টুলটি ব্যবহার করার জন্য প্রস্তুত!!!

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

আমরা ইতিমধ্যেই আমাদের এজেন্ট অ্যাপ্লিকেশনের জন্য সোর্স তৈরি করেছি। আসুন এটি আপডেট করে একটি নতুন MCP টুলবক্স ফর ডেটাবেস টুল অন্তর্ভুক্ত করি যা আমরা ক্লাউড রানে স্থাপন করেছি।

  1. রেপো থেকে উৎস সহ আপনার requirements.txt ফাইলটি পর্যবেক্ষণ করুন :

আমরা requirements.txt-এ MCP Toolbox for Databases-এর নির্ভরতা অন্তর্ভুক্ত করছি।

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt

  1. রেপো থেকে কোডটি দিয়ে আপনার agent.py ফাইলটি পর্যবেক্ষণ করুন :

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

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py

9. মডেল সেটআপ

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

  1. গুগল এআই স্টুডিও থেকে একটি API কী পান।
  2. পরবর্তী ধাপে যেখানে আপনি .env ফাইলটি সেট আপ করবেন, <<your API KEY>> আপনার প্রকৃত API KEY মান দিয়ে প্রতিস্থাপন করুন।

১০. ENV ভেরিয়েবল সেটআপ

  1. টেমপ্লেট .env ফাইলের প্যারামিটারগুলির জন্য আপনার মানগুলি সেট করুন। আমার ক্ষেত্রে, .env-এর এই ভেরিয়েবলগুলি রয়েছে:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION=us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT=<<your project id>>
PROJECT_ID=<<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>

স্থানধারকগুলিকে আপনার মান দিয়ে প্রতিস্থাপন করুন।

১১. আপনার এজেন্ট চালান

  1. টার্মিনাল ব্যবহার করে, আপনার এজেন্ট প্রকল্পের মূল ডিরেক্টরিতে যান:
cd renovation-agent
  1. নির্ভরতা ইনস্টল করুন:
pip install -r requirements.txt
  1. এজেন্টটি কার্যকর করতে আপনি আপনার ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালাতে পারেন:
adk run .
  1. ADK প্রভিশনড ওয়েব UI তে এটি চালানোর জন্য আপনি নিম্নলিখিতগুলি চালাতে পারেন:
adk web
  1. নিম্নলিখিত প্রম্পটগুলি ব্যবহার করে পরীক্ষা করুন:
user>> 

Hello. Check order status for Cement Bags.

১২. ফলাফল

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

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

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

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

১৪. অভিনন্দন

অভিনন্দন! আপনি ডেটাবেসের জন্য ADK এবং MCP টুলবক্স ব্যবহার করে একটি মাল্টি-এজেন্ট অ্যাপ্লিকেশন সফলভাবে তৈরি করেছেন! আরও তথ্যের জন্য, পণ্য ডকুমেন্টগুলি দেখুন: এজেন্ট ডেভেলপমেন্ট কিট এবং ডেটাবেসের জন্য MCP টুলবক্স