(এই পাঠের ভিডিও দেখতে উপরের ছবিতে ক্লিক করুন)
AI এজেন্টে মেটাকগনিশন
AI এজেন্টদের মেটাকগনিশন সম্পর্কিত পাঠে আপনাকে স্বাগতম! এই অধ্যায়টি নতুনদের জন্য তৈরি যারা জানতে আগ্রহী যে কিভাবে AI এজেন্টরা তাদের নিজস্ব চিন্তা প্রক্রিয়া সম্পর্কে চিন্তা করতে পারে। এই পাঠের শেষে, আপনি মূল ধারণাগুলো বুঝতে পারবেন এবং মেটাকগনিশন AI এজেন্ট ডিজাইনে প্রয়োগের জন্য ব্যবহারিক উদাহরণ সহ প্রস্তুত থাকবেন।
এই পাঠ সম্পন্ন করার পরে, আপনি সক্ষম হবেন:
মেটাকগনিশন বলতে বোঝায় উচ্চতর পর্যায়ের জ্ঞানীয় প্রক্রিয়া যা এর মধ্যে নিজের চিন্তা সম্পর্কে চিন্তা অন্তর্ভুক্ত। AI এজেন্টদের জন্য, এটি অর্থ তাদের ক্রিয়াকলাপগুলি স্ব-মর্যাদা ও অতীত অভিজ্ঞতার ভিত্তিতে মূল্যায়ন ও সামঞ্জস্য করা। মেটাকগনিশন, বা “চিন্তা সম্পর্কে চিন্তা,” হল এজেন্টিক AI সিস্টেমগুলোর বিকাশে একটি গুরুত্বপূর্ণ ধারণা। এতে AI সিস্টেমগুলি তাদের অভ্যন্তরীণ প্রক্রিয়া সম্পর্কে সচেতন থাকে এবং তাদের আচরণ পর্যবেক্ষণ, নিয়ন্ত্রণ এবং অনুকূলিত করতে সক্ষম হয়। যেমন আমরা ঘর পড়ি বা কোনো সমস্যা দেখি তেমনি। এই স্ব-সচেতনতা AI সিস্টেমগুলিকে ভাল সিদ্ধান্ত নিতে সাহায্য করে, ত্রুটি সনাক্ত করে এবং সময়ের সাথে তাদের কর্মক্ষমতা উন্নত করতে সহায়ক — যা আবার টিউরিং টেস্ট এবং 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)
# একটি বুকিং অনুরোধের মধ্যে উদাহরণ usage
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)"]
}
উদাহরণ:
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)
প্রি-এম্পটিভ কন্টেক্সট লোড বলতে বুঝায় এমন একটি প্রক্রিয়া যেখানে প্রশ্ন প্রক্রিয়াকরণের পূর্বে মডেলে প্রাসঙ্গিক প্রেক্ষাপট বা পটভূমির তথ্য লোড করা হয়। এর মানে মডেল শুরু থেকেই এই তথ্য অ্যাক্সেস করতে পারে, যা তাকে অতিরিক্ত তথ্য পুনরুদ্ধার ছাড়া আরও তথ্যসমৃদ্ধ উত্তর তৈরি করতে সাহায্য করে।
নিম্নলিখিত উদাহরণটি একটি ট্রাভেল এজেন্ট অ্যাপ্লিকেশনের জন্য পাইথনে কিভাবে প্রি-এম্পটিভ কন্টেক্সট লোড কার্যকর করা যেতে পারে তা সরলীকৃতভাবে দেখায়:
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 মেথড প্রি-লোড করা কন্টেক্সট ডিকশনরি থেকে প্রাসঙ্গিক তথ্য নিয়ে আসে।
কন্টেক্সট প্রি-লোড করার মাধ্যমে, ট্রাভেল এজেন্ট অ্যাপ্লিকেশন বাহ্যিক উৎস থেকে রিয়েল-টাইমে তথ্য পুনরুদ্ধার না করেও দ্রুত ব্যবহারকারীর প্রশ্নের উত্তর দিতে পারে। এটি অ্যাপ্লিকেশনকে আরও দক্ষ এবং দ্রুতসাড়া করে তোলে।
লক্ষ্য নিয়ে পরিকল্পনা বানানো বলতে স্পষ্ট একটি উদ্দেশ্য বা লক্ষ্য ফলাফল মাথায় রেখে শুরু করা বোঝায়। এই লক্ষ্যটি আগেভাগে সংজ্ঞায়িত করে, মডেল পুনরাবৃত্তিমূলক প্রক্রিয়ায় এটি নির্দেশমূলক নীতিমালা হিসেবে ব্যবহার করতে পারে। এটি নিশ্চিত করে যে প্রতিটি পুনরাবৃত্তি কাঙ্ক্ষিত ফলাফলের দিকে এগোয়, ফলে প্রক্রিয়াটি আরও দক্ষ এবং কেন্দ্রীভূত হয়।
নিম্নলিখিত উদাহরণে দেখানো হয়েছে কিভাবে আপনি একটি ট্রাভেল এজেন্টের জন্য লক্ষ্য নিয়ে পরিকল্পনা বানিয়ে পুনরাবৃত্তি করতে পারেন পাইথনে:
একজন ট্রাভেল এজেন্ট একজন ক্লায়েন্টের জন্য কাস্টমাইজড ছুটির পরিকল্পনা তৈরি করতে চায়। লক্ষ্য হল ক্লায়েন্টের পছন্দ এবং বাজেট অনুযায়ী সন্তুষ্টি সর্বাধিক করে একটি ভ্রমণসূচি তৈরি করা।
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) ব্যবহার করতে পারে পাইথনে:
একজন ট্রাভেল এজেন্ট ক্লায়েন্টের পছন্দ অনুযায়ী সেরা ভ্রমণ গন্তব্য সুপারিশ করতে চায়। 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 ক্লাস সম্ভাব্য ভ্রমণ গন্তব্যের একটি তালিকা নিয়েinitialized হয়, যার প্রতিটি গন্তব্যের নাম এবং বিবরণ থাকে।
সুপারিশ পাওয়া (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 ব্যবহার করে পুনঃর্যাঙ্কিং ও স্কোরিংয়ের মাধ্যমে, ট্রাভেল এজেন্ট ক্লায়েন্টদের জন্য আরও ব্যক্তিগতকৃত এবং প্রাসঙ্গিক ভ্রমণ পরামর্শ দিতে পারে, যা তাদের সামগ্রিক অভিজ্ঞতা উন্নত করে।
রিট্রিভাল-অগমেন্টেড জেনারেশন (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 মডেল ব্যবহার করে কোড লিখে এবং চালায়। এই এজেন্টগুলো বিভিন্ন প্রোগ্রামিং ভাষায় কোড তৈরি এবং চালিয়ে জটিল সমস্যা সমাধান করতে, কাজ স্বয়ংক্রিয় করতে এবং মূল্যবান অন্তর্দৃষ্টি প্রদান করতে পারে।
১. স্বয়ংক্রিয় কোড জেনারেশন: নির্দিষ্ট কাজের জন্য কোড স্নিপেট তৈরি, যেমন: ডেটা বিশ্লেষণ, ওয়েব স্ক্র্যাপিং, বা মেশিন লার্নিং। ২. RAG হিসাবে SQL: ডেটাবেস থেকে তথ্য উদ্ধার এবং ব্যবস্থাপনা করতে SQL কোয়েরি ব্যবহার। ৩. সমস্যা সমাধান: নির্দিষ্ট সমস্যার সমাধানের জন্য কোড তৈরি ও চালানো, যেমন অ্যালগরিদম অপটিমাইজ করা বা ডেটা বিশ্লেষণ।
ভাবুন আপনি একটি কোড তৈরি এজেন্ট ডিজাইন করছেন। এটি কিভাবে কাজ করতে পারে:
১. কাজ: একটি ডেটাসেট বিশ্লেষণ করে প্রবণতা ও প্যাটার্ন চিহ্নিত করা। ২. ধাপসমূহ:
এই উদাহরণে, আমরা একটি কোড তৈরি এজেন্ট ডিজাইন করব, ট্রাভেল এজেন্ট, যা ব্যবহারকারীদের ভ্রমণ পরিকল্পনায় সাহায্য করবে কোড তৈরি ও চালিয়ে। এই এজেন্ট ভ্রমণ বিকল্প খোঁজা, ফলাফল ফিল্টার করা এবং জেনারেটিভ 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 হিসেবে ব্যবহার করা যায়।
১. ডাটাবেস ইন্টারঅ্যাকশন:
২. 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';
RAG প্রযুক্তির অংশ হিসেবে SQL ব্যবহার করে, ট্রাভেল এজেন্টের মত 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 ব্যবহার করে অনুদিত হয়েছে। আমরা যথাসম্ভব সঠিকতার চেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ভুল বা অসংগতি থাকতে পারে। মূল ভাষায় থাকা মূল নথিটিই নির্ভরযোগ্য উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদের ব্যবহার থেকে উদ্ভূত কোনো ভুল বোঝাবুঝি বা ব্যাখ্যার জন্য আমরা দায়বদ্ধ নই।