(এই পাঠটির ভিডিও দেখতে উপরের ছবিটি ক্লিক করুন)
AI এজেন্টে মেটাকগনিশন
AI এজেন্টে মেটাকগনিশন বিষয়ে পাঠে আপনাকে স্বাগতম! এই অধ্যায়টি নতুনদের জন্য ডিজাইন করা হয়েছে যারা উৎসুক জানতে চান AI এজেন্ট কীভাবে তাদের নিজের চিন্তার প্রক্রিয়া সম্পর্কে চিন্তা করতে পারে। এই পাঠের শেষে, আপনি মূল ধারণাগুলো বুঝতে পারবেন এবং AI এজেন্ট ডিজাইনে মেটাকগনিশন প্রয়োগ করার জন্য ব্যবহারিক উদাহরণ সমূহ পাবেন।
এই পাঠ সম্পন্ন করার পর, আপনি সক্ষম হবেন:
মেটাকগনিশন বলতে বোঝায় উচ্চতর আদেশের জ্ঞান প্রক্রিয়া যা নিজের চিন্তা সম্পর্কে চিন্তা করা অন্তর্ভুক্ত করে। AI এজেন্টদের জন্য এর অর্থ হলো তাদের কার্যকলাপকে স্ব-জ্ঞান ও অতীত অভিজ্ঞতার ভিত্তিতে মূল্যায়ন ও সামঞ্জস্য করার সক্ষমতা থাকা। মেটাকগনিশন, বা “চিন্তার উপর চিন্তা,” এজেন্টিক AI সিস্টেমের উন্নয়নে গুরুত্বপূর্ণ ধারণা। এটি AI সিস্টেমকে তাদের অভ্যন্তরীণ প্রক্রিয়াসমূহ সম্পর্কে সচেতন করে তোলে এবং তাদের আচরণ পর্যবেক্ষণ, নিয়ন্ত্রণ এবং অনুকূল করতে সক্ষম করে। আদালত বা কোনো সমস্যা দেখার সময় আমরা যেমন করি, ঠিক তেমনি। এই স্ব-জ্ঞান AI সিস্টেমকে আরও ভালো সিদ্ধান্ত নিতে, ত্রুটি সনাক্ত করতে এবং সময়ের সাথে তাদের কর্মক্ষমতা উন্নত করতে সাহায্য করে - আবার ফের Turing পরীক্ষার সাথে ও AI কি দখল নেবে সেই বিতর্কের সাথে সংযোগ স্থাপন করে।
এজেন্টিক AI সিস্টেমের প্রেক্ষাপটে, মেটাকগনিশন বিভিন্ন চ্যালেঞ্জ মোকাবেলায় সাহায্য করতে পারে, যেমন:
মেটাকগনিশন, বা “চিন্তার উপর চিন্তা,” হলো এমন উচ্চতর আদেশের জ্ঞান প্রক্রিয়া যা নিজের জ্ঞানের প্রক্রিয়া সম্পর্কে সচেতনতা এবং আত্ম-নিয়ন্ত্রণ অন্তর্ভুক্ত করে। AI ক্ষেত্রের মধ্যে, মেটাকগনিশন এজেন্টদের তাদের কৌশল ও কার্যকলাপ মূল্যায়ন ও সামঞ্জস্য করার ক্ষমতা প্রদান করে, যা সমস্যার সমাধান এবং সিদ্ধান্ত গ্রহণের ক্ষমতা উন্নত করে। মেটাকগনিশন বুঝে, আপনি এমন AI এজেন্ট ডিজাইন করতে পারেন যারা কেবল আরও বুদ্ধিমান নয়, বরং আরও অভিযোজিত এবং দক্ষ। প্রকৃত মেটাকগনিশনে, আপনি AI কে স্পষ্টভাবে তার নিজের যুক্তি সম্পর্কে রিজনিং করতে দেখবেন।
উদাহরণ: “আমি সস্তা ফ্লাইটকে অগ্রাধিকার দিলাম কারণ… আমি হয়ত সরাসরি ফ্লাইট মিস করছি, সেজন্য আমাকে আবার চেক করতে হবে।” কিভাবে বা কেন এটি নির্দিষ্ট একটি রুট নির্বাচন করেছে তা ট্র্যাক রাখা।
মেটাকগনিশন AI এজেন্ট ডিজাইনে বেশ কয়েকটি কারণে গুরুত্বপূর্ণ ভূমিকা পালন করে:

মেটাকগনিটিভ প্রক্রিয়াগুলিতে গভীর যাওয়ার আগে, AI এজেন্টের মৌলিক উপাদানগুলো বোঝা জরুরি। একটি AI এজেন্ট সাধারণত গঠিত হয়:
এই উপাদানগুলি মিলিত হয়ে একটি “দক্ষতা ইউনিট” তৈরি করে যা বিশেষ কাজ করতে পারে।
উদাহরণ: একটি ট্রাভেল এজেন্ট বিবেচনা করুন, যা কেবল আপনার ছুটি পরিকল্পনা করে না বরং বাস্তব সময়ের ডেটা ও অতীত গ্রাহক যাত্রার অভিজ্ঞতার উপর ভিত্তি করে এর পথও সংশোধন করে।
ভাবুন আপনি একটি AI চালিত ট্রাভেল এজেন্ট সার্ভিস ডিজাইন করছেন। এই এজেন্ট, “ট্রাভেল এজেন্ট,” ব্যবহারকারীদের তাদের ছুটি পরিকল্পনায় সাহায্য করে। মেটাকগনিশন অন্তর্ভুক্ত করার জন্য, ট্রাভেল এজেন্টকে নিজস্ব সচেতনতা এবং পূর্ব অভিজ্ঞতার ভিত্তিতে তার কার্যকলাপ মূল্যায়ন ও সামঞ্জস্য করতে হবে। মেটাকগনিশন কীভাবে ভূমিকা রাখতে পারে তা এখানে:
ব্যবহারকারীকে প্যারিস ভ্রমণের জন্য পরিকল্পনায় সাহায্য করা হচ্ছে।
ট্রাভেল এজেন্ট মেটাকগনিশন ব্যবহার করে তার কর্মক্ষমতা মূল্যায়ন করে এবং পূর্ব অভিজ্ঞতা থেকে শেখে। উদাহরণস্বরূপ:
এখানেই একটি সরল করা উদাহরণ দেওয়া হয়েছে কিভাবে ট্রাভেল এজেন্ট কোডে মেটাকগনিশন অন্তর্ভুক্ত করা যেতে পারে:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
# পছন্দ অনুসারে ফ্লাইট, হোটেল, এবং আকর্ষণীয় জায়গাগুলি অনুসন্ধান করুন
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
# প্রতিক্রিয়া বিশ্লেষণ করুন এবং ভবিষ্যতের সুপারিশগুলো সামঞ্জস্য করুন
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# উদাহরণ ব্যবহার
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)
মেটাকগনিশন অন্তর্ভুক্ত করে, ট্রাভেল এজেন্ট আরও ব্যক্তিগতকৃত এবং সঠিক ভ্রমণ প্রস্তাবনা দিতে পারে, যা ব্যবহারকারীর সামগ্রিক অভিজ্ঞতা উন্নত করে।
পরিকল্পনা AI এজেন্ট আচরণের একটি গুরুত্বপূর্ণ উপাদান। এটি লক্ষ্য অর্জনের জন্য প্রয়োজনীয় ধাপগুলো নির্ধারণ করে, বর্তমান অবস্থা, সম্পদ এবং সম্ভাব্য বাধাসমূহ বিবেচনা করে।
উদাহরণ: এখানে ট্রাভেল এজেন্টের জন্য ধাপসমূহ দেওয়া হলো যা ব্যবহারকারীর সফর পরিকল্পনায় সাহায্য করবে:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# বুকিং অনুরোধের মধ্যে উদাহরণ ব্যবহার
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)
প্রথমে আসুন RAG টুল এবং প্রি-এম্পটিভ কনটেক্সট লোডের মধ্যে পার্থক্য বুঝি

RAG একটি রিট্রিভাল সিস্টেমকে একটি জেনারেটিভ মডেলের সঙ্গে যুক্ত করে। যখন কোনো কুয়েরি করা হয়, তখন রিট্রিভাল সিস্টেম বাহ্যিক উৎস থেকে প্রাসঙ্গিক ডকুমেন্ট বা ডেটা গ্রহণ করে, এবং এই তথ্য জেনারেটিভ মডেলের ইনপুটকে সমৃদ্ধ করতে ব্যবহৃত হয়। এটি মডেলকে আরও সঠিক এবং প্রাসঙ্গিক উত্তর তৈরি করতে সাহায্য করে।
একটি RAG সিস্টেমে, এজেন্ট প্রাসঙ্গিক তথ্য একটি জ্ঞানের ভান্ডার থেকে এনে সঠিক উত্তর বা কার্যক্রম তৈরি করে।
সংশোধনী RAG পদ্ধতি RAG প্রযুক্তি ব্যবহার করে AI এজেন্টদের ভুল সংশোধন এবং সঠিকতা বাড়ানোর ওপর কেন্দ্র করে। এতে অন্তর্ভুক্ত:
১. প্রম্পটিং টেকনিক: নির্দিষ্ট প্রম্পট ব্যবহার করে এজেন্টকে প্রাসঙ্গিক তথ্য সংগ্রহে নির্দেশ দেওয়া। ২. সরঞ্জাম: এমন অ্যালগরিদম এবং মেকানিজম ব্যবহার যা এজেন্টকে সংগ্রহকৃত তথ্যের প্রাসঙ্গিকতা মূল্যায়ন এবং সঠিক উত্তর তৈরি করতে সক্ষম করে। ৩. মূল্যায়ন: এজেন্টের কর্মক্ষমতা নিয়মিত মূল্যায়ন এবং সংশোধনের মাধ্যমে তার সঠিকতা ও দক্ষতা উন্নত করা।
একটি সার্চ এজেন্ট বিবেচনা করুন যা ওয়েব থেকে তথ্য এনে ব্যবহারকারীর প্রশ্নের উত্তর দেয়। সংশোধনী RAG পদ্ধতিতে অন্তর্ভুক্ত হতে পারে:
১. প্রম্পটিং টেকনিক: ব্যবহারকারীর ইনপুট অনুযায়ী সার্চ কুয়েরি তৈরি। ২. সরঞ্জাম: প্রাকৃতিক ভাষা প্রক্রিয়াকরণ এবং মেশিন লার্নিং অ্যালগরিদম ব্যবহার করে সার্চ রেজাল্ট র্যাঙ্ক এবং ফিল্টার করা। ৩. মূল্যায়ন: ব্যবহারকারীর প্রতিক্রিয়া বিশ্লেষণ করে সংগৃহীত তথ্যের ত্রুটি সনাক্ত এবং সংশোধন।
সংশোধনী RAG (রিট্রিভাল-অগমেন্টেড জেনারেশন) AI এর তথ্য সংগ্রহ এবং সৃষ্টির সক্ষমতা বাড়ায় দ্বিতীয়ত কোন ভুল থাকলে তা সংশোধন করে। দেখুন কিভাবে ট্রাভেল এজেন্ট সংশোধনী RAG পদ্ধতি ব্যবহার করে আরো সঠিক ও প্রাসঙ্গিক ভ্রমণ প্রস্তাবনা দিতে পারে।
এতে রয়েছে:
১. প্রাথমিক ব্যবহারকারী ইন্টারঅ্যাকশন
উদাহরণ:
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
২. তথ্য সংগ্রহ
উদাহরণ:
flights = search_flights(preferences)
hotels = search_hotels(preferences)
attractions = search_attractions(preferences)
৩. প্রাথমিক প্রস্তাবনা তৈরি
উদাহরণ:
itinerary = create_itinerary(flights, hotels, attractions)
print("Suggested Itinerary:", itinerary)
৪. ব্যবহারকারীর প্রতিক্রিয়া সংগ্রহ
উদাহরণ:
feedback = {
"liked": ["Louvre Museum"],
"disliked": ["Eiffel Tower (too crowded)"]
}
৫. সংশোধনী RAG প্রক্রিয়া
উদাহরণ:
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
উদাহরণ:
new_attractions = search_attractions(preferences)
new_itinerary = create_itinerary(flights, hotels, new_attractions)
print("Updated Itinerary:", new_itinerary)
উদাহরণ:
def adjust_preferences(preferences, feedback):
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
return preferences
preferences = adjust_preferences(preferences, feedback)
সংশোধনী RAG পদ্ধতি ব্যবহার করে ট্রাভেল এজেন্টের একটি সরল পাইথন কোড উদাহরণ এখানে:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
new_itinerary = self.generate_recommendations()
return new_itinerary
# উদাহরণ ব্যবহার
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
new_itinerary = travel_agent.adjust_based_on_feedback(feedback)
print("Updated Itinerary:", new_itinerary)
প্রি-এম্পটিভ কন্টেক্সট লোড একটি মডেলের মধ্যে সম্পর্কিত প্রসঙ্গ বা পটভূমি তথ্য লোড করার প্রক্রিয়া, যা কোন প্রশ্ন প্রক্রিয়াকরণের আগে করা হয়। এর মানে মডেল শুরু থেকেই এই তথ্য অ্যাক্সেস করতে পারে, যা প্রসেস চলাকালে অতিরিক্ত তথ্য অনুসন্ধানের প্রয়োজন ছাড়াই আরও তথ্যভিত্তিক প্রতিক্রিয়া তৈরি করতে সাহায্য করে।
এখানে একটি সরল উদাহরণ দেওয়া হলো যে প্রি-এম্পটিভ কন্টেক্সট লোড কীভাবে Python এ এক ভ্রমণ এজেন্ট অ্যাপ্লিকেশনের জন্য হতে পারে:
class TravelAgent:
def __init__(self):
# জনপ্রিয় গন্তব্য এবং তাদের তথ্য প্রি-লোড করুন
self.context = {
"Paris": {"country": "France", "currency": "Euro", "language": "French", "attractions": ["Eiffel Tower", "Louvre Museum"]},
"Tokyo": {"country": "Japan", "currency": "Yen", "language": "Japanese", "attractions": ["Tokyo Tower", "Shibuya Crossing"]},
"New York": {"country": "USA", "currency": "Dollar", "language": "English", "attractions": ["Statue of Liberty", "Times Square"]},
"Sydney": {"country": "Australia", "currency": "Dollar", "language": "English", "attractions": ["Sydney Opera House", "Bondi Beach"]}
}
def get_destination_info(self, destination):
# প্রি-লোড করা প্রসঙ্গ থেকে গন্তব্যের তথ্য আনুন
info = self.context.get(destination)
if info:
return f"{destination}:\nCountry: {info['country']}\nCurrency: {info['currency']}\nLanguage: {info['language']}\nAttractions: {', '.join(info['attractions'])}"
else:
return f"Sorry, we don't have information on {destination}."
# উদাহরণ ব্যবহার
travel_agent = TravelAgent()
print(travel_agent.get_destination_info("Paris"))
print(travel_agent.get_destination_info("Tokyo"))
ইনিশিয়ালাইজেশন (__init__ মেথড): TravelAgent ক্লাসটি একটি ডিকশনারি প্রি-লোড করে যা প্যারিস, টোকিও, নিউ ইয়র্ক, এবং সিডনি মত জনপ্রিয় গন্তব্যস্থলের তথ্য ধারণ করে। এই ডিকশনারিতে প্রতিটি গন্তব্যের দেশ, মুদ্রা, ভাষা এবং প্রধান আকর্ষণগুলি অন্তর্ভুক্ত থাকে।
তথ্য আহরণ (get_destination_info মেথড): যখন ব্যবহারকারী নির্দিষ্ট কোনো গন্তব্য সম্পর্কে প্রশ্ন করে, get_destination_info মেথডটি প্রি-লোড করা প্রসঙ্গ ডিকশনারি থেকে প্রাসঙ্গিক তথ্য নিয়ে আসে।
প্রসঙ্গ প্রি-লোড করে, ভ্রমণ এজেন্ট অ্যাপ্লিকেশনটি ব্যবহারকারীর প্রশ্নের দ্রুত প্রতিক্রিয়া দিতে পারে, বাস্তব সময়ে বহিরাগত উৎস থেকে তথ্য পুনরুদ্ধার না করেই। এর ফলে অ্যাপ্লিকেশনটি আরও দক্ষ এবং প্রতিক্রিয়াশীল হয়।
একটি লক্ষ্য সহ পরিকল্পনা বুটস্ট্র্যাপিং অর্থ হল স্পষ্ট উদ্দেশ্য বা লক্ষ্যমাত্রা মাথায় রেখে শুরু করা। এই লক্ষ্যটি আগাম নির্ধারণ করে, মডেল লক্ষ্যটিকে নির্দেশিকা হিসেবে ব্যবহার করতে পারে সম্পূর্ণ পুনরাবৃত্তিমূলক প্রক্রিয়ায়। এটি নিশ্চিত করে যে প্রতিটি পুনরাবৃত্তি কাঙ্ক্ষিত ফলাফলের দিকে এগিয়ে যায়, প্রক্রিয়াটি আরও কার্যকর এবং কেন্দ্রিক হয়।
এখানে একটি উদাহরণ দেওয়া হলো কিভাবে Python এ একটি ভ্রমণ পরিকল্পনাকে লক্ষ্য সহ বুটস্ট্র্যাপ করে পুনরাবৃত্তি শুরু করা যায় একটি ভ্রমণ এজেন্টের জন্য:
একটি ভ্রমণ এজেন্ট তার ক্লায়েন্টের জন্য একটি কাস্টমাইজড ছুটির পরিকল্পনা করতে চায়। লক্ষ্য হল ক্লায়েন্টের পছন্দ এবং বাজেট অনুযায়ী সর্বোচ্চ সন্তুষ্টি প্রদান করে একটি ভ্রমণ সূচি তৈরি করা।
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def bootstrap_plan(self, preferences, budget):
plan = []
total_cost = 0
for destination in self.destinations:
if total_cost + destination['cost'] <= budget and self.match_preferences(destination, preferences):
plan.append(destination)
total_cost += destination['cost']
return plan
def match_preferences(self, destination, preferences):
for key, value in preferences.items():
if destination.get(key) != value:
return False
return True
def iterate_plan(self, plan, preferences, budget):
for i in range(len(plan)):
for destination in self.destinations:
if destination not in plan and self.match_preferences(destination, preferences) and self.calculate_cost(plan, destination) <= budget:
plan[i] = destination
break
return plan
def calculate_cost(self, plan, new_destination):
return sum(destination['cost'] for destination in plan) + new_destination['cost']
# উদাহরণ ব্যবহার
destinations = [
{"name": "Paris", "cost": 1000, "activity": "sightseeing"},
{"name": "Tokyo", "cost": 1200, "activity": "shopping"},
{"name": "New York", "cost": 900, "activity": "sightseeing"},
{"name": "Sydney", "cost": 1100, "activity": "beach"},
]
preferences = {"activity": "sightseeing"}
budget = 2000
travel_agent = TravelAgent(destinations)
initial_plan = travel_agent.bootstrap_plan(preferences, budget)
print("Initial Plan:", initial_plan)
refined_plan = travel_agent.iterate_plan(initial_plan, preferences, budget)
print("Refined Plan:", refined_plan)
ইনিশিয়ালাইজেশন (__init__ মেথড): TravelAgent ক্লাসটি সম্ভাব্য গন্তব্যগুলির তালিকা নিয়ে ইনিশিয়ালাইজ হয়, যার প্রতিটিতে নাম, খরচ এবং কার্যকলাপের ধরন মত বৈশিষ্ট্য থাকে।
পরিকল্পনা বুটস্ট্র্যাপিং (bootstrap_plan মেথড): এই মেথডটি ক্লায়েন্টের পছন্দ এবং বাজেটের উপর ভিত্তি করে একটি প্রাথমিক ভ্রমণ পরিকল্পনা তৈরি করে। এটি গন্তব্য তালিকা থেকে পুনরাবৃত্তি করে এমন গন্তব্যগুলি পরিকল্পনায় যুক্ত করে যা ক্লায়েন্টের পছন্দের সাথে মিলে এবং বাজেটের মধ্যে পড়ে।
পছন্দের মিল (match_preferences মেথড): এই মেথডটি যাচাই করে একটি গন্তব্য ক্লায়েন্টের পছন্দের সাথে মেলে কিনা।
পরিকল্পনা পুনরাবৃত্তি (iterate_plan মেথড): এই মেথডটি প্রাথমিক পরিকল্পনাটিকে পরিমার্জন করে, পরিকল্পনার প্রতিটি গন্তব্যকে ক্লায়েন্টের পছন্দ এবং বাজেট সীমাবদ্ধতাগুলো বিবেচনা করে আরও ভাল মেলানো গন্তব্য দিয়ে প্রতিস্থাপনের চেষ্টা করে।
খরচ হিসাব (calculate_cost মেথড): এই মেথডটি বর্তমান পরিকল্পনার মোট খরচ গণনা করে, যার মধ্যে একটি সম্ভাব্য নতুন গন্তব্য অন্তর্ভুক্ত থাকে।
স্পষ্ট লক্ষ্য (যেমন, ক্লায়েন্ট সন্তুষ্টি সর্বাধিক করা) দিয়ে পরিকল্পনা বুটস্ট্র্যাপ করে এবং পুনরাবৃত্তি চালিয়ে ভ্রমণ এজেন্ট ক্লায়েন্টের জন্য কাস্টমাইজড এবং অপ্টিমাইজড ভ্রমণ সূচি তৈরি করতে পারে। এই পদ্ধতি নিশ্চিত করে যে ভ্রমণ পরিকল্পনাটি শুরু থেকেই ক্লায়েন্টের পছন্দ এবং বাজেটের সাথে সামঞ্জস্যপূর্ণ এবং প্রতিটি পুনরাবৃত্তিতে উন্নত হয়।
বড় ভাষা মডেল (LLM) গুলো পুনঃর্যাঙ্কিং এবং স্কোরিংয়ের জন্য ব্যবহার করা যেতে পারে, যেখানে তারা উদ্ধার করা নথি বা তৈরি করা প্রতিক্রিয়াগুলোর প্রাসঙ্গিকতা ও গুণগত মান মূল্যায়ন করে। এর কার্যপ্রণালী হলো:
অনুসন্ধান: প্রাথমিক অনুসন্ধান ধাপটি প্রশ্নের ভিত্তিতে সম্ভাব্য নথি বা প্রতিক্রিয়ার একটি সেট আনে।
পুনঃর্যাঙ্কিং: LLM উক্ত প্রার্থী গুলো মূল্যায়ন করে এবং তাদের প্রাসঙ্গিকতা ও গুণগত মানের ভিত্তিতে পুনঃর্যাঙ্ক করে। এই ধাপটি নিশ্চিত করে সবচেয়ে প্রাসঙ্গিক এবং উচ্চ-মানের তথ্য প্রথমে উপস্থাপিত হয়।
স্কোরিং: LLM প্রতিটি প্রার্থীর প্রাসঙ্গিকতা ও গুণগত মান প্রতিফলিত করে স্কোর প্রদান করে। এটি ব্যবহারকারীর জন্য সেরা প্রতিক্রিয়া বা নথি নির্বাচন করতে সাহায্য করে।
LLM গুলো পুনঃর্যাঙ্কিং এবং স্কোরিংয়ের জন্য ব্যবহার করে, সিস্টেম আরো সঠিক এবং প্রসঙ্গভিত্তিক তথ্য সরবরাহ করতে পারে, যা সামগ্রিক ব্যবহারকারীর অভিজ্ঞতা উন্নত করে।
এখানে একটি উদাহরণ যেভাবে একটি ভ্রমণ এজেন্ট ব্যবহারকারীর পছন্দ অনুযায়ী ভ্রমণ গন্তব্যগুলো পুনঃর্যাঙ্ক এবং স্কোর করার জন্য বড় ভাষা মডেল (LLM) ব্যবহার করতে পারে Python এ:
একটি ভ্রমণ এজেন্ট ক্লায়েন্টের পছন্দের ভিত্তিতে সেরা ভ্রমণ গন্তব্যগুলো প্রস্তাব করতে চায়। LLM গুলো গন্তব্যগুলো পুনঃর্যাঙ্ক এবং স্কোরিংয়ে সাহায্য করবে যাতে সবচেয়ে প্রাসঙ্গিক বিকল্পগুলি উপস্থাপিত হয়।
এটি কীভাবে পূর্বের উদাহরণে Azure OpenAI পরিষেবাগুলি ব্যবহার করে আপডেট করবেন তা নিচে দেখানো হলো:
import requests
import json
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def get_recommendations(self, preferences, api_key, endpoint):
# Azure OpenAI এর জন্য একটি প্রম্পট তৈরি করুন
prompt = self.generate_prompt(preferences)
# অনুরোধের জন্য হেডার এবং পে-লোড সংজ্ঞায়িত করুন
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
payload = {
"prompt": prompt,
"max_tokens": 150,
"temperature": 0.7
}
# র্যাঙ্ক করা এবং স্কোর করা গন্তব্যগুলি পেতে Azure OpenAI API কল করুন
response = requests.post(endpoint, headers=headers, json=payload)
response_data = response.json()
# সুপারিশগুলি বের করে ফেরত দিন
recommendations = response_data['choices'][0]['text'].strip().split('\n')
return recommendations
def generate_prompt(self, preferences):
prompt = "Here are the travel destinations ranked and scored based on the following user preferences:\n"
for key, value in preferences.items():
prompt += f"{key}: {value}\n"
prompt += "\nDestinations:\n"
for destination in self.destinations:
prompt += f"- {destination['name']}: {destination['description']}\n"
return prompt
# উদাহরণ ব্যবহার
destinations = [
{"name": "Paris", "description": "City of lights, known for its art, fashion, and culture."},
{"name": "Tokyo", "description": "Vibrant city, famous for its modernity and traditional temples."},
{"name": "New York", "description": "The city that never sleeps, with iconic landmarks and diverse culture."},
{"name": "Sydney", "description": "Beautiful harbour city, known for its opera house and stunning beaches."},
]
preferences = {"activity": "sightseeing", "culture": "diverse"}
api_key = 'your_azure_openai_api_key'
endpoint = 'https://your-endpoint.com/openai/deployments/your-deployment-name/completions?api-version=2022-12-01'
travel_agent = TravelAgent(destinations)
recommendations = travel_agent.get_recommendations(preferences, api_key, endpoint)
print("Recommended Destinations:")
for rec in recommendations:
print(rec)
ইনিশিয়ালাইজেশন: TravelAgent ক্লাসটি সম্ভাব্য ভ্রমণ গন্তব্যগুলির তালিকা নিয়ে ইনিশিয়ালাইজ হয়, যার প্রতিটিতে নাম এবং বর্ণনা রয়েছে।
সুপারিশ নেওয়া (get_recommendations মেথড): এই মেথডটি ব্যবহারকারীর পছন্দের উপর ভিত্তি করে Azure OpenAI সার্ভিসের জন্য একটি প্রম্পট তৈরি করে এবং Azure OpenAI API তে HTTP POST অনুরোধ করে গন্তব্যগুলো পুনঃর্যাঙ্ক ও স্কোরিংয়ের ফলাফল পায়।
প্রম্পট তৈরি (generate_prompt মেথড): এই মেথডটি Azure OpenAI এর জন্য একটি প্রম্পট তৈরি করে, যা ব্যবহারকারীর পছন্দ এবং গন্তব্যের তালিকাকে অন্তর্ভুক্ত করে। প্রম্পটটি মডেলকে নির্দেশ দেয় গন্তব্যগুলোকে উল্লেখিত পছন্দের ভিত্তিতে পুনঃর্যাঙ্ক এবং স্কোর দিতে।
API কল: requests লাইব্রেরি ব্যবহার করে Azure OpenAI API-এর এন্ডপয়েন্টে HTTP POST অনুরোধ করা হয়। উত্তরটি পুনঃর্যাঙ্ককৃত এবং স্কোরযুক্ত গন্তব্যগুলির তথ্য ধারণ করে।
উদাহরণ ব্যবহার: ভ্রমণ এজেন্ট ব্যবহারকারীর পছন্দ (যেমন দর্শনীয় স্থান এবং বৈচিত্র্যময় সংস্কৃতিতে আগ্রহ) সংগ্রহ করে এবং Azure OpenAI সার্ভিস ব্যবহার করে ভ্রমণ গন্তব্যগুলোর জন্য পুনঃর্যাঙ্ক ও স্কোরযুক্ত সুপারিশ পায়।
অবশ্যই your_azure_openai_api_key কে আপনার বাস্তব Azure OpenAI API কী দিয়ে এবং https://your-endpoint.com/... কে আপনার Azure OpenAI ডিপ্লয়মেন্টের প্রকৃত এন্ডপয়েন্ট URL দিয়ে প্রতিস্থাপন করুন।
LLM এর সাহায্যে পুনঃর্যাঙ্কিং ও স্কোরিং করে, ভ্রমণ এজেন্ট ক্লায়েন্টদের কাছে আরো ব্যক্তিগতকৃত এবং প্রাসঙ্গিক ভ্রমণ সুপারিশ প্রদান করতে পারে, যা তাদের সামগ্রিক অভিজ্ঞতাকে উন্নত করে।
Retrieval-Augmented Generation (RAG) হতে পারে একটি প্রম্পটিং কৌশল এবং একই সাথে AI এজেন্ট ডেভেলপমেন্টে একটি টুল। এদের মধ্যে পার্থক্য বোঝা আপনাকে RAG আরও কার্যকরভাবে ব্যবহার করতে সাহায্য করবে আপনার প্রকল্পে।
এটি কী?
কীভাবে কাজ করে:
ভ্রমণ এজেন্টে উদাহরণ:
এটি কী?
কীভাবে কাজ করে:
ভ্রমণ এজেন্টে উদাহরণ:
| দিক | প্রম্পটিং কৌশল | টুল |
|---|---|---|
| ম্যানুয়াল বনাম স্বয়ংক্রিয় | প্রতিটি প্রশ্নের জন্য ম্যানুয়াল প্রম্পট তৈরি করা হয়। | উদ্ধার ও উৎপাদন পুরো প্রক্রিয়া স্বয়ংক্রিয়। |
| নিয়ন্ত্রণ | উদ্ধার প্রক্রিয়ায় বেশি নিয়ন্ত্রণ দেয়। | উদ্ধার ও উৎপাদনকে সহজ এবং স্বয়ংক্রিয় করে। |
| নমনীয়তা | নির্দিষ্ট প্রয়োজন অনুযায়ী কাস্টমাইজড প্রম্পট তৈরি করা যায়। | বড় আকারের বাস্তবায়নের জন্য আরো দক্ষ। |
| জটিলতা | প্রম্পট তৈরি ও পরিবর্তন করতে হয়। | AI এজেন্টের আর্কিটেকচারে সহজে ইন্টিগ্রেট করা যায়। |
প্রম্পটিং কৌশল উদাহরণ:
def search_museums_in_paris():
prompt = "Find top museums in Paris"
search_results = search_web(prompt)
return search_results
museums = search_museums_in_paris()
print("Top Museums in Paris:", museums)
টুল উদাহরণ:
class Travel_Agent:
def __init__(self):
self.rag_tool = RAGTool()
def get_museums_in_paris(self):
user_input = "I want to visit museums in Paris."
response = self.rag_tool.retrieve_and_generate(user_input)
return response
travel_agent = Travel_Agent()
museums = travel_agent.get_museums_in_paris()
print("Top Museums in Paris:", museums)
প্রাসঙ্গিকতা মূল্যায়ন AI এজেন্টের কর্মক্ষমতার একটি গুরুত্বপূর্ণ দিক। এটি নিশ্চিত করে যে এজেন্টের দ্বারা উদ্ধারকৃত ও তৈরি তথ্য ব্যবহারকারীর জন্য উপযুক্ত, সঠিক এবং কার্যকর। চলুন দেখি কিভাবে AI এজেন্টে প্রাসঙ্গিকতা মূল্যায়ন করা যায়, ব্যবহারিক উদাহরণ ও কৌশলসহ।
উদাহরণ:
def relevance_score(item, query):
score = 0
if item['category'] in query['interests']:
score += 1
if item['price'] <= query['budget']:
score += 1
if item['location'] == query['destination']:
score += 1
return score
উদাহরণ:
def filter_and_rank(items, query):
ranked_items = sorted(items, key=lambda item: relevance_score(item, query), reverse=True)
return ranked_items[:10] # শীর্ষ ১০টি প্রাসঙ্গিক আইটেম ফেরত দিন
উদাহরণ:
def process_query(query):
# ব্যবহারকারীর অনুসন্ধান থেকে প্রধান তথ্য উত্তোলনের জন্য NLP ব্যবহার করুন
processed_query = nlp(query)
return processed_query
উদাহরণ:
def adjust_based_on_feedback(feedback, items):
for item in items:
if item['name'] in feedback['liked']:
item['relevance'] += 1
if item['name'] in feedback['disliked']:
item['relevance'] -= 1
return items
এখানে একটি ব্যবহারিক উদাহরণ দেওয়া হলো কিভাবে ভ্রমণ এজেন্ট ভ্রমণের সুপারিশের প্রাসঙ্গিকতা মূল্যায়ন করতে পারে:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
ranked_hotels = self.filter_and_rank(hotels, self.user_preferences)
itinerary = create_itinerary(flights, ranked_hotels, attractions)
return itinerary
def filter_and_rank(self, items, query):
ranked_items = sorted(items, key=lambda item: self.relevance_score(item, query), reverse=True)
return ranked_items[:10] # শীর্ষ ১০টি প্রাসঙ্গিক আইটেম ফেরত দিন
def relevance_score(self, item, query):
score = 0
if item['category'] in query['interests']:
score += 1
if item['price'] <= query['budget']:
score += 1
if item['location'] == query['destination']:
score += 1
return score
def adjust_based_on_feedback(self, feedback, items):
for item in items:
if item['name'] in feedback['liked']:
item['relevance'] += 1
if item['name'] in feedback['disliked']:
item['relevance'] -= 1
return items
# উদাহরণ ব্যবহার
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_items = travel_agent.adjust_based_on_feedback(feedback, itinerary['hotels'])
print("Updated Itinerary with Feedback:", updated_items)
উদ্দেশ্য নিয়ে অনুসন্ধান অর্থ হলো ব্যবহারকারীর প্রশ্নের অন্তর্নিহিত উদ্দেশ্য বা লক্ষ্য বুঝে সবচেয়ে প্রাসঙ্গিক ও উপকারী তথ্য উদ্ধার এবং তৈরি করা। এই পন্থা কেবল কিওয়ার্ড ম্যাচ করার বাইরে গিয়ে ব্যবহারকারীর প্রকৃত চাহিদা ও প্রসঙ্গ বুঝতে কেন্দ্রীভূত।
চলুন ভ্রমণ এজেন্টকে উদাহরণ দিয়ে দেখি কিভাবে উদ্দেশ্য নিয়ে অনুসন্ধান বাস্তবায়িত করা যায়।
ব্যবহারকারীর পছন্দ সংগ্রহ
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
ব্যবহারকারীর উদ্দেশ্য বোঝা
def identify_intent(query):
if "book" in query or "purchase" in query:
return "transactional"
elif "website" in query or "official" in query:
return "navigational"
else:
return "informational"
প্রসঙ্গ সচেতনতা
def analyze_context(query, user_history):
# প্রাসঙ্গিকতা বুঝতে বর্তমান অনুসন্ধানকে ব্যবহারকারীর ইতিহাসের সঙ্গে মিলান করুন
context = {
"current_query": query,
"user_history": user_history
}
return context
অনুসন্ধান এবং ব্যক্তিগতকৃত ফলাফল
def search_with_intent(query, preferences, user_history):
intent = identify_intent(query)
context = analyze_context(query, user_history)
if intent == "informational":
search_results = search_information(query, preferences)
elif intent == "navigational":
search_results = search_navigation(query)
elif intent == "transactional":
search_results = search_transaction(query, preferences)
personalized_results = personalize_results(search_results, user_history)
return personalized_results
def search_information(query, preferences):
# তথ্যমূলক উদ্দেশ্যের জন্য উদাহরণ অনুসন্ধান লজিক
results = search_web(f"best {preferences['interests']} in {preferences['destination']}")
return results
def search_navigation(query):
# নেভিগেশনাল উদ্দেশ্যের জন্য উদাহরণ অনুসন্ধান লজিক
results = search_web(query)
return results
def search_transaction(query, preferences):
# লেনদেনজনিত উদ্দেশ্যের জন্য উদাহরণ অনুসন্ধান লজিক
results = search_web(f"book {query} to {preferences['destination']}")
return results
def personalize_results(results, user_history):
# উদাহরণ ব্যক্তিগতকরণ লজিক
personalized = [result for result in results if result not in user_history]
return personalized[:10] # শীর্ষ ১০ ব্যক্তিগতকৃত ফলাফল রিটার্ন করুন
উদাহরণ ব্যবহার
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
user_history = ["Louvre Museum website", "Book flight to Paris"]
query = "best museums in Paris"
results = search_with_intent(query, preferences, user_history)
print("Search Results:", results)
কোড তৈরি করা এজেন্টগুলো AI মডেল ব্যবহার করে কোড লিখে এবং চালায়, জটিল সমস্যার সমাধান করে এবং কাজগুলো স্বয়ংক্রিয় করে।
কোড তৈরি করা এজেন্টগুলো জেনারেটিভ AI মডেল ব্যবহার করে কোড লিখে এবং চালায়। এই এজেন্টগুলো জটিল সমস্যা সমাধান করতে পারে, কাজগুলো স্বয়ংক্রিয় করতে পারে, এবং বিভিন্ন প্রোগ্রামিং ভাষায় কোড তৈরি ও চালিয়ে মূল্যবান অন্তর্দৃষ্টি প্রদান করে।
ধরুণ আপনি একটি কোড তৈরি করা এজেন্ট ডিজাইন করছেন। এটি কীভাবে কাজ করতে পারে দেখে নিন:
এই উদাহরণে, আমরা একটি কোড তৈরি করা এজেন্ট, ট্রাভেল এজেন্ট ডিজাইন করব, যা জেনারেটিভ AI ব্যবহার করে তথ্য সংগ্রহ, ফলাফল ফিল্টার এবং ভ্রমণের পরিকল্পনা প্রস্তুত করতে কোড তৈরি ও চালাতে সাহায্য করবে।
ব্যবহারকারীর পছন্দ সংগ্রহ
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
তথ্য সংগ্রহের জন্য কোড তৈরি
def generate_code_to_fetch_data(preferences):
# উদাহরণ: ব্যবহারকারীর পছন্দ অনুসারে ফ্লাইট খোঁজার জন্য কোড তৈরি করুন
code = f"""
def search_flights():
import requests
response = requests.get('https://api.example.com/flights', params={preferences})
return response.json()
"""
return code
def generate_code_to_fetch_hotels(preferences):
# উদাহরণ: হোটেল খোঁজার জন্য কোড তৈরি করুন
code = f"""
def search_hotels():
import requests
response = requests.get('https://api.example.com/hotels', params={preferences})
return response.json()
"""
return code
তৈরি করা কোড চালানো
def execute_code(code):
# exec ব্যবহার করে সৃষ্ট কোড সম্পাদন করুন
exec(code)
result = locals()
return result
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
flight_code = generate_code_to_fetch_data(preferences)
hotel_code = generate_code_to_fetch_hotels(preferences)
flights = execute_code(flight_code)
hotels = execute_code(hotel_code)
print("Flight Options:", flights)
print("Hotel Options:", hotels)
যাত্রাপথ তৈরি
def generate_itinerary(flights, hotels, attractions):
itinerary = {
"flights": flights,
"hotels": hotels,
"attractions": attractions
}
return itinerary
attractions = search_attractions(preferences)
itinerary = generate_itinerary(flights, hotels, attractions)
print("Suggested Itinerary:", itinerary)
প্রতিক্রিয়া অনুযায়ী সমন্বয়
def adjust_based_on_feedback(feedback, preferences):
# ব্যবহারকারীর প্রতিক্রিয়ার ভিত্তিতে পছন্দসমূহ সমন্বয় করুন
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
return preferences
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences)
# আপডেট করা পছন্দসমূহের সাথে কোড পুনর্নির্মাণ এবং চালান
updated_flight_code = generate_code_to_fetch_data(updated_preferences)
updated_hotel_code = generate_code_to_fetch_hotels(updated_preferences)
updated_flights = execute_code(updated_flight_code)
updated_hotels = execute_code(updated_hotel_code)
updated_itinerary = generate_itinerary(updated_flights, updated_hotels, attractions)
print("Updated Itinerary:", updated_itinerary)
টেবিলের স্কিমার ভিত্তিতে কুয়েরি তৈরি প্রক্রিয়ায় পরিবেশ সচেতনতা এবং যুক্তি ব্যবহার করে উন্নতি করা সম্ভব।
এটি কীভাবে করা যায় তার একটি উদাহরণ এখানে:
নিম্নে একটি সংশোধিত পাইথন কোডের উদাহরণ দেওয়া হলো যা এই ধারণাগুলো অন্তর্ভুক্ত করে:
def adjust_based_on_feedback(feedback, preferences, schema):
# ব্যবহারকারীর প্রতিক্রিয়া অনুসারে পছন্দসমূহ সামঞ্জস্য করুন
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
# অন্যান্য সম্পর্কিত পছন্দসমূহ সামঞ্জস্য করার জন্য স্কিমার উপর ভিত্তি করে যুক্তি
for field in schema:
if field in preferences:
preferences[field] = adjust_based_on_environment(feedback, field, schema)
return preferences
def adjust_based_on_environment(feedback, field, schema):
# স্কিমা এবং প্রতিক্রিয়ার ভিত্তিতে পছন্দসমূহ সামঞ্জস্য করার জন্য কাস্টম লজিক
if field in feedback["liked"]:
return schema[field]["positive_adjustment"]
elif field in feedback["disliked"]:
return schema[field]["negative_adjustment"]
return schema[field]["default"]
def generate_code_to_fetch_data(preferences):
# আপডেট করা পছন্দসমূহের ভিত্তিতে ফ্লাইট ডেটা সংগ্রহ করার কোড তৈরি করুন
return f"fetch_flights(preferences={preferences})"
def generate_code_to_fetch_hotels(preferences):
# আপডেট করা পছন্দসমূহের ভিত্তিতে হোটেল ডেটা সংগ্রহ করার কোড তৈরি করুন
return f"fetch_hotels(preferences={preferences})"
def execute_code(code):
# কোডের বাস্তবায়ন অনুকরণ করুন এবং মোক ডেটা ফেরত দিন
return {"data": f"Executed: {code}"}
def generate_itinerary(flights, hotels, attractions):
# ফ্লাইট, হোটেল, এবং আকর্ষণগুলি ভিত্তি করে যাত্রাপথ তৈরি করুন
return {"flights": flights, "hotels": hotels, "attractions": attractions}
# উদাহরণ স্কিমা
schema = {
"favorites": {"positive_adjustment": "increase", "negative_adjustment": "decrease", "default": "neutral"},
"avoid": {"positive_adjustment": "decrease", "negative_adjustment": "increase", "default": "neutral"}
}
# উদাহরণ ব্যবহার
preferences = {"favorites": "sightseeing", "avoid": "crowded places"}
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences, schema)
# আপডেট করা পছন্দসমূহ সহ কোড পুনরায় তৈরি এবং বাস্তবায়ন করুন
updated_flight_code = generate_code_to_fetch_data(updated_preferences)
updated_hotel_code = generate_code_to_fetch_hotels(updated_preferences)
updated_flights = execute_code(updated_flight_code)
updated_hotels = execute_code(updated_hotel_code)
updated_itinerary = generate_itinerary(updated_flights, updated_hotels, feedback["liked"])
print("Updated Itinerary:", updated_itinerary)
schema ডিকশনারি কীভাবে প্রতিক্রিয়া অনুযায়ী পছন্দ পরিবর্তন করা উচিত তা সংজ্ঞায়িত করে। এতে favorites এবং avoid মত ফিল্ড ও সংশ্লিষ্ট সমন্বয় আছে।adjust_based_on_feedback মেথড): এই মেথড ব্যবহারকারীর প্রতিক্রিয়া এবং স্কিমা অনুযায়ী পছন্দ পরিবর্তন করে।adjust_based_on_environment মেথড): স্কিমা এবং প্রতিক্রিয়ার ভিত্তিতে সমন্বয় কাস্টমাইজ করে এই মেথড।পরিবেশ সচেতন এবং স্কিমার ভিত্তিতে যুক্তি প্রয়োগ করে, সিস্টেম আরও সঠিক এবং প্রাসঙ্গিক কুয়েরি তৈরি করতে পারে, যা ভাল ট্রাভেল পরামর্শ এবং ব্যক্তিগতকৃত ব্যবহারকারী অভিজ্ঞতা প্রদান করে।
SQL (স্ট্রাকচার্ড কুয়েরি ল্যাঙ্গুয়েজ) ডেটাবেসের সাথে যোগাযোগ করার একটি শক্তিশালী টুল। যখন RAG পদ্ধতির অংশ হিসেবে ব্যবহার করা হয়, SQL ডেটাবেস থেকে প্রাসঙ্গিক তথ্য আনতে ব্যবহার হয় যা AI এজেন্টদের জবাব বা কাজ তৈরি করতে সাহায্য করে। আসুন ট্রাভেল এজেন্টের প্রেক্ষিতে SQL কে RAG কৌশল হিসেবে কীভাবে ব্যবহার করা যায় তা দেখি।
উদাহরণ: একটি ডেটা বিশ্লেষণ এজেন্ট:
ব্যবহারকারীর পছন্দ সংগ্রহ
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
SQL কুয়েরি তৈরি
def generate_sql_query(table, preferences):
query = f"SELECT * FROM {table} WHERE "
conditions = []
for key, value in preferences.items():
conditions.append(f"{key}='{value}'")
query += " AND ".join(conditions)
return query
SQL কুয়েরি চালানো
import sqlite3
def execute_sql_query(query, database="travel.db"):
connection = sqlite3.connect(database)
cursor = connection.cursor()
cursor.execute(query)
results = cursor.fetchall()
connection.close()
return results
পরামর্শ তৈরি
def generate_recommendations(preferences):
flight_query = generate_sql_query("flights", preferences)
hotel_query = generate_sql_query("hotels", preferences)
attraction_query = generate_sql_query("attractions", preferences)
flights = execute_sql_query(flight_query)
hotels = execute_sql_query(hotel_query)
attractions = execute_sql_query(attraction_query)
itinerary = {
"flights": flights,
"hotels": hotels,
"attractions": attractions
}
return itinerary
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = generate_recommendations(preferences)
print("Suggested Itinerary:", itinerary)
ফ্লাইট কুয়েরি
SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-10' AND budget='moderate';
হোটেল কুয়েরি
SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
আকর্ষণ কুয়েরি
SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
SQL কে Retrieval-Augmented Generation (RAG) কৌশলের অংশ হিসেবে ব্যবহার করে, ট্রাভেল এজেন্টের মতো AI এজেন্টগুলো প্রাসঙ্গিক ডেটা গতিশীলভাবে সংগ্রহ করে এবং সঠিক ও ব্যক্তিগতকৃত পরামর্শ দিতে সক্ষম হয়।
মেটাকগনিশনের বাস্তবায়নের জন্য, আমরা একটি সহজ এজেন্ট তৈরি করব যা তার সিদ্ধান্ত গ্রহণের প্রক্রিয়া নিয়ে প্রতিফলন করে একই সাথে একটি সমস্যা সমাধান করে। এই উদাহরণে, আমরা এমন একটি সিস্টেম তৈরি করব যেখানে একটি এজেন্ট হোটেল নির্বাচনকে অপ্টিমাইজ করার চেষ্টা করে, তবে পরে তার নিজের যুক্তি মূল্যায়ন করে এবং ভুল বা অপটিমাল সিদ্ধান্ত নেওয়ার সময় তার কৌশল পরিবর্তন করে।
আমরা একটি মৌলিক উদাহরণ ব্যবহার করব যেখানে এজেন্ট মূল্যের এবং মানের সমন্বয়ে হোটেল নির্বাচন করে, কিন্তু পরে তার সিদ্ধান্তসমূহ নিয়ে “প্রতিফলন” করে এবং সেই অনুযায়ী সমন্বয় করে।
এখানে একটি উদাহরণ:
class HotelRecommendationAgent:
def __init__(self):
self.previous_choices = [] # পূর্বে নির্বাচিত হোটেলগুলি সংরক্ষণ করে
self.corrected_choices = [] # সংশোধিত পছন্দগুলি সংরক্ষণ করে
self.recommendation_strategies = ['cheapest', 'highest_quality'] # উপলব্ধ কৌশলগুলি
def recommend_hotel(self, hotels, strategy):
"""
Recommend a hotel based on the chosen strategy.
The strategy can either be 'cheapest' or 'highest_quality'.
"""
if strategy == 'cheapest':
recommended = min(hotels, key=lambda x: x['price'])
elif strategy == 'highest_quality':
recommended = max(hotels, key=lambda x: x['quality'])
else:
recommended = None
self.previous_choices.append((strategy, recommended))
return recommended
def reflect_on_choice(self):
"""
Reflect on the last choice made and decide if the agent should adjust its strategy.
The agent considers if the previous choice led to a poor outcome.
"""
if not self.previous_choices:
return "No choices made yet."
last_choice_strategy, last_choice = self.previous_choices[-1]
# ধরা যাক আমাদের কাছে কিছু ব্যবহারকারী প্রতিক্রিয়া রয়েছে যা আমাদের বলে যে শেষ পছন্দটি ভালো ছিল কি না
user_feedback = self.get_user_feedback(last_choice)
if user_feedback == "bad":
# যদি পূর্ববর্তী পছন্দ সন্তোষজনক না হয় তাহলে কৌশল সমন্বয় করুন
new_strategy = 'highest_quality' if last_choice_strategy == 'cheapest' else 'cheapest'
self.corrected_choices.append((new_strategy, last_choice))
return f"Reflecting on choice. Adjusting strategy to {new_strategy}."
else:
return "The choice was good. No need to adjust."
def get_user_feedback(self, hotel):
"""
Simulate user feedback based on hotel attributes.
For simplicity, assume if the hotel is too cheap, the feedback is "bad".
If the hotel has quality less than 7, feedback is "bad".
"""
if hotel['price'] < 100 or hotel['quality'] < 7:
return "bad"
return "good"
# হোটেলের একটি তালিকা অনুকরণ করুন (মূল্য এবং মান)
hotels = [
{'name': 'Budget Inn', 'price': 80, 'quality': 6},
{'name': 'Comfort Suites', 'price': 120, 'quality': 8},
{'name': 'Luxury Stay', 'price': 200, 'quality': 9}
]
# একটি এজেন্ট তৈরি করুন
agent = HotelRecommendationAgent()
# ধাপ ১: এজেন্ট "সর্বনিম্ন দাম" কৌশল ব্যবহার করে একটি হোটেল পরামর্শ দেয়
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"Recommended hotel (cheapest): {recommended_hotel['name']}")
# ধাপ ২: এজেন্ট পছন্দের পর্যালোচনা করে এবং প্রয়োজনে কৌশল সমন্বয় করে
reflection_result = agent.reflect_on_choice()
print(reflection_result)
# ধাপ ৩: এজেন্ট আবার পরামর্শ দেয়, 이번에는 সংশোধিত কৌশল ব্যবহার করে
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"Adjusted hotel recommendation (highest_quality): {adjusted_recommendation['name']}")
মূল বিষয় হল এজেন্টের ক্ষমতা:
এটি একটি সাধারণ মেটাকগনিশনের রূপ যেখানে সিস্টেম অভ্যন্তরীণ প্রতিক্রিয়া ভিত্তিতে তার যুক্তি প্রক্রিয়া পরিবর্তন করতে সক্ষম।
মেটাকগনিশন একটি শক্তিশালী টুল যা AI এজেন্টের সক্ষমতা উল্লেখযোগ্যভাবে বৃদ্ধি করতে পারে। মেটাকগনিটিভ প্রক্রিয়া অন্তর্ভুক্ত করে, আপনি আরও বুদ্ধিমান, অভিযোজ্য, এবং দক্ষ এজেন্ট ডিজাইন করতে পারবেন। অতিরিক্ত সম্পদ ব্যবহার করে AI এজেন্টের মেটাকগনিশনের জগত আরও অন্বেষণ করুন।
Microsoft Foundry Discord এ যোগ দিন অন্য শিক্ষার্থীদের সাথে দেখা করতে, অফিস আওয়ার এ অংশ নিতে এবং আপনার AI এজেন্ট সম্পর্কে প্রশ্নের উত্তর পেতে।
মাল্টি-এজেন্ট ডিজাইন প্যাটার্ন
অস্বীকৃতি: এই নথিটি AI অনুবাদ পরিষেবা Co-op Translator ব্যবহার করে অনূদিত হয়েছে। যদিও আমরা শুদ্ধতার জন্য চেষ্টা করি, অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল নথিটি তার স্বভাষায় কর্তৃত্বপূর্ণ উৎস হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদের ব্যবহারে প্রয়োজনীয় ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়বদ্ধ নই।