এই কোডল্যাব সম্পর্কে
1. ওভারভিউ
একটি এজেন্ট হল একটি স্বায়ত্তশাসিত প্রোগ্রাম যা একটি AI মডেলের সাথে কথা বলে একটি লক্ষ্য-ভিত্তিক অপারেশন করার জন্য এটির সরঞ্জাম এবং প্রসঙ্গ ব্যবহার করে এবং এটি সত্যের ভিত্তিতে স্বায়ত্তশাসিত সিদ্ধান্ত নিতে সক্ষম!
যখন আপনার অ্যাপ্লিকেশানের একাধিক এজেন্ট স্বায়ত্তশাসিতভাবে একসাথে কাজ করে এবং এর বৃহত্তর উদ্দেশ্য পূরণের জন্য প্রয়োজন অনুযায়ী এর প্রতিটি এজেন্ট স্বাধীনভাবে জ্ঞানী এবং একটি নির্দিষ্ট ফোকাস এলাকার জন্য দায়ী থাকে, তখন আপনার অ্যাপ্লিকেশন একটি মাল্টি-এজেন্ট সিস্টেমে পরিণত হয়।
এজেন্ট ডেভেলপমেন্ট কিট (ADK)
এজেন্ট ডেভেলপমেন্ট কিট (ADK) হল একটি নমনীয় এবং মডুলার ফ্রেমওয়ার্ক যা এআই এজেন্টদের ডেভেলপ করা এবং মোতায়েনের জন্য। ADK একটি মাল্টি-এজেন্ট সিস্টেম (MAS) এ একাধিক, স্বতন্ত্র এজেন্ট উদাহরণ রচনা করে অত্যাধুনিক অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে।
ADK-তে, একটি মাল্টি-এজেন্ট সিস্টেম হল একটি অ্যাপ্লিকেশন যেখানে বিভিন্ন এজেন্ট, প্রায়শই একটি শ্রেণিবিন্যাস গঠন করে, একটি বড় লক্ষ্য অর্জনের জন্য সহযোগিতা বা সমন্বয় করে। এইভাবে আপনার অ্যাপ্লিকেশন গঠন করা উল্লেখযোগ্য সুবিধা প্রদান করে, যার মধ্যে উন্নত মডুলারিটি, বিশেষীকরণ, পুনঃব্যবহারযোগ্যতা, রক্ষণাবেক্ষণযোগ্যতা এবং ডেডিকেটেড ওয়ার্কফ্লো এজেন্ট ব্যবহার করে কাঠামোগত নিয়ন্ত্রণ প্রবাহকে সংজ্ঞায়িত করার ক্ষমতা অন্তর্ভুক্ত।
মাল্টি-এজেন্ট সিস্টেমের জন্য যে বিষয়গুলি মাথায় রাখতে হবে৷
প্রথমত , প্রতিটি এজেন্টের জন্য বিশেষীকরণের সঠিক বোধগম্যতা এবং যুক্তি থাকা গুরুত্বপূর্ণ। - "আপনি কি জানেন কেন আপনার কোন কিছুর জন্য একটি নির্দিষ্ট সাব-এজেন্ট প্রয়োজন", প্রথমে এটি তৈরি করুন।
দ্বিতীয়ত , কিভাবে রুট এজেন্টের সাথে রুট করার জন্য তাদের একত্রিত করা যায় এবং প্রতিটি প্রতিক্রিয়ার অর্থ বোঝা যায়।
তৃতীয় , এজেন্ট রাউটিং এর একাধিক প্রকার রয়েছে যা আপনি এখানে এই ডকুমেন্টেশনে খুঁজে পেতে পারেন। আপনার আবেদনের প্রবাহের সাথে কোনটি উপযুক্ত তা নিশ্চিত করুন। এছাড়াও আপনার মাল্টি-এজেন্ট সিস্টেমের প্রবাহ নিয়ন্ত্রণের জন্য আপনার প্রয়োজনীয় বিভিন্ন প্রসঙ্গ এবং রাজ্যগুলি কী কী।
আপনি কি নির্মাণ করবেন
আসুন AlloyDB এবং ADK-এর জন্য MCP টুলবক্স ব্যবহার করে রান্নাঘরের সংস্কার পরিচালনা করার জন্য একটি মাল্টি-এজেন্ট সিস্টেম তৈরি করি।
- সংস্কার প্রস্তাব এজেন্ট
- পারমিট এবং কমপ্লায়েন্স চেক এজেন্ট
- অর্ডার স্ট্যাটাস চেক (ডাটাবেসের জন্য MCP টুলবক্স ব্যবহার করে টুল)
রান্নাঘর সংস্কার প্রস্তাব নথি তৈরি করতে সংস্কার প্রস্তাব এজেন্ট।
পারমিট এবং কমপ্লায়েন্স এজেন্ট, পারমিট এবং কমপ্লায়েন্স সংক্রান্ত কাজের যত্ন নিতে।
অর্ডার স্ট্যাটাস চেক এজেন্ট, অর্ডার ম্যানেজমেন্ট ডাটাবেসে কাজ করে সামগ্রীর অর্ডার স্ট্যাটাস চেক করতে যা আমরা AlloyDB-তে সেট আপ করেছি। কিন্তু এই ডাটাবেস অংশের জন্য, আমরা অর্ডারের জন্য স্ট্যাটাস পুনরুদ্ধার যুক্তি প্রয়োগ করতে AlloyDB-এর জন্য MCP টুলবক্স ব্যবহার করব।
2. এমসিপি
এমসিপি মানে মডেল কনটেক্সট প্রোটোকল, অ্যানথ্রপিক দ্বারা তৈরি একটি উন্মুক্ত মান যা এআই এজেন্টদের বাহ্যিক সরঞ্জাম, পরিষেবা এবং ডেটার সাথে সংযোগ করার জন্য একটি সামঞ্জস্যপূর্ণ উপায় প্রদান করে। এটি মূলত AI অ্যাপ্লিকেশনগুলির জন্য একটি সাধারণ মান হিসাবে কাজ করে, যা তাদের বিভিন্ন ডেটা উত্স এবং সরঞ্জামগুলির সাথে নির্বিঘ্নে যোগাযোগ করতে দেয়।
- এটি একটি ক্লায়েন্ট-সার্ভার মডেল ব্যবহার করে, যেখানে AI অ্যাপ্লিকেশন (হোস্ট) MCP ক্লায়েন্ট চালায়, যা MCP সার্ভারের সাথে যোগাযোগ করে।
- যখন একটি AI এজেন্টকে একটি নির্দিষ্ট টুল বা ডেটা অ্যাক্সেস করতে হয়, তখন এটি MCP ক্লায়েন্টের কাছে একটি কাঠামোগত অনুরোধ পাঠায়, যা এটিকে উপযুক্ত MCP সার্ভারে ফরোয়ার্ড করে।
- AI মডেলগুলিকে প্রতিটি ইন্টিগ্রেশনের জন্য কাস্টম কোডের প্রয়োজন ছাড়াই বাহ্যিক ডেটা এবং সরঞ্জামগুলি অ্যাক্সেস করার অনুমতি দেয়।
- লার্জ ল্যাঙ্গুয়েজ মডেলের (LLMs) উপরে এজেন্ট তৈরির প্রক্রিয়া এবং জটিল কর্মপ্রবাহকে সহজ করে।
ডাটাবেসের জন্য MCP টুলবক্স
ডাটাবেসের জন্য Google এর MCP টুলবক্স হল ডাটাবেসের জন্য একটি ওপেন সোর্স MCP সার্ভার। এটি এন্টারপ্রাইজ-গ্রেড এবং উত্পাদন-মানের মাথায় রেখে ডিজাইন করা হয়েছিল। এটি আপনাকে সংযোগ পুলিং, প্রমাণীকরণ এবং আরও অনেক কিছুর মতো জটিলতাগুলি পরিচালনা করে সহজ, দ্রুত এবং আরও নিরাপদে সরঞ্জামগুলি বিকাশ করতে সক্ষম করে৷
আপনার এজেন্টদের আপনার ডাটাবেসে ডেটা অ্যাক্সেস করতে দিন!!! কিভাবে?
সরলীকৃত উন্নয়ন: আপনার এজেন্টের সাথে 10 লাইনের কম কোডে টুলগুলিকে একীভূত করুন, একাধিক এজেন্ট বা ফ্রেমওয়ার্কের মধ্যে টুলগুলিকে পুনঃব্যবহার করুন এবং আরও সহজে টুলগুলির নতুন সংস্করণ স্থাপন করুন৷
আরও ভাল কর্মক্ষমতা: সর্বোত্তম অনুশীলন যেমন সংযোগ পুলিং, প্রমাণীকরণ এবং আরও অনেক কিছু।
বর্ধিত নিরাপত্তা: আপনার ডেটাতে আরও নিরাপদ অ্যাক্সেসের জন্য সমন্বিত প্রমাণীকরণ
এন্ড-টু-এন্ড পর্যবেক্ষণযোগ্যতা: ওপেনটেলিমেট্রির জন্য অন্তর্নির্মিত সমর্থন সহ বাক্সের বাইরের মেট্রিক্স এবং ট্রেসিং।
এই পূর্বনির্ধারিত এমসিপি সত্যকে কল করতে হবে!!!
ডাটাবেসের জন্য MCP টুলবক্স আপনার এজেন্টিক অ্যাপ্লিকেশনের অর্কেস্ট্রেশন ফ্রেমওয়ার্ক এবং আপনার ডাটাবেসের মধ্যে বসে, একটি নিয়ন্ত্রণ সমতল প্রদান করে যা সরঞ্জামগুলি সংশোধন, বিতরণ বা আহ্বান করতে ব্যবহৃত হয়। এটি আপনাকে সরঞ্জামগুলি সঞ্চয় এবং আপডেট করার জন্য একটি কেন্দ্রীভূত অবস্থান প্রদান করে আপনার সরঞ্জামগুলির পরিচালনাকে সহজ করে, আপনাকে এজেন্ট এবং অ্যাপ্লিকেশনগুলির মধ্যে সরঞ্জামগুলি ভাগ করে নেওয়ার অনুমতি দেয় এবং আপনার অ্যাপ্লিকেশনটিকে পুনরায় ব্যবহার না করেই সেই সরঞ্জামগুলিকে আপডেট করতে দেয়৷
আমাদের কাছে একটি রুট এজেন্ট থাকবে যা প্রয়োজনের ভিত্তিতে এই এজেন্টদের সাজায়।
প্রয়োজনীয়তা
- একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
- বিলিং সক্ষম সহ একটি Google ক্লাউড প্রকল্প৷
3. আপনি শুরু করার আগে
একটি প্রকল্প তৈরি করুন
- Google ক্লাউড কনসোলে , প্রকল্প নির্বাচক পৃষ্ঠায়, একটি Google ক্লাউড প্রকল্প নির্বাচন করুন বা তৈরি করুন।
- নিশ্চিত করুন যে আপনার ক্লাউড প্রকল্পের জন্য বিলিং সক্ষম করা আছে৷ একটি প্রকল্পে বিলিং সক্ষম কিনা তা পরীক্ষা করতে শিখুন।
এছাড়াও আপনি যদি এটি পড়ছেন এবং Google ক্লাউডের সাথে শুরু করতে এবং ADK ব্যবহার করতে সাহায্য করার জন্য কিছু ক্রেডিট পেতে চান, ক্রেডিটগুলি ভাঙাতে এই লিঙ্কটি ব্যবহার করুন৷ আপনি এটি রিডিম করতে এখানে নির্দেশাবলী অনুসরণ করতে পারেন। অনুগ্রহ করে মনে রাখবেন যে এই লিঙ্কটি শুধুমাত্র মে মাসের শেষ পর্যন্ত খালাসের জন্য বৈধ।
- এই লিঙ্কে ক্লিক করে ক্লাউড শেল সক্রিয় করুন। আপনি ক্লাউড শেল থেকে সংশ্লিষ্ট বোতামে ক্লিক করে ক্লাউড শেল টার্মিনাল (ক্লাউড কমান্ড চালানোর জন্য) এবং সম্পাদক (প্রকল্প নির্মাণের জন্য) এর মধ্যে টগল করতে পারেন।
- একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি পরীক্ষা করে দেখুন যে আপনি ইতিমধ্যেই প্রমাণীকৃত হয়েছেন এবং নিম্নলিখিত কমান্ডটি ব্যবহার করে প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে:
gcloud auth list
- gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
- যদি আপনার প্রজেক্ট সেট করা না থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>
- নিম্নলিখিত কমান্ডগুলি চালিয়ে নিম্নলিখিত APIগুলি সক্ষম করুন:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com \alloydb.googleapis.com
- পাইথন 3.9+ আছে তা নিশ্চিত করুন
- জিক্লাউড কমান্ড এবং ব্যবহারের জন্য ডকুমেন্টেশন পড়ুন।
4. ADK সেটআপ
- ভার্চুয়াল পরিবেশ তৈরি এবং সক্রিয় করুন (প্রস্তাবিত)
আপনার ক্লাউড শেল টার্মিনাল থেকে, একটি ভার্চুয়াল পরিবেশ তৈরি করুন:
python -m venv .venv
ভার্চুয়াল পরিবেশ সক্রিয় করুন:
source .venv/bin/activate
- ADK ইনস্টল করুন
pip install google-adk
5. প্রকল্পের কাঠামো
- ক্লাউড শেল টার্মিনাল থেকে, রুট এবং প্রোজেক্ট ফোল্ডার তৈরি করতে নিম্নলিখিত কমান্ডগুলি একে একে চালান:
mkdir agentic-apps
cd agentic-apps
mkdir renovation-agent
- ক্লাউড শেল সম্পাদকে যান এবং ফাইলগুলি তৈরি করে নিম্নলিখিত প্রকল্প কাঠামো তৈরি করুন (শুরুতে খালি):
renovation-agent/
__init__.py
agent.py
.env
6. সোর্স কোড
- init .py এ যান এবং নিম্নলিখিত বিষয়বস্তু সহ আপডেট করুন:
from . import agent
- agent.py-এ যান এবং নিম্নলিখিত পথ থেকে নিম্নলিখিত সামগ্রী সহ ফাইলটি আপডেট করুন:
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py
agent.py-এ, আমরা প্রয়োজনীয় নির্ভরতা আমদানি করি, .env ফাইল থেকে কনফিগারেশন পরামিতি পুনরুদ্ধার করি এবং root_agent সংজ্ঞায়িত করি যা টুলবক্স টুল চালু করতে 1 টুল ব্যবহার করে।
- Requiments.txt-এ যান এবং নিম্নলিখিত বিষয়বস্তু সহ এটি আপডেট করুন:
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt
7. ডাটাবেস সেটআপ
অর্ডারিং_এজেন্ট দ্বারা ব্যবহৃত সরঞ্জামগুলির একটিতে, যাকে বলা হয় "চেক_স্ট্যাটাস", আমরা অর্ডারের স্থিতি পেতে AlloyDB অর্ডার ডেটাবেস অ্যাক্সেস করি। এই বিভাগে, আমরা AlloyDB ডাটাবেস ক্লাস্টার এবং উদাহরণ সেট আপ করব।
একটি ক্লাস্টার এবং উদাহরণ তৈরি করুন
- ক্লাউড কনসোলে AlloyDB পৃষ্ঠাটি নেভিগেট করুন। ক্লাউড কনসোলে বেশিরভাগ পৃষ্ঠাগুলি খুঁজে পাওয়ার একটি সহজ উপায় হল কনসোলের অনুসন্ধান বার ব্যবহার করে সেগুলি অনুসন্ধান করা৷
- সেই পৃষ্ঠা থেকে ক্লাস্টার তৈরি করুন নির্বাচন করুন:
- আপনি নীচের মত একটি পর্দা দেখতে পাবেন. নিম্নলিখিত মানগুলির সাথে একটি ক্লাস্টার এবং উদাহরণ তৈরি করুন (আপনি রেপো থেকে অ্যাপ্লিকেশন কোড ক্লোন করার ক্ষেত্রে মানগুলি মেলে তা নিশ্চিত করুন):
- ক্লাস্টার আইডি : "
vector-cluster
" - পাসওয়ার্ড : "
alloydb
" - PostgreSQL 16 সামঞ্জস্যপূর্ণ / যা কিছু সাম্প্রতিক তা সুপারিশ করা হয়
- অঞ্চল : "
us-central1
" - নেটওয়ার্কিং : "
default
"
- আপনি যখন ডিফল্ট নেটওয়ার্ক নির্বাচন করেন, আপনি নীচের মত একটি স্ক্রীন দেখতে পাবেন।
সংযোগ সেট আপ নির্বাচন করুন।
- সেখান থেকে, " একটি স্বয়ংক্রিয়ভাবে বরাদ্দকৃত IP পরিসর ব্যবহার করুন " নির্বাচন করুন এবং চালিয়ে যান। তথ্য পর্যালোচনা করার পরে, সংযোগ তৈরি করুন নির্বাচন করুন।
6. গুরুত্বপূর্ণ নোট: ইনস্ট্যান্স আইডি (যা আপনি ক্লাস্টার/ইনস্ট্যান্সের কনফিগারেশনের সময় খুঁজে পেতে পারেন) পরিবর্তন করতে ভুলবেন না
vector-instance
আপনি যদি এটি পরিবর্তন করতে না পারেন তবে সমস্ত আসন্ন রেফারেন্সে আপনার ইনস্ট্যান্স আইডি ব্যবহার করতে ভুলবেন না।
- টুলবক্স সেট আপ করার প্রস্তুতির জন্য, আসুন আমাদের AlloyDB দৃষ্টান্তে পাবলিক আইপি সংযোগ সক্ষম করি যাতে নতুন টুল ডাটাবেস অ্যাক্সেস করতে পারে।
- পাবলিক আইপি সংযোগ বিভাগে যান, পাবলিক আইপি সক্ষম করুন চেকবক্সটি চেক করুন এবং আপনার ক্লাউড শেল মেশিনের আইপি ঠিকানা লিখুন।
- আপনার ক্লাউড শেল মেশিনের আইপি পেতে, ক্লাউড শেল টার্মিনালে যান এবং ifconfig লিখুন। ফলাফল থেকে eth0 inet ঠিকানাটি চিহ্নিত করুন এবং শেষ 2 সংখ্যাটিকে 0.0 দিয়ে একটি মাস্ক আকার '/16' দিয়ে প্রতিস্থাপন করুন। উদাহরণের জন্য এটি দেখতে "XX.XX.0.0/16" এর মত হবে যেখানে XX সংখ্যা।
- সম্পাদনা উদাহরণ পৃষ্ঠার অনুমোদিত বহিরাগত নেটওয়ার্ক "নেটওয়ার্ক" পাঠ্যবক্সে এই আইপিটি আটকান৷
- আপনার নেটওয়ার্ক সেট আপ হয়ে গেলে, আপনি আপনার ক্লাস্টার তৈরি করা চালিয়ে যেতে পারেন। নীচে দেখানো হিসাবে ক্লাস্টার সেট আপ সম্পূর্ণ করতে CLUSTER তৈরি করুন ক্লিক করুন:
মনে রাখবেন ক্লাস্টার তৈরি হতে প্রায় 10 মিনিট সময় লাগবে। একবার এটি সফল হলে, আপনি একটি স্ক্রীন দেখতে পাবেন যা আপনার তৈরি করা ক্লাস্টারটির ওভারভিউ দেখায়।
ডেটা ইনজেশন
এখন স্টোর সম্পর্কে ডেটা সহ একটি টেবিল যুক্ত করার সময়। AlloyDB-তে নেভিগেট করুন, প্রাথমিক ক্লাস্টার এবং তারপর AlloyDB স্টুডিও নির্বাচন করুন:
আপনার উদাহরণ তৈরি করা শেষ হওয়ার জন্য আপনাকে অপেক্ষা করতে হতে পারে। এটি হয়ে গেলে, আপনি ক্লাস্টার তৈরি করার সময় আপনার তৈরি শংসাপত্রগুলি ব্যবহার করে AlloyDB-এ সাইন ইন করুন৷ PostgreSQL এ প্রমাণীকরণের জন্য নিম্নলিখিত ডেটা ব্যবহার করুন:
- ব্যবহারকারীর নাম: "
postgres
" - ডাটাবেস : "
postgres
" - পাসওয়ার্ড: "
alloydb
"
একবার আপনি সফলভাবে অ্যালোয়ডিবি স্টুডিওতে প্রমাণীকৃত হয়ে গেলে, এসকিউএল কমান্ড এডিটরে প্রবেশ করানো হয়। আপনি শেষ উইন্ডোর ডানদিকে প্লাস ব্যবহার করে একাধিক সম্পাদক উইন্ডো যোগ করতে পারেন।
আপনি প্রয়োজন অনুসারে রান, ফরম্যাট এবং সাফ বিকল্পগুলি ব্যবহার করে সম্পাদক উইন্ডোতে AlloyDB-এর জন্য কমান্ড লিখবেন।
একটি টেবিল তৈরি করুন
আপনি 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
ক্যোয়ারী স্টেটমেন্ট কপি করুন সম্পাদকে।
রান এ ক্লিক করুন।
এখন যেহেতু ডেটাসেট প্রস্তুত, আসুন AlloyDB-তে আমাদের সমস্ত অর্ডার ডেটাবেস ইন্টারঅ্যাকশনের জন্য কন্ট্রোল প্লেন হিসাবে কাজ করার জন্য ডেটাবেসের জন্য MCP টুলবক্স সেট আপ করি!!!
8. ডাটাবেস সেটআপের জন্য MCP টুলবক্স
টুলবক্স আপনার অ্যাপ্লিকেশনের অর্কেস্ট্রেশন ফ্রেমওয়ার্ক এবং আপনার ডাটাবেসের মধ্যে বসে, একটি কন্ট্রোল প্লেন প্রদান করে যা সরঞ্জামগুলি সংশোধন, বিতরণ বা আহ্বান করতে ব্যবহৃত হয়। এটি আপনাকে সরঞ্জামগুলি সঞ্চয় এবং আপডেট করার জন্য একটি কেন্দ্রীভূত অবস্থান প্রদান করে আপনার সরঞ্জামগুলির পরিচালনাকে সহজ করে, আপনাকে এজেন্ট এবং অ্যাপ্লিকেশনগুলির মধ্যে সরঞ্জামগুলি ভাগ করে নিতে এবং আপনার অ্যাপ্লিকেশনটিকে পুনরায় ব্যবহার না করেই সেই সরঞ্জামগুলিকে আপডেট করার অনুমতি দেয়৷
আপনি দেখতে পাচ্ছেন যে ডাটাবেসের জন্য MCP টুলবক্স দ্বারা সমর্থিত ডেটাবেসগুলির মধ্যে একটি হল AlloyDB এবং যেহেতু আমরা ইতিমধ্যেই পূর্ববর্তী বিভাগে এটির ব্যবস্থা করেছি, আসুন এগিয়ে যান এবং টুলবক্স সেট আপ করি৷
- আপনার ক্লাউড শেল টার্মিনালে নেভিগেট করুন এবং নিশ্চিত করুন যে আপনার প্রকল্পটি নির্বাচিত হয়েছে এবং টার্মিনালের প্রম্পটে দেখানো হয়েছে। আপনার প্রকল্প ডিরেক্টরিতে নেভিগেট করতে আপনার ক্লাউড শেল টার্মিনাল থেকে নীচের কমান্ডটি চালান:
cd adk-renovation-agent
- আপনার নতুন ফোল্ডারে টুলবক্স ডাউনলোড এবং ইনস্টল করতে নীচের কমান্ডটি চালান:
# 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
- ক্লাউড শেল এডিটরে নেভিগেট করুন (কোড এডিট মোডের জন্য) এবং প্রোজেক্ট রুট ফোল্ডারে "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;
ক্যোয়ারী অংশে (উপরে "বিবৃতি" প্যারামিটার পড়ুন), আমরা কেবলমাত্র ফিল্ড অর্ডার_স্ট্যাটাসের মান পুনরুদ্ধার করছি যখন উপাদানের নাম ব্যবহারকারীর অনুসন্ধান পাঠ্যের সাথে মেলে।
আসুন tools.yaml বুঝুন
উত্সগুলি আপনার বিভিন্ন ডেটা উত্সের প্রতিনিধিত্ব করে যার সাথে একটি টুল ইন্টারঅ্যাক্ট করতে পারে। একটি উৎস একটি তথ্য উৎস প্রতিনিধিত্ব করে যার সাথে একটি টুল ইন্টারঅ্যাক্ট করতে পারে। আপনি আপনার tools.yaml ফাইলের উত্স বিভাগে একটি মানচিত্র হিসাবে উত্সগুলিকে সংজ্ঞায়িত করতে পারেন৷ সাধারণত, একটি উৎস কনফিগারেশনে ডাটাবেসের সাথে সংযোগ এবং ইন্টারঅ্যাক্ট করার জন্য প্রয়োজনীয় যেকোন তথ্য থাকবে।
সরঞ্জামগুলি একটি এজেন্ট যে কাজগুলি নিতে পারে তা সংজ্ঞায়িত করে - যেমন একটি উত্স পড়া এবং লেখা৷ একটি টুল আপনার এজেন্ট নিতে পারে এমন একটি কাজকে প্রতিনিধিত্ব করে, যেমন একটি SQL স্টেটমেন্ট চালানো। আপনি আপনার tools.yaml ফাইলের টুলস বিভাগে একটি মানচিত্র হিসেবে টুলকে সংজ্ঞায়িত করতে পারেন। সাধারণত, একটি টুলের উপর কাজ করার জন্য একটি উৎসের প্রয়োজন হবে।
আপনার tools.yaml কনফিগার করার বিষয়ে আরো বিস্তারিত জানার জন্য, এই ডকুমেন্টেশন পড়ুন।
ডাটাবেস সার্ভারের জন্য MCP টুলবক্স চালাই
সার্ভার শুরু করতে নিম্নলিখিত কমান্ডটি চালান (mcp-toolbox ফোল্ডার থেকে):
./toolbox --tools-file "tools.yaml"
এখন আপনি যদি ক্লাউডে একটি ওয়েব প্রিভিউ মোডে সার্ভারটি খোলেন, তাহলে আপনি দেখতে পাবেন টুলবক্স সার্ভার আপ এবং আপনার নতুন টুল নামক get-order-data দিয়ে চলমান।
এমসিপি টুলবক্স সার্ভার ডিফল্টভাবে পোর্ট 5000 এ চলে। আসুন এটি পরীক্ষা করার জন্য ক্লাউড শেল ব্যবহার করি।
ক্লাউড শেলের ওয়েব প্রিভিউতে ক্লিক করুন নিচের মত:
চেঞ্জ পোর্টে ক্লিক করুন এবং নীচের চিত্রের মতো পোর্টটিকে 5000 এ সেট করুন এবং পরিবর্তন এবং পূর্বরূপ ক্লিক করুন।
এটি আউটপুট আনতে হবে:
ডেটাবেসের জন্য MCP টুলকিট আপনার জন্য একটি পাইথন SDK বর্ণনা করে যাতে আপনি টুলগুলি যাচাই করতে এবং পরীক্ষা করতে পারেন, যা এখানে নথিভুক্ত করা হয়েছে। আমরা এটি এড়িয়ে যাবো এবং পরবর্তী বিভাগে সরাসরি এজেন্ট ডেভেলপমেন্ট কিট (ADK) এ ঝাঁপ দেব যা এই সরঞ্জামগুলি ব্যবহার করবে।
ক্লাউড রানে আমাদের টুলবক্স স্থাপন করা যাক
প্রথমত, আমরা MCP টুলবক্স সার্ভার দিয়ে শুরু করতে পারি এবং এটিকে ক্লাউড রানে হোস্ট করতে পারি। এটি তখন আমাদের একটি পাবলিক এন্ডপয়েন্ট দেবে যা আমরা অন্য কোনো অ্যাপ্লিকেশন এবং/অথবা এজেন্ট অ্যাপ্লিকেশনগুলির সাথেও একীভূত করতে পারি। ক্লাউড রানে এটি হোস্ট করার নির্দেশাবলী এখানে দেওয়া হয়েছে। আমরা এখন মূল পদক্ষেপের মধ্য দিয়ে যেতে হবে.
- একটি নতুন ক্লাউড শেল টার্মিনাল চালু করুন বা একটি বিদ্যমান ক্লাউড শেল টার্মিনাল ব্যবহার করুন৷ প্রকল্প ফোল্ডারে যান যেখানে টুলবক্স বাইনারি এবং tools.yaml উপস্থিত রয়েছে, এক্ষেত্রে adk-renovation-agent
- আপনার Google ক্লাউড প্রকল্প আইডি নির্দেশ করতে PROJECT_ID ভেরিয়েবল সেট করুন।
export PROJECT_ID="<<YOUR_GOOGLE_CLOUD_PROJECT_ID>>"
- এই Google ক্লাউড পরিষেবাগুলি সক্ষম করুন৷
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
iam.googleapis.com \
secretmanager.googleapis.com
- আসুন একটি পৃথক পরিষেবা অ্যাকাউন্ট তৈরি করি যা টুলবক্স পরিষেবার পরিচয় হিসাবে কাজ করবে যা আমরা Google ক্লাউড রানে স্থাপন করব৷
gcloud iam service-accounts create toolbox-identity
- আমরা এটাও নিশ্চিত করছি যে এই পরিষেবা অ্যাকাউন্টের সঠিক ভূমিকা রয়েছে যেমন সিক্রেট ম্যানেজার অ্যাক্সেস করার এবং 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
- আমরা একটি গোপন হিসাবে 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
- ক্লাউড রানে পরিচিত স্থাপনার কমান্ডের শেষ ধাপ:
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 টুলবক্স অন্তর্ভুক্ত করার জন্য এটিকে আপডেট করি যা আমরা এইমাত্র ক্লাউড রানে স্থাপন করেছি।
- রেপো থেকে উৎস সহ আপনার requirements.txt ফাইলটি পর্যবেক্ষণ করুন :
আমরা requirements.txt-এ ডাটাবেসের জন্য MCP টুলবক্সের নির্ভরতা অন্তর্ভুক্ত করছি
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt
- রেপো থেকে কোড সহ আপনার agent.py ফাইলটি পর্যবেক্ষণ করুন :
আমরা সেই টুলটি অন্তর্ভুক্ত করছি যা অর্ডার করা নির্দিষ্ট উপাদানের জন্য অর্ডার ডেটা আনার জন্য টুলবক্স এন্ডপয়েন্টকে আহ্বান করে।
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py
9. মডেল সেটআপ
আপনার এজেন্টের ব্যবহারকারীর অনুরোধ বুঝতে এবং প্রতিক্রিয়া তৈরি করার ক্ষমতা একটি বড় ভাষা মডেল (LLM) দ্বারা চালিত হয়। আপনার এজেন্টকে এই বাহ্যিক LLM পরিষেবাতে সুরক্ষিত কল করতে হবে, যার জন্য প্রমাণীকরণ শংসাপত্র প্রয়োজন৷ বৈধ প্রমাণীকরণ ছাড়া, এলএলএম পরিষেবা এজেন্টের অনুরোধ অস্বীকার করবে এবং এজেন্ট কাজ করতে অক্ষম হবে।
- Google AI স্টুডিও থেকে একটি API কী পান।
- পরবর্তী ধাপে যেখানে আপনি .env ফাইল সেট আপ করবেন,
<<your API KEY>>
আপনার আসল API KEY মান দিয়ে প্রতিস্থাপন করুন।
10. ENV ভেরিয়েবল সেটআপ
- টেমপ্লেট .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>>
আপনার মান দিয়ে স্থানধারক প্রতিস্থাপন করুন.
11. আপনার এজেন্ট চালান
- টার্মিনাল ব্যবহার করে, আপনার এজেন্ট প্রকল্পের মূল ডিরেক্টরিতে নেভিগেট করুন:
cd renovation-agent
- নির্ভরতা ইনস্টল করুন:
pip install -r requirements.txt
- এজেন্ট চালানোর জন্য আপনি আপনার ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালাতে পারেন:
adk run .
- আপনি এটিকে একটি ADK বিধানযুক্ত ওয়েব UI-তে চালানোর জন্য নিম্নলিখিতগুলি চালাতে পারেন:
adk web
- নিম্নলিখিত প্রম্পট দিয়ে পরীক্ষা করুন:
user>>
Hello. Check order status for Cement Bags.
13. পরিষ্কার করুন
এই পোস্টে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- Google ক্লাউড কনসোলে, সম্পদ পরিচালনা পৃষ্ঠাতে যান।
- প্রকল্প তালিকায়, আপনি যে প্রকল্পটি মুছতে চান সেটি নির্বাচন করুন এবং তারপরে মুছুন ক্লিক করুন।
- ডায়ালগে, প্রজেক্ট আইডি টাইপ করুন এবং তারপরে প্রোজেক্ট মুছে ফেলতে শাট ডাউন ক্লিক করুন।
14. অভিনন্দন
অভিনন্দন! আপনি ডেটাবেসের জন্য ADK এবং MCP টুলবক্স ব্যবহার করে সফলভাবে একটি মাল্টি-এজেন্ট অ্যাপ্লিকেশন তৈরি করেছেন! আরও তথ্যের জন্য, পণ্যের ডক্স দেখুন: এজেন্ট ডেভেলপমেন্ট কিট এবং ডাটাবেসের জন্য MCP টুলবক্স ।