পুনরুদ্ধার-বর্ধিত প্রজন্ম সহ বিল্ডিং এজেন্ট

1. ভূমিকা

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

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

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

তুমি কি করবে

  • ব্যক্তিগত নথির মাধ্যমে শব্দার্থিক অনুসন্ধানের জন্য একটি ভার্টেক্স এআই অনুসন্ধান ডেটা স্টোর সেট আপ করুন।
  • এজেন্টের জন্য একটি টুল হিসেবে একটি কাস্টম পাইথন ফাংশন তৈরি করুন।
  • মাল্টি-টুল এজেন্ট তৈরি করতে এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করুন।
  • জটিল প্রশ্নের উত্তর দেওয়ার জন্য অসংগঠিত এবং কাঠামোগত ডেটা উৎস থেকে প্রাপ্ত তথ্য সংগ্রহ একত্রিত করুন।
  • যুক্তির ক্ষমতা প্রদর্শনকারী একজন এজেন্টের সাথে পরীক্ষা করুন এবং যোগাযোগ করুন।

তুমি কি শিখবে

এই ল্যাবে আপনি শিখবেন:

  • পুনরুদ্ধার-অগমেন্টেড জেনারেশন (RAG) এবং এজেন্টিক RAG এর মূল ধারণাগুলি।
  • ভার্টেক্স এআই সার্চ ব্যবহার করে ডকুমেন্টের উপর সিমান্টিক সার্চ কিভাবে বাস্তবায়ন করবেন।
  • কাস্টম টুল তৈরি করে কীভাবে একজন এজেন্টের কাছে স্ট্রাকচার্ড ডেটা প্রকাশ করবেন।
  • এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে কীভাবে একটি মাল্টি-টুল এজেন্ট তৈরি এবং পরিচালনা করবেন।
  • এজেন্টরা কীভাবে যুক্তি এবং পরিকল্পনা ব্যবহার করে একাধিক তথ্য উৎস ব্যবহার করে জটিল প্রশ্নের উত্তর দেয়।

২. পুনরুদ্ধার-বর্ধিত প্রজন্ম বোঝা

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

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

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

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

RAG এর ৩টি ধাপ

স্ট্যান্ডার্ড রিট্রিভাল-অগমেন্টেড জেনারেশন প্রক্রিয়াটি তিনটি সহজ ধাপে বিভক্ত করা যেতে পারে:

  1. পুনরুদ্ধার : যখন কোনও ব্যবহারকারী কোনও প্রশ্ন জমা দেন, তখন সিস্টেমটি প্রথমে কোনও বাহ্যিক জ্ঞানের ভিত্তি (যেমন একটি ডকুমেন্ট রিপোজিটরি, ডাটাবেস, বা ওয়েবসাইট) অনুসন্ধান করে প্রশ্নের সাথে প্রাসঙ্গিক তথ্য খুঁজে বের করে।
  2. বর্ধিতকরণ : পুনরুদ্ধারকৃত তথ্য তারপর মূল ব্যবহারকারীর প্রশ্নের সাথে একটি প্রসারিত প্রম্পটে একত্রিত করা হয়। এই কৌশলটিকে কখনও কখনও "প্রম্পট স্টাফিং" বলা হয়, কারণ এটি প্রম্পটটিকে বাস্তব প্রেক্ষাপট দিয়ে সমৃদ্ধ করে।
  3. জেনারেট করুন : এই বর্ধিত প্রম্পটটি LLM-এ সরবরাহ করা হয়, যা তারপর একটি প্রতিক্রিয়া তৈরি করে। যেহেতু মডেলটি প্রাসঙ্গিক, বাস্তব তথ্য সরবরাহ করা হয়েছে, এর আউটপুট "গ্রাউন্ডেড" এবং ভুল বা পুরানো হওয়ার সম্ভাবনা অনেক কম।

আরএজি-র সুবিধা

RAG কাঠামোর প্রবর্তন ব্যবহারিক এবং বিশ্বাসযোগ্য AI অ্যাপ্লিকেশন তৈরির ক্ষেত্রে রূপান্তরকারী ভূমিকা পালন করেছে। এর মূল সুবিধাগুলির মধ্যে রয়েছে:

  • বর্ধিত নির্ভুলতা এবং হ্যালুসিনেশন হ্রাস : যাচাইযোগ্য, বাহ্যিক তথ্যের উপর ভিত্তি করে প্রতিক্রিয়াগুলি ভিত্তি করে, RAG নাটকীয়ভাবে LLM-এর তথ্য জাল করার ঝুঁকি হ্রাস করে।
  • বর্তমান তথ্যে প্রবেশাধিকার : RAG সিস্টেমগুলিকে ক্রমাগত আপডেট হওয়া জ্ঞান ভিত্তির সাথে সংযুক্ত করা যেতে পারে, যা তাদের সর্বশেষ তথ্যের উপর ভিত্তি করে প্রতিক্রিয়া প্রদান করতে দেয়, যা একজন স্ট্যাটিক্যালি প্রশিক্ষিত LLM-এর পক্ষে অসম্ভব।
  • ব্যবহারকারীর আস্থা এবং স্বচ্ছতা বৃদ্ধি : যেহেতু LLM-এর প্রতিক্রিয়া পুনরুদ্ধারকৃত নথির উপর ভিত্তি করে তৈরি, তাই সিস্টেমটি তার উৎসগুলির উদ্ধৃতি এবং লিঙ্ক সরবরাহ করতে পারে। এটি ব্যবহারকারীদের নিজেরাই তথ্য যাচাই করতে দেয়, অ্যাপ্লিকেশনটির প্রতি আস্থা তৈরি করে।
  • খরচ-কার্যকারিতা : নতুন ডেটা দিয়ে LLM-কে ক্রমাগত সূক্ষ্ম-টিউনিং বা পুনঃপ্রশিক্ষণ দেওয়া গণনাগত এবং আর্থিকভাবে ব্যয়বহুল। RAG-এর মাধ্যমে, মডেলের জ্ঞান আপডেট করা বহিরাগত ডেটা উৎস আপডেট করার মতোই সহজ, যা অনেক বেশি দক্ষ।
  • ডোমেন স্পেশালাইজেশন এবং গোপনীয়তা : RAG মানুষ এবং সংস্থাগুলিকে তাদের ব্যক্তিগত, মালিকানাধীন ডেটা LLM-এর কাছে প্রশ্নের সময় উপলব্ধ করার অনুমতি দেয়, মডেলের প্রশিক্ষণ সেটে সেই সংবেদনশীল ডেটা অন্তর্ভুক্ত করার প্রয়োজন ছাড়াই। এটি ডেটা গোপনীয়তা এবং সুরক্ষা বজায় রেখে শক্তিশালী, ডোমেন-নির্দিষ্ট অ্যাপ্লিকেশনগুলিকে সক্ষম করে।

পুনরুদ্ধার

"পুনরুদ্ধার" ধাপটি যেকোনো RAG সিস্টেমের হৃদয়। প্রাপ্ত তথ্যের গুণমান এবং প্রাসঙ্গিকতা সরাসরি চূড়ান্তভাবে তৈরি উত্তরের গুণমান এবং প্রাসঙ্গিকতা নির্ধারণ করে। একটি কার্যকর RAG অ্যাপ্লিকেশনকে প্রায়শই বিভিন্ন ধরণের ডেটা উৎস থেকে বিভিন্ন কৌশল ব্যবহার করে তথ্য পুনরুদ্ধার করতে হয়। প্রাথমিক পুনরুদ্ধার পদ্ধতিগুলি তিনটি বিভাগে বিভক্ত: কীওয়ার্ড-ভিত্তিক, শব্দার্থিক এবং কাঠামোগত।

অসংগঠিত তথ্য থেকে পুনরুদ্ধার

ঐতিহাসিকভাবে, অসংগঠিত ডেটা পুনরুদ্ধার হল ঐতিহ্যবাহী অনুসন্ধানের আরেকটি নাম। এটি একাধিক রূপান্তরের মধ্য দিয়ে গেছে এবং আপনি উভয় প্রধান পদ্ধতি থেকে উপকৃত হতে পারেন।

গুগল ক্লাউডে অত্যাধুনিক কর্মক্ষমতা এবং উচ্চ মাত্রার নিয়ন্ত্রণের মাধ্যমে আপনি যে স্কেলে শব্দার্থিক অনুসন্ধান চালাতে পারেন তা হল সবচেয়ে কার্যকর কৌশল।

  • কীওয়ার্ড-ভিত্তিক (লেক্সিকাল) অনুসন্ধান : এটি অনুসন্ধানের ঐতিহ্যবাহী পদ্ধতি, যা ১৯৭০-এর দশকের প্রথম দিকের তথ্য পুনরুদ্ধার ব্যবস্থা থেকে শুরু হয়। লেক্সিকাল অনুসন্ধান ব্যবহারকারীর প্রশ্নের আক্ষরিক শব্দ (অথবা "টোকেন") কে জ্ঞান ভাণ্ডারের মধ্যে থাকা নথিতে হুবহু একই শব্দের সাথে মিলিয়ে কাজ করে। এটি এমন প্রশ্নের জন্য অত্যন্ত কার্যকর যেখানে পণ্য কোড, আইনি ধারা বা অনন্য নামের মতো নির্দিষ্ট পদের নির্ভুলতা অত্যন্ত গুরুত্বপূর্ণ।
  • শব্দার্থিক অনুসন্ধান : শব্দার্থিক অনুসন্ধান, অথবা "অর্থ সহ অনুসন্ধান", একটি আরও আধুনিক পদ্ধতি যার লক্ষ্য কেবল আক্ষরিক কীওয়ার্ড নয়, ব্যবহারকারীর উদ্দেশ্য এবং তাদের প্রশ্নের প্রাসঙ্গিক অর্থ বোঝা। আধুনিক শব্দার্থিক অনুসন্ধান এমবেডিং দ্বারা চালিত হয় - একটি মেশিন লার্নিং কৌশল যা জটিল, উচ্চ-মাত্রিক ডেটা সংখ্যাসূচক ভেক্টরগুলির একটি নিম্ন-মাত্রিক ভেক্টর স্পেসে ম্যাপ করে। এই ভেক্টরগুলি এমনভাবে ডিজাইন করা হয়েছে যাতে একই অর্থ সহ টেক্সটগুলি ভেক্টর স্পেসে একে অপরের কাছাকাছি অবস্থিত হয়। "পরিবারের জন্য সেরা কুকুরের জাত কী?" অনুসন্ধানটি একটি ভেক্টরে রূপান্তরিত হয় এবং সিস্টেমটি তখন সেই স্থানে তার "নিকটতম প্রতিবেশী" ডকুমেন্ট ভেক্টরগুলির সন্ধান করে। এটি এটিকে "গোল্ডেন রিট্রিভার" বা "বন্ধুত্বপূর্ণ কুকুর" সম্পর্কে কথা বলে এমন নথি খুঁজে পেতে দেয়, এমনকি যদি সেগুলিতে "কুকুর" শব্দটি না থাকে। এই উচ্চ-মাত্রিক অনুসন্ধানটি আনুমানিক নিকটতম প্রতিবেশী (ANN) অ্যালগরিদম দ্বারা দক্ষ করা হয়। প্রতিটি একক ডকুমেন্ট ভেক্টরের সাথে কোয়েরি ভেক্টরের তুলনা করার পরিবর্তে (যা বৃহৎ ডেটাসেটের জন্য খুব ধীর হবে), ANN অ্যালগরিদমগুলি সম্ভবত সবচেয়ে কাছের ভেক্টরগুলিকে দ্রুত খুঁজে পেতে চতুর সূচীকরণ কাঠামো ব্যবহার করে।

স্ট্রাকচার্ড ডেটা থেকে পুনরুদ্ধার

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

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

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

৩. আরএজি পাইপলাইন থেকে এজেন্টিক আরএজি পর্যন্ত

RAG-এর ধারণা যেমন বিকশিত হয়েছে, তেমনি এটি বাস্তবায়নের জন্য স্থাপত্যও বিকশিত হয়েছে। একটি সরল, রৈখিক পাইপলাইন হিসেবে যা শুরু হয়েছিল তা এখন AI এজেন্টদের দ্বারা পরিচালিত একটি গতিশীল, বুদ্ধিমান সিস্টেমে পরিণত হয়েছে।

  • সরল (অথবা সরল) RAG: এটি হল সেই মৌলিক স্থাপত্য যা আমরা এখন পর্যন্ত আলোচনা করেছি: পুনরুদ্ধার, বৃদ্ধি এবং উৎপন্ন করার একটি রৈখিক, তিন-পদক্ষেপ প্রক্রিয়া। এটি প্রতিক্রিয়াশীল; এটি প্রতিটি প্রশ্নের জন্য একটি নির্দিষ্ট পথ অনুসরণ করে এবং সহজবোধ্য প্রশ্নোত্তর কাজের জন্য অত্যন্ত কার্যকর।
  • উন্নত RAG: এটি এমন একটি বিবর্তনের প্রতিনিধিত্ব করে যেখানে পুনরুদ্ধারকৃত প্রেক্ষাপটের মান উন্নত করার জন্য পাইপলাইনে অতিরিক্ত পদক্ষেপ যুক্ত করা হয়। এই বর্ধিতকরণগুলি পুনরুদ্ধারের ধাপের আগে বা পরে ঘটতে পারে।
    • প্রাক-পুনরুদ্ধার: কোয়েরি পুনর্লিখন বা সম্প্রসারণের মতো কৌশল ব্যবহার করা যেতে পারে। সিস্টেমটি প্রাথমিক কোয়েরি বিশ্লেষণ করতে পারে এবং পুনরুদ্ধার সিস্টেমের জন্য আরও কার্যকর হওয়ার জন্য এটিকে পুনরায় বাক্যাংশ করতে পারে।
    • পুনরুদ্ধার-পরবর্তী: প্রাথমিক নথিপত্র সংগ্রহের পর, প্রাসঙ্গিকতার জন্য নথিপত্রগুলিকে স্কোর করার জন্য এবং সেরাগুলিকে শীর্ষে ঠেলে দেওয়ার জন্য একটি পুনঃ-র‍্যাঙ্কিং মডেল প্রয়োগ করা যেতে পারে। হাইব্রিড অনুসন্ধানে এটি বিশেষভাবে গুরুত্বপূর্ণ। পুনরুদ্ধার-পরবর্তী আরেকটি পদক্ষেপ হল পুনরুদ্ধারকৃত প্রসঙ্গ ফিল্টার বা সংকুচিত করা যাতে কেবলমাত্র সবচেয়ে গুরুত্বপূর্ণ তথ্য LLM-এ পাঠানো হয়।
  • এজেন্টিক আরএজি: এটি আরএজি আর্কিটেকচারের অত্যাধুনিক দিক, যা একটি স্থির পাইপলাইন থেকে একটি স্বায়ত্তশাসিত, বুদ্ধিমান প্রক্রিয়ায় একটি দৃষ্টান্ত স্থানান্তরের প্রতিনিধিত্ব করে। একটি এজেন্টিক আরএজি সিস্টেমে, সমগ্র কর্মপ্রবাহ এক বা একাধিক এআই এজেন্ট দ্বারা পরিচালিত হয় যারা যুক্তি, পরিকল্পনা এবং গতিশীলভাবে তাদের কর্মগুলি বেছে নিতে পারে।

এজেন্টিক আরএজি বুঝতে হলে, প্রথমে বুঝতে হবে একজন এআই এজেন্ট কী। একজন এজেন্ট কেবল একজন এলএলএম-এর চেয়েও বেশি কিছু। এটি এমন একটি সিস্টেম যার বেশ কয়েকটি মূল উপাদান রয়েছে:

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

এজেন্টিক আরএজি একটি যুগান্তকারী পরিবর্তন আনে কারণ এটি স্বায়ত্তশাসন এবং বুদ্ধিমত্তার একটি স্তর প্রবর্তন করে যা স্ট্যাটিক পাইপলাইনে নেই।

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

"ক্রিস্টোফার নোলান পরিচালিত সেরা ৩টি সায়েন্স ফিকশন সিনেমা খুঁজে বের করুন এবং প্রতিটির জন্য একটি সংক্ষিপ্ত কাহিনীর সারাংশ দিন" এই প্রশ্নটি বিবেচনা করুন। একটি সাধারণ RAG পাইপলাইন ব্যর্থ হবে।

তবে, একজন এজেন্ট এটি ভেঙে ফেলতে পারেন:

  1. পরিকল্পনা: প্রথমে, আমাকে সিনেমাগুলো খুঁজে বের করতে হবে। তারপর, প্রতিটি সিনেমার জন্য, আমাকে এর প্লট খুঁজে বের করতে হবে।
  2. পদক্ষেপ ১: নোলানের সায়েন্স ফিকশন চলচ্চিত্রের জন্য একটি মুভি ডাটাবেস অনুসন্ধান করতে স্ট্রাকচার্ড ডেটা টুল ব্যবহার করুন: শীর্ষ ৩টি সিনেমা, রেটিং অবনতির ভিত্তিতে সাজানো।
  3. পর্যবেক্ষণ ১: টুলটি "ইনসেপশন," "ইন্টারস্টেলার," এবং "টেনেট" প্রদান করে।
  4. পদক্ষেপ ২: "ইনসেপশন" এর প্লটটি খুঁজে পেতে আনস্ট্রাকচার্ড ডেটা টুল (সিমান্টিক সার্চ) ব্যবহার করুন।
  5. পর্যবেক্ষণ ২: প্লটটি উদ্ধার করা হয়েছে।
  6. ধাপ ৩: "ইন্টারস্টেলার" এর পুনরাবৃত্তি করুন।
  7. ধাপ ৪: "টেনেট" এর জন্য পুনরাবৃত্তি করুন।
  8. চূড়ান্ত সংশ্লেষণ: ব্যবহারকারীর জন্য একটি একক, সুসংগত উত্তরে সমস্ত পুনরুদ্ধার করা তথ্য একত্রিত করুন।

আরএজি এবং এজেন্টরা

৪. প্রকল্প সেটআপ

গুগল অ্যাকাউন্ট

যদি আপনার ইতিমধ্যেই একটি ব্যক্তিগত Google অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি Google অ্যাকাউন্ট তৈরি করতে হবে।

কর্মক্ষেত্র বা স্কুল অ্যাকাউন্টের পরিবর্তে ব্যক্তিগত অ্যাকাউন্ট ব্যবহার করুন

গুগল ক্লাউড কনসোলে সাইন-ইন করুন

একটি ব্যক্তিগত গুগল অ্যাকাউন্ট ব্যবহার করে গুগল ক্লাউড কনসোলে সাইন-ইন করুন।

বিলিং সক্ষম করুন

ট্রায়াল বিলিং অ্যাকাউন্ট ব্যবহার করুন (ঐচ্ছিক)

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

  1. এই লিঙ্কে ক্লিক করুন এবং একটি ব্যক্তিগত গুগল অ্যাকাউন্ট দিয়ে সাইন ইন করুন। আপনি এরকম কিছু দেখতে পাবেন: ক্রেডিট পৃষ্ঠার জন্য এখানে ক্লিক করুন
  2. আপনার ক্রেডিট অ্যাক্সেস করতে এখানে ক্লিক করুন বোতামটি ক্লিক করুন। এটি আপনাকে আপনার বিলিং প্রোফাইল সেট আপ করার জন্য একটি পৃষ্ঠায় নিয়ে যাবে। বিলিং প্রোফাইল পৃষ্ঠা সেট আপ করুন
  3. আপনি এখন একটি Google Cloud Platform ট্রায়াল বিলিং অ্যাকাউন্টের সাথে সংযুক্ত আছেন কিনা তা নিশ্চিত করুন -এ ক্লিক করুন। বিলিং ওভারভিউয়ের স্ক্রিনশট

একটি ব্যক্তিগত বিলিং অ্যাকাউন্ট সেট আপ করুন

আপনি যদি গুগল ক্লাউড ক্রেডিট ব্যবহার করে বিলিং সেট আপ করেন, তাহলে আপনি এই ধাপটি এড়িয়ে যেতে পারেন।

একটি ব্যক্তিগত বিলিং অ্যাকাউন্ট সেট আপ করতে, ক্লাউড কনসোলে বিলিং সক্ষম করতে এখানে যান

কিছু নোট:

  • এই ল্যাবটি সম্পূর্ণ করতে ক্লাউড রিসোর্সে $1 USD এর কম খরচ হবে।
  • আরও চার্জ এড়াতে আপনি এই ল্যাবের শেষে রিসোর্স মুছে ফেলার ধাপগুলি অনুসরণ করতে পারেন।
  • নতুন ব্যবহারকারীরা $300 USD বিনামূল্যে ট্রায়ালের জন্য যোগ্য।

একটি প্রকল্প তৈরি করুন (ঐচ্ছিক)

যদি আপনার এই ল্যাবের জন্য ব্যবহার করতে চান এমন কোন বর্তমান প্রকল্প না থাকে, তাহলে এখানে একটি নতুন প্রকল্প তৈরি করুন

৫. ক্লাউড শেল এডিটর খুলুন

  1. সরাসরি ক্লাউড শেল এডিটরে যেতে এই লিঙ্কে ক্লিক করুন।
  2. আজই যদি যেকোনো সময় অনুমোদনের অনুরোধ করা হয়, তাহলে চালিয়ে যেতে অনুমোদন করুন- এ ক্লিক করুন। ক্লাউড শেল অনুমোদন করতে ক্লিক করুন
  3. যদি স্ক্রিনের নীচে টার্মিনালটি না দেখা যায়, তাহলে এটি খুলুন:
    • ভিউ ক্লিক করুন
    • টার্মিনাল ক্লিক করুন ক্লাউড শেল এডিটরে নতুন টার্মিনাল খুলুন
  4. টার্মিনালে, এই কমান্ড দিয়ে আপনার প্রকল্পটি সেট করুন:
    gcloud config set project [PROJECT_ID]
    
    • উদাহরণ:
      gcloud config set project lab-project-id-example
      
    • যদি আপনি আপনার প্রজেক্ট আইডি মনে রাখতে না পারেন, তাহলে আপনি আপনার সমস্ত প্রজেক্ট আইডি তালিকাভুক্ত করতে পারেন:
      gcloud projects list
      
      ক্লাউড শেল এডিটর টার্মিনালে প্রোজেক্ট আইডি সেট করুন
  5. আপনার এই বার্তাটি দেখা উচিত:
    Updated property [core/project].
    

৬. API গুলি সক্ষম করুন

এজেন্ট ডেভেলপমেন্ট কিট এবং ভার্টেক্স এআই সার্চ ব্যবহার করার জন্য, আপনার গুগল ক্লাউড প্রোজেক্টে প্রয়োজনীয় API গুলি সক্ষম করতে হবে।

  1. টার্মিনালে, API গুলি সক্রিয় করুন:
    gcloud services enable \
        aiplatform.googleapis.com \
        discoveryengine.googleapis.com
    

API গুলির সাথে পরিচয় করিয়ে দেওয়া হচ্ছে

  • ভার্টেক্স এআই এপিআই ( aiplatform.googleapis.com ) এজেন্টকে যুক্তি এবং প্রজন্মের জন্য জেমিনি মডেলের সাথে যোগাযোগ করতে সক্ষম করে।
  • ডিসকভারি ইঞ্জিন এপিআই ( discoveryengine.googleapis.com ) ভার্টেক্স এআই সার্চকে ক্ষমতা দেয়, যা আপনাকে ডেটা স্টোর তৈরি করতে এবং আপনার অসংগঠিত নথিতে অর্থপূর্ণ অনুসন্ধান করতে দেয়।

৭. পরিবেশ ঠিক করুন

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

একটি ভার্চুয়াল পরিবেশ তৈরি করুন এবং নির্ভরতা ইনস্টল করুন

  1. আপনার এজেন্টের জন্য একটি ডিরেক্টরি তৈরি করুন এবং তাতে নেভিগেট করুন। টার্মিনালে নিম্নলিখিত কোডটি চালান:
    mkdir financial_agent
    cd financial_agent
    
  2. একটি ভার্চুয়াল পরিবেশ তৈরি করুন:
    uv venv --python 3.12
    
  3. ভার্চুয়াল পরিবেশ সক্রিয় করুন:
    source .venv/bin/activate
    
  4. এজেন্ট ডেভেলপমেন্ট কিট (ADK) এবং পান্ডা ইনস্টল করুন।
    uv pip install google-adk pandas
    

স্টক মূল্যের তথ্য তৈরি করুন

যেহেতু ল্যাব এজেন্টের স্ট্রাকচার্ড টুল ব্যবহারের ক্ষমতা প্রদর্শনের জন্য নির্দিষ্ট ঐতিহাসিক স্টক ডেটার প্রয়োজন, তাই আপনি এই ডেটা ধারণকারী একটি CSV ফাইল তৈরি করবেন।

  1. financial_agent ডিরেক্টরিতে, টার্মিনালে নিম্নলিখিত কমান্ডটি চালিয়ে goog.csv ফাইলটি তৈরি করুন:
    cat <<EOF > goog.csv
    Date,Open,High,Low,Close,Adj Close,Volume
    2023-01-03,89.830002,91.550003,89.019997,89.699997,89.699997,20738500
    2023-03-31,101.440002,103.889999,101.040001,103.730003,103.730003,36823200
    2023-06-30,120.870003,122.029999,120.300003,120.970001,120.970001,23824700
    2023-09-29,134.080002,134.550003,131.320007,131.850006,131.850006,21124200
    2025-07-10,185.000000,188.000000,184.500000,186.500000,186.500000,25000000
    EOF
    

পরিবেশ ভেরিয়েবল কনফিগার করুন

  1. financial_agent ডিরেক্টরিতে, আপনার এজেন্টের পরিবেশ ভেরিয়েবল কনফিগার করার জন্য একটি .env ফাইল তৈরি করুন। এটি ADK কে কোন প্রকল্প, অবস্থান এবং মডেল ব্যবহার করতে হবে তা বলে দেয়। টার্মিনালে নিম্নলিখিত কোডটি চালান:
    # Create the .env file using the captured variables
    cat << EOF > .env
    GOOGLE_GENAI_USE_VERTEXAI=TRUE
    GOOGLE_CLOUD_PROJECT="${GOOGLE_CLOUD_PROJECT}"
    GOOGLE_CLOUD_LOCATION="us-central1"
    EOF
    

দ্রষ্টব্য: পরবর্তীতে ল্যাবে, যদি আপনার .env ফাইলটি পরিবর্তন করার প্রয়োজন হয় কিন্তু financial_agent ডিরেক্টরিতে এটি দেখতে না পান, তাহলে "View / Toggle Hidden Files" মেনু আইটেম ব্যবহার করে Cloud Shell Editor-এ লুকানো ফাইলের দৃশ্যমানতা টগল করার চেষ্টা করুন।

লুকানো ফাইল টগল করুন

৮. একটি ভার্টেক্স এআই সার্চ ডেটা স্টোর তৈরি করুন

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

  1. একটি নতুন ব্রাউজার ট্যাবে, ক্লাউড কনসোল (console.cloud.google.com) খুলুন, উপরের সার্চ বারটি ব্যবহার করে AI অ্যাপ্লিকেশনগুলিতে নেভিগেট করুন।
    এআই অ্যাপ্লিকেশন
  2. যদি অনুরোধ করা হয়, তাহলে শর্তাবলী চেকবক্সটি নির্বাচন করুন এবং Continue এ ক্লিক করুন এবং API সক্রিয় করুন
  3. বাম দিকের নেভিগেশন মেনু থেকে, ডেটা স্টোর নির্বাচন করুন।
    ডেটা স্টোর
  4. + ডেটা স্টোর তৈরি করুন এ ক্লিক করুন।
  5. ক্লাউড স্টোরেজ কার্ডটি খুঁজুন এবং নির্বাচন করুন এ ক্লিক করুন।
    ডেটা স্টোর - জিসিএস
  6. ডেটা উৎসের জন্য, Unstructured documents নির্বাচন করুন।
    ডেটা স্টোর - অসংগঠিত নথি
  7. আমদানি উৎসের জন্য (আপনি যে ফোল্ডার বা ফাইলটি আমদানি করতে চান তা নির্বাচন করুন), Google Cloud Storage path লিখুন cloud-samples-data/gen-app-builder/search/alphabet-sec-filings
  8. চালিয়ে যান ক্লিক করুন।
  9. অবস্থানটি গ্লোবাল এ সেট রাখুন।
  10. ডেটা স্টোরের নামের জন্য, লিখুন
    alphabet-sec-filings
    
  11. ডকুমেন্ট প্রসেসিং অপশন বিভাগটি প্রসারিত করুন।
    ডেটা স্টোর - প্রক্রিয়াকরণের বিকল্পগুলি
  12. ডিফল্ট ডকুমেন্ট পার্সার ড্রপডাউন তালিকায়, লেআউট পার্সার নির্বাচন করুন।
    ডেটা স্টোর - লেআউট পার্সার
  13. লেআউট পার্সার সেটিংস বিকল্পগুলিতে, টেবিল অ্যানোটেশন সক্ষম করুন এবং চিত্র অ্যানোটেশন সক্ষম করুন নির্বাচন করুন।
  14. চালিয়ে যান ক্লিক করুন।
  15. মূল্য নির্ধারণ মডেল হিসেবে সাধারণ মূল্য নির্বাচন করুন এবং তৈরি করুন এ ক্লিক করুন।
  16. আপনার ডেটা স্টোর ডকুমেন্টগুলি আমদানি করা শুরু করবে।
    ডেটা স্টোর - বিকল্পগুলি সক্ষম করুন
  17. ডেটা স্টোরের নামের উপর ক্লিক করুন এবং ডেটা স্টোর টেবিল থেকে এর আইডি কপি করুন । পরবর্তী ধাপে আপনার এটির প্রয়োজন হবে।
    ডেটা স্টোর - বৈশিষ্ট্য
  18. ক্লাউড শেল এডিটরে .env ফাইলটি খুলুন এবং ডেটা স্টোর আইডিটি DATA_STORE_ID="YOUR_DATA_STORE_ID" হিসেবে যুক্ত করুন ( YOUR_DATA_STORE_ID পূর্ববর্তী ধাপের আসল আইডি দিয়ে প্রতিস্থাপন করুন। দ্রষ্টব্য: ডেটাস্টোরে ডেটা আমদানি, পার্সিং এবং ইনডেক্সিং করতে কয়েক মিনিট সময় লাগবে। প্রক্রিয়াটি পরীক্ষা করতে, ডেটা স্টোরের নামের উপর ক্লিক করে এর বৈশিষ্ট্যগুলি খুলুন, তারপর অ্যাক্টিভিটি ট্যাবটি খুলুন। "ইমপোর্ট সম্পন্ন" স্ট্যাটাসটি হওয়া পর্যন্ত অপেক্ষা করুন। ডেটা স্টোর - অ্যাক্টিভিটি

৯. স্ট্রাকচার্ড ডেটার জন্য একটি কাস্টম টুল তৈরি করুন

এরপর, আপনি একটি পাইথন ফাংশন তৈরি করবেন যা এজেন্টের জন্য একটি টুল হিসেবে কাজ করবে। এই টুলটি goog.csv ফাইলটি পড়বে এবং একটি নির্দিষ্ট তারিখের জন্য ঐতিহাসিক স্টক মূল্য পুনরুদ্ধার করবে।

  1. আপনার financial_agent ডিরেক্টরিতে, agent.py নামে একটি নতুন ফাইল তৈরি করুন। টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
    cloudshell edit agent.py
    
  2. agent.py তে নিম্নলিখিত পাইথন কোডটি যোগ করুন। এই কোডটি নির্ভরতা আমদানি করে এবং get_stock_price ফাংশনটি সংজ্ঞায়িত করে।
    from datetime import datetime
    import os
    import logging
    
    import google.cloud.logging
    from google.adk.tools import VertexAiSearchTool
    from google.adk.tools.agent_tool import AgentTool
    from google.adk.agents import LlmAgent
    
    import pandas as pd
    
    def get_stock_price(date: str) -> dict:
        """Gets the closing stock price for a given date.
    
        Args:
            date: The date to get the stock price for, in YYYY-MM-DD format.
    
        Returns:
            A dictionary containing the closing price, or an error message if the
            date is not found or the format is incorrect.
        """
        try:
            # Load the CSV file
            df = pd.read_csv('goog.csv')
            # Convert the 'Date' column to datetime objects
            df['Date'] = pd.to_datetime(df['Date'])
            # Convert the input string to a datetime object
            query_date = datetime.strptime(date, '%Y-%m-%d')
            # Find the row for the given date
            row = df[df['Date'] == query_date]
    
            if not row.empty:
                # Get the closing price
                close_price = row['Close'].iloc[0]
                return {"status": "success", "date": date, "closing_price": close_price}
            else:
                return {"status": "error", "message": f"No data found for date: {date}"}
        except FileNotFoundError:
            return {"status": "error", "message": "Stock data file (goog.csv) not found."}
        except Exception as e:
            return {"status": "error", "message": f"An error occurred: {str(e)}"}
    

ফাংশনের বিস্তারিত ডকস্ট্রিং লক্ষ্য করুন। এটি ফাংশনটি কী করে, এর প্যারামিটারগুলি ( Args ) এবং এটি কী ফেরত দেয় ( Returns ) তা ব্যাখ্যা করে। ADK এই ডকস্ট্রিং ব্যবহার করে এজেন্টকে এই টুলটি কীভাবে এবং কখন ব্যবহার করতে হবে তা শেখায়।

১০. RAG এজেন্ট তৈরি করুন এবং চালান

এখন এজেন্টটি একত্রিত করার সময়। আপনি কাঠামোগত ডেটার জন্য আপনার কাস্টম get_stock_price টুলের সাথে আনস্ট্রাকচার্ড ডেটার জন্য Vertex AI সার্চ টুলটি একত্রিত করবেন।

  1. আপনার agent.py ফাইলে নিম্নলিখিত কোডটি যুক্ত করুন। এই কোডটি প্রয়োজনীয় ADK ক্লাসগুলি আমদানি করে, সরঞ্জামগুলির উদাহরণ তৈরি করে এবং এজেন্টকে সংজ্ঞায়িত করে।
    logging.basicConfig(level=logging.INFO)
    cloud_logging_client = google.cloud.logging.Client()
    cloud_logging_client.setup_logging()
    
    # 1. Create the Vertex AI Search tool
    full_datastore_id = f"projects/{os.environ['GOOGLE_CLOUD_PROJECT']}/locations/global/collections/default_collection/dataStores/{os.environ['DATA_STORE_ID']}"
    vertex_ai_search_tool = VertexAiSearchTool(
        data_store_id=full_datastore_id
    )
    
    # 2. Define the Search+Q&A agent
    # Since we cannot combine tools with other tools in a single agent,
    # we create a separate Search+Q&A agent which will be used as a tool by the main root agent.
    
    doc_qa_agent = LlmAgent(
        name="search_and_qna_agent",
        model="gemini-2.5-flash",
        tools=[vertex_ai_search_tool],
        instruction="""You are a helpful assistant that answers questions based on information found in the document store.
        Use the search tool to find relevant information before answering.
        If the answer isn't in the documents, say that you couldn't find the information.
        """,
        description="Answers questions using a specific Vertex AI Search datastore.",
    )
    
    # 3. Define the root agent with 2 tools.
    
    root_agent = LlmAgent(
        name="financial_agent",
        model="gemini-2.5-flash",
        tools=[
            AgentTool(doc_qa_agent),
            get_stock_price,
        ],
        instruction="""You are an Financial Analytics Agent that answers question about Alphabet stock prices (using get_stock_price tool)
        and historical performance based on the data in Vertex AI Search datastore (using doc_qa_agent tool)."""
    )
    
  2. আপনার টার্মিনাল থেকে, financial_agent ডিরেক্টরির ভিতরে, আপনার এজেন্টের সাথে ইন্টারঅ্যাক্ট করার জন্য ADK ওয়েব ইন্টারফেস চালু করুন:
    adk web ~
    
  3. আপনার ব্রাউজারে ADK Dev UI খুলতে টার্মিনাল আউটপুটে (সাধারণত http://127.0.0.1:8000 ) প্রদত্ত লিঙ্কে ক্লিক করুন।

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

এখন আপনি আপনার এজেন্টের যুক্তি করার ক্ষমতা পরীক্ষা করতে পারেন এবং জটিল প্রশ্নের উত্তর দেওয়ার জন্য তার সরঞ্জামগুলি ব্যবহার করতে পারেন।

  1. ADK Dev UI-তে, নিশ্চিত করুন যে আপনার financial_agent ড্রপডাউন মেনু থেকে নির্বাচিত আছে।
  2. এমন একটি প্রশ্ন জিজ্ঞাসা করার চেষ্টা করুন যার জন্য SEC ফাইলিং (অসংগঠিত তথ্য) থেকে তথ্য প্রয়োজন। চ্যাটে নিম্নলিখিত প্রশ্নটি লিখুন:
    What were the total revenues for the quarter ending on March 31, 2023?
    
    এজেন্টকে search_and_qna_agent কল করতে হবে, যা আর্থিক নথিতে উত্তর খুঁজে পেতে VertexAiSearchTool ব্যবহার করে।
  3. এরপর, এমন একটি প্রশ্ন জিজ্ঞাসা করুন যার জন্য আপনার কাস্টম টুল (স্ট্রাকচার্ড ডেটা) ব্যবহার করতে হবে। মনে রাখবেন যে প্রম্পটে থাকা তারিখের ফর্ম্যাটটি ফাংশনের জন্য প্রয়োজনীয় ফর্ম্যাটের সাথে হুবহু মিলতে হবে না; LLM এটি পুনরায় ফর্ম্যাট করার জন্য যথেষ্ট স্মার্ট।
    What was the closing stock price for Alphabet on July 10, 2025?
    
    এজেন্টের উচিত আপনার get_stock_price টুলটি কল করা। ফাংশন কল এবং এর ফলাফল পরীক্ষা করতে আপনি চ্যাটের টুল আইকনে ক্লিক করতে পারেন।
  4. অবশেষে, একটি জটিল প্রশ্ন জিজ্ঞাসা করুন যার জন্য এজেন্টকে উভয় সরঞ্জাম ব্যবহার করতে হবে এবং ফলাফল সংশ্লেষণ করতে হবে।
    According to the 10-Q filing for the period ending March 31, 2023, what were the company's net cash provided by operating activities, and what was the stock's closing price on that date?
    
    এই কোয়েরি এজেন্টকে একটি বহু-পদক্ষেপ পরিকল্পনা সম্পাদন করতে বাধ্য করবে:
    • প্রথমে, এটি SEC ফাইলিংয়ে নগদ প্রবাহের তথ্য খুঁজে বের করার জন্য VertexAiSearchTool ব্যবহার করবে।
    • তারপর, এটি স্টক মূল্যের প্রয়োজনীয়তা সনাক্ত করবে এবং 2023-03-31 তারিখ সহ get_stock_price ফাংশনটি কল করবে।
    • অবশেষে, এটি উভয় তথ্যকে একত্রিত করে একটি একক, ব্যাপক উত্তর তৈরি করবে।
  5. আপনার কাজ শেষ হয়ে গেলে, আপনি ব্রাউজার ট্যাবটি বন্ধ করতে পারেন এবং ADK সার্ভারটি বন্ধ করতে টার্মিনালে CTRL+C টিপুন।

১২. আপনার কাজের জন্য একটি পরিষেবা নির্বাচন করা

ভার্টেক্স এআই সার্চই একমাত্র ভেক্টর সার্চ সার্ভিস নয় যা আপনি ব্যবহার করতে পারেন। আপনি এমন একটি পরিচালিত সার্ভিসও ব্যবহার করতে পারেন যা রিট্রিভাল-অগমেন্টেড জেনারেশনের সম্পূর্ণ প্রবাহকে স্বয়ংক্রিয় করে: ভার্টেক্স এআই আরএজি ইঞ্জিন

ভার্টেক্স এআই আরএজি ইঞ্জিন

এটি ডকুমেন্ট ইনজেশন থেকে শুরু করে পুনরুদ্ধার এবং পুনঃর‍্যাঙ্কিং পর্যন্ত সবকিছু পরিচালনা করে। RAG ইঞ্জিন Pinecone এবং Weaviate সহ একাধিক ভেক্টর স্টোর সমর্থন করে।

আপনি অনেক বিশেষায়িত ভেক্টর ডাটাবেস স্ব-হোস্ট করতে পারেন অথবা ডাটাবেস ইঞ্জিনে ভেক্টর সূচক ক্ষমতা ব্যবহার করতে পারেন, যেমন PostgreSQL পরিষেবাতে pgvector (যেমন AlloyDB বা BigQuery Vector Search )।

ভেক্টর অনুসন্ধান সমর্থন করে এমন আরও কয়েকটি পরিষেবা হল:

গুগল ক্লাউডে একটি নির্দিষ্ট পরিষেবা বেছে নেওয়ার জন্য সাধারণ নির্দেশিকা নিম্নরূপ:

  • যদি আপনার ইতিমধ্যেই কার্যকরী এবং সু-স্কেলড ভেক্টর সার্চ ডু-ইট-ইয়োরসেল্ফ অবকাঠামো থাকে, তাহলে এটি গুগল কুবারনেটস ইঞ্জিনে স্থাপন করুন, যেমন ওয়েভিয়েট বা DIY পোস্টগ্রেএসকিউএল
  • যদি আপনার ডেটা BigQuery, AlloyDB, Firestore বা অন্য কোনও ডাটাবেসে থাকে, তাহলে যদি সেই ডাটাবেসে বৃহত্তর কোয়েরির অংশ হিসেবে স্কেলে সিমেন্টিক সার্চ করা সম্ভব হয় , তাহলে এর ভেক্টর সার্চ ক্ষমতা ব্যবহার করার কথা বিবেচনা করুন। উদাহরণস্বরূপ, যদি আপনার BigQuery টেবিলে পণ্যের বিবরণ এবং/অথবা ছবি থাকে, তাহলে একটি টেক্সট এবং/অথবা ছবি এম্বেডিং কলাম যোগ করলে স্কেলে সাদৃশ্য অনুসন্ধান ব্যবহার করা সম্ভব হবে। ScANN সার্চ সহ ভেক্টর ইনডেক্স সূচকে কোটি কোটি আইটেম সমর্থন করে।
  • যদি আপনার ন্যূনতম প্রচেষ্টা এবং একটি পরিচালিত প্ল্যাটফর্মে দ্রুত শুরু করার প্রয়োজন হয়, তাহলে Vertex AI Search বেছে নিন - একটি সম্পূর্ণরূপে পরিচালিত সার্চ ইঞ্জিন এবং রিট্রিভার API যা জটিল এন্টারপ্রাইজ ব্যবহারের ক্ষেত্রে আদর্শ যার জন্য উচ্চমানের গুণমান, স্কেলেবিলিটি এবং সূক্ষ্ম অ্যাক্সেস নিয়ন্ত্রণ প্রয়োজন। এটি বিভিন্ন এন্টারপ্রাইজ ডেটা উৎসের সাথে সংযোগ স্থাপনকে সহজ করে এবং একাধিক উৎস জুড়ে অনুসন্ধান সক্ষম করে।
  • ব্যবহারের সহজতা এবং কাস্টমাইজেশনের মধ্যে ভারসাম্য বজায় রাখার জন্য ডেভেলপারদের জন্য যদি আপনি একটি ভালো জায়গা খুঁজছেন, তাহলে Vertex AI RAG Engine ব্যবহার করুন। এটি নমনীয়তা ত্যাগ না করেই দ্রুত প্রোটোটাইপিং এবং বিকাশকে শক্তিশালী করে।
  • পুনরুদ্ধার-বর্ধিত প্রজন্মের জন্য রেফারেন্স আর্কিটেকচার অন্বেষণ করুন।

১৩. উপসংহার

অভিনন্দন! আপনি Retrieval-Augmented Generation সহ একটি AI এজেন্ট সফলভাবে তৈরি এবং পরীক্ষা করেছেন। আপনি শিখেছেন কিভাবে:

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

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

প্রোটোটাইপ থেকে উৎপাদন

এই ল্যাবটি গুগল ক্লাউড লার্নিং পাথ সহ প্রোডাকশন-রেডি এআই- এর অংশ।