ChatGPT ile Müşteri Destek Botu: Adım Adım Prompt Zinciri
Bu rehber, ChatGPT tabanlı müşteri destek botları için pratik bir prompt zinciri (prompt chaining) tasarlama ve test etme adımlarını gösterir. Prompt zincirleme; kullanıcı mesajını parçalayan, mantıksal adımlar halinde işleyen ve her adımın çıktısını sonraki adıma aktaran bir yaklaşımdır. Bu yöntemin faydaları ve uygulama örnekleri hakkında arka plan okumak için Sider.ai rehberine ve zincirleme düşünmeyi (chain-of-thought) açıklayan kaynaklara bakabilirsiniz (Botpress).
Neden prompt zinciri?
- Adım adım mantık yürütme, modelin karmaşık talepleri daha tutarlı çözmesine yardımcı olur.
- Her adımın çıktısını yapılandırılmış formatta almak, otomasyon ve hata ayıklamayı kolaylaştırır.
- Güvenlik, gizlilik ve insan devreye alma noktalarını açıkça yerleştirmeye izin verir.
Başlamadan önce: Tasarım kararları
- Hangi kanallarda destek verilecek? (Web chat, e-posta, SMS, vb.)
- Hangi intentleri otomatikleştireceksiniz? (fatura, iade, teknik sorun, bilgi talebi)
- Hangi durumlarda insan desteğine devredeceksiniz? (kimlik doğrulama sorunları, hassas veri talepleri, belirsiz intentler)
- Gizlilik politikaları: kredi kartı gibi hassas bilgileri istememek gibi kuralları netleştirin. Bu yaklaşım örnekleri için bkz. Prompt Oluştur.
Adım 1 — Sistem promptu: Botun rolü ve kısıtları
Sistem promptu, modelin davranışını sabitleyen temel kuralları içerir. Örnek bir sistem promptu (ilham amacıyla):
Rol: Sen [Şirket Adı] için müşteri destek asistanısın. Öncelik: Kullanıcının sorununu hızlı, doğru ve güvenli biçimde çözmek. İletişim: Kısa cümleler, net adımlar, nazik ve profesyonel ton. Gizlilik: Kredi kartı numarası gibi hassas bilgileri isteme. Kullanıcı kendiliğinden paylaştıysa kibarca durdur ve güvenli alternatif öner.
Bu temel kurallar, zincirde sonraki tüm istemlerin dayandığı davranış çerçevesini oluşturur (kaynak).
Adım 2 — Kullanıcı mesajı normalizasyonu
İlk adımda kullanıcı mesajını temizleyin, yazım hatalarını düzeltin, dil bilgisini koruyarak kısaltın ve gereksiz ayrıntıları çıkarın. Bu çıktı daha sonra intent tespitine ve entity extraction'a girdi sağlar.
İstem: "Aşağıdaki kullanıcı mesajını kısa ve temiz bir Türkçe cümleye dönüştür. Gereksiz tekrarları kaldır, tarih/saat/para birimini olduğu gibi bırak." Kullanıcı mesajı: "Hesabımdan 12/03 tarihinde 45.99 USD çekilmiş, ben bunu tanımıyorum, iade istiyorum lütfen!" Çıktı (kısa): "12/03 tarihinde hesabımdan 45.99 USD çekildi; iade talep ediyorum."
Adım 3 — Intent tespiti
Normalizasyon sonrasında intent sınıflandırması yapılır. Intentleri sınırlı etiketler halinde isteyin ve mümkünse her etiket için bir güven (confidence) skoru döndürmesini sağlayın.
İstem: "Aşağıdaki kısa kullanıcı mesajı için tek bir intent etiketi seç: [billing, refund, technical_support, account_issue, general_info, unknown]. Ayrıca 0-1 arası bir güven skoru ver." Kısa mesaj: "12/03 tarihinde hesabımdan 45.99 USD çekildi; iade talep ediyorum." Çıktı (örnek): {"intent":"refund","confidence":0.95}
Adım 4 — Entity (slot) çıkarımı
Intent belirlendikten sonra gereken bilgileri çıkarın: sipariş numarası, işlem tutarı, tarih, ödeme yöntemi, kullanıcı iletişim tercihleri vb. Çıktıyı yapılandırılmış JSON olarak isteyin ve hassas verilerin (ör. tam kredi kartı numarası) toplanmayacağını açıkça belirtin.
İstem: "Aşağıdaki mesajdan gerekli alanları JSON olarak çıkar. Alanlar: order_id (varsa), amount, currency, transaction_date, payment_method (varsayılabilir), user_contact_ok (true/false), sensitive_data_present (true/false). Hassas veri varsa 'sensitive_data_present': true olarak işaretle fakat hiçbir hassas değeri döndürme." Kısa mesaj: "12/03 tarihinde hesabımdan 45.99 USD çekildi; iade talep ediyorum." Çıktı (örnek): {"order_id":null,"amount":45.99,"currency":"USD","transaction_date":"2026-12-03","payment_method":null,"user_contact_ok":true,"sensitive_data_present":false}
Adım 5 — İşlem planı (action planning)
Intent ve slot bilgisine dayanarak atılacak adımları oluşturun: eğer işlem eşleştirilebiliyorsa otomatik iade isteği başlat, değilse kullanıcıdan eksik bilgi iste; belirsizlik durumunda insan devreye alın. Bu adım, otomasyon mantığını açıkça belirtir.
İstem: "Intent ve entity bilgisine göre en fazla 3 adımdan oluşan bir işlem planı ver. Her adım için 'action' ve 'reason' alanı olsun." Girdi: {"intent":"refund","amount":45.99,...} Çıktı (örnek): [ {"action":"search_transaction","reason":"aynı tarih ve tutarda işlem bulunup bulunmadığını kontrol et"}, {"action":"initiate_refund_if_match","reason":"işlem eşleşirse otomatik iade isteği oluştur"}, {"action":"escalate_to_human","reason":"eğer eşleşme yoksa veya belirsizlik varsa insan müdahalesi"} ]
Adım 6 — Kullanıcıya cevap üretme
Plan uygulandıktan sonra kullanıcının göreceği metni oluşturun. Mesaj kısa, nazik ve yönlendirici olmalıdır. Eğer işlem başlatıldıysa izleme numarası verin; eksik bilgi varsa hangi bilgiyi istediğinizi açıkça belirtin.
İstem: "Kullanıcıya gösterilecek kısa ve nazik bir Türkçe mesaj yaz. Eğer iade başlatıldıysa takip bilgisi göster; değilse hangi bilgiyi istediğini açıkça belirt." Durum: "işlem eşleşti, iade başlatıldı, takip_no=RF12345" Çıktı (örnek): "İade talebiniz alındı ve işleme koyuldu. Takip numaranız RF12345. İşlemle ilgili e-posta gönderilecektir."
Adım 7 — Güvenlik ve doğruluk kontrolü
Yanıtı kullanıcıya göndermeden önce kısa bir sağlık kontrolü çalıştırın: modelin uydurma (hallucination) ifadeler üretip üretmediğini, hassas veri talep edilip edilmediğini ve yanıtın sistem kurallarına uyup uymadığını kontrol edin. Zincirleme düşünce teknikleri, modelin adımlarını açıkça takip etmek için faydalıdır (Botpress).
Adım 8 — İnsan devreye alma ve kayıt oluşturma
Escalate şartları oluştuğunda, insan operatöre gidecek özet kartını oluşturun: kısa konu, yapılan adımlar, eksik bilgiler ve öncelik. İnsan desteğine kadar kullanıcıya dönüş yapılacağını bildirin.
Test etme ve doğrulama
Otomasyonun güvenilir olması için aşağıdaki testleri düzenli olarak yapın. Aşağıdaki örnek test türleri ve başarı ölçütleri bir başlangıç noktasıdır.
| Test tipi | Açıklama | Başarı ölçütü |
|---|---|---|
| Intent doğruluğu | Etiketlenmiş örneklerle sınıflandırma doğruluğu. | İlgili intentlerin doğru tanımlanması. |
| Slot çıkarımı | JSON çıktılarının alan doğruluğu. | Gerekli alanların doğru ve eksiksiz çıkması. |
| Yanıt kalitesi | İnsan değerlendirmesiyle cevap kalitesi: naziklik, netlik. | İnsan puanlamasında kabul edilebilirlik. |
| Fallback/escalation oranı | Botun insan desteğine yönlendirme oranı. | Hedeflenen tolerans seviyesinde olması. |
Pratik örnek: "İade istiyorum" akışı
Kullanıcı mesajı: "Hesabımdan 12/03 tarihinde 45.99 USD çekilmiş, ben tanımıyorum, iade istiyorum!"
- Normalizasyon → "12/03 tarihinde hesabımdan 45.99 USD çekildi; iade talep ediyorum."
- Intent tespiti → {"intent":"refund","confidence":0.96}
- Entity çıkarımı → {"amount":45.99,"currency":"USD","transaction_date":"2026-12-03",...}
- İşlem planı → işlem eşleştirme, iade başlatma veya insan devreye alma
- Kullanıcıya mesaj → "İade talebiniz alındı; işlemi araştırıyoruz. Bulunduğunda size bildireceğiz."
İyi uygulamalar kontrol listesi
- Sistem promptunu net kurun ve tüm alt istemlerin bu kurala uymasını sağlayın.
- Çıktıları yapılandırılmış JSON formatında isteyin; otomasyon daha güvenilir olur.
- Hassas veri toplama yerine token/ID kullanın ve asla tam kredi kartı bilgisi istemeyin (kaynak).
- Escalation kriterlerini açıkça tanımlayın ve insan müdahalesi akışını test edin.
- Modelin neden belli kararı verdiğini açıklayan ara adımlar (chain-of-thought) gerektiğinde saklayın; bu, hata ayıklamayı kolaylaştırır (kaynak).
Sınırlar, etik ve uyumluluk
Bu rehberde verilen örnekler uygulamaya yöneliktir; üretimde kullanmadan önce sağlayıcı limitlerini, veri koruma düzenlemelerini (ör. bölgesel veri saklama kuralları) ve şirket politikalarını doğrulayın. Yapay zekanın yanıtlarında hatalar veya eksiklikler olabilir; kritik kararlar için insan onayı mekanizması bırakın.
Sonuç: Nereden başlayacaksınız?
Küçük bir pilot başlatın: 3-5 sık karşılaşılan intent için zinciri kurun, gerçek müşteri verisi yerine anonimleştirilmiş örneklerle test edin, performansı ölçün ve sonra kademeli olarak kapsamı genişletin. Zincirleme istemler, özellikle çok adımlı çözümlerde doğruluk ve tutarlılığı artırabilir; bu yaklaşımın uygulanması ve test edilmesi hakkında daha fazla teknik arka plan için Sider.ai ve Botpress yazılarına göz atabilirsiniz.
Sıkça Sorulan Sorular
Soru: Prompt zinciri kurmak için hangi yeteneklere ihtiyaç var?
Cevap: Temel olarak prompt mühendisliği bilgisi, JSON/şema tasarımı ve test otomasyonu bilgisi gerekir. Mümkünse müşteri süreçlerini bilen bir ürün veya destek uzmanı ile birlikte çalışın.
Soru: Hassas veriler nasıl yönetilmeli?
Cevap: Hassas verileri istemekten kaçının; işlem tanımlayıcıları veya tokenlar kullanın. Uygun veri saklama ve şifreleme politikalarını uygulayın ve yasal uyumluluk için şirketinizin hukuk/compliance ekibi ile görüşün.
Soru: Bot tutarsız cevaplar veriyorsa ne yapmalıyım?
Cevap: Zinciri bölümlere ayırıp her adımın çıktısını doğrulayın; özellikle intent ve entity adımlarını iyileştirin, birkaç örnek göstererek few-shot yaklaşımı ekleyin ve sağlık kontrolleri ekleyin.