Python İle Yapay Zeka Sohbet Botu Nasıl Yapılır? Günümüzde yapay zeka ve doğal dil işleme teknolojilerinin gelişmesiyle birlikte, sohbet botları artık günlük hayatımızın bir parçası haline geldi. Basit soruları yanıtlamaktan, kullanıcılara hizmet veren karmaşık sanal asistanlara kadar birçok farklı uygulama alanı bulunmaktadır. Bu makalede, Python programlama dili kullanarak basit bir sohbet botu nasıl oluşturulacağını adım adım ele alacağız.
Konuyu Belirleyelim – Python İle Yapay Zeka Sohbet Botu Nasıl Yapılır?
Makale sonunda indirme linkini ve aşağıda detaylarını paylaştığım chat bot temelde oğlumun istediği ve 4 saat bir sürede python ile hazırladığım eğlencelik bir yapay zeka chat bot örneğidir. Basitçe özellikleri şınlar:
- İlk açılışta sizden ona bir isim vermenizi istesin.
- Devamındaki tüm sohbetlerde sizin verdiğiniz isim ile sizinle iletişim kursun.
- Her şeyi bilmesin ve bilmediklerini sizden öğretmenizi istesin.
- Yeni şeyler öğrendiğinde mutlu olsun ve bunu size yazdıkları ile yansıtsın.
- Boş kaldığında yeni bir şeyler öğrenmek istesin.
- Gününüzde olmadığınızda öner komutu ile geçmişte konuştuğunuz konulardan size önerilerde bulunsun.
Anlayacağınız üzere sohbet botundan çok dijital, evcil bir arkadaşı çağrıştıran ilginç özellikleri var. 9 yaşındaki oğlumun önerilerinden hiç çıkmadığımda böyle ilginç bir şey ortaya çıktı.
Tamamlandığında yazışırken onunla iletişim kurmaktan çok zevk aldı. Anlaşılan kafasını çevirdiği her yerde ona bir şeyler öğretmeye çalışan yetişkinlerden o da sıkılmış. Başlarda kişisel konular ile başladı ve ilerleyen zamanda okulda öğrendiklerini ona öğretmeye başladı. Hem güzel bir tekrar oluyor ve hem de çok eğleniyor. Bu sebepten ben de yapılışı ve proje dosyaları ile paylaşmak istedim. Dileyen olduğu gibi dileyen ihtiyaçlarına göre geliştirerek kullanabilir.
Python İle Yapay Zeka Sohbet Botu Nasıl Yapılır?
Adım 1: Gerekli Kütüphanelerin İçe Aktarılması
İlk adım olarak, sohbet botumuzu oluşturmak için gerekli olan Python kütüphanelerini içe aktaracağız. Bu botu oluştururken JSON veritabanı işlemleri ve metin benzerliği için json ve difflib kütüphanelerini kullanacağız.
import json
from difflib import get_close_matches as yakin_sonuclari_getir
Adım 2: Veritabanının Yüklenmesi ve Yazılması İşlemleri
Sohbet botumuzun öğrenme yeteneğine sahip olması için bir veritabanına ihtiyacımız var. Bu veritabanı, kullanıcının sorduğu soruları ve botun verdiği cevapları içerecek şekilde yapılandırılmış bir JSON dosyası olacaktır. Bu işlem için veritabanini_yukle() ve veritabanina_yaz(veriler) fonksiyonlarını tanımlayacağız.
def veritabanini_yukle():
with open('veritabani.json', 'r') as dosya:
return json.load(dosya)
def veritabanina_yaz(veriler):
with open('veritabani.json', 'w') as dosya:
json.dump(veriler, dosya, indent=2)
Adım 3: Yakın Sonuçların Bulunması
Kullanıcının girdiği sorunun benzerlerini bulmak için difflib kütüphanesinin get_close_matches fonksiyonunu kullanacağız. Bu fonksiyon, bir dize için en yakın eşleşmeleri bulmamıza olanak sağlar.
def yakin_sonuc_bul(soru, sorular):
eslesen = yakin_sonuclari_getir(soru, sorular, n=1, cutoff=0.6)
return eslesen[0] if eslesen else None
Adım 4: Cevabın Bulunması
Kullanıcının sorduğu sorunun veritabanında olup olmadığını kontrol edip, varsa cevabını döndüren bir fonksiyon tanımlayacağız.
def cevabini_bul(soru, veritabani):
for soru_cevaplar in veritabani["sorular"]:
if soru_cevaplar["soru"] == soru:
return soru_cevaplar["cevap"]
return None
Adım 5: Sohbet Botunun Ana İşlevi
Ana işlevimizde, sohbet botumuzu kullanıcıyla etkileşime sokacağız. Kullanıcının sorularını alacak, veritabanında arayacak ve uygun bir cevap bulamazsa yeni soru ve cevapları öğrenmek için kullanıcıyla etkileşimde bulunacak.
def chat_bot():
# Veritabanını yükle
veritabani = veritabanini_yukle()
# Botun adını belirle veya daha önce belirlenmişse kullan
bot_adi = veritabani.get("bot_adi")
if not bot_adi:
bot_adi = input("Bot: Beni tanımlayacak bir isim belirleyin: ")
veritabani["bot_adi"] = bot_adi
veritabanina_yaz(veritabani)
print(f"Bot: Merhaba, Ben {bot_adi}. Size nasıl yardımcı olabilirim? Henüz bir fikrin yoksa 'öner' yazabilirsin.")
while True:
soru = input(f"{bot_adi}: Hadi yeni soru gelsin. => ")
if soru == 'çık':
break
elif soru == 'öner':
listele(veritabani)
else:
gelen_sonuc = yakin_sonuc_bul(soru, [soru_cevaplar["soru"] for soru_cevaplar in veritabani["sorular"]])
if gelen_sonuc:
verilecek_cevap = cevabini_bul(gelen_sonuc, veritabani)
print(f"{bot_adi}: {verilecek_cevap}")
else:
print(f"{bot_adi}: Bunu nasıl cevaplayacağımı bilmiyorum. Öğretir misiniz?")
yeni_cevap = input("Öğretmek için yazabilir veya 'geç' diyebilirsin. ")
if yeni_cevap != 'geç':
veritabani["sorular"].append({
"soru": soru,
"cevap": yeni_cevap
})
veritabanina_yaz(veritabani)
print(f"{bot_adi}: Bana yeni bir şeyler öğrettiğin için çok teşekkür ederim. Bunu sık sık yapalım olur mu?")
Sonuç – Python İle Yapay Zeka Sohbet Botu Nasıl Yapılır?
Bu makalede, Python programlama dili kullanarak basit bir sohbet botu nasıl oluşturulur adım adım açıkladık. Bu bot, kullanıcının sorularını yanıtlamak için bir veritabanı kullanır ve kullanıcının botun yeteneklerini genişletmesine olanak tanır. Botun Visual Studio Code Proje Dosyaları Burada rahatça indirip kullanabilirsiniz.