(Bu dersin videosunu izlemek için yukarıdaki resme tıklayın)
Yapay Zeka Ajanlarında Metabiliş
Yapay zeka ajanlarında metabiliş dersine hoş geldiniz! Bu bölüm, yapay zeka ajanlarının kendi düşünme süreçleri hakkında nasıl düşünebildiğini merak eden yeni başlayanlar için tasarlanmıştır. Bu dersin sonunda, temel kavramları anlayacak ve metabilişi yapay zeka ajan tasarımında uygulamanız için pratik örneklerle donanmış olacaksınız.
Bu dersi tamamladıktan sonra, şunları yapabileceksiniz:
Metabiliş, kişinin kendi düşüncesi hakkında düşünmeyi içeren daha yüksek düzeyde bilişsel süreçleri ifade eder. Yapay zeka ajanları için bu, kendi farkındalıkları ve geçmiş deneyimlerine dayanarak eylemlerini değerlendirebilmek ve ayarlayabilmek anlamına gelir. Metabiliş, yani “düşünme üzerine düşünme”, ajanik yapay zeka sistemlerinin geliştirilmesinde önemli bir kavramdır. Bu, yapay zeka sistemlerinin kendi iç süreçlerinin farkında olması ve davranışlarını izleyip, düzenleyip, uyarlayabilmesi anlamına gelir. Tıpkı bizim ortamı değerlendirirken veya bir probleme bakarken yaptığımız gibi. Bu öz-farkındalık, yapay zeka sistemlerinin daha iyi kararlar almasına, hataları tanımlamasına ve zaman içinde performanslarını geliştirmesine yardımcı olabilir — yine Turing testi ve yapay zekanın kontrolü ele alması tartışmasına bağlanıyor.
Ajanik yapay zeka sistemleri bağlamında, metabiliş şu zorlukların üstesinden gelmeye yardımcı olabilir:
Metabiliş, yani “düşünme üzerine düşünme”, kişinin bilişsel süreçlerine dair öz-farkındalık ve öz-düzenlemeyi içeren daha yüksek düzeyde bir bilişsel süreçtir. Yapay zeka alanında, metabiliş ajanların stratejilerini ve eylemlerini değerlendirmesine ve uyarlamasına olanak tanır; bu da problem çözme ve karar verme yeteneklerinin geliştirilmesini sağlar. Metabilişi anlayarak, sadece daha zeki değil, aynı zamanda daha uyarlanabilir ve verimli olan yapay zeka ajanları tasarlayabilirsiniz. Gerçek bir metabilişte, yapay zekanın kendi muhakemesi üzerine açıkça muhakeme yaptığını görürsünüz.
Örnek: “Daha ucuz uçuşları önceliklendirdim çünkü… doğrudan uçuşları kaçırıyor olabilirim, o yüzden tekrar kontrol edeyim.” Belirli bir rotayı neden veya nasıl seçtiğinin takibini yapmak.
Metabiliş, yapay zeka ajan tasarımında şu nedenlerle kritik bir rol oynar:

Metabiliş süreçlerine dalmadan önce, bir yapay zeka ajanının temel bileşenlerini anlamak önemlidir. Bir yapay zeka ajanı genellikle şunlardan oluşur:
Bu bileşenler birlikte belirli görevleri gerçekleştirebilen bir “uzmanlık birimi” oluşturmak için çalışır.
Örnek: Sizin tatilinizi planlamakla kalmayıp, gerçek zamanlı veriler ve geçmiş müşteri deneyimlerine dayanarak yolunu ayarlayan bir seyahat acentesini düşünün.
Yapay zeka gücüyle çalışan bir seyahat acentesi hizmeti tasarladığınızı hayal edin. Bu ajan, “Seyahat Acentesi,” kullanıcılara tatillerini planlama konusunda yardımcı olur. Metabilişi dahil etmek için Seyahat Acentesi, kendi farkındalığına ve geçmiş deneyimlerine dayanarak eylemlerini değerlendirmeli ve ayarlamalıdır. İşte metabilişin oynayabileceği rol:
Şu anki görev, bir kullanıcının Paris seyahati planlamasına yardımcı olmaktır.
Seyahat Acentesi, performansını değerlendirmek ve geçmiş deneyimlerden öğrenmek için metabilişi kullanır. Örneğin:
Seyahat Acentesi kodunda metabilişin dahil edilmesine dair basitleştirilmiş bir örnek aşağıdadır:
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):
# Tercihlere göre uçuşlar, oteller ve gezilecek yerler ara
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)
# Geri bildirimi analiz et ve gelecekteki önerileri ayarla
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# Örnek kullanım
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)
Metabilişi dahil ederek Seyahat Acentesi, daha kişiselleştirilmiş ve doğru seyahat önerileri sunabilir, böylece genel kullanıcı deneyimini artırır.
Planlama, yapay zeka ajan davranışının kritik bir bileşenidir. Mevcut durumu, kaynakları ve olası engelleri göz önünde bulundurarak bir hedefe ulaşmak için gerekli adımları belirlemeyi içerir.
Örnek: Seyahat Acentesinin bir kullanıcının seyahatini etkili şekilde planlamasına yardımcı olmak için izlemesi gereken adımlar şunlardır:
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)
# Bir iptal talebi içindeki örnek kullanım
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)
Öncelikle RAG Aracı ile Önleyici Bağlam Yükleme arasındaki farkı anlayarak başlayalım.

RAG, bir arama sistemi ile üretici modeli birleştirir. Sorgu yapıldığında, arama sistemi dış bir kaynaktan ilgili belgeleri veya verileri getirir ve bu bilgi üretici modelin girdisini artırmak için kullanılır. Bu, modelin daha doğru ve bağlama uygun yanıtlar üretmesine yardımcı olur.
Bir RAG sisteminde, ajan bilgi tabanından ilgili bilgileri çağırır ve uygun yanıtlar veya eylemler üretmek için kullanır.
Düzeltici RAG yaklaşımı, hataları düzeltmek ve yapay zeka ajanlarının doğruluğunu artırmak için RAG tekniklerini kullanmaya odaklanır. Bu şu adımları içerir:
Web’den bilgi çekerek kullanıcı sorgularını yanıtlayan bir arama ajanını düşünün. Düzeltici RAG yaklaşımı şöyle olabilir:
Düzeltici RAG (Retrieval-Augmented Generation), bir yapay zekanın bilgiyi çağırma ve üretme yeteneğini geliştirirken hataları da düzeltir. Seyahat Acentesinin, daha doğru ve alakalı seyahat önerileri sunmak için Düzeltici RAG yaklaşımını nasıl kullanabileceğini görelim.
Bu şunları içerir:
Örnek:
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
Örnek:
flights = search_flights(preferences)
hotels = search_hotels(preferences)
attractions = search_attractions(preferences)
Örnek:
itinerary = create_itinerary(flights, hotels, attractions)
print("Suggested Itinerary:", itinerary)
Örnek:
feedback = {
"liked": ["Louvre Museum"],
"disliked": ["Eiffel Tower (too crowded)"]
}
Örnek:
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
Örnek:
new_attractions = search_attractions(preferences)
new_itinerary = create_itinerary(flights, hotels, new_attractions)
print("Updated Itinerary:", new_itinerary)
Örnek:
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)
Düzeltici RAG yaklaşımını Seyahat Acentesinde kapsayan basitleştirilmiş bir Python kod örneği:
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
# Örnek kullanım
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)
Önleyici Bağlam Yükleme, bir sorguyu işlemeye başlamadan önce ilgili bağlam veya arka plan bilgisinin modele yüklenmesini içerir. Bu, modelin bu bilgiye baştan erişimi olduğu anlamına gelir ve süreç sırasında ek veri getirmeye gerek kalmadan daha bilgili yanıtlar oluşturmasına yardımcı olabilir.
Bir seyahat acentesi uygulaması için Python’da önleyici bağlam yüklemenin basitleştirilmiş bir örneği şöyle olabilir:
class TravelAgent:
def __init__(self):
# Popüler destinasyonları ve bilgilerini önceden yükle
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):
# Önceden yüklenmiş bağlamdan destinasyon bilgilerini alma
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}."
# Örnek kullanım
travel_agent = TravelAgent()
print(travel_agent.get_destination_info("Paris"))
print(travel_agent.get_destination_info("Tokyo"))
Başlatma (__init__ yöntemi): TravelAgent sınıfı, Paris, Tokyo, New York ve Sidney gibi popüler destinasyonlar hakkında bilgileri içeren bir sözlüğü önceden yükler. Bu sözlük her destinasyon için ülke, para birimi, dil ve başlıca turistik yerler gibi detayları içerir.
Bilgi Alma (get_destination_info yöntemi): Kullanıcı belirli bir destinasyon hakkında sorgu yaptığında, get_destination_info yöntemi önceden yüklenen bağlam sözlüğünden ilgili bilgileri alır.
Bağlamı önceden yükleyerek, seyahat acentesi uygulaması kullanıcı sorgularına bu bilgiyi gerçek zamanlı dış kaynaktan getirmeye gerek kalmadan hızlıca yanıt verebilir. Bu da uygulamanın daha verimli ve hızlı yanıt vermesini sağlar.
Bir hedefle plan başlatmak, açık bir amaç veya hedef sonuç belirleyerek sürece başlamayı ifade eder. Bu hedef önceden tanımlandığında, model bunu yinelemeli süreç boyunca rehber ilke olarak kullanabilir. Bu da her yinelemenin istenen sonuca daha da yaklaşmasını sağlar ve süreci daha verimli ve odaklı yapar.
Bir seyahat acentesi için Python’da hedefle bir seyahat planını başlatıp ardından yineleme ile geliştirme örneği şöyle:
Bir seyahat acentesi, bir müşteri için kişiselleştirilmiş bir tatil planlamak istiyor. Amaç, müşterinin tercihleri ve bütçesine göre memnuniyetini en üst düzeye çıkaran bir seyahat programı oluşturmaktır.
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']
# Örnek kullanım
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)
Başlatma (__init__ yöntemi): TravelAgent sınıfı, isim, maliyet ve aktivite türü gibi özelliklere sahip potansiyel destinasyonların bir listesi ile başlatılır.
Planı Başlatma (bootstrap_plan yöntemi): Bu yöntem, müşterinin tercihleri ve bütçesine dayanarak ilk seyahat planını oluşturur. Destinasyon listesinde dönerek, tercihlerle uyuşan ve bütçeye uygun olanları plana ekler.
Tercih Eşleştirme (match_preferences yöntemi): Bir destinasyonun müşterinin tercihleriyle uyuşup uyuşmadığını kontrol eder.
Planı Yineleme (iterate_plan yöntemi): Mevcut planı, müşterinin tercihleri ve bütçe kısıtlamalarını dikkate alarak daha iyi eşleşen destinasyonlarla değiştirmeye çalışarak iyileştirir.
Maliyet Hesaplama (calculate_cost yöntemi): Mevcut plana potansiyel yeni bir destinasyon dahil edilerek toplam maliyeti hesaplar.
Planı açık bir hedefle (örn. müşteri memnuniyetini maksimize etmek) başlatıp yineleyerek geliştirmek, seyahat acentesinin müşteriye özel ve optimize edilmiş bir seyahat programı oluşturmasını sağlar. Bu yaklaşım, seyahat planının baştan müşterinin tercihlerine ve bütçesine uyumlu olmasını ve her yineleme ile iyileşmesini garanti eder.
Büyük Dil Modelleri (LLM’ler), getirilen belgelerin veya oluşturulan yanıtların uygunluğu ve kalitesini değerlendirerek yeniden sıralama ve puanlama için kullanılabilir. İşleyiş şekli şöyledir:
Getirme: İlk getirme aşaması, sorguya göre olası aday belgeler veya yanıtlar setini elde eder.
Yeniden Sıralama: LLM, bu adayları değerlendirir ve uygunlukları ile kalitelerine bağlı olarak yeniden sıralar. Bu aşama, en alakalı ve yüksek kaliteli bilgilerin önce sunulmasını sağlar.
Puanlama: LLM her adaya, uygunluğunu ve kalitesini yansıtan puanlar verir. Bu, kullanıcı için en iyi yanıtın veya belgenin seçilmesine yardımcı olur.
LLM’yi yeniden sıralama ve puanlama için kullanarak, sistem daha doğru ve bağlama uygun bilgi sunabilir, böylece genel kullanıcı deneyimi iyileşir.
Bir seyahat acentesinin, kullanıcının tercihleri doğrultusunda seyahat destinasyonlarını yeniden sıralamak ve puanlamak için Büyük Dil Modeli (LLM) kullandığı Python örneği şöyle:
Bir seyahat acentesi, bir müşteriye tercihleri doğrultusunda en iyi seyahat destinasyonlarını önerilmek istiyor. LLM, destinasyonları yeniden sıralayıp puanlayarak en uygun seçeneklerin sunulmasını sağlar.
Önceki örneği Azure OpenAI Hizmetleri kullanacak şekilde güncelleme:
import requests
import json
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def get_recommendations(self, preferences, api_key, endpoint):
# Azure OpenAI için bir istem oluşturun
prompt = self.generate_prompt(preferences)
# İstek için başlıkları ve yükü tanımlayın
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
payload = {
"prompt": prompt,
"max_tokens": 150,
"temperature": 0.7
}
# Azure OpenAI API'sini çağırarak yeniden sıralanmış ve puanlanmış destinasyonları alın
response = requests.post(endpoint, headers=headers, json=payload)
response_data = response.json()
# Önerileri çıkarın ve döndürün
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
# Örnek kullanım
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)
Başlatma: TravelAgent sınıfı, isim ve açıklama gibi özelliklere sahip potansiyel seyahat destinasyonlarından oluşan bir liste ile başlatılır.
Öneri Alma (get_recommendations yöntemi): Bu yöntem, kullanıcının tercihleri temelinde Azure OpenAI servisi için bir prompt oluşturur ve yeniden sıralanmış ve puanlanmış destinasyonları almak için Azure OpenAI API’sine HTTP POST isteği yapar.
Prompt Oluşturma (generate_prompt yöntemi): Kullanıcının tercihleri ve destinasyon listesi içeren bir prompt yapar. Prompt, modeli verilen tercihlere göre destinasyonları yeniden sıralamaya ve puanlamaya yönlendirir.
API Çağrısı: requests kütüphanesi kullanılarak Azure OpenAI API uç noktasına HTTP POST isteği yapılır. Gelen yanıt, yeniden sıralanmış ve puanlanmış destinasyonları içerir.
Örnek Kullanım: Seyahat acentesi, kullanıcı tercihlerini toplar (örneğin, gezilecek yerler ve çeşitli kültürlere ilgi) ve Azure OpenAI servisini kullanarak yeniden sıralanmış ve puanlanmış seyahat önerileri alır.
your_azure_openai_api_key kısmını gerçek Azure OpenAI API anahtarınızla, https://your-endpoint.com/... kısmını Azure OpenAI dağıtımınızın gerçek uç nokta URL’si ile değiştirmeyi unutmayın.
LLM’yi yeniden sıralama ve puanlama için kullanmak, seyahat acentesinin müşterilere daha kişiselleştirilmiş ve uygun seyahat önerileri sunmasına imkan vererek genel deneyimi artırır.
Retrieval-Augmented Generation (RAG), hem bir promptlama tekniği hem de AI ajanlarının geliştirilmesinde bir araç olabilir. İkisi arasındaki farkı anlamak, RAG’i projelerinizde daha etkili kullanmanıza yardımcı olur.
Nedir?
Nasıl çalışır:
Seyahat Acentesi Örneği:
Nedir?
Nasıl çalışır:
Seyahat Acentesi Örneği:
| Özellik | Promptlama Tekniği | Araç |
|---|---|---|
| Manuel vs Otomatik | Her sorgu için manuel prompt oluşturma. | Getirme ve üretme işlemi otomatik. |
| Kontrol | Getirme süreci üzerinde daha fazla kontrol sağlar. | Getirme ve üretme sürecini otomatikleştirir. |
| Esneklik | Özel ihtiyaçlara göre uyarlanabilir promptlar sunar. | Büyük ölçekli uygulamalar için daha verimli. |
| Karmaşıklık | Prompt hazırlama ve ayar gerektirir. | AI ajanı mimarisine kolayca entegre edilir. |
Promptlama Tekniği Örneği:
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)
Araç Örneği:
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)
Alakalı olmanın değerlendirilmesi, AI ajanlarının performansında kritik bir unsurdur. Bu, ajanın getirdiği ve oluşturduğu bilgilerin kullanıcı için uygun, doğru ve faydalı olmasını sağlar. AI ajanlarında alakalı olmanın nasıl değerlendirileceğini, pratik örnekler ve tekniklerle inceleyelim.
Örnek:
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
Örnek:
def filter_and_rank(items, query):
ranked_items = sorted(items, key=lambda item: relevance_score(item, query), reverse=True)
return ranked_items[:10] # En alakalı ilk 10 öğeyi döndür
Örnek:
def process_query(query):
# Kullanıcının sorgusundan ana bilgileri çıkarmak için NLP kullanın
processed_query = nlp(query)
return processed_query
Örnek:
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
Seyahat Acentesi’nin seyahat önerilerinin uygunluğunu nasıl değerlendirebileceğine dair pratik örnek:
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] # İlk 10 ilgili öğeyi döndür
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
# Örnek kullanım
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)
Niyetle arama, kullanıcının sorgusunun altında yatan amaç veya hedefi anlamak ve yorumlayarak en alakalı ve faydalı bilgiyi getirmek ve üretmeyi ifade eder. Bu yaklaşım, anahtar kelime eşleşmesinin ötesine geçip kullanıcının gerçek ihtiyaç ve bağlamını kavrar.
Seyahat Acentesini örnek alarak niyetle aramanın nasıl uygulanacağını görelim.
Kullanıcı Tercihlerini Toplama
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Kullanıcı Niyetini Anlama
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):
# Bağlamı anlamak için mevcut sorguyu kullanıcı geçmişiyle birleştiriniz
context = {
"current_query": query,
"user_history": user_history
}
return context
Sonuçları Ara ve Kişiselleştir
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):
# Bilgilendirici niyet için örnek arama mantığı
results = search_web(f"best {preferences['interests']} in {preferences['destination']}")
return results
def search_navigation(query):
# Yönlendirici niyet için örnek arama mantığı
results = search_web(query)
return results
def search_transaction(query, preferences):
# İşlemsel niyet için örnek arama mantığı
results = search_web(f"book {query} to {preferences['destination']}")
return results
def personalize_results(results, user_history):
# Örnek kişiselleştirme mantığı
personalized = [result for result in results if result not in user_history]
return personalized[:10] # İlk 10 kişiselleştirilmiş sonucu döndürür
Örnek Kullanım
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)
Kod üreten ajanlar, karmaşık problemleri çözmek ve görevleri otomatikleştirmek için kod yazmak ve çalıştırmak üzere yapay zeka modellerini kullanır.
Kod üreten ajanlar, kod yazmak ve çalıştırmak için üretken yapay zeka modellerini kullanır. Bu ajanlar, çeşitli programlama dillerinde kod üreterek ve çalıştırarak karmaşık problemleri çözebilir, görevleri otomatikleştirebilir ve değerli içgörüler sağlayabilir.
Bir kod üreten ajan tasarladığınızı hayal edin. İşte nasıl çalışabileceği:
Bu örnekte, kullanıcılara seyahat planlamalarında yardımcı olmak için kod üreten ve çalıştıran bir ajan olan Seyahat Acentesi’ni tasarlayacağız. Bu ajan, seyahat seçeneklerini getirme, sonuçları filtreleme ve üretken yapay zeka kullanarak bir güzergah derleme gibi görevleri ele alabilir.
Kullanıcı Tercihlerini Toplama
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Veri Getirmek İçin Kod Üretme
def generate_code_to_fetch_data(preferences):
# Örnek: Kullanıcı tercihlerine göre uçuş aramak için kod oluştur
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):
# Örnek: Otel aramak için kod oluştur
code = f"""
def search_hotels():
import requests
response = requests.get('https://api.example.com/hotels', params={preferences})
return response.json()
"""
return code
Üretilen Kodu Çalıştırma
def execute_code(code):
# Oluşturulan kodu exec ile çalıştırın
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)
Güzergah Üretme
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)
Geribildirme Üzerinden Ayarlama
def adjust_based_on_feedback(feedback, preferences):
# Kullanıcı geri bildirimlerine göre tercihleri ayarla
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)
# Güncellenmiş tercihlerle kodu yeniden oluştur ve çalıştır
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)
Tablonun şemasına dayalı olarak sorgu üretim süreci çevresel farkındalık ve muhakeme kullanılarak geliştirilebilir.
İşte bunun nasıl yapılabileceğine dair bir örnek:
İşte bu kavramları içeren güncellenmiş bir Python kod örneği:
def adjust_based_on_feedback(feedback, preferences, schema):
# Kullanıcı geri bildirimlerine göre tercihleri ayarla
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
# Diğer ilgili tercihleri ayarlamak için şemaya dayalı akıl yürütme
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):
# Şema ve geri bildirimlere göre tercihleri ayarlamak için özel mantık
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):
# Güncellenen tercihlere göre uçuş verilerini almak için kod oluştur
return f"fetch_flights(preferences={preferences})"
def generate_code_to_fetch_hotels(preferences):
# Güncellenen tercihlere göre otel verilerini almak için kod oluştur
return f"fetch_hotels(preferences={preferences})"
def execute_code(code):
# Kodun yürütülmesini simüle et ve sahte veri döndür
return {"data": f"Executed: {code}"}
def generate_itinerary(flights, hotels, attractions):
# Uçuşlar, oteller ve turistik yerler bazında gezi planı oluştur
return {"flights": flights, "hotels": hotels, "attractions": attractions}
# Örnek şema
schema = {
"favorites": {"positive_adjustment": "increase", "negative_adjustment": "decrease", "default": "neutral"},
"avoid": {"positive_adjustment": "decrease", "negative_adjustment": "increase", "default": "neutral"}
}
# Örnek kullanım
preferences = {"favorites": "sightseeing", "avoid": "crowded places"}
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences, schema)
# Güncellenen tercihlerle kodu yeniden oluştur ve çalıştır
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 sözlüğü, tercihlerin geribildirme temelinde nasıl ayarlanması gerektiğini tanımlar. İçinde favorites ve avoid gibi alanlar ve karşılık gelen ayarlamalar vardır.adjust_based_on_feedback metodu): Bu metod, kullanıcı geribildirmesine ve şemaya göre tercihleri ayarlar.adjust_based_on_environment metodu): Bu metod, şema ve geribildirmeye dayalı olarak ayarlamaları özelleştirir.Sistemi çevresel farkındalıklı hale getirip şemaya göre muhakeme yaptırarak daha doğru ve ilgili sorgular üretebilir, böylece daha iyi seyahat önerileri ve daha kişiselleştirilmiş kullanıcı deneyimi sunabilir.
SQL (Yapılandırılmış Sorgu Dili), veritabanlarıyla etkileşimde kullanılan güçlü bir araçtır. Retrieval-Augmented Generation (RAG) yaklaşımının parçası olarak kullanıldığında, SQL veritabanlarından ilgili verileri alarak yapay zeka ajanlarının yanıtları veya işlemleri oluşturmasına olanak tanır. Seyahat Acentesi bağlamında SQL’in RAG tekniği olarak nasıl kullanılacağına bakalım.
Örnek: Bir veri analizi ajanı:
Kullanıcı Tercihlerini Toplama
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
SQL Sorguları Üretme
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 Sorgularını Çalıştırma
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
Öneriler Üretme
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)
Uçuş Sorgusu
SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-10' AND budget='moderate';
Otel Sorgusu
SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
Gezilecek Yerler Sorgusu
SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
Retrieval-Augmented Generation (RAG) tekniğinin bir parçası olarak SQL kullanarak, Seyahat Acentesi gibi yapay zeka ajanları dinamik şekilde ilgili verileri alabilir ve kullanarak doğru ve kişiselleştirilmiş öneriler sunabilir.
Metabiliş uygulamasını göstermek için, bir problemin çözümü sırasında karar verme süreci üzerine düşünen basit bir ajan yaratalım. Bu örnekte, bir otel seçimini optimize etmeye çalışan, ancak hatalar veya alt optimal seçimler yaptığında kendi muhakemesini değerlendiren ve stratejisini ayarlayan bir sistem oluşturacağız.
Bu durumu fiyat ve kaliteyi birleştirerek otel seçen basit bir örnekle simüle edeceğiz, ancak ajan kararlarını “düşünüp” buna göre ayarlama yapacak.
İşte bir örnek:
class HotelRecommendationAgent:
def __init__(self):
self.previous_choices = [] # Önceden seçilen otelleri depolar
self.corrected_choices = [] # Düzeltildiği tercihleri depolar
self.recommendation_strategies = ['cheapest', 'highest_quality'] # Mevcut stratejiler
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]
# Son seçimin iyi olup olmadığını bize söyleyen kullanıcı geri bildirimimiz olduğunu varsayalım
user_feedback = self.get_user_feedback(last_choice)
if user_feedback == "bad":
# Önceki seçim tatmin edici değilse stratejiyi ayarla
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"
# Bir otel listesi simüle et (fiyat ve kalite)
hotels = [
{'name': 'Budget Inn', 'price': 80, 'quality': 6},
{'name': 'Comfort Suites', 'price': 120, 'quality': 8},
{'name': 'Luxury Stay', 'price': 200, 'quality': 9}
]
# Bir ajan oluştur
agent = HotelRecommendationAgent()
# Adım 1: Ajan "en ucuz" stratejisini kullanarak bir otel önerir
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"Recommended hotel (cheapest): {recommended_hotel['name']}")
# Adım 2: Ajan seçimi değerlendirir ve gerekirse stratejiyi ayarlar
reflection_result = agent.reflect_on_choice()
print(reflection_result)
# Adım 3: Ajan tekrar önerir, bu sefer ayarlanmış stratejiyi kullanarak
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"Adjusted hotel recommendation (highest_quality): {adjusted_recommendation['name']}")
Buradaki kritik nokta, ajanın:
Bu, sistemin iç geribildirime dayanarak muhakeme sürecini ayarlayabildiği basit bir metabiliş formudur.
Metabiliş, yapay zeka ajanlarının yeteneklerini önemli ölçüde artırabilen güçlü bir araçtır. Metabiliş süreçlerini dahil ederek, daha zeki, uyarlanabilir ve verimli ajanlar tasarlayabilirsiniz. Ek kaynakları kullanarak yapay zeka ajanlarında metabiliş dünyasını daha derin keşfedebilirsiniz.
Başka öğrenenlerle tanışmak, çalışma saatlerine katılmak ve Yapay Zeka Ajanları ile ilgili sorularınızı sormak için Microsoft Foundry Discord’a katılın.
Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstermemize rağmen, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayınız. Orijinal belge, kendi ana dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi tavsiye edilir. Bu çevirinin kullanımı sonucunda oluşabilecek yanlış anlamalar veya yorumlamalar nedeniyle sorumluluk kabul edilmemektedir.