Python ile chatbot geliştirme: temel döngüden kendi verinizle konuşan sohbet robotuna
Beceri rehberi

Python ile chatbot geliştirme: temel döngüden kendi verinizle konuşan sohbet robotuna

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

Python ile dil modeli tabanlı chatbot kurmanın adımları: mesaj döngüsü, sistem talimatı, kendi verinizle çalışma, test ve sık yapılan hatalar.

Basit bir chatbot aslında neyden oluşur?

Dil modeli tabanlı bir chatbotun çekirdeği şaşırtıcı derecede küçüktür: kullanıcıdan bir mesaj alırsınız, bunu şimdiye kadarki konuşmayla birlikte bir dil modeli hizmetine gönderirsiniz, gelen yanıtı kullanıcıya gösterir ve konuşma geçmişine eklersiniz. Python bu döngüyü yazmak için uygun bir dildir, çünkü model sağlayıcılarının çoğunun resmî istemci kütüphaneleri Python için hazırdır ve veri, arama, web gibi çevre işler için olgun kütüphaneler bulunur.

Kural tabanlı eski chatbotlar belirli anahtar kelimelere sabit yanıt verirdi. Dil modeli tabanlı chatbot ise serbest metni anlar ve yanıtı üretir. Bu güç aynı zamanda sorumluluk getirir: bot yanlış bilgiyi güvenle söyleyebilir, konu dışına çıkabilir. Bu nedenle sağlam bir chatbot, kodun bir de sınırlarını ve denetimlerini içerir.

Başlamadan önce kapsamı yazın

En sık yapılan hata, 'her şeyi bilen bir asistan' hedeflemektir. Bunun yerine botun hangi sorulara cevap vereceğini, hangilerinde reddedeceğini ve ne zaman bir insana devredeceğini kısa bir metin olarak yazın. Örneğin bir yazılım şirketinin iç destek botu için kapsam şu olabilir: parola sıfırlama adımları, sık sorulan donanım talepleri ve BT ekibine yönlendirme. Maaş, hukuk ve kişisel veri soruları kapsam dışıdır ve bota bu konularda yanıt vermemesi söylenir.

Kapsamı baştan yazmanın faydası çifttir. Sistem talimatının ilk taslağı kendiliğinden çıkar ve ayrıca test aşamasında botu neye göre değerlendireceğiniz belli olur: kapsam içi sorulara doğru, kapsam dışı sorulara kibar bir ret.

Mesaj döngüsü ve sistem talimatı

Modellere mesajlar roller halinde gönderilir: sistem talimatı botun kimliğini ve kurallarını verir, kullanıcı mesajı soruyu taşır, asistan mesajı önceki cevapları temsil eder. Python tarafında bu, mesaj sözlüklerinden oluşan bir listedir. Her turda yeni kullanıcı mesajı listeye eklenir, liste modele gönderilir, dönen yanıt da listeye eklenir. Böylece bot önceki turlarda söylenenleri 'hatırlıyor' görünür; gerçekte her çağrıda tüm geçmiş yeniden gönderilir.

Sistem talimatı iyi yazıldığında botun kalitesi belirgin biçimde artar. Etkili bir talimat şunları içerir: • Botun rolü ve hedef kitlesi • Yanıt dili, üslubu ve uzunluğu • Hangi konularda yanıt verilmeyeceği ve bu durumda söylenecek cümle • Emin olunmayan durumda tahmin yürütmek yerine bilmediğini söylemesi gerektiği • Gerekirse yanıt biçimi, örneğin kısa maddeler

Konuşma uzadıkça geçmiş modelin bağlam sınırına yaklaşır ve maliyet artar. Basit çözüm eski turları kırpmak ya da özetlemektir.

Kendi bilginizle konuşturmak: belge arama ve veri tabanı sorgusu

Genel bir model şirketinizin iç prosedürünü bilmez. Bu boşluğu kapatmanın yaygın yolu geri getirme destekli üretimdir (RAG). Belgeleriniz küçük parçalara bölünür, her parça anlamca aranabilir hale getirilir, kullanıcı sorusu geldiğinde en ilgili parçalar bulunur ve soruyla birlikte modele 'yalnızca bu metne dayanarak yanıtla' talimatıyla verilir. Böylece yanıt belgeye bağlanır ve hangi kaynaktan geldiği gösterilebilir.

Bilgi tablolarda duruyorsa bir başka yöntem soruyu sorguya çevirmektir. Kullanıcının doğal dildeki sorusunu model SQL sorgusuna dönüştürür, sorgu çalıştırılır, sonuç tekrar insan diliyle anlatılır. Bu yaklaşımda güvenlik önlemleri vazgeçilmezdir: bot veri tabanına yalnızca okuma yetkisiyle bağlanır ve üretilen sorgu çalışmadan önce doğrulanır. Modelin yazdığı sorguyu körü körüne çalıştırmak hem yanlış sonuç hem de veri sızıntısı riski doğurur.

Adım adım geliştirme yolu

Her aşama bir öncekinin üzerine kurulur ve her aşamada bot çalışır durumda kalır; bu sayede hata çıktığında sorunun nerede başladığını bulmak kolaylaşır.

Başlangıçtan ileri düzeye giden makul bir sıra şöyledir: • Komut satırında çalışan en küçük döngüyü yazın: girdi al, modele gönder, yanıtı yazdır. Sağlayıcının istemci kütüphanesini kurun, erişim anahtarını koda gömmeyin, ortam değişkeninden okuyun. • Sistem talimatını ekleyin ve kapsam içi ile kapsam dışı örnek sorularla deneyin. • Konuşma geçmişini tutun ve uzun konuşmalar için kırpma ekleyin. • Yanıtları akış halinde (kelime kelime) göstermeyi öğrenin; kullanıcı deneyimi belirgin iyileşir. • Belge aramasını ya da veri tabanı sorgusunu ekleyin. Başlangıçta tek bir kaynakla sınırlı kalın. • Hata durumlarını yönetin: ağ kesintisi, hız sınırı, boş yanıt. Bot sessizce çökmesin, kullanıcıya anlamlı bir mesaj versin. • Basit bir arayüz ekleyin. Hızlı prototip için Streamlit ya da Gradio gibi kütüphaneler, başka sistemlerin çağıracağı bir servis için FastAPI gibi bir web çerçevesi kullanılır. • Son olarak kullanıcıların bulunduğu kanala bağlayın: kurum içi mesajlaşma aracı ya da web sitesi bileşeni.

Test, güvenlik ve sık yapılan hatalar

Chatbot'u denemekle test etmek aynı şey değildir. Elinizde kapsam içi ve dışı örnek soruların bulunduğu bir değerlendirme listesi olsun; her değişiklikten sonra bu liste yeniden çalıştırılsın. Yanıtların doğruluğunu, reddin kibarlığını ve kaynağa bağlılığı kontrol edin.

Sık görülen hatalar ve önlemler: • Kaynağa dayanmayan güvenli yanıt (halüsinasyon): belge dışında bilgi vermeme talimatı ve kaynak gösterme zorunluluğu • Kullanıcının talimatı değiştirmeye çalışması (istem enjeksiyonu): sistem talimatını kullanıcı metninden ayrı tutmak, hassas işlemleri botun inisiyatifine bırakmamak • Kişisel verinin loglara ve modele gereksiz yere gitmesi: gerekli alanları maskelemek, saklama süresini belirlemek • Kontrolsüz maliyet: kullanıcı başına çağrı sınırı koymak, çok uzun geçmişi göndermemek • Erişim anahtarının kodla birlikte paylaşılması: anahtarları kod deposuna asla koymamak

Canlıya çıkmadan önce botun neleri bilmediğini ve yanıt veremediğinde kullanıcının nereye yönleneceğini netleştirin.

Bu becerinin Mindset programlarındaki karşılığı

Python ile Yapay Zekâ Ajanları (AI Agent) Geliştirme Eğitimi'nin modül başlıkları arasında Dil Modellerine Pratik Giriş, Tek Ajanlı Sistemler Kurma, Ajanları Araçlarla Donatma ve Ajan Sistemlerini RAG ve Prompt Engineering ile Geliştirme yer alır; chatbot'tan bir adım ötesine, araç kullanan ajanlara geçmek isteyen yazılım ve veri ekipleri için uygundur.

Veri tabanındaki bilgiyle konuşan bir bot hedefleyen analitik ekipleri için LLM ile Veri Sorgulama (Text-to-SQL) programı, Prompt Mühendisliği ile SQL Üretimi ile Sonuç Doğrulama ve Güvenlik başlıklarını içerir. Kurumsal ölçekte konuşma tasarımı, uyum ve insan devri gerekiyorsa Yapay Zeka Destekli Kurumsal Chatbot Tasarımı programının Konuşma Akışı Tasarımı ve Güvenlik, Uyum ve İnsan Devresi modülleri müşteri deneyimi ve BT ekiplerine yöneliktir.

İlgili Mindset programı

Python ile Yapay Zekâ Ajanları (AI Agent) Geliştirme Eğitimi

Sık sorulanlar

Sık sorulan sorular

Python bilmeden chatbot yapılabilir mi?

Kod yazmadan chatbot kuran araçlar vardır ve basit senaryolar için yeterli olabilir. Ancak kendi verinizle çalışan, güvenlik denetimleri olan ve diğer sistemlerle konuşan bir bot istiyorsanız Python bilgisi esneklik sağlar. Temel düzeyde işlev yazmayı, kütüphane kurmayı ve API çağırmayı bilmek başlangıç için yeterlidir.

Chatbot için kendi modelimi eğitmem gerekir mi?

Gerekmez. Başlangıçta hazır bir dil modeli hizmetini API ile çağırmak yeterlidir. Bilgi eksikliğini genellikle modeli yeniden eğitmeden belge arama ile kapatırsınız. Model eğitimi ya da ince ayar ancak üslup, alan dili veya maliyet gibi özel bir nedeniniz olduğunda ve elinizde yeterli kaliteli veri varsa gündeme gelir.

Chatbot önceki konuşmayı nasıl hatırlıyor?

Model kendiliğinden hatırlamaz. Kodunuz önceki mesajları bir listede tutar ve her çağrıda bu listeyi yeniden gönderir. Konuşma uzayınca bağlam sınırına yaklaşılır; bu durumda eski turlar kırpılır ya da özetlenir. Oturumlar arası hatırlama için geçmişi bir veri tabanında saklamak gerekir.

Chatbot yanlış bilgi verirse ne yapılır?

Önce kaynağa bağlılığı artırın: yalnızca verilen belgelere dayanmasını isteyin, kaynak göstertin ve emin olmadığında bilmediğini söylemesini talimata yazın. Sonra yanlış yanıt veren soruları değerlendirme listenize ekleyin ve her değişiklikten sonra yeniden deneyin. Riskli konularda yanıtı bir insana devretmek en güvenli yoldur.

Chatbot ile yapay zeka ajanı arasındaki fark nedir?

Chatbot genellikle sorulara yanıt verir. Ajan ise hedef doğrultusunda araç çağırır, birkaç adımlı iş yürütür ve sonucu kendisi değerlendirir. Basit bir sohbet robotuna araç bağlandığında ve plan yapma yeteneği eklendiğinde ajana yaklaşır. İlk adım olarak sağlam bir chatbot kurmak ajan geliştirmeye de zemin hazırlar.