ADK দিয়ে মাল্টি এজেন্ট সিস্টেম তৈরি করুন, এজেন্ট ইঞ্জিনে স্থাপন করুন এবং A2A প্রোটোকল দিয়ে শুরু করুন

1. এই ল্যাবের উদ্দেশ্য

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

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

  • ADK-এর মূল বিষয়গুলি বুঝুন এবং কীভাবে একটি মাল্টি-এজেন্ট সিস্টেম তৈরি করতে হয় তা শিখুন।
  • GCP-এ এজেন্টদের কীভাবে সহজেই মোতায়েন এবং ব্যবহার করতে হয় তা শিখুন।
  • A2A প্রোটোকলের বুনিয়াদি বুঝুন
  • ওপেন এজেন্ট তৈরি করতে A2A প্রোটোকল এবং ADK একসাথে কীভাবে ব্যবহার করবেন তা শিখুন।

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

  • আপনার যদি ইতিমধ্যে এমন কোনো প্রকল্প না থাকে যা আপনি ব্যবহার করতে পারেন, তাহলে আপনাকে GCP কনসোলে একটি নতুন প্রকল্প তৈরি করতে হবে।
  • এই ল্যাবে, আমরা আমাদের কাজগুলি সম্পাদন করতে GCP ক্লাউড শেল ব্যবহার করব। ক্লাউড শেল খুলুন এবং ক্লাউড শেল ব্যবহার করে প্রকল্প সেট করুন।
  • ক্লাউড শেল এডিটর বোতাম টিপে GCP ক্লাউড শেল এডিটর খুলুন। আপনি যদি "অথরাইজ শেল" পপআপ দেখতে পান, তাহলে ক্লাউড শেল এডিটর অনুমোদন করতে ক্লিক করুন।
  • আপনি নিম্নলিখিত কমান্ড ব্যবহার করে প্রকল্পটি ইতিমধ্যে প্রমাণীকৃত কিনা তা পরীক্ষা করতে পারেন।
gcloud auth list
  • আপনার প্রকল্প নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান
gcloud config list project
  • যদি আপনার প্রজেক্ট সেট করা না থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন
gcloud config set project <YOUR_PROJECT_ID>
  • এই ল্যাব চালানোর জন্য আমাদের কিছু পরিষেবা চালু করতে হবে। ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud services enable aiplatform.googleapis.com

3. ওভারভিউ: এজেন্ট ডেভেলপমেন্ট কিটের সুবিধা

এজেন্ট ডেভেলপমেন্ট কিট এজেন্টিক অ্যাপ্লিকেশন তৈরির ডেভেলপারদের জন্য বিভিন্ন মূল সুবিধা প্রদান করে:

  1. মাল্টি-এজেন্ট সিস্টেম : একটি শ্রেণিবিন্যাসে একাধিক বিশেষ এজেন্ট রচনা করে মডুলার এবং মাপযোগ্য অ্যাপ্লিকেশন তৈরি করুন। জটিল সমন্বয় এবং প্রতিনিধিত্ব সক্ষম করুন।
  2. রিচ টুল ইকোসিস্টেম : বিভিন্ন ক্ষমতার সাথে এজেন্টদের সজ্জিত করুন: পূর্ব-নির্মিত টুল ব্যবহার করুন (সার্চ, কোড এক্সিকিউশন, ইত্যাদি), কাস্টম ফাংশন তৈরি করুন, থার্ড-পার্টি এজেন্ট ফ্রেমওয়ার্ক (LangChain, CrewAI) থেকে টুল একীভূত করুন, অথবা এমনকি অন্যান্য এজেন্টকে টুল হিসেবে ব্যবহার করুন।
  3. নমনীয় অর্কেস্ট্রেশন : অনুমানযোগ্য পাইপলাইনগুলির জন্য ওয়ার্কফ্লো এজেন্ট ( SequentialAgent , ParallelAgent এবং LoopAgent ) ব্যবহার করে ওয়ার্কফ্লোগুলি সংজ্ঞায়িত করুন, বা অভিযোজিত আচরণের জন্য এলএলএম-চালিত গতিশীল রাউটিং ( LlmAgent স্থানান্তর) লিভারেজ করুন।
  4. ইন্টিগ্রেটেড ডেভেলপার অভিজ্ঞতা : একটি শক্তিশালী CLI এবং একটি ইন্টারেক্টিভ ডেভ UI এর মাধ্যমে স্থানীয়ভাবে বিকাশ, পরীক্ষা এবং ডিবাগ করুন। ধাপে ধাপে ইভেন্ট, রাষ্ট্র এবং এজেন্ট এক্সিকিউশন পরিদর্শন করুন।
  5. অন্তর্নির্মিত মূল্যায়ন : পূর্বনির্ধারিত পরীক্ষার ক্ষেত্রে চূড়ান্ত প্রতিক্রিয়ার গুণমান এবং ধাপে ধাপে নির্বাহের গতিপথ উভয়ই মূল্যায়ন করে পদ্ধতিগতভাবে এজেন্টের কর্মক্ষমতা মূল্যায়ন করুন।
  6. স্থাপনার জন্য প্রস্তুত : আপনার এজেন্টদের যে কোনো জায়গায় কনটেইনারাইজ করুন এবং স্থাপন করুন - স্থানীয়ভাবে চালান, ভার্টেক্স এআই এজেন্ট ইঞ্জিনের সাথে স্কেল করুন, বা ক্লাউড রান বা ডকার ব্যবহার করে কাস্টম অবকাঠামোতে একীভূত করুন।

অন্যান্য জেনারেল AI SDK বা এজেন্ট ফ্রেমওয়ার্কগুলি আপনাকে মডেলগুলি জিজ্ঞাসা করতে এবং এমনকি সরঞ্জামগুলির সাহায্যে তাদের ক্ষমতায়নের অনুমতি দেয়, একাধিক মডেলের মধ্যে গতিশীল সমন্বয়ের জন্য আপনার ক্ষেত্রে উল্লেখযোগ্য পরিমাণে কাজ করা প্রয়োজন৷

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

e554e9e43aafc757.png

4. A2A এর ভূমিকা

Agent2Agent (A2A) প্রোটোকল হল একটি ওপেন স্ট্যান্ডার্ড যা বিভিন্ন ফ্রেমওয়ার্ক, ভেন্ডর এবং ডোমেন থেকে স্বায়ত্তশাসিত AI এজেন্টদের মধ্যে নির্বিঘ্ন এবং নিরাপদ যোগাযোগ এবং সহযোগিতা সক্ষম করার জন্য ডিজাইন করা হয়েছে।

  1. ইউনিভার্সাল ইন্টারঅপারেবিলিটি: A2A এজেন্টদের তাদের অন্তর্নিহিত প্রযুক্তি নির্বিশেষে একসাথে কাজ করার অনুমতি দেয়, একটি সত্যিকারের মাল্টি-এজেন্ট ইকোসিস্টেম গড়ে তোলে। এর অর্থ হল বিভিন্ন প্ল্যাটফর্মে বিভিন্ন কোম্পানি দ্বারা নির্মিত এজেন্টরা যোগাযোগ এবং সমন্বয় করতে পারে।
  2. সক্ষমতা আবিষ্কার: এজেন্টরা "এজেন্ট কার্ড" (JSON নথি) ব্যবহার করে তাদের ক্ষমতার বিজ্ঞাপন দিতে পারে, যা তাদের পরিচয়, সমর্থিত A2A বৈশিষ্ট্য, দক্ষতা এবং প্রমাণীকরণের প্রয়োজনীয়তা বর্ণনা করে। এটি অন্যান্য এজেন্টদের একটি নির্দিষ্ট কাজের জন্য সবচেয়ে উপযুক্ত এজেন্ট আবিষ্কার করতে এবং নির্বাচন করতে দেয়।
  3. ডিফল্টভাবে সুরক্ষিত: নিরাপত্তা একটি মূল নীতি। A2A নিরাপদ মিথস্ক্রিয়া নিশ্চিত করতে এবং সংবেদনশীল ডেটা সুরক্ষিত করতে HTTPS/TLS, JWT, OIDC, এবং API কীগুলির মতো মানগুলি ব্যবহার করে এন্টারপ্রাইজ-গ্রেড প্রমাণীকরণ এবং অনুমোদনের প্রক্রিয়াগুলিকে অন্তর্ভুক্ত করে।
  4. মোডালিটি অ্যাগনস্টিক: প্রোটোকল বিভিন্ন যোগাযোগের পদ্ধতি সমর্থন করে, যার মধ্যে পাঠ্য, অডিও এবং ভিডিও স্ট্রিমিং, সেইসাথে ইন্টারেক্টিভ ফর্ম এবং এমবেডেড আইফ্রেমগুলি সহ। এই নমনীয়তা এজেন্টদের কাজ এবং ব্যবহারকারীর জন্য সবচেয়ে উপযুক্ত বিন্যাসে তথ্য বিনিময় করতে দেয়।
  5. স্ট্রাকচার্ড টাস্ক ম্যানেজমেন্ট: A2A টাস্ক ডেলিগেশন, মনিটরিং এবং সমাপ্তির জন্য স্পষ্ট প্রোটোকল সংজ্ঞায়িত করে। এটি অনন্য টাস্ক আইডি ব্যবহার করে বিভিন্ন এজেন্ট জুড়ে সম্পর্কিত কাজগুলিকে গোষ্ঠীভুক্ত করা এবং তাদের পরিচালনা সমর্থন করে। কাজগুলি সংজ্ঞায়িত জীবনচক্রের মাধ্যমে স্থানান্তর করতে পারে (যেমন, জমা দেওয়া, কাজ করা, সম্পন্ন করা)।
  6. অস্বচ্ছ কার্য সম্পাদন: একটি উল্লেখযোগ্য বৈশিষ্ট্য হল যে এজেন্টদের তাদের অভ্যন্তরীণ যুক্তি প্রক্রিয়া, স্মৃতি, বা নির্দিষ্ট সরঞ্জামগুলি অন্য এজেন্টদের কাছে প্রকাশ করার প্রয়োজন নেই। তারা শুধুমাত্র তাদের কলযোগ্য পরিষেবাগুলি প্রকাশ করে, মডুলারিটি এবং গোপনীয়তা প্রচার করে।
  7. বিদ্যমান স্ট্যান্ডার্ডের উপর নির্মিত: A2A প্রতিষ্ঠিত ওয়েব প্রযুক্তি যেমন HTTP, রিয়েল-টাইম স্ট্রিমিংয়ের জন্য সার্ভার-প্রেরিত ইভেন্টস (SSE), এবং কাঠামোগত ডেটা বিনিময়ের জন্য JSON-RPC, বিদ্যমান আইটি পরিকাঠামোর সাথে একীভূত করা সহজ করে তোলে।
  8. অ্যাসিঙ্ক্রোনাস কমিউনিকেশন: প্রোটোকলটি প্রাথমিক বিবেচনা হিসাবে অ্যাসিঙ্ক্রোনাস কমিউনিকেশনের সাথে ডিজাইন করা হয়েছে, নমনীয় কাজের অগ্রগতি সহজতর করে এবং আপডেটের জন্য পুশ নোটিফিকেশন সক্ষম করে এমনকি যখন একটি সংযোগ ক্রমাগত রক্ষণাবেক্ষণ করা হয় না।

5. এজেন্ট আর্কিটেকচার

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

সিস্টেমটি ইমেজ_স্কোরিং নামক একটি প্রধান এজেন্ট দিয়ে গঠন করা হয়েছে যা পুরো প্রক্রিয়াটিকে অর্কেস্ট্রেট করে। এই প্রধান এজেন্টটির একটি সাব-এজেন্ট রয়েছে যার নাম image_generation_scoring_agent যার আরও নির্দিষ্ট কাজের জন্য নিজস্ব সাব-এজেন্ট রয়েছে। এটি একটি শ্রেণিবদ্ধ সম্পর্ক তৈরি করে যেখানে প্রধান এজেন্ট তার সাব-এজেন্টদের কাছে কাজগুলি অর্পণ করে। 6e21de5b4f92669c.png চিত্র 2: সামগ্রিক এজেন্ট প্রবাহ।

সমস্ত এজেন্টদের তালিকা

  1. image_scoring (প্রধান এজেন্ট):
  2. উদ্দেশ্য: এটি হল মূল এজেন্ট যা সামগ্রিক কর্মপ্রবাহ পরিচালনা করে। এটি বারবার ইমেজ_জেনারেশন_স্কোরিং_এজেন্ট এবং চেকার_এজেন্টকে একটি লুপে চালায় যতক্ষণ না একটি সমাপ্তির শর্ত পূরণ হয়।
  3. সাব-এজেন্ট:
  • ইমেজ_জেনারেশন_স্কোরিং_এজেন্ট
  • চেকার_এজেন্ট_ইনস্ট্যান্স
  1. image_generation_scoring_agent (ছবির_স্কোরিং এর সাব-এজেন্ট):
  2. উদ্দেশ্য: এই এজেন্ট ইমেজ তৈরি এবং স্কোর করার মূল যুক্তির জন্য দায়ী। এটি অর্জন করার জন্য এটি তিনটি সাব-এজেন্টের একটি ক্রম নির্বাহ করে।
  3. সাব-এজেন্ট:
  • image_generation_prompt_agent
  • image_generation_agent
  • স্কোরিং_ছবি_প্রম্পট
  1. চেকার_এজেন্ট_ইনস্ট্যান্স (ছবি_স্কোরিংয়ের সাব-এজেন্ট):
  2. উদ্দেশ্য: এই এজেন্ট ইমেজ স্কোরিং প্রক্রিয়া চালিয়ে যাওয়া বা বন্ধ করা উচিত কিনা তা পরীক্ষা করে। এটি সমাপ্তির শর্ত মূল্যায়ন করতে check_tool_condition টুল ব্যবহার করে।
  3. image_generation_prompt_agent (ছবি_জেনারেশন_স্কোরিং_এজেন্টের সাব-এজেন্ট):
  4. উদ্দেশ্য: এই এজেন্ট ইমেজ তৈরির জন্য প্রম্পট তৈরিতে বিশেষজ্ঞ। এটি একটি ইনপুট পাঠ্য নেয় এবং ইমেজ জেনারেশন মডেলের জন্য উপযুক্ত একটি বিস্তারিত প্রম্পট তৈরি করে।
  5. i mage_generation_agent (ছবি_জেনারেশন_স্কোরিং_এজেন্টের সাব-এজেন্ট):
  6. উদ্দেশ্য: এই এজেন্টটি Imagen 3 ব্যবহার করে ছবি তৈরিতে বিশেষজ্ঞ। এটি image_generation_prompt_agent থেকে প্রম্পট নেয় এবং একটি ছবি তৈরি করে।
  7. স্কোরিং_ইমেজ_প্রম্পট (ছবি_জেনারেশন_স্কোরিং_এজেন্টের সাব-এজেন্ট):
  8. উদ্দেশ্য: এই এজেন্ট বিভিন্ন মানদণ্ডের উপর ভিত্তি করে চিত্রগুলি মূল্যায়ন এবং স্কোর করার একজন বিশেষজ্ঞ। এটি উত্পন্ন চিত্র নেয় এবং এটিতে একটি স্কোর বরাদ্দ করে।

এজেন্টদের দ্বারা ব্যবহৃত সরঞ্জাম

  1. check_tool_condition :
  2. বর্ণনা: এই টুলটি চেক করে যে লুপ টার্মিনেশন শর্ত পূরণ হয়েছে কিনা বা পুনরাবৃত্তির সর্বোচ্চ সংখ্যায় পৌঁছেছে কিনা। যদি এই দুটি সত্য হয়, এটি লুপ বন্ধ করে দেয়।
  3. দ্বারা ব্যবহৃত: checker_agent_instance
  4. generate_images:
  5. বর্ণনা: এই টুলটি Imagen 3 মডেল ব্যবহার করে ছবি তৈরি করে। এটি একটি Google ক্লাউড স্টোরেজ বালতিতে জেনারেট করা ছবিগুলিকেও সংরক্ষণ করতে পারে৷
  6. দ্বারা ব্যবহৃত: image_generation_agent
  7. get_policy:
  8. বর্ণনা: এই টুলটি একটি JSON ফাইল থেকে একটি নীতি নিয়ে আসে। নীতিটি image_generation_prompt_agent দ্বারা ইমেজ জেনারেশন প্রম্পট তৈরি করতে এবং স্কোরিং_images_prompt দ্বারা ছবি স্কোর করার জন্য ব্যবহার করা হয়।
  9. দ্বারা ব্যবহৃত: image_generation_prompt_agent , স্কোরিং_ইমেজ_প্রম্পট
  10. get_image:
  11. বর্ণনা: এই টুল জেনারেট করা ইমেজ আর্টিফ্যাক্ট লোড করে যাতে এটি স্কোর করা যায়।
  12. দ্বারা ব্যবহৃত: স্কোরিং_ইমেজ_প্রম্পট
  13. সেট_স্কোর:
  14. বর্ণনা: এই টুলটি সেশন স্টেটে জেনারেট করা ইমেজের মোট স্কোর সেট করে।
  15. দ্বারা ব্যবহৃত: স্কোরিং_ইমেজ_প্রম্পট

6. টাস্ক 1. ADK ইনস্টল করুন এবং আপনার পরিবেশ সেট আপ করুন

এই হ্যান্ডস অন আমরা কাজগুলি সম্পাদন করতে ক্লাউড শেল ব্যবহার করব।

  1. Google ক্লাউড কনসোলে, কনসোলের শীর্ষে এটি অনুসন্ধান করে Vertex AI- তে নেভিগেট করুন।
  2. সমস্ত প্রস্তাবিত API সক্রিয় করুন ক্লিক করুন৷

একটি ক্লাউড শেল এডিটর ট্যাব প্রস্তুত করুন

  1. আপনার Google ক্লাউড কনসোল উইন্ডো নির্বাচন করে, আপনার কীবোর্ডের G কী এবং তারপর S কী টিপে ক্লাউড শেল খুলুন। বিকল্পভাবে, আপনি ক্লাউড শেল বোতামে ক্লিক করতে পারেন 231dc0e6754519c8.png Google ক্লাউড কনসোলের উপরের ডানদিকে কোণায়।
  2. অবিরত ক্লিক করুন.
  3. ক্লাউড শেল অনুমোদন করার জন্য অনুরোধ করা হলে, অনুমোদন ক্লিক করুন।
  4. ক্লাউড শেল প্যানের উপরের ডানদিকে, নতুন উইন্ডোতে খুলুন বোতামে ক্লিক করুন নতুন উইন্ডো বোতামে খুলুন .
  5. ওপেন এডিটর পেন্সিল আইকনে ক্লিক করুন ( এডিটর পেন্সিল আইকন খুলুন ) ফাইল দেখতে ফলকের শীর্ষে।
  6. বাম-হাতের নেভিগেশন মেনুর শীর্ষে, এক্সপ্লোরার আইকনে ক্লিক করুন এক্সপ্লোরার আইকন আপনার ফাইল এক্সপ্লোরার খুলতে.
  7. ফোল্ডার খুলুন বোতামে ক্লিক করুন।
  8. এই ল্যাবের বাকি অংশ জুড়ে, আপনি ক্লাউড শেল এডিটর এবং ক্লাউড শেল টার্মিনালের সাথে আপনার IDE হিসাবে এই উইন্ডোতে কাজ করতে পারেন।

এই ল্যাবের জন্য ADK এবং কোড নমুনা ডাউনলোড এবং ইনস্টল করুন

  1. গিথুব থেকে প্রয়োজনীয় উত্স ক্লোন করতে এবং প্রয়োজনীয় লাইব্রেরি ইনস্টল করতে নিম্নলিখিত কমান্ডগুলি চালান।
#create the project directory
mkdir imagescoring
cd imagescoring
#clone the code in the local directory
git clone https://github.com/haren-bh/multiagenthandson.git

#Create the virtual environment
python3 -m venv pythonenv
source pythonenv/bin/activate

#install google-adk and a2a sdk
python3 -m pip install google-adk==1.8.0
python3 -m pip install a2a-sdk==0.2.16
  1. আমরা অতিরিক্ত প্রয়োজনীয়তা ইনস্টল করতে কবিতা ব্যবহার করব:
cd multiagenthandson #go to the application directory
pip install poetry poetry-plugin-export
poetry install --with deployment
  1. আপনার যদি ক্লাউড স্টোরেজ বালতি না থাকে, তাহলে Google ক্লাউড স্টোরেজ- এ একটি নতুন তৈরি করুন। আপনি gsutil কমান্ড ব্যবহার করে বালতি তৈরি করতে পারেন।
gsutil mb gs://YOUR-UNIQUE-BUCKETNAME
  1. এডিটরে যান-> লুকানো ফাইল টগল করুন। এবং image_scoring ফোল্ডারে নিম্নলিখিত বিষয়বস্তু সহ একটি .env ফাইল তৈরি করুন। আপনার প্রকল্পের নাম এবং ক্লাউড স্টোরেজ বাকেটের মতো প্রয়োজনীয় বিবরণ যোগ করুন।
GOOGLE_GENAI_USE_VERTEXAI=1 #1 if VERTEXAI has to be used. Can be 0 if API_KEY is specified
GOOGLE_CLOUD_PROJECT=YOUR CLOUD PROJECT NAME
GOOGLE_CLOUD_LOCATION=us-central1
GOOGLE_CLOUD_STORAGE_BUCKET=YOUR BUCKET NAME  # Only required for deployment on Agent Engine
GCS_BUCKET_NAME=YOUR BUCKET NAME #Bucket for storing generated images.
SCORE_THRESHOLD=40 # Min threshold for image_score. Max Score is 50 , hence should be less than 50. 
#If the computed score is higher then loop will terminate
#MAX_ITERATIONS=5 #Max iterations for evaluating the image_score before terminating the loop.
IMAGEN_MODEL="imagen-3.0-generate-002" 
GENAI_MODEL="gemini-2.5-flash"
#AGENT_ENGINE_ID=<AGENT_ENGINE_ID> #The Agent Engine ID obtained after deploying to the agent engine.
  1. সোর্স কোডে এজেন্ট গঠন দেখুন, agent.py এ শুরু করুন। এই এজেন্টটিতে মূল এজেন্ট রয়েছে যা অন্যান্য এজেন্টের সাথে সংযোগ করবে।
  2. টার্মিনালে multiagenthandson শীর্ষ ডিরেক্টরিতে ফিরে যান এবং স্থানীয়ভাবে এজেন্ট চালানোর জন্য নিম্নলিখিত কমান্ডটি চালান
# Run the following command to run agents locally
export GCS_BUCKET_NAME=your gcs bucket name
adk web

7bb4bc5f8244c140.png চিত্র 1

ADK-এর ব্রাউজার ভিত্তিক GUI ক্লায়েন্ট খুলতে টার্মিনালে প্রদর্শিত http:// url-এ Ctrl+Click (CMD+Click for MacOS)। এটি চিত্র 2 এর মতো হওয়া উচিত

  1. এর কিছু ইমেজ তৈরি করা যাক. নিম্নলিখিত প্রম্পট বা আপনার নিজস্ব প্রম্পট চেষ্টা করুন.
  2. সূর্যাস্তের সময় একটি শান্তিপূর্ণ পাহাড়ের দৃশ্য
  3. একটি বিড়াল সাইকেল চালাচ্ছে

99e23472f80a81f2.png চিত্র 2

7. টাস্ক 2. এজেন্ট ইঞ্জিনে স্থাপন করুন

এখন আমরা এজেন্টকে এজেন্ট ইঞ্জিনে স্থাপন করি। এজেন্ট ইঞ্জিন হল GCP-এ এজেন্টদের মোতায়েন করার জন্য একটি সম্পূর্ণরূপে পরিচালিত পরিষেবা। এজেন্ট ইঞ্জিন ADK এর সাথে সামঞ্জস্যপূর্ণ তাই ADK এর সাথে তৈরি এজেন্ট এজেন্ট ইঞ্জিনে স্থাপন করা যেতে পারে।

  1. কিছু পরিবেশের ভেরিয়েবল সংজ্ঞায়িত করুন
export GOOGLE_CLOUD_LOCATION='us-central1'
export GOOGLE_CLOUD_PROJECT='your project id'
  1. কবিতা ব্যবহার করে requirements.txt ফাইল তৈরি করুন। Requiments.txt ফাইল তৈরি করতে কবিতা pyproject.toml ব্যবহার করবে। কমান্ডটি চালানোর পরে প্রয়োজনীয়.txt ফাইল তৈরি হয়েছে কিনা তা পরীক্ষা করুন।
# Go to the parent folder containing pyproject.toml file
# install poetry-plugin-export
pip install poetry-plugin-export

#Create requirements.txt file
poetry export -f requirements.txt --output requirements.txt --without-hashes
  1. প্যাকেজ তৈরি করুন। আমাদের অ্যাপটিকে একটি .whl পাইথন প্যাকেজে বান্ডিল করতে হবে। আমরা এটি করতে কবিতা ব্যবহার করব। একবার আপনি কমান্ডটি কার্যকর করার পরে নিশ্চিত করুন যে একটি ডিস্ট ফোল্ডার তৈরি হয়েছে এবং এতে .whl ফাইল রয়েছে।
# Go to the parent folder containing pyproject.toml file
#Create python package, to create whl file
poetry build
  1. এখন আমরা ডিপ্লোয় স্ক্রিপ্ট প্রস্তুত করব। ডিপ্লোয় স্ক্রিপ্ট আমাদের ইমেজ-স্কোরিং এজেন্ট বা এজেন্ট ইঞ্জিন পরিষেবা স্থাপন করবে। নিচের মত image_scoring ফোল্ডারের ভিতরে deploy.py- এর বিষয়বস্তু পরিবর্তন করুন।
# Change the content of the following. Look for #change this comment
import vertexai
from .agent import root_agent
import os
import glob # To easily find the wheel file

PROJECT_ID = "YOUR PROJECT ID" #change this your project
LOCATION = "us-central1" #change this
STAGING_BUCKET = "gs://YOUR BUCKET " #change this to your bucket

from vertexai import agent_engines

vertexai.init(
   project=PROJECT_ID,
   location=LOCATION,
   staging_bucket=STAGING_BUCKET,
)

remote_app = agent_engines.create(
   agent_engine=root_agent,
   requirements=open(os.path.join(os.getcwd(), "requirements.txt")).readlines()+["./dist/image_scoring-0.1.0-py3-none-any.whl"],#change this to your local location
   extra_packages=[
       "./dist/image_scoring-0.1.0-py3-none-any.whl", # change this to your location
   ]
)

print(remote_app.resource_name)
  1. আমরা এখন ডিপ্লোয় স্ক্রিপ্ট চালাতে পারি।
#run deploy script from the parent folder containing deploy.py
python3 -m image_scoring.deploy

আপনি স্থাপন করার পরে আপনি নীচের মত কিছু দেখতে হবে, 13109f2a5c5c5af9.png

চিত্র 3

  1. এখন মোতায়েন এজেন্ট পরীক্ষা করা যাক. দূরবর্তীভাবে স্থাপন করা এজেন্ট ইঞ্জিন পরীক্ষা করার জন্য প্রথমে টার্মিনালে মোতায়েন আউটপুট থেকে এজেন্ট অবস্থানটি অনুলিপি করুন। এটি দেখতে এইরকম কিছু হওয়া উচিত, projects/85469421903/locations/us-central1/reasoningEngines/7369674597261639680
    টেস্টক্লায়েন্ট ফোল্ডারে যান, remote_test.py ফাইলটি খুলুন এবং নিম্নলিখিত লাইনগুলি সম্পাদনা করুন।
PROJECT_ID = "" #change this
LOCATION = "" #change this
STAGING_BUCKET = "" #change this

#replace the id with your own.
reasoning_engine_id="your agent engine id"

#You can replace this with your own prompt
image_prompt="A cat riding a bicycle"

#execute remote_test.py
python3 remote_test.py

8. টাস্ক 3. একটি A2A এজেন্ট তৈরি করুন

এই ধাপে আমরা পূর্ববর্তী ধাপে যে এজেন্ট তৈরি করেছি তার উপর ভিত্তি করে একটি সাধারণ A2A এজেন্ট তৈরি করতে যাচ্ছি। বিদ্যমান ADK এজেন্ট A2A প্রোটোকলের অধীনে প্রকাশিত হতে পারে। এই ধাপে আপনি এই মূল জিনিসগুলি শিখবেন।

  • A2A প্রোটোকলের বুনিয়াদি জানুন।
  • ADK এবং A2A প্রোটোকল একে অপরের সাথে কিভাবে কাজ করে তা জানুন।
  • A2A প্রোটোকলের সাথে কীভাবে ইন্টারঅ্যাক্ট করবেন তা শিখুন।

এই হাতে আমরা image_scoring_adk_a2a_server ফোল্ডারে কোডটি ব্যবহার করব। আপনি কাজ শুরু করার আগে এই ফোল্ডারে আপনার ডিরেক্টরি পরিবর্তন করুন.

A2A এজেন্ট কার্ড তৈরি করুন

A2A প্রোটোকলের জন্য একটি এজেন্ট কার্ডের প্রয়োজন হয় যাতে এজেন্ট সম্পর্কে সমস্ত তথ্য যেমন এজেন্টের ক্ষমতা, এজেন্ট ব্যবহার নির্দেশিকা ইত্যাদি থাকে। একবার A2A এজেন্ট স্থাপন করা হলে এজেন্ট কার্ডটি " .well-known/agent-card.json " লিঙ্ক ব্যবহার করে দেখা যায়। গ্রাহকরা এজেন্টদের কাছে অনুরোধ পাঠাতে এই তথ্য উল্লেখ করতে পারেন।

remote_a2a/image_scoring ফোল্ডারে নিম্নলিখিত বিষয়বস্তু সহ agents.json আছে তা নিশ্চিত করুন।

{
 "name": "image_scoring",
 "description": "Agent that generates images based on user prompts and scores their adherence to the prompt.",
 "url": "http://localhost:8001/a2a/image_scoring",
 "version": "1.0.0",
 "defaultInputModes": ["text/plain"],
 "defaultOutputModes": ["image/png", "text/plain"],
 "capabilities": {
   "streaming": true,
   "functions": true
 },
 "skills": [
   {
     "id": "generate_and_score_image",
     "name": "Generate and Score Image",
     "description": "Generates an image from a given text prompt and then evaluates how well the generated image adheres to the original prompt, providing a score.",
     "tags": ["image generation", "image scoring", "evaluation", "AI art"],
     "examples": [
       "Generate an image of a futuristic city at sunset",
       "Create an image of a cat playing a piano",
       "Show me an image of a serene forest with a hidden waterfall"
     ]
   }
 ]
}

A2A এজেন্ট তৈরি করুন

রুট ফোল্ডার image_scoring_adk_a2a_server এর মধ্যে, নিশ্চিত করুন যে একটি a2a_agent.py ফাইল আছে, যা a2a এজেন্টের প্রবেশ বিন্দু। এতে নিম্নলিখিত বিষয়বস্তু থাকা উচিত,

from google.adk.agents.remote_a2a_agent import RemoteA2aAgent

root_agent = RemoteA2aAgent(
   name="image_scoring",
   description="Agent to give interesting facts.",
   agent_card="http://localhost:8001/a2a/image_scoring/.well-known/agent.json",
  
   # Optional configurations
   timeout=300.0,          # HTTP timeout (seconds)
   httpx_client=None,      # Custom HTTP client
)

A2A এজেন্ট চালান

এখন আমরা এজেন্ট চালানোর জন্য প্রস্তুত! এজেন্ট চালানোর জন্য উপরের ফোল্ডার image_scoring_adk_a2a_server থেকে নিম্নলিখিত কমান্ডটি চালান

#set some environmental variables
export GOOGLE_CLOUD_PROJECT=datapipeline-372305
export GOOGLE_CLOUD_LOCATION=us-central1
export GCS_BUCKET_NAME=haren-genai-bucket

#following command runs the ADK agent as a2a agent
adk api_server --a2a --port 8001 remote_a2a

A2A এজেন্ট পরীক্ষা করুন

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

#Execute the following 
curl http://localhost:8001/a2a/image_scoring/.well-known/agent.json

উপরোক্তটি কার্যকর করার সময় আমাদের A2A এজেন্টের জন্য এজেন্ট কার্ড দেখাতে হবে, যা মূলত agent.json- এর বিষয়বস্তু যা আমরা পূর্ববর্তী ধাপে তৈরি করেছি।

এখন এজেন্টের কাছে একটি অনুরোধ পাঠাই। আমরা এজেন্টকে অনুরোধ পাঠাতে কার্ল ব্যবহার করতে পারি,

curl -X POST   http://localhost:8001/a2a/image_scoring   -H 'Content-Type: application/json'   -d '{
    "id": "uuid-123",
    "params": {
      "message": {
        "messageId": "msg-456",
        "parts": [{"text": "Create an image of a cat"}],
        "role": "user"
      }
    }
  }'

উপরের অনুরোধে, আপনি " বিড়ালের একটি চিত্র তৈরি করুন " লাইনটি পরিবর্তন করে প্রম্পটটি পরিবর্তন করতে পারেন। আপনি কমান্ডটি চালানোর পরে, আপনি নির্দিষ্ট গুগল ক্লাউড স্টোরেজে আউটপুট চিত্রটি পরীক্ষা করতে পারেন।

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

এখন এর পরিষ্কার করা যাক আমরা কি তৈরি করেছি।

  1. আমরা এইমাত্র তৈরি করা এজেন্ট ইঞ্জিন সার্ভারটি মুছুন। Google ক্লাউড কনসোলের সার্চ বারে Vertex AI টাইপ করে Vertex AI-তে যান। বাম দিকের এজেন্ট ইঞ্জিনে ক্লিক করুন। আপনি মুছে ফেলতে ক্লিক করে এজেন্ট মুছে ফেলতে পারেন। c9f95963c4db0d6c.png

চিত্র 4

  1. ক্লাউড শেলের ফাইলগুলি মুছুন
#Execute the following to delete the files
rm -R imagescoring
  1. বালতি মুছুন। আপনি GCP কনসোল->ক্লাউড স্টোরেজ-এ যেতে পারেন, আপনার বালতি নির্বাচন এবং মুছে ফেলতে পারেন। afb43ad0dda70858.png