(برای مشاهده ویدیوی این درس، روی تصویر بالا کلیک کنید)
فراشناخت در عاملهای هوش مصنوعی
به درس فراشناخت در عاملهای هوش مصنوعی خوش آمدید! این فصل برای مبتدیانی طراحی شده است که کنجکاو هستند بدانند عاملهای هوش مصنوعی چگونه میتوانند درباره فرآیندهای فکری خودشان فکر کنند. در پایان این درس، مفاهیم کلیدی را درک خواهید کرد و با مثالهای عملی مجهز میشوید تا فراشناخت را در طراحی عاملهای هوش مصنوعی به کار ببرید.
پس از اتمام این درس، قادر خواهید بود:
فراشناخت به فرآیندهای شناختی مرتبه بالاتری اشاره دارد که شامل فکر کردن درباره فکر خود فرد است. برای عاملهای هوش مصنوعی، این به معنای توانایی ارزیابی و تنظیم اقدامات خود بر اساس خودآگاهی و تجربیات گذشته است. فراشناخت، یا «فکر کردن درباره فکر کردن»، مفهومی مهم در توسعه سیستمهای هوش مصنوعی عاملمحور است. این به سیستمهای هوش مصنوعی اجازه میدهد که از فرآیندهای داخلی خود آگاه باشند و بتوانند رفتار خود را نظارت، تنظیم و متناسب با شرایط تغییر دهند. همانند کاری که ما هنگام خواندن موقعیت یا نگاه به یک مسئله انجام میدهیم. این خودآگاهی میتواند به سیستمهای هوش مصنوعی کمک کند تصمیمات بهتری بگیرند، خطاها را شناسایی کنند و عملکرد خود را در طول زمان بهبود بخشند — که دوباره به تست تورینگ و بحث درباره اینکه آیا هوش مصنوعی قرار است بر جهان مسلط شود، مرتبط است.
در زمینه سیستمهای هوش مصنوعی عاملمحور، فراشناخت میتواند به حل چندین چالش کمک کند، مانند:
فراشناخت، یا «فکر کردن درباره فکر کردن»، یک فرآیند شناختی مرتبه بالا است که شامل خودآگاهی و خودتنظیمی فرآیندهای شناختی فرد است. در حوزه هوش مصنوعی، فراشناخت به عاملها این قدرت را میدهد که استراتژیها و اقدامات خود را ارزیابی و تنظیم کنند که منجر به بهبود قابلیتهای حل مسئله و اتخاذ تصمیم میشود. با درک فراشناخت، میتوانید عاملهای هوش مصنوعی طراحی کنید که نه تنها هوشمندانهتر بلکه انعطافپذیرتر و کارآمدتر باشند. در فراشناخت واقعی، هوش مصنوعی به طور صریح درباره استدلال خودش استدلال میکند.
مثال: «من پروازهای ارزانتر را اولویت دادم چون… ممکن است پروازهای مستقیم را از دست بدهم، پس دوباره بررسی میکنم.» دنبال کردن اینکه چگونه یا چرا مسیر خاصی را انتخاب کرد.
فراشناخت نقش مهمی در طراحی عاملهای هوش مصنوعی دارد به دلایل مختلف:

قبل از پرداختن به فرآیندهای فراشناختی، مهم است اجزای پایه یک عامل هوش مصنوعی را بشناسیم. یک عامل هوش مصنوعی معمولاً از اجزای زیر تشکیل شده است:
این اجزا با هم کار میکنند تا یک «واحد تخصصی» ایجاد کنند که میتواند وظایف خاصی را انجام دهد.
مثال: به یک نماینده مسافرتی فکر کنید، خدمتی که نه تنها تعطیلات شما را برنامهریزی میکند بلکه مسیر خود را بر اساس دادههای زمان واقعی و تجربیات گذشته مشتری تنظیم میکند.
تصور کنید در حال طراحی یک سرویس نماینده مسافرتی مبتنی بر هوش مصنوعی هستید. این عامل، «نماینده مسافرتی»، به کاربران در برنامهریزی تعطیلات کمک میکند. برای وارد کردن فراشناخت، نماینده مسافرتی باید اقدامات خود را بر اساس خودآگاهی و تجربیات گذشته ارزیابی و تنظیم کند. در اینجا چگونگی نقش فراشناخت آورده شده است:
وظیفه کنونی کمک به یک کاربر برای برنامهریزی سفر به پاریس است.
نماینده مسافرتی از فراشناخت برای ارزیابی عملکرد خود و یادگیری از تجربیات گذشته استفاده میکند. به عنوان مثال:
در اینجا یک مثال سادهشده از کد نماینده مسافرتی آورده شده است که فراشناخت را به کار میگیرد:
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)
با وارد کردن فراشناخت، نماینده مسافرتی میتواند پیشنهادهای سفر شخصیتر و دقیقتری ارائه دهد و تجربه کلی کاربر را بهبود بخشد.
برنامهریزی یک جزء حیاتی از رفتار عامل هوش مصنوعی است. این شامل ترسیم گامهای لازم برای رسیدن به یک هدف است، با در نظر گرفتن وضعیت فعلی، منابع و موانع ممکن.
مثال: در اینجا مراحلی که عامل سفر باید برای کمک به کاربر در برنامهریزی موثر سفر خود انجام دهد آمده است:
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)
# نمونه استفاده در یک درخواست booing
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 برای اصلاح خطاها و بهبود دقت عوامل هوش مصنوعی تمرکز دارد. این شامل:
یک عامل جستجو را در نظر بگیرید که اطلاعات را از وب بازیابی میکند تا به پرسشهای کاربر پاسخ دهد. رویکرد RAG تصحیحی ممکن است شامل موارد زیر باشد:
RAG تصحیحی (تولید افزوده شده با بازیابی) توانایی هوش مصنوعی را در بازیابی و تولید اطلاعات در حالی که خطاها را اصلاح میکند افزایش میدهد. بیایید ببینیم چگونه عامل سفر میتواند از رویکرد 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) میتوانند برای مرتبسازی مجدد و امتیازدهی با ارزیابی مرتبط بودن و کیفیت اسناد بازیابی شده یا پاسخهای تولید شده استفاده شوند. عملکرد اینگونه است:
بازیابی: مرحله اولیه بازیابی یک مجموعه از اسناد یا پاسخهای نامزد شده را بر اساس پرسش دریافت میکند.
مرتبسازی مجدد: مدل زبانی بزرگ این نامزدها را ارزیابی کرده و بر اساس مرتبط بودن و کیفیت توسط آنها را مرتب میکند. این مرحله تضمین میکند که مرتبطترین و باکیفیتترین اطلاعات ابتدا ارائه شود.
امتیازدهی: مدل به هر نامزد امتیاز میدهد که نشاندهنده مرتبط بودن و کیفیت آنها است. این کمک میکند بهترین پاسخ یا سند برای کاربر انتخاب شود.
با استفاده از مدلهای زبانی بزرگ برای مرتبسازی مجدد و امتیازدهی، سیستم میتواند اطلاعات دقیقتر و مرتبطتر با زمینه ارائه دهد و تجربه کاربری کلی را بهبود بخشد.
در اینجا مثالی از چگونگی استفاده نماینده سفر از مدل زبانی بزرگ برای مرتبسازی مجدد و امتیازدهی مقاصد سفر بر اساس ترجیحات کاربر در پایتون آمده است:
یک نماینده سفر میخواهد بهترین مقاصد سفر را بر اساس ترجیحات مشتری توصیه کند. مدل زبانی بزرگ کمک میکند مقاصد را مرتبسازی مجدد کند و امتیازدهی نماید تا مرتبطترین گزینهها ارائه شوند.
در اینجا نحوه بهروزرسانی مثال قبلی برای استفاده از سرویسهای Azure OpenAI آمده است:
import requests
import json
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def get_recommendations(self, preferences, api_key, endpoint):
# ایجاد یک پرامپت برای آزور 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
}
# فراخوانی API آزور OpenAI برای دریافت مقصدهای مرتب شده و امتیازدهی شده
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 یک پیام ایجاد میکند بر اساس ترجیحات کاربر و یک درخواست HTTP POST به API Azure OpenAI ارسال میکند تا مقاصد مرتبشده و امتیازدهی شده را دریافت کند.
ساخت پیام (متد generate_prompt): این متد پیام را برای Azure OpenAI میسازد که شامل ترجیحات کاربر و فهرست مقاصد است. این پیام مدل را راهنمایی میکند که مقاصد را بر اساس ترجیحات ارائه شده مرتب و امتیازدهی کند.
درخواست API: کتابخانه requests برای ارسال درخواست HTTP POST به نقطه پایانی API Azure OpenAI استفاده میشود. پاسخ شامل مقاصد مرتب شده و امتیازدهی شده است.
مثال کاربردی: نماینده سفر ترجیحات کاربر (مانند علاقه به گردشگری و فرهنگ متنوع) را جمعآوری میکند و از سرویس Azure OpenAI برای دریافت توصیههای امتیازدهی شده و مرتب شده برای مقاصد سفر استفاده میکند.
مطمئن شوید که your_azure_openai_api_key را با کلید واقعی API Azure OpenAI خود و https://your-endpoint.com/... را با آدرس واقعی نقطه پایانی پیادهسازی Azure OpenAIتان جایگزین کنید.
با بهرهگیری از مدل زبانی بزرگ برای مرتبسازی مجدد و امتیازدهی، نماینده سفر میتواند توصیههای سفر شخصیشدهتر و مرتبطتری به مشتریان ارائه دهد و تجربه کلی آنها را بهبود بخشد.
تولید افزوده بازیابیشده (RAG) میتواند هم یک تکنیک پیامرسانی و هم ابزاری در توسعهٔ عاملهای هوش مصنوعی باشد. درک تمایز میان این دو به شما کمک میکند از RAG به طور مؤثرتری در پروژههایتان استفاده کنید.
چیست؟
چگونه کار میکند:
مثال در نماینده سفر:
چیست؟
چگونه کار میکند:
مثال در نماینده سفر:
| جنبه | تکنیک پیامرسانی | ابزار |
|---|---|---|
| دستی در مقابل خودکار | فرمولبندی دستی پیامها برای هر پرسش. | فرایند خودکار برای بازیابی و تولید. |
| کنترل | کنترل بیشتری روی فرآیند بازیابی ارائه میدهد. | فرآیند بازیابی و تولید را ساده و خودکار میکند. |
| انعطافپذیری | امکان پیامهای سفارشیشده بر اساس نیازهای خاص. | برای پیادهسازیهای در مقیاس بزرگ کاراتر است. |
| پیچیدگی | نیازمند فرمولبندی و تنظیم پیامها است. | آسانتر برای یکپارچهسازی در معماری عامل هوش مصنوعی. |
مثال تکنیک پیامرسانی:
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)
ارزیابی مرتبط بودن جنبهای حیاتی از عملکرد عاملهای هوش مصنوعی است. این اطمینان میدهد که اطلاعات بازیابی شده و تولید شده توسط عامل مناسب، دقیق و مفید برای کاربر باشد. بیایید به روشهای ارزیابی مرتبط بودن در عاملهای هوش مصنوعی همراه با مثالهای عملی و تکنیکها بپردازیم.
مثال:
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):
# استفاده از پردازش زبان طبیعی برای استخراج اطلاعات کلیدی از پرسوجوی کاربر
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)
عوامل تولید کد از مدلهای هوش مصنوعی برای نوشتن و اجرای کد استفاده میکنند، حل مسائل پیچیده و خودکارسازی وظایف.
عوامل تولید کد از مدلهای هوش مصنوعی مولد برای نوشتن و اجرای کد استفاده میکنند. این عوامل میتوانند مسائل پیچیده را حل کنند، وظایف را خودکارسازی کنند و با تولید و اجرای کد در زبانهای برنامهنویسی مختلف بینشهای ارزشمندی ارائه دهند.
فرض کنید شما در حال طراحی یک عامل تولید کد هستید. اینگونه ممکن است کار کند:
در این مثال، ما یک عامل تولید کد به نام آژانس مسافرتی طراحی میکنیم که به کاربران در برنامهریزی سفرشان با تولید و اجرای کد کمک میکند. این عامل میتواند وظایفی مانند دریافت گزینههای سفر، فیلتر نتایج و تدوین برنامه سفر را با استفاده از هوش مصنوعی مولد انجام دهد.
جمعآوری ترجیحات کاربر
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 میتواند دادههای مرتبط را از پایگاههای داده بازیابی کند تا پاسخها یا اقدامات در عوامل هوش مصنوعی را اطلاع دهد و تولید کند. بیایید ببینیم چگونه 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 بهعنوان بخشی از تکنیک تولید با بازیابی افزوده (RAG)، عوامل هوش مصنوعی مانند آژانس مسافرتی میتوانند دادههای مرتبط را بهطور پویا بازیابی و استفاده کنند تا توصیههای دقیق و شخصیسازی شده ارائه دهند.
برای نشان دادن پیادهسازی متاکاگنیشن، بیایید یک عامل ساده را بسازیم که فرآیند تصمیمگیری خودش را بازتاب میدهد در حالی که یک مسئله را حل میکند. در این مثال، سیستمی میسازیم که عامل تلاش میکند انتخاب هتل را بهینه کند، ولی سپس استدلال خود را ارزیابی کرده و استراتژیاش را هنگامی که اشتباه یا انتخابهای بهینهای نمیکند تنظیم میکند.
این را با مثالی ابتدایی شبیهسازی میکنیم که عامل هتلها را بر اساس ترکیبی از قیمت و کیفیت انتخاب میکند، ولی سپس در تصمیماتش «بازتاب» داشته و به تناسب آن تنظیم میکند.
در اینجا یک مثال است:
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']}")
نکته کلیدی این است که عامل توانایی دارد:
این شکلی ساده از متاکاگنیشن است که سیستم قادر است فرآیند استدلال خود را بر اساس بازخورد داخلی تنظیم کند.
متاکاگنیشن ابزاری قدرتمند است که میتواند قابلیتهای عوامل هوش مصنوعی را بهطرز قابل توجهی بهبود بخشد. با ادغام فرآیندهای متاکاگنیتیو، میتوانید عواملی طراحی کنید که هوشمندتر، سازگارتر و کارآمدتر باشند. از منابع اضافی استفاده کنید تا دنیای جذاب متاکاگنیشن در عوامل هوش مصنوعی را بیشتر بشناسید.
به Microsoft Foundry Discord بپیوندید تا با دیگر یادگیرندگان ملاقات کنید، در ساعات اداری شرکت کنید و سوالات خود درباره عوامل هوش مصنوعی را مطرح کنید.
سلب مسئولیت: این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیهایی باشند. سند اصلی به زبان مادری خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما در قبال هرگونه سوء تفاهم یا برداشت نادرست ناشی از استفاده از این ترجمه مسئولیتی نداریم.