(Klik imej di atas untuk menonton video pelajaran ini)
Metakognisi dalam Ejen AI
Selamat datang ke pelajaran tentang metakognisi dalam ejen AI! Bab ini direka untuk pemula yang ingin tahu bagaimana ejen AI boleh memikirkan proses pemikiran mereka sendiri. Pada akhir pelajaran ini, anda akan memahami konsep utama dan dilengkapi dengan contoh praktikal untuk menerapkan metakognisi dalam reka bentuk ejen AI.
Selepas menyelesaikan pelajaran ini, anda akan dapat:
Metakognisi merujuk kepada proses kognitif peringkat tinggi yang melibatkan pemikiran tentang pemikiran sendiri. Bagi ejen AI, ini bermaksud keupayaan untuk menilai dan menyesuaikan tindakan mereka berdasarkan kesedaran diri dan pengalaman lalu. Metakognisi, atau “berfikir tentang pemikiran,” adalah konsep penting dalam pembangunan sistem AI yang bersifat agen. Ia melibatkan sistem AI yang sedar tentang proses dalaman mereka sendiri dan mampu memantau, mengawal, dan menyesuaikan tingkah laku mereka dengan sewajarnya. Sama seperti kita membaca situasi atau menganalisis masalah. Kesedaran diri ini boleh membantu sistem AI membuat keputusan yang lebih baik, mengenal pasti kesilapan, dan meningkatkan prestasi mereka dari semasa ke semasa—sekali lagi merujuk kepada ujian Turing dan perdebatan sama ada AI akan mengambil alih.
Dalam konteks sistem AI yang bersifat agen, metakognisi boleh membantu menangani beberapa cabaran, seperti:
Metakognisi, atau “berfikir tentang pemikiran,” adalah proses kognitif peringkat tinggi yang melibatkan kesedaran diri dan pengawalan diri terhadap proses kognitif seseorang. Dalam bidang AI, metakognisi memperkasakan ejen untuk menilai dan menyesuaikan strategi dan tindakan mereka, yang membawa kepada keupayaan menyelesaikan masalah dan membuat keputusan yang lebih baik. Dengan memahami metakognisi, anda boleh mereka bentuk ejen AI yang bukan sahaja lebih pintar tetapi juga lebih fleksibel dan cekap. Dalam metakognisi sebenar, anda akan melihat AI secara eksplisit membuat penaakulan tentang penaakulan mereka sendiri.
Contoh: “Saya mengutamakan penerbangan yang lebih murah kerana… Saya mungkin terlepas penerbangan terus, jadi biar saya periksa semula.” Menjejaki bagaimana atau mengapa ia memilih laluan tertentu.
Metakognisi memainkan peranan penting dalam reka bentuk ejen AI atas beberapa sebab:
Sebelum mendalami proses metakognitif, adalah penting untuk memahami komponen asas ejen AI. Ejen AI biasanya terdiri daripada:
Komponen-komponen ini bekerjasama untuk mencipta “unit kepakaran” yang boleh melaksanakan tugas tertentu.
Contoh: Pertimbangkan ejen pelancongan, perkhidmatan ejen yang bukan sahaja merancang percutian anda tetapi juga menyesuaikan laluan berdasarkan data masa nyata dan pengalaman perjalanan pelanggan terdahulu.
Bayangkan anda mereka bentuk perkhidmatan ejen pelancongan yang dikuasakan oleh AI. Ejen ini, “Ejen Pelancongan,” membantu pengguna merancang percutian mereka. Untuk menggabungkan metakognisi, Ejen Pelancongan perlu menilai dan menyesuaikan tindakannya berdasarkan kesedaran diri dan pengalaman lalu. Berikut adalah bagaimana metakognisi boleh memainkan peranan:
Tugas semasa adalah membantu pengguna merancang perjalanan ke Paris.
Ejen Pelancongan menggunakan metakognisi untuk menilai prestasinya dan belajar daripada pengalaman lalu. Sebagai contoh:
Berikut adalah contoh ringkas bagaimana kod Ejen Pelancongan mungkin kelihatan apabila menggabungkan metakognisi:
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):
# Search for flights, hotels, and attractions based on preferences
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)
# Analyze feedback and adjust future recommendations
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# Example usage
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)
Dengan menggabungkan metakognisi, Ejen Pelancongan boleh memberikan cadangan perjalanan yang lebih diperibadikan dan tepat, meningkatkan pengalaman pengguna secara keseluruhan.
Perancangan adalah komponen kritikal dalam tingkah laku ejen AI. Ia melibatkan penyusunan langkah-langkah yang diperlukan untuk mencapai matlamat, dengan mempertimbangkan keadaan semasa, sumber, dan kemungkinan halangan.
Contoh: Berikut adalah langkah-langkah yang perlu diambil oleh Ejen Pelancongan untuk membantu pengguna merancang perjalanan mereka dengan berkesan:
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)
# Example usage within a booing request
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)
Mari kita mulakan dengan memahami perbezaan antara Alat RAG dan Pemuatan Konteks Pra-emptif.
RAG menggabungkan sistem pengambilan dengan model generatif. Apabila pertanyaan dibuat, sistem pengambilan mengambil dokumen atau data yang relevan dari sumber luaran, dan maklumat yang diperoleh ini digunakan untuk menambah input kepada model generatif. Ini membantu model menghasilkan respons yang lebih tepat dan relevan secara kontekstual.
Dalam sistem RAG, ejen mengambil maklumat yang relevan dari pangkalan pengetahuan dan menggunakannya untuk menghasilkan respons atau tindakan yang sesuai.
Pendekatan RAG Pembetulan memberi tumpuan kepada penggunaan teknik RAG untuk membetulkan kesilapan dan meningkatkan ketepatan ejen AI. Ini melibatkan:
Pertimbangkan ejen carian yang mengambil maklumat dari web untuk menjawab pertanyaan pengguna. Pendekatan RAG Pembetulan mungkin melibatkan:
RAG Pembetulan (Retrieval-Augmented Generation) meningkatkan keupayaan AI untuk mengambil dan menghasilkan maklumat sambil membetulkan sebarang ketidaktepatan. Mari kita lihat bagaimana Ejen Pelancongan boleh menggunakan pendekatan RAG Pembetulan untuk memberikan cadangan perjalanan yang lebih tepat dan relevan.
Ini melibatkan:
Contoh:
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
Contoh:
flights = search_flights(preferences)
hotels = search_hotels(preferences)
attractions = search_attractions(preferences)
Contoh:
itinerary = create_itinerary(flights, hotels, attractions)
print("Suggested Itinerary:", itinerary)
Contoh:
feedback = {
"liked": ["Louvre Museum"],
"disliked": ["Eiffel Tower (too crowded)"]
}
Contoh:
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
Contoh:
new_attractions = search_attractions(preferences)
new_itinerary = create_itinerary(flights, hotels, new_attractions)
print("Updated Itinerary:", new_itinerary)
Contoh:
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)
Berikut adalah contoh kod Python ringkas yang menggabungkan pendekatan RAG Pembetulan dalam Ejen Pelancongan:
Muatkan Konteks Secara Awal melibatkan pemuatan maklumat latar belakang atau konteks yang relevan ke dalam model sebelum memproses pertanyaan. Ini bermaksud model mempunyai akses kepada maklumat ini dari awal, yang dapat membantu menghasilkan respons yang lebih bermaklumat tanpa perlu mendapatkan data tambahan semasa proses berlangsung.
Berikut adalah contoh ringkas bagaimana muatkan konteks secara awal mungkin kelihatan untuk aplikasi ejen pelancongan dalam Python:
Inisialisasi (kaedah __init__
): Kelas TravelAgent
memuatkan kamus yang mengandungi maklumat tentang destinasi popular seperti Paris, Tokyo, New York, dan Sydney. Kamus ini termasuk butiran seperti negara, mata wang, bahasa, dan tarikan utama untuk setiap destinasi.
Mendapatkan Maklumat (get_destination_info
method): Apabila pengguna bertanya tentang destinasi tertentu, kaedah get_destination_info
mengambil maklumat yang relevan daripada kamus konteks yang telah dimuatkan.
Dengan memuatkan konteks secara awal, aplikasi ejen pelancongan dapat menjawab pertanyaan pengguna dengan cepat tanpa perlu mendapatkan maklumat ini daripada sumber luaran secara masa nyata. Ini menjadikan aplikasi lebih cekap dan responsif.
Memulakan rancangan dengan matlamat melibatkan bermula dengan objektif atau hasil yang jelas. Dengan mendefinisikan matlamat ini terlebih dahulu, model boleh menggunakannya sebagai prinsip panduan sepanjang proses iterasi. Ini membantu memastikan setiap iterasi bergerak lebih dekat kepada mencapai hasil yang diinginkan, menjadikan proses lebih cekap dan fokus.
Berikut adalah contoh bagaimana anda boleh memulakan rancangan pelancongan dengan matlamat sebelum iterasi untuk ejen pelancongan dalam Python:
Seorang ejen pelancongan ingin merancang percutian yang disesuaikan untuk pelanggan. Matlamatnya adalah untuk mencipta jadual perjalanan yang memaksimumkan kepuasan pelanggan berdasarkan keutamaan dan bajet mereka.
Inisialisasi (kaedah __init__
): Kelas TravelAgent
diinisialisasi dengan senarai destinasi berpotensi, setiap satu mempunyai atribut seperti nama, kos, dan jenis aktiviti.
Memulakan Rancangan (bootstrap_plan
method): Kaedah ini mencipta rancangan awal berdasarkan keutamaan dan bajet pelanggan. Ia melalui senarai destinasi dan menambahnya ke rancangan jika ia sesuai dengan keutamaan pelanggan dan sesuai dengan bajet.
Memadankan Keutamaan (match_preferences
method): Kaedah ini memeriksa sama ada destinasi sesuai dengan keutamaan pelanggan.
Iterasi Rancangan (iterate_plan
method): Kaedah ini memperhalusi rancangan awal dengan cuba menggantikan setiap destinasi dalam rancangan dengan padanan yang lebih baik, dengan mengambil kira keutamaan dan kekangan bajet pelanggan.
Mengira Kos (calculate_cost
method): Kaedah ini mengira jumlah kos rancangan semasa, termasuk destinasi baru yang berpotensi.
Dengan memulakan rancangan dengan matlamat yang jelas (contohnya, memaksimumkan kepuasan pelanggan) dan mengiterasi untuk memperhalusi rancangan, ejen pelancongan dapat mencipta jadual perjalanan yang disesuaikan dan dioptimumkan untuk pelanggan. Pendekatan ini memastikan rancangan pelancongan selaras dengan keutamaan dan bajet pelanggan dari awal dan bertambah baik dengan setiap iterasi.
Model Bahasa Besar (LLM) boleh digunakan untuk penilaian semula dan pemarkahan dengan menilai relevansi dan kualiti dokumen yang diperoleh atau respons yang dihasilkan. Berikut adalah cara ia berfungsi:
Pengambilan: Langkah pengambilan awal mendapatkan satu set dokumen atau respons calon berdasarkan pertanyaan.
Penilaian Semula: LLM menilai calon-calon ini dan menyusun semula mereka berdasarkan relevansi dan kualiti. Langkah ini memastikan maklumat yang paling relevan dan berkualiti tinggi dipersembahkan terlebih dahulu.
Pemarkahan: LLM memberikan skor kepada setiap calon, mencerminkan relevansi dan kualiti mereka. Ini membantu dalam memilih respons atau dokumen terbaik untuk pengguna.
Dengan memanfaatkan LLM untuk penilaian semula dan pemarkahan, sistem dapat memberikan maklumat yang lebih tepat dan relevan secara kontekstual, meningkatkan pengalaman pengguna secara keseluruhan.
Berikut adalah contoh bagaimana ejen pelancongan mungkin menggunakan Model Bahasa Besar (LLM) untuk penilaian semula dan pemarkahan destinasi pelancongan berdasarkan keutamaan pengguna dalam Python:
Seorang ejen pelancongan ingin mencadangkan destinasi pelancongan terbaik kepada pelanggan berdasarkan keutamaan mereka. LLM akan membantu menyusun semula dan memberikan skor kepada destinasi untuk memastikan pilihan yang paling relevan dipersembahkan.
Inisialisasi: Kelas TravelAgent
diinisialisasi dengan senarai destinasi pelancongan yang berpotensi, setiap satu mempunyai atribut seperti nama dan deskripsi.
Mendapatkan Cadangan (get_recommendations
method): Kaedah ini menghasilkan prompt untuk perkhidmatan Azure OpenAI berdasarkan keutamaan pengguna dan membuat permintaan HTTP POST kepada API Azure OpenAI untuk mendapatkan destinasi yang disusun semula dan diberi skor.
Menjana Prompt (generate_prompt
method): Kaedah ini membina prompt untuk Azure OpenAI, termasuk keutamaan pengguna dan senarai destinasi. Prompt ini membimbing model untuk menyusun semula dan memberikan skor kepada destinasi berdasarkan keutamaan yang diberikan.
Panggilan API: Perpustakaan requests
digunakan untuk membuat permintaan HTTP POST kepada endpoint API Azure OpenAI. Respons mengandungi destinasi yang disusun semula dan diberi skor.
Contoh Penggunaan: Ejen pelancongan mengumpulkan keutamaan pengguna (contohnya, minat terhadap bersiar-siar dan budaya yang pelbagai) dan menggunakan perkhidmatan Azure OpenAI untuk mendapatkan cadangan destinasi pelancongan yang disusun semula dan diberi skor.
Pastikan untuk menggantikan your_azure_openai_api_key
dengan kunci API Azure OpenAI sebenar anda dan https://your-endpoint.com/...
dengan URL endpoint sebenar bagi penyebaran Azure OpenAI anda.
Dengan memanfaatkan LLM untuk penilaian semula dan pemarkahan, ejen pelancongan dapat memberikan cadangan pelancongan yang lebih diperibadikan dan relevan kepada pelanggan, meningkatkan pengalaman mereka secara keseluruhan.
Retrieval-Augmented Generation (RAG) boleh menjadi teknik prompting dan alat dalam pembangunan agen AI. Memahami perbezaan antara kedua-duanya dapat membantu anda memanfaatkan RAG dengan lebih berkesan dalam projek anda.
Apa itu?
Bagaimana ia berfungsi:
Apa itu?
Bagaimana ia berfungsi:
| Aspek | Teknik Prompting | Alat | |————————|———————————————————|——————————————————-| | Manual vs Automatik| Perumusan prompt secara manual untuk setiap pertanyaan. | Proses automatik untuk pengambilan dan penjanaan. | | Kawalan | Memberikan lebih kawalan terhadap proses pengambilan. | Menyelaraskan dan mengautomasi pengambilan dan penjanaan.| | Fleksibiliti | Membolehkan prompt yang disesuaikan berdasarkan keperluan tertentu. | Lebih cekap untuk pelaksanaan berskala besar. | | Kerumitan | Memerlukan perumusan dan penyesuaian prompt. | Lebih mudah untuk diintegrasikan dalam seni bina agen AI. |
Mari kita ambil Ejen Pelancongan sebagai contoh untuk melihat bagaimana pencarian berdasarkan niat boleh dilaksanakan.
Mengumpul Keutamaan Pengguna
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Memahami Niat Pengguna
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"
Kesedaran Konteks
def analyze_context(query, user_history):
# Combine current query with user history to understand context
context = {
"current_query": query,
"user_history": user_history
}
return context
Mencari dan Memperibadikan Hasil
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):
# Example search logic for informational intent
results = search_web(f"best {preferences['interests']} in {preferences['destination']}")
return results
def search_navigation(query):
# Example search logic for navigational intent
results = search_web(query)
return results
def search_transaction(query, preferences):
# Example search logic for transactional intent
results = search_web(f"book {query} to {preferences['destination']}")
return results
def personalize_results(results, user_history):
# Example personalization logic
personalized = [result for result in results if result not in user_history]
return personalized[:10] # Return top 10 personalized results
Contoh Penggunaan
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)
Ejen penjana kod menggunakan model AI untuk menulis dan melaksanakan kod, menyelesaikan masalah kompleks dan mengautomasi tugas.
Ejen penjana kod menggunakan model AI generatif untuk menulis dan melaksanakan kod. Ejen ini boleh menyelesaikan masalah kompleks, mengautomasi tugas, dan memberikan pandangan berharga dengan menjana dan menjalankan kod dalam pelbagai bahasa pengaturcaraan.
Bayangkan anda sedang mereka bentuk ejen penjana kod. Berikut adalah cara ia mungkin berfungsi:
Dalam contoh ini, kita akan mereka bentuk ejen penjana kod, Ejen Pelancongan, untuk membantu pengguna merancang perjalanan mereka dengan menjana dan melaksanakan kod. Ejen ini boleh mengendalikan tugas seperti mendapatkan pilihan perjalanan, menapis hasil, dan menyusun jadual perjalanan menggunakan AI generatif.
Mengumpul Keutamaan Pengguna
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Menjana Kod untuk Mendapatkan Data
def generate_code_to_fetch_data(preferences):
# Example: Generate code to search for flights based on user 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):
# Example: Generate code to search for hotels
code = f"""
def search_hotels():
import requests
response = requests.get('https://api.example.com/hotels', params={preferences})
return response.json()
"""
return code
Melaksanakan Kod yang Dijana
def execute_code(code):
# Execute the generated code using 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)
Menjana Jadual Perjalanan
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)
Menyesuaikan Berdasarkan Maklum Balas
def adjust_based_on_feedback(feedback, preferences):
# Adjust preferences based on user feedback
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)
# Regenerate and execute code with updated 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)
Berdasarkan skema jadual boleh meningkatkan proses penjanaan pertanyaan dengan memanfaatkan kesedaran persekitaran dan penaakulan.
Berikut adalah contoh bagaimana ini boleh dilakukan:
Berikut adalah contoh kod Python yang dikemas kini yang menggabungkan konsep ini:
def adjust_based_on_feedback(feedback, preferences, schema):
# Adjust preferences based on user feedback
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
# Reasoning based on schema to adjust other related preferences
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):
# Custom logic to adjust preferences based on schema and feedback
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):
# Generate code to fetch flight data based on updated preferences
return f"fetch_flights(preferences={preferences})"
def generate_code_to_fetch_hotels(preferences):
# Generate code to fetch hotel data based on updated preferences
return f"fetch_hotels(preferences={preferences})"
def execute_code(code):
# Simulate execution of code and return mock data
return {"data": f"Executed: {code}"}
def generate_itinerary(flights, hotels, attractions):
# Generate itinerary based on flights, hotels, and attractions
return {"flights": flights, "hotels": hotels, "attractions": attractions}
# Example schema
schema = {
"favorites": {"positive_adjustment": "increase", "negative_adjustment": "decrease", "default": "neutral"},
"avoid": {"positive_adjustment": "decrease", "negative_adjustment": "increase", "default": "neutral"}
}
# Example usage
preferences = {"favorites": "sightseeing", "avoid": "crowded places"}
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences, schema)
# Regenerate and execute code with updated 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, feedback["liked"])
print("Updated Itinerary:", updated_itinerary)
schema
mentakrifkan bagaimana keutamaan harus disesuaikan berdasarkan maklum balas. Ia termasuk medan seperti favorites
dan avoid
, dengan pelarasan yang sepadan.adjust_based_on_feedback
): Kaedah ini menyesuaikan keutamaan berdasarkan maklum balas pengguna dan skema.adjust_based_on_environment
): Kaedah ini menyesuaikan pelarasan berdasarkan skema dan maklum balas.Dengan menjadikan sistem sedar persekitaran dan berfikir berdasarkan skema, ia boleh menjana pertanyaan yang lebih tepat dan relevan, menghasilkan cadangan perjalanan yang lebih baik dan pengalaman pengguna yang diperibadikan.
SQL (Structured Query Language) ialah alat yang berkuasa untuk berinteraksi dengan pangkalan data. Apabila digunakan sebagai sebahagian daripada pendekatan Retrieval-Augmented Generation (RAG), SQL boleh mendapatkan data yang relevan daripada pangkalan data untuk memaklumkan dan menjana respons atau tindakan dalam ejen AI. Mari kita terokai bagaimana SQL boleh digunakan sebagai teknik RAG dalam konteks Ejen Pelancongan.
Contoh: Ejen analisis data:
Mengumpul Keutamaan Pengguna
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Menjana Pertanyaan 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
Melaksanakan Pertanyaan 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
Menjana Cadangan
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)
Pertanyaan Penerbangan
SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-10' AND budget='moderate';
Pertanyaan Hotel
SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
Pertanyaan Tarikan
SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
Dengan memanfaatkan SQL sebagai sebahagian daripada teknik Retrieval-Augmented Generation (RAG), ejen AI seperti Ejen Pelancongan boleh mendapatkan dan menggunakan data yang relevan secara dinamik untuk memberikan cadangan yang tepat dan diperibadikan.
Untuk menunjukkan pelaksanaan metakognisi, mari kita cipta ejen mudah yang merenung proses membuat keputusannya semasa menyelesaikan masalah. Dalam contoh ini, kita akan membina sistem di mana ejen cuba mengoptimumkan pilihan hotel, tetapi kemudian menilai proses pemikirannya sendiri dan menyesuaikan strateginya apabila ia membuat kesilapan atau pilihan yang kurang baik.
Kita akan mensimulasikan ini menggunakan contoh asas di mana ejen memilih hotel berdasarkan gabungan harga dan kualiti, tetapi ia akan “merenung” keputusannya dan menyesuaikan diri sewajarnya.
Berikut adalah contohnya:
class HotelRecommendationAgent:
def __init__(self):
self.previous_choices = [] # Stores the hotels chosen previously
self.corrected_choices = [] # Stores the corrected choices
self.recommendation_strategies = ['cheapest', 'highest_quality'] # Available strategies
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]
# Let's assume we have some user feedback that tells us whether the last choice was good or not
user_feedback = self.get_user_feedback(last_choice)
if user_feedback == "bad":
# Adjust strategy if the previous choice was unsatisfactory
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"
# Simulate a list of hotels (price and quality)
hotels = [
{'name': 'Budget Inn', 'price': 80, 'quality': 6},
{'name': 'Comfort Suites', 'price': 120, 'quality': 8},
{'name': 'Luxury Stay', 'price': 200, 'quality': 9}
]
# Create an agent
agent = HotelRecommendationAgent()
# Step 1: The agent recommends a hotel using the "cheapest" strategy
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"Recommended hotel (cheapest): {recommended_hotel['name']}")
# Step 2: The agent reflects on the choice and adjusts strategy if necessary
reflection_result = agent.reflect_on_choice()
print(reflection_result)
# Step 3: The agent recommends again, this time using the adjusted strategy
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"Adjusted hotel recommendation (highest_quality): {adjusted_recommendation['name']}")
Perkara utama di sini ialah keupayaan ejen untuk:
Ini adalah bentuk metakognisi yang mudah di mana sistem mampu menyesuaikan proses pemikirannya berdasarkan maklum balas dalaman.
Metakognisi adalah alat yang berkuasa yang boleh meningkatkan keupayaan ejen AI secara signifikan. Dengan menggabungkan proses metakognitif, anda boleh mereka bentuk ejen yang lebih pintar, boleh menyesuaikan diri, dan cekap. Gunakan sumber tambahan untuk meneroka dunia metakognisi dalam ejen AI dengan lebih mendalam.
Sertai Azure AI Foundry Discord untuk bertemu dengan pelajar lain, menghadiri sesi soal jawab, dan mendapatkan jawapan kepada soalan anda tentang Ejen AI.
Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.