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

قبل از ورود به فرایندهای فراشناختی، ضروری است که اجزای پایه یک عامل هوش مصنوعی را بشناسید. یک عامل هوش مصنوعی معمولاً شامل موارد زیر است:
این اجزا با هم کار میکنند تا یک «واحد تخصصی» بسازند که بتواند وظایف خاصی را انجام دهد.
مثال: یک آژانس مسافرتی را در نظر بگیرید، خدمات عاملی که نه تنها تعطیلات شما را برنامهریزی میکند بلکه مسیر خود را بر اساس دادههای بهروز و تجربیات سفر مشتریان قبلی تنظیم میکند.
تصور کنید در حال طراحی سرویس آژانس مسافرتی مبتنی بر هوش مصنوعی هستید. این عامل، «آژانس مسافرتی»، به کاربران در برنامهریزی تعطیلات کمک میکند. برای به کارگیری فراشناخت، آژانس مسافرتی باید اقدامات خود را بر اساس خودآگاهی و تجربیات گذشته ارزیابی و تنظیم کند. در اینجا نقش فراشناخت میتواند به شرح زیر باشد:
وظیفه فعلی کمک به کاربر در برنامهریزی سفری به پاریس است.
آژانس مسافرتی از فراشناخت برای ارزیابی عملکرد و یادگیری از تجربیات گذشته استفاده میکند. به عنوان مثال:
در اینجا نمونه کدی سادهشده از چگونگی بهکارگیری فراشناخت در کد آژانس مسافرتی آمده است:
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)
# استفاده نمونه در یک درخواست بوکینگ
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) میتوانند برای رتبهبندی مجدد و امتیازدهی با ارزیابی میزان ارتباط و کیفیت اسناد بازیابیشده یا پاسخهای تولیدشده استفاده شوند. عملکرد این روش به شرح زیر است:
بازیابی: مرحلهٔ اولیه واکشی، مجموعهای از اسناد یا پاسخهای نامزد را بر اساس پرسش دریافت میکند.
رتبهبندی مجدد: LLM این نامزدها را ارزیابی کرده و بر اساس ارتباط و کیفیتشان رتبهبندی مجدد انجام میدهد. این مرحله تضمین میکند که مرتبطترین و باکیفیتترین اطلاعات ابتدا ارائه شوند.
امتیازدهی: LLM به هر نامزد امتیاز میدهد که بازتابدهندهٔ ارتباط و کیفیت آن است. این به انتخاب بهترین پاسخ یا سند برای کاربر کمک میکند.
با استفاده از LLM برای رتبهبندی مجدد و امتیازدهی، سیستم میتواند اطلاعات دقیقتر و مرتبطتری ارائه دهد و تجربهٔ کلی کاربر را بهبود بخشد.
در اینجا مثالی از چگونگی استفادهٔ یک کارگزار سفر از مدل زبان بزرگ (LLM) برای رتبهبندی مجدد و امتیازدهی مقصدهای سفر بر اساس ترجیحات کاربر به زبان پایتون:
کارگزار سفر میخواهد بهترین مقصدهای سفر را بر اساس ترجیحات مشتری پیشنهاد دهد. LLM به رتبهبندی مجدد و امتیازدهی مقصدها کمک میکند تا مرتبطترین گزینهها ارائه شوند.
در اینجا نحوه بهروزرسانی مثال قبلی برای استفاده از Azure OpenAI Services آمده است:
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
}
# فراخوانی API Azure 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 جایگزین کنید.
با بهرهگیری از LLM برای رتبهبندی مجدد و امتیازدهی، کارگزار سفر میتواند پیشنهادهای سفری شخصیسازی شده و مرتبطتر به مشتریان ارائه دهد و تجربه کلی آنها را بهبود بخشد.
تولید بازیابیافزوده (Retrieval-Augmented Generation یا 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
در اینجا مثالی عملی از چگونگی ارزیابی ارتباط توصیههای سفری توسط Travel Agent آمده است:
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)
جستجو با هدف به معنای درک و تفسیر هدف یا انگیزهٔ پشت پرسش کاربر برای واکشی و تولید مرتبطترین و مفیدترین اطلاعات است. این رویکرد فراتر از تطبیق صرف کلمات کلیدی است و بر درک نیازها و زمینه واقعی کاربر تمرکز دارد.
بیایید Travel Agent را به عنوان نمونه ببینیم که چگونه جستجو با هدف پیادهسازی میشود.
جمعآوری ترجیحات کاربر
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 method): این متد ترجیحات را بر اساس بازخورد کاربر و ساختار تنظیم میکند.adjust_based_on_environment method): این متد تنظیمات را بر اساس ساختار و بازخورد سفارشی میکند.با مجهز کردن سیستم به آگاهی محیطی و استدلال بر اساس ساختار، میتوان پرس و جوهای دقیقتر و مرتبطتری تولید کرد که منجر به توصیههای بهتر سفر و تجربه کاربری شخصیتر میشود.
SQL (زبان ساختیافته پرس و جو) ابزاری قدرتمند برای تعامل با پایگاههای داده است. هنگام استفاده به عنوان بخشی از رویکرد Retrieval-Augmented Generation (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 به عنوان بخشی از تکنیک Retrieval-Augmented Generation (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 ترجمه شده است. در حالی که تلاش ما بر دقت است، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیهایی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه تخصصی انسانی توصیه میشود. ما مسئول هیچگونه سوءتفاهم یا برداشت نادرستی که ناشی از استفاده از این ترجمه باشد، نیستیم.