(คลิกที่ภาพด้านบนเพื่อดูวิดีโอของบทเรียนนี้)
การรู้คิดในเอเจนต์ 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)
# ตัวอย่างการใช้งานภายในคำขอการโห่
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)
Firstly let’s start by understanding the difference between RAG Tool and Pre-emptive Context Load

RAG ผสานระบบการสืบค้นเข้ากับโมเดลเชิงสร้าง เมื่อมีการสอบถาม ระบบการสืบค้นจะดึงเอกสารหรือข้อมูลที่เกี่ยวข้องจากแหล่งภายนอก และข้อมูลที่ดึงมานั้นจะถูกใช้เพื่อเสริมเข้าไปในอินพุตของโมเดลเชิงสร้าง วิธีนี้ช่วยให้โมเดลสร้างคำตอบที่แม่นยำและสอดคล้องกับบริบทมากขึ้น
ในระบบ RAG เอเจนต์จะดึงข้อมูลที่เกี่ยวข้องจากฐานความรู้และใช้เพื่อสร้างคำตอบหรือการกระทำที่เหมาะสม
แนวทาง Corrective RAG มุ่งเน้นการใช้เทคนิค RAG เพื่อแก้ไขข้อผิดพลาดและปรับปรุงความแม่นยำของเอเจนต์ AI ซึ่งรวมถึง:
ลองพิจารณาเอเจนต์ค้นหาที่ดึงข้อมูลจากเว็บเพื่อตอบคำถามของผู้ใช้ แนวทาง Corrective RAG อาจรวมถึง:
Corrective RAG (Retrieval-Augmented Generation) ช่วยเพิ่มความสามารถของ AI ในการดึงและสร้างข้อมูลพร้อมกับการแก้ไขความไม่ถูกต้อง ลองดูว่าตัวแทนท่องเที่ยวสามารถใช้แนวทาง Corrective 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)
นี่คือตัวอย่างโค้ด Python แบบเรียบง่ายที่ผนวกแนวทาง Corrective 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)
Pre-emptive Context Load เกี่ยวข้องกับการโหลดบริบทหรือข้อมูลพื้นหลังที่เกี่ยวข้องเข้าสู่โมเดลก่อนที่จะประมวลผลคำถาม ซึ่งหมายความว่าโมเดลสามารถเข้าถึงข้อมูลนี้ตั้งแต่เริ่มต้น ซึ่งช่วยให้สามารถสร้างคำตอบที่มีข้อมูลมากขึ้นโดยไม่ต้องดึงข้อมูลเพิ่มเติมในระหว่างกระบวนการ
นี่คือตัวอย่างที่เรียบง่ายของวิธีที่การโหลดบริบทเชิงป้องกันล่วงหน้าอาจมีลักษณะสำหรับแอปพลิเคชันตัวแทนท่องเที่ยวใน Python:
class TravelAgent:
def __init__(self):
# เตรียมข้อมูลปลายทางยอดนิยมไว้ล่วงหน้า
self.context = {
"Paris": {"country": "France", "currency": "Euro", "language": "French", "attractions": ["Eiffel Tower", "Louvre Museum"]},
"Tokyo": {"country": "Japan", "currency": "Yen", "language": "Japanese", "attractions": ["Tokyo Tower", "Shibuya Crossing"]},
"New York": {"country": "USA", "currency": "Dollar", "language": "English", "attractions": ["Statue of Liberty", "Times Square"]},
"Sydney": {"country": "Australia", "currency": "Dollar", "language": "English", "attractions": ["Sydney Opera House", "Bondi Beach"]}
}
def get_destination_info(self, destination):
# ดึงข้อมูลปลายทางจากบริบทที่เตรียมไว้ล่วงหน้า
info = self.context.get(destination)
if info:
return f"{destination}:\nCountry: {info['country']}\nCurrency: {info['currency']}\nLanguage: {info['language']}\nAttractions: {', '.join(info['attractions'])}"
else:
return f"Sorry, we don't have information on {destination}."
# ตัวอย่างการใช้งาน
travel_agent = TravelAgent()
print(travel_agent.get_destination_info("Paris"))
print(travel_agent.get_destination_info("Tokyo"))
การเริ่มต้น (__init__ method): คลาส TravelAgent โหลดพจนานุกรมที่มีข้อมูลเกี่ยวกับจุดหมายยอดนิยมเช่น Paris, Tokyo, New York, และ Sydney ล่วงหน้า พจนานุกรมนี้รวมรายละเอียดเช่นประเทศ สกุลเงิน ภาษา และสถานที่ท่องเที่ยวสำคัญสำหรับแต่ละจุดหมาย
การดึงข้อมูล (get_destination_info method): เมื่อผู้ใช้สอบถามเกี่ยวกับจุดหมายเฉพาะ วิธีการ get_destination_info จะดึงข้อมูลที่เกี่ยวข้องจากพจนานุกรมบริบทที่โหลดล่วงหน้า
โดยการโหลดบริบทล่วงหน้า แอปตัวแทนท่องเที่ยวสามารถตอบคำถามของผู้ใช้ได้อย่างรวดเร็วโดยไม่ต้องดึงข้อมูลจากแหล่งภายนอกแบบเรียลไทม์ ซึ่งทำให้แอปมีประสิทธิภาพและตอบสนองได้ดีขึ้น
การบูตสแตรปแผนด้วยเป้าหมายเกี่ยวข้องกับการเริ่มต้นด้วยวัตถุประสงค์หรือผลลัพธ์ที่ชัดเจนตั้งแต่ต้น โดยการกำหนดเป้าหมายนี้ล่วงหน้า โมเดลสามารถใช้มันเป็นหลักการชี้นำตลอดกระบวนการเชิงวนซ้ำ ช่วยให้แต่ละรอบของการปรับปรุงเคลื่อนที่ไปใกล้เป้าหมายที่ต้องการมากขึ้น ทำให้กระบวนการมีประสิทธิภาพและมีโฟกัสมากขึ้น
นี่คือตัวอย่างวิธีที่คุณอาจบูตสแตรปแผนการเดินทางด้วยเป้าหมายก่อนการวนซ้ำสำหรับตัวแทนท่องเที่ยวใน Python:
ตัวแทนท่องเที่ยวต้องการวางแผนวันหยุดที่ปรับแต่งสำหรับลูกค้า เป้าหมายคือการสร้างแผนการเดินทางที่เพิ่มความพึงพอใจของลูกค้ามากที่สุดตามความชอบและงบประมาณของพวกเขา
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def bootstrap_plan(self, preferences, budget):
plan = []
total_cost = 0
for destination in self.destinations:
if total_cost + destination['cost'] <= budget and self.match_preferences(destination, preferences):
plan.append(destination)
total_cost += destination['cost']
return plan
def match_preferences(self, destination, preferences):
for key, value in preferences.items():
if destination.get(key) != value:
return False
return True
def iterate_plan(self, plan, preferences, budget):
for i in range(len(plan)):
for destination in self.destinations:
if destination not in plan and self.match_preferences(destination, preferences) and self.calculate_cost(plan, destination) <= budget:
plan[i] = destination
break
return plan
def calculate_cost(self, plan, new_destination):
return sum(destination['cost'] for destination in plan) + new_destination['cost']
# ตัวอย่างการใช้งาน
destinations = [
{"name": "Paris", "cost": 1000, "activity": "sightseeing"},
{"name": "Tokyo", "cost": 1200, "activity": "shopping"},
{"name": "New York", "cost": 900, "activity": "sightseeing"},
{"name": "Sydney", "cost": 1100, "activity": "beach"},
]
preferences = {"activity": "sightseeing"}
budget = 2000
travel_agent = TravelAgent(destinations)
initial_plan = travel_agent.bootstrap_plan(preferences, budget)
print("Initial Plan:", initial_plan)
refined_plan = travel_agent.iterate_plan(initial_plan, preferences, budget)
print("Refined Plan:", refined_plan)
การเริ่มต้น (__init__ method): คลาส TravelAgent ถูกเริ่มต้นด้วยรายการจุดหมายที่เป็นไปได้แต่ละรายการมีคุณลักษณะเช่นชื่อ ค่าใช้จ่าย และประเภทกิจกรรม
การบูตสแตรปแผน (bootstrap_plan method): วิธีนี้สร้างแผนการเดินทางเริ่มต้นตามความชอบและงบประมาณของลูกค้า มันวนผ่านรายการจุดหมายและเพิ่มพวกมันเข้าสู่แผนหากพวกมันตรงกับความชอบของลูกค้าและพอดีกับงบประมาณ
การจับคู่ความชอบ (match_preferences method): วิธีนี้ตรวจสอบว่าจุดหมายนั้นตรงกับความชอบของลูกค้าหรือไม่
การวนซ้ำแผน (iterate_plan method): วิธีนี้ปรับปรุงแผนเริ่มต้นโดยพยายามแทนที่แต่ละจุดหมายในแผนด้วยตัวเลือกที่ดีกว่า โดยคำนึงถึงความชอบของลูกค้าและข้อจำกัดด้านงบประมาณ
การคำนวณค่าใช้จ่าย (calculate_cost method): วิธีนี้คำนวณต้นทุนรวมของแผนปัจจุบัน รวมถึงจุดหมายใหม่ที่เป็นไปได้
โดยการบูตสแตรปแผนด้วยเป้าหมายที่ชัดเจน (เช่น เพิ่มความพึงพอใจของลูกค้ามากที่สุด) และวนซ้ำเพื่อปรับปรุง ตัวแทนท่องเที่ยวสามารถสร้างแผนการเดินทางที่ปรับแต่งและเพิ่มประสิทธิภาพได้ วิธีนี้ช่วยให้แผนการเดินทางสอดคล้องกับความชอบและงบประมาณของลูกค้าตั้งแต่ต้นและพัฒนาขึ้นในแต่ละรอบ
โมเดลภาษาใหญ่ (LLMs) สามารถใช้สำหรับการจัดลำดับใหม่และการให้คะแนนโดยประเมินความเกี่ยวข้องและคุณภาพของเอกสารที่ดึงมา หรือคำตอบที่สร้างขึ้น วิธีการทำงานมีดังนี้:
การดึงข้อมูล: ขั้นตอนการดึงข้อมูลเริ่มต้นจะดึงชุดเอกสารหรือคำตอบที่เป็นผู้สมัครตามคำค้น
การจัดลำดับใหม่: LLM จะประเมินผู้สมัครเหล่านี้และจัดลำดับใหม่ตามความเกี่ยวข้องและคุณภาพ ขั้นตอนนี้ช่วยให้มั่นใจได้ว่าข้อมูลที่เกี่ยวข้องและมีคุณภาพสูงสุดจะถูกนำเสนอเป็นอันดับแรก
การให้คะแนน: LLM จะกำหนดคะแนนให้กับแต่ละผู้สมัครสะท้อนความเกี่ยวข้องและคุณภาพของพวกเขา ซึ่งช่วยในการเลือกคำตอบหรือเอกสารที่ดีที่สุดให้กับผู้ใช้
โดยการใช้ LLM สำหรับการจัดลำดับใหม่และการให้คะแนน ระบบสามารถให้ข้อมูลที่ถูกต้องและสอดคล้องกับบริบทได้มากขึ้น ส่งเสริมประสบการณ์ผู้ใช้โดยรวม
นี่คือตัวอย่างว่าตัวแทนท่องเที่ยวอาจใช้โมเดลภาษาใหญ่ (LLM) สำหรับการจัดลำดับใหม่และการให้คะแนนจุดหมายการเดินทางตามความชอบของผู้ใช้ใน Python:
ตัวแทนท่องเที่ยวต้องการแนะนำจุดหมายที่ดีที่สุดให้กับลูกค้าตามความชอบของพวกเขา LLM จะช่วยจัดลำดับใหม่และให้คะแนนจุดหมายเพื่อให้แน่ใจว่าได้ตัวเลือกที่เกี่ยวข้องที่สุด
นี่คือวิธีที่คุณสามารถอัปเดตก่อนหน้านี้เพื่อใช้บริการ Azure OpenAI:
import requests
import json
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def get_recommendations(self, preferences, api_key, endpoint):
# สร้างพรอมต์สำหรับ Azure OpenAI
prompt = self.generate_prompt(preferences)
# กำหนดส่วนหัวและเพย์โหลดสำหรับคำขอ
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
payload = {
"prompt": prompt,
"max_tokens": 150,
"temperature": 0.7
}
# เรียกใช้ Azure OpenAI API เพื่อรับรายการปลายทางที่จัดอันดับใหม่และมีคะแนน
response = requests.post(endpoint, headers=headers, json=payload)
response_data = response.json()
# ดึงและคืนคำแนะนำ
recommendations = response_data['choices'][0]['text'].strip().split('\n')
return recommendations
def generate_prompt(self, preferences):
prompt = "Here are the travel destinations ranked and scored based on the following user preferences:\n"
for key, value in preferences.items():
prompt += f"{key}: {value}\n"
prompt += "\nDestinations:\n"
for destination in self.destinations:
prompt += f"- {destination['name']}: {destination['description']}\n"
return prompt
# ตัวอย่างการใช้งาน
destinations = [
{"name": "Paris", "description": "City of lights, known for its art, fashion, and culture."},
{"name": "Tokyo", "description": "Vibrant city, famous for its modernity and traditional temples."},
{"name": "New York", "description": "The city that never sleeps, with iconic landmarks and diverse culture."},
{"name": "Sydney", "description": "Beautiful harbour city, known for its opera house and stunning beaches."},
]
preferences = {"activity": "sightseeing", "culture": "diverse"}
api_key = 'your_azure_openai_api_key'
endpoint = 'https://your-endpoint.com/openai/deployments/your-deployment-name/completions?api-version=2022-12-01'
travel_agent = TravelAgent(destinations)
recommendations = travel_agent.get_recommendations(preferences, api_key, endpoint)
print("Recommended Destinations:")
for rec in recommendations:
print(rec)
การเริ่มต้น: คลาส TravelAgent ถูกเริ่มต้นด้วยรายการจุดหมายการเดินทางที่เป็นไปได้แต่ละรายการมีคุณลักษณะเช่นชื่อและคำอธิบาย
การขอคำแนะนำ (get_recommendations method): วิธีนี้สร้าง prompt สำหรับบริการ Azure OpenAI ตามความชอบของผู้ใช้และทำคำขอ HTTP POST ไปยัง API ของ Azure OpenAI เพื่อรับจุดหมายที่ถูกจัดลำดับใหม่และให้คะแนน
การสร้าง Prompt (generate_prompt method): วิธีนี้สร้าง prompt สำหรับ Azure OpenAI รวมถึงความชอบของผู้ใช้และรายการจุดหมาย Prompt นี้จะชี้นำโมเดลให้จัดลำดับใหม่และให้คะแนนจุดหมายตามความชอบที่ให้มา
การเรียก API: ไลบรารี requests ถูกใช้เพื่อทำคำขอ HTTP POST ไปยัง endpoint ของ Azure OpenAI การตอบกลับจะมีจุดหมายที่ถูกจัดลำดับใหม่และให้คะแนน
ตัวอย่างการใช้งาน: ตัวแทนท่องเที่ยวรวบรวมความชอบของผู้ใช้ (เช่น สนใจการเที่ยวชมสถานที่และวัฒนธรรมที่หลากหลาย) และใช้บริการ Azure OpenAI เพื่อรับคำแนะนำที่ถูกจัดลำดับใหม่และให้คะแนนสำหรับจุดหมายการเดินทาง
ตรวจสอบให้แน่ใจว่าได้แทนที่ your_azure_openai_api_key ด้วยคีย์ Azure OpenAI ที่แท้จริงของคุณ และ https://your-endpoint.com/... ด้วย URL endpoint จริงของการปรับใช้ Azure OpenAI ของคุณ
โดยการใช้ LLM สำหรับการจัดลำดับใหม่และการให้คะแนน ตัวแทนท่องเที่ยวสามารถให้คำแนะนำที่เป็นส่วนตัวและเกี่ยวข้องมากขึ้นแก่ลูกค้า ปรับปรุงประสบการณ์โดยรวม
Retrieval-Augmented Generation (RAG) สามารถเป็นได้ทั้งเทคนิคการสร้าง prompt และเครื่องมือในการพัฒนาเอเจนต์ AI การเข้าใจความแตกต่างระหว่างทั้งสองสามารถช่วยให้คุณใช้ RAG ได้อย่างมีประสิทธิภาพมากขึ้นในโครงการของคุณ
มันคืออะไร?
มันทำงานอย่างไร:
ตัวอย่างในตัวแทนท่องเที่ยว:
มันคืออะไร?
มันทำงานอย่างไร:
ตัวอย่างในตัวแทนท่องเที่ยว:
| Aspect | Prompting Technique | Tool |
|---|---|---|
| Manual vs Automatic | การสร้าง prompt ด้วยมือสำหรับแต่ละคำถาม | กระบวนการอัตโนมัติสำหรับการดึงและการสร้างผลลัพธ์ |
| Control | ให้การควบคุมกระบวนการดึงข้อมูลมากขึ้น | ทำให้การดึงและการสร้างเป็นไปอย่างราบรื่นและอัตโนมัติ |
| Flexibility | อนุญาตให้ปรับแต่ง prompt ตามความต้องการเฉพาะได้ | มีประสิทธิภาพมากขึ้นสำหรับการใช้งานในระดับใหญ่ |
| Complexity | ต้องสร้างและปรับแต่ง prompt อยู่เสมอ | ง่ายต่อการรวมเข้ากับสถาปัตยกรรมของเอเจนต์ AI |
Prompting Technique Example:
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)
Tool Example:
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] # ส่งคืน 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] # คืน 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] # ส่งคืนผลลัพธ์ที่ปรับแต่ง 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 เพื่อเขียนและรันโค้ด แก้ปัญหาที่ซับซ้อน และทำงานอัตโนมัติ
เอเจนต์ผู้สร้างโค้ดใช้โมเดลปัญญาประดิษฐ์เชิงกำเนิดเพื่อเขียนและรันโค้ด เอเจนต์เหล่านี้สามารถแก้ปัญหาที่ซับซ้อน ทำงานอัตโนมัติ และให้ข้อมูลเชิงลึกอันมีค่าโดยการสร้างและรันโค้ดในภาษาการเขียนโปรแกรมต่าง ๆ
สมมติว่าคุณกำลังออกแบบเอเจนต์ผู้สร้างโค้ด นี่คือวิธีการทำงานที่เป็นไปได้:
ในตัวอย่างนี้ เราจะออกแบบเอเจนต์ผู้สร้างโค้ด ชื่อ Travel Agent เพื่อช่วยผู้ใช้วางแผนการเดินทางโดยการสร้างและรันโค้ด เอเจนต์นี้สามารถจัดการงานเช่น ดึงตัวเลือกการเดินทาง กรองผลลัพธ์ และจัดทำแผนการเดินทางโดยใช้ 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)
การอาศัยโครงร่างของตารางสามารถปรับปรุงกระบวนการสร้างคำสั่งค้นหาโดยใช้ความตระหนักต่อสภาพแวดล้อมและการให้เหตุผลได้จริง
นี่คือตัวอย่างว่าทำได้อย่างไร:
ต่อไปนี้เป็นตัวอย่างโค้ด Python ที่อัปเดตซึ่งผสานแนวคิดเหล่านี้:
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 (Structured Query Language) เป็นเครื่องมือที่ทรงพลังสำหรับโต้ตอบกับฐานข้อมูล เมื่อนำมาใช้เป็นส่วนหนึ่งของแนวทาง Retrieval-Augmented Generation (RAG) SQL สามารถดึงข้อมูลที่เกี่ยวข้องจากฐานข้อมูลเพื่อให้ข้อมูลประกอบการตอบหรือการกระทำในเอเจนต์ AI มาดูกันว่า SQL สามารถใช้เป็นเทคนิค RAG ในบริบทของ Travel Agent ได้อย่างไร
ตัวอย่าง: เอเจนต์วิเคราะห์ข้อมูล:
รวบรวมความชอบของผู้ใช้
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
สร้างคำสั่ง SQL
def generate_sql_query(table, preferences):
query = f"SELECT * FROM {table} WHERE "
conditions = []
for key, value in preferences.items():
conditions.append(f"{key}='{value}'")
query += " AND ".join(conditions)
return query
รันคำสั่ง SQL
import sqlite3
def execute_sql_query(query, database="travel.db"):
connection = sqlite3.connect(database)
cursor = connection.cursor()
cursor.execute(query)
results = cursor.fetchall()
connection.close()
return results
สร้างคำแนะนำ
def generate_recommendations(preferences):
flight_query = generate_sql_query("flights", preferences)
hotel_query = generate_sql_query("hotels", preferences)
attraction_query = generate_sql_query("attractions", preferences)
flights = execute_sql_query(flight_query)
hotels = execute_sql_query(hotel_query)
attractions = execute_sql_query(attraction_query)
itinerary = {
"flights": flights,
"hotels": hotels,
"attractions": attractions
}
return itinerary
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = generate_recommendations(preferences)
print("Suggested Itinerary:", itinerary)
คำสั่งค้นหาเที่ยวบิน
SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-10' AND budget='moderate';
คำสั่งค้นหาโรงแรม
SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
คำสั่งค้นหาสถานที่ท่องเที่ยว
SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
โดยการใช้ SQL เป็นส่วนหนึ่งของเทคนิค Retrieval-Augmented Generation (RAG) เอเจนต์ AI อย่าง Travel Agent สามารถดึงและใช้ข้อมูลที่เกี่ยวข้องได้อย่างไดนามิกเพื่อให้คำแนะนำที่แม่นยำและเป็นส่วนตัวมากขึ้น
ดังนั้นเพื่อสาธิตการนำ Metacongition มาใช้ เรามาสร้างเอเจนต์ง่าย ๆ ที่ สะท้อนกระบวนการตัดสินใจของตัวเอง ขณะแก้ปัญหา สำหรับตัวอย่างนี้ เราจะสร้างระบบที่เอเจนต์พยายามปรับตัวเลือกโรงแรมให้เหมาะสม จากนั้นจะประเมินเหตุผลของตัวเองและปรับกลยุทธ์เมื่อทำพลาดหรือเลือกไม่ดีพอ
เราจะจำลองสิ่งนี้โดยใช้ตัวอย่างพื้นฐานที่เอเจนต์เลือกโรงแรมโดยอาศัยการผสมผสานระหว่างราคาและคุณภาพ แต่เอเจนต์จะ “สะท้อน” การตัดสินใจของตัวเองและปรับตามนั้น
นี่คือตัวอย่าง:
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()
# ขั้นตอนที่ 1: ตัวแทนแนะนำโรงแรมโดยใช้กลยุทธ์ "ถูกที่สุด"
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"Recommended hotel (cheapest): {recommended_hotel['name']}")
# ขั้นตอนที่ 2: ตัวแทนทบทวนการเลือกและปรับกลยุทธ์หากจำเป็น
reflection_result = agent.reflect_on_choice()
print(reflection_result)
# ขั้นตอนที่ 3: ตัวแทนแนะนำอีกครั้ง โดยครั้งนี้ใช้กลยุทธ์ที่ปรับแล้ว
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"Adjusted hotel recommendation (highest_quality): {adjusted_recommendation['name']}")
จุดสำคัญที่นี่คือความสามารถของเอเจนต์ในการ:
นี่เป็นรูปแบบพื้นฐานของ metacognition ที่ระบบสามารถปรับกระบวนการให้เหตุผลของตนเองตามฟีดแบ็กภายในได้
Metacognition เป็นเครื่องมือที่ทรงพลังซึ่งสามารถขยายความสามารถของเอเจนต์ AI ได้อย่างมาก โดยการผนวกกระบวนการ metacognitive คุณสามารถออกแบบเอเจนต์ที่มีความฉลาด ยืดหยุ่น และมีประสิทธิภาพยิ่งขึ้น ใช้แหล่งข้อมูลเพิ่มเติมเพื่อสำรวจโลกที่น่าสนใจของ metacognition ในเอเจนต์ AI ต่อไป
เข้าร่วมที่ Microsoft Foundry Discord เพื่อพบกับผู้เรียนคนอื่น ๆ เข้าร่วมชั่วโมงให้คำปรึกษา และขอคำตอบสำหรับคำถามเกี่ยวกับ AI Agents ของคุณ
ข้อจำกัดความรับผิด: เอกสารฉบับนี้ได้รับการแปลโดยใช้บริการแปลด้วย AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความคลาดเคลื่อน เอกสารต้นฉบับในภาษาเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ หากเป็นข้อมูลที่สำคัญ ขอแนะนำให้ใช้การแปลโดยนักแปลมืออาชีพ (มนุษย์) เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลฉบับนี้