Chatbot uygulamasının geleneksel mimarisi üç katmandan oluşur: kullanıcının etkileşim kurduğu ön uç, konuşma durumunu ve iş mantığını yöneten arka uç ve yanıtlar üreten bir yapay zeka hizmeti. Üç katmanı da oluşturmak önemli bir mühendislik projesidir. Ön uç, ileti işleme, giriş işleme ve gerçek zamanlı güncellemeler sunan bir sohbet arayüzüne ihtiyaç duyar. Arka uç, oturum yönetimi, ileti depolaması, konuşma iş parçacığı, hız sınırlaması ve kimlik doğrulaması gerektirir. Yapay zeka entegrasyonu, istem oluşturma, bağlam yönetimi ve yanıt analizi gerektirir. Birlikte, bu bileşenler, projeye daha basit bir şey başlamayı bekleyen bir ekip için haftalar veya aylar geliştirme çalışmasını temsil eder.

ChatBot API orta katmanı tamamen ortadan kaldırır. API, oturum yönetimi, konuşma durumu, ileti geçmişi ve yapay zeka yanıt oluşturmayı barındırılan bir hizmet olarak yönetir. Geliştirici yalnızca ön uç, API'ye ileti gönderen ve yanıtları gösteren bir sohbet arayüzü oluşturur. Oluşturulacak arka uç yok, yönetilecek veritabanı yok, korunacak oturum altyapısı yok. API arka uçtur ve geliştirici tarafından sunucu tarafı kodu gerektirmeden kullanıcının iletisi ile chatbot'un yanıtı arasındaki her şeyi yönetir.

"API-first" veya "backend-as-a-service" olarak adlandırılan bu mimari, prensip olarak yeni değildir. Ödeme işleme API'leri, ödeme arka uçları oluşturma ihtiyacını ortadan kaldırdı. Kimlik doğrulama API'leri, kimlik doğrulama arka uçları oluşturma ihtiyacını ortadan kaldırdı. ChatBot API, konuşmalı yapay zekaya aynı ilkeyi uygular: karmaşık, durum tutan ve altyapı ağır arka uç bir hizmet olarak sağlanır ve geliştirici yalnızca kullanıcı deneyimine odaklanır. Sonuç, web sayfası oluşturabilen bir geliştirici bir chatbot oluşturabileceği ve web sayfası oluşturmanın tek gerekli beceri olmasıdır.

Oturumlar ve konuşmalar iletiler arasında bağlamı nasıl korur

Üç ileti öncesinde ne denildiğini hatırlamayan bir chatbot sohbet etmiyor. İzole edilmiş sorulara yanıt veriyor, bu da temelden farklı ve çok daha az yararlı bir etkileşim desenidir. Bir soru-cevap bot ile konuşmalı ajan arasındaki fark bağlamıdır: önceki iletilere referans verme, kuruluş bilgileri üzerine inşa etme ve birden fazla değişim arasında tutarlı bir iplik koruma yeteneği. Bu bağlam, konuşmaları doğal kılan ve sorun giderme akışları, rehberli yapılandırmalar ve ilerleyici bilgi toplama gibi karmaşık çok adımlı etkileşimleri mümkün kılan şeydir.

ChatBot API'deki oturum sistemi, bu bağlamı otomatik olarak sağlar. Bir konuşma başladığında, API benzersiz bir oturum jetonu tarafından tanımlanan bir oturum oluşturur. Bu oturum jetonu ile gönderilen sonraki her ileti aynı konuşmanın parçası olarak kabul edilir. API, oturum içindeki konuşmanın tam geçmişini korur ve her yeni yanıt, daha önce söylenenin tamamı konusunda bilinçli olarak oluşturulur. Kullanıcı soru sorabiliyor, cevap alabiliyor, önceki cevaba atıfta bulunan bir takip sorusu sorabiliyor ve herhangi bir tekrar veya kafa karışıklığı olmaksızın kuruluş bağlamı üzerine inşa eden tutarlı bir cevap alabiliyor.

Geliştirici tarafında oturum yönetimi, oturum jetonunun her API çağrısı ile depolanmasını ve iletilmesini gerektirir. Jeton konuşma başlandığında alınır ve sonraki her iletiye dahil edilir. Bu, ön ucun yönetmesi gereken tek durumdur. Konuşma geçmişi, bağlam penceresi, istem oluşturma ve diğer tüm durum tutan işlemler API tarafında gerçekleşir. Ön ucun sorumluluğu, hangi oturuma ait olduğunu bilmekle sınırlıdır ve bu, bellekte veya tarayıcı oturum depolamasında depolanan tek bir dize değeridir.

Oturum dayanıklılığı, konuşmaların sayfa yenilemelerinden, sekme değişikliklerinden ve hatta cihaz değişikliklerinden sağ çıkmasını sağlar. Oturum jetonu korunduğu ve sonraki ileti ile iletildiği sürece, konuşma tam olarak kaldığı yerde devam eder. Masaüstünde destek konuşması başlatan, tarayıcıyı kapatan ve saatler sonra sayfayı yeniden açan bir kullanıcı sorunsuz bir şekilde konuşmayı sürdürebiliyor çünkü oturum ve tam geçmişi API tarafında kalıyor. Bu dayanıklılık tamamen API'nin oturum altyapısı tarafından yönetilir ve geliştirici tarafında veritabanı veya depolama gerektirmez.

Geri çağrılar ve yoklama olmadan yanıtlar almak

Chatbot yanıtları üretmek için zaman alır. Yapay zekanın konuşma bağlamını işlemesi, ilgili bilgiyi alması, bir istem oluşturması, yanıt üretmesi ve çıktıyı biçimlendirmesi gerekir. Sorunun karmaşıklığına ve bilgi tabanının boyutuna bağlı olarak, bu bir ile birkaç saniye arasında sürebilir. Bu süre boyunca, ön ucun yanıtın hazır olduğunu ne zaman bilmesi gerekir, böylece bunu kullanıcıya görüntüleyebilir.

En basit yaklaşım senkron istek-yanıt: ön uç ileti gönderir ve yanıtın aynı HTTP isteğinde geri gelmesini bekler. Bu işe yarar, ancak arayüzün oluşturma sırasında donduğu, ilerleme göstergesi olmadığı ve iptal etme veya yönlendirme yeteneği olmadığı bir kullanıcı deneyimi oluşturur. Hızlı yanıtlar için bu kabul edilebilir. Birkaç saniye süren yanıtlar için, donmuş arayüz kullanıcıya bozuk gibi görünür.

Geri çağırma URL'leri çok daha iyi bir kullanıcı deneyimi üreten asenkron bir alternatif sağlar. API'ye ileti gönderirken, geliştirici API'nin yanıt hazır olduğunda çağıracağı bir geri çağırma URL'si içerir. Ön uç isteği bir onaylamayla hemen döner ve arayüzün yanıt arka planda oluşturulurken "yazma" göstergesi veya diğer ilerleme geri bildirimi göstermesine izin verir. Yanıt hazır olduğunda, API bunu geri çağırma URL'sine gönderir ve bu, arayüzü tamamlanan iletiyi göstermek için tetikler. Kullanıcı doğal bir konuşma ritmi görür: iletileri görünür, kısa yazma göstergesi çalınır ve yanıt gelir, tüm görünür bekleme veya arayüz donması olmadan.

Tamamen istemci tarafı uygulamaları (tek sayfası uygulamaları, statik siteler veya tarayıcı tabanlı araçlar) oluşturan geliştiriciler için, geri çağırma URL'leri, sunucu tarafından gönderilen olaylarla veya WebSocket bağlantılarıyla birleştirilebilir ve yanıtları doğrudan tarayıcıya gönderebiliriz. API tamamlanan yanıtı geri çağırma bitiş noktasına gönderir ve bu, bağlı tarayıcı oturumuna aktarılır. Bu model minimum sunucu tarafı bileşeni (yalnızca geri çağırma alıcı ve itme mekanizması) gerektirir, ancak tüm konuşma mantığını ve durum yönetimini API tarafında tutar. Geliştirici sunucusu yönlendirme yönetir, değil düşünme.

Geri çağırma mekanizması, akış yanıtlarını da destekler, burada yapay zekanın çıktısı tamamlandığında tüm olarak değil, üretilirken kademeli olarak iletilir. Akış, kullanıcıların sohbet arayüzlerinden beklemeye alışkın olduğu karakteristik "gerçek zamanlı yazma" efektini üretir. Her jeton veya cümle üretilirken gelir ve chatbot'un gerçek zamanlı düşünüyor ve yanıt veriyor gibi görünen, birkaç saniye boyunca kaybolup daha sonra tam bir yanıt veren doğal bir akış oluşturur. Bu akış davranışı, toplam oluşturma süresi beş veya daha fazla saniye olabilecek daha uzun yanıtlar için özellikle önemlidir.

Konuşma geçmişi ve saklanan iletilerin üzerine özellikler oluşturma

Her oturumdaki her ileti depolanır ve API'nin geçmiş uç noktaları aracılığıyla erişilebilir. Bu saklanan geçmiş, bir oturum içinde konuşmalı bağlama izin vermenin ötesinde birden çok amaca hizmet eder. Analiz, kalite izleme, eğitim veri toplama ve chatbot dağıtımına değer katan kullanıcı deneyimi özellikleri için ham malzeme sağlar.

Konuşma geçmişine dayalı analiz, kullanıcı davranışı ve chatbot performansında örüntüleri ortaya koymaktadır. En sık hangi sorular sorulur? Hangi yanıtlar takip eden sorulara yol açar (ilk yanıtın yetersiz olduğunu gösterir)? Hangi konuşmalar pozitif bir çözümle sona eriyor ve hangileri kullanıcı oturumundan ayrılıyor? Bu örüntüler, yüzlerce veya binlerce konuşmada toplam olarak görülebilir, bilgi tabanı ve kullanım durumu tanımlarının süregelen iyileştirilmesini yönlendirir. Konuşma geçmişi olmadan, bu iyileştirme süreci, sistematik analiz yerine anekdot geri bildirimi yönünde eğilir.

Kalite izleme, chatbot'un performansının beklentilerin altında kaldığı belirli etkileşimleri tanımlamak için konuşma geçmişini kullanır. Bir incelemeci, işaretlenen konuşmaları okuyabilir, soruna neden olan belirli bilgi boşluğunu veya use case uyuşmazlığını tanımlayabilir ve gelecekteki konuşmalarda aynı hatayı önleyen hedefli iyileştirmeler yapabilir. Bu hedefli iyileştirme, genel bilgi tabanı genişletmesinden çok daha verimlidir, çünkü varsayımsal olmaktan ziyade belirli, gösterilmiş zayıflıkları ele almaktadır.

Konuşma geçmişine dayalı kullanıcı yönelimli özellikler, sohbet deneyimini kendisini geliştirir. "Son konuşmalar" görünümü, kullanıcıların önceki oturumlara dönmelerine ve aldıkları bilgileri gözden geçirmelerine izin verir. Konuşma geçmişi arasında arama işlevi, kullanıcıların aynı soruyu tekrar sormadan belirli bilgileri bulmalarını sağlar. Dışa aktarma işlevi, kullanıcıların önemli konuşmaları referans belgeleri olarak kaydetmelerine izin verir. Bu özelliklerin her biri, API tarafından sağlanan geçmiş verilerinden tamamen oluşturulmuş ve geliştirici tarafında ek depolama veya veri yönetimi gerektirmez.

Tam ön uç ve arka uç olmadan chatbot arayüzü nasıl görünüyor

ChatBot API'si üzerinde oluşturulan tam bir chatbot ön ucu, ileti görüntüleme alanı, metin girdisi, gönder düğmesi ve bu arayüz öğelerini API uç noktalarına bağlayan JavaScript (veya eşdeğer istemci tarafı kodu) öğelerinden oluşur. İleti görüntüleme alanı, konuşma geçmişini kullanıcı ve bot iletileri arasında değişen olarak işler. Metin girdisi, kullanıcının iletisini yakalar. Gönder düğmesi, iletiyi gönderen ve yanıt oluşturmayı başlatan API çağrısını tetikler. Yanıt geldiğinde (senkron veya geri çağırma yoluyla), ileti görüntüleme alanına eklenir ve arayüz sonraki değişim için hazırdır.

Bu ön ucun stil, düzen ve etkileşim tasarımı tamamen geliştirici kontrolü altındadır. API, sohbet arayüzünün görsel sunumuna kısıtlama koymaz. Tam sayfa sohbet uygulaması, yan panel, kayan widget, modal iletişim kutusu veya uygulamanın tasarımına uygun başka herhangi bir UI deseni olabilir. API konuşmalı motoru sağlar; geliştirici yüzü sağlar. Bu ayrım, chatbot'un görünümünün yalnızca geliştirici'nin tasarım yetenekleri tarafından sınırlı olduğu anlamına gelir, önceden oluşturulmuş bir widget çerçevesinin kısıtlamalarından değil.

Özel bir arayüz oluşturmayı tercih etmeyen geliştiriciler için, API'nin oturum ve ileti biçimleri, minimum değişiklikle uyarlanabilen açık kaynak sohbet arayüzü bileşenleriyle uyumludur. React, Vue ve vanilla JavaScript sohbet bileşenleri, halka açık depolarda mevcuttur ve ChatBot API'ye bağlanmak, varsayılan ileti işlemelerini API çağrılarıyla değiştirmeyi gerektirir. Kimlik doğrulama, eklenti sırrını kullanır, iletiler oturum jetonunu kullanır ve görüntü, seçilen bileşen tarafından sağlanan oluşturma mantığını kullanır. Uyarlama, genellikle bileşen çerçevesiyle tanıdık bir geliştirici için bir saatten az sürer.

Bu mimarideki arka uç eksikliği, pratik avantajı en önemlisidir. Sağlanacak sunucu yok, yönetilecek veritabanı yok, korunacak oturum depolaması yok, yapılandırılacak ölçeklendirme altyapısı yok. API tüm sunucu tarafı kaygılarını yönetir ve ön uç tamamen kullanıcı tarayıcısında çalışır. Bu, chatbot'un statik bir barındırma platformuna, GitHub Pages sitesine, Netlify dağıtımına veya HTML ve JavaScript sunan başka herhangi bir barındırma ortamına dağıtılabileceği anlamına gelir. Operasyonel ek yük sıfırdır ve bu da chatbot'u, adanmış altyapı bütçesi veya operasyon ekibi olmayan projeler için bile sürdürülebilir hale getirir.

Sık Sorulan Sorular

Oturumlar sona ermeden ne kadar süre kalıyor

Oturumlar, varsayılan olarak yirmi dört saat inaktivite olan yapılandırılabilir bir süre boyunca etkin kalır. Bu pencere içinde bir ileti alan oturum, sona erme zamanlayıcısı sıfırlanırsa etkin konuşmalar süresiz olarak kalır. Sona eren oturumlar ve geçmişleri API geçmişi aracılığıyla erişilebilir kalır, ancak yeni iletiler alamazlar.

Konuşma geçmişi gizlilik uyumluluğu için silinebilir mi

Evet. Konuşma geçmişi, API aracılığıyla oturum başına veya kullanıcı başına silinebilir. Bu, kullanıcılara verilerinin silinmesini isteme hakkı veren GDPR gibi gizlilik düzenlemelerine uyum sağlamayı destekler. Silme kalıcıdır ve belirtilen oturumlarla ilişkili tüm iletileri ve meta verileri kaldırır.

Yanıt hazır olduğunda geri çağırma URL'si erişilebilir değilse ne olur

API, yapılandırılabilir sayıda denemeler boyunca üstel geri çekilme ile geri çağırma teslimini yeniden dener. Tüm denemeler başarısız olursa, yanıt yine de konuşma geçmişi uç noktası aracılığıyla kullanılabilir ve ön uç, geri dönüş olarak kaçırılan yanıtları yoklayabilir. Bu yeniden deneme mekanizması, geçici ağ sorunlarının yanıt kaybı ile sonuçlanmadığını garanti eder.

Oturum başına iletiler üzerinde hız sınırlaması var mı

Hız sınırlamaları, oturum düzeyinde değil hesap düzeyinde uygulanır ve bu, suistimali önlerken yasal yüksek hacim kullanımını sağlar. Varsayılan hız sınırlaması normal konuşmalı etkileşimler için yeterince cömerttir. Alışılmadık yüksek ileti hacimleri bekleyen hesaplar, API yönetimi arayüzü aracılığıyla sınır ayarlamaları isteyebilir.

Ön uç, chatbot cevap bilmiyor algılayabilir mi

API yanıtı, yanıtın güven düzeyini ve bilgi tabanında ilgili bilgi bulunup bulunmadığını gösteren meta veriler içerir. Ön uç, güven düşük olduğunda sorumluluk reddi gösterme veya bilgi tabanı sorgu için ilgili bilgi içermediğinde kullanıcının insan desteğine başvurmasını önerme gibi sunumunu ayarlamak için bu meta verileri kullanabilir.

API, resimler veya düğmeler gibi zengin ileti biçimlerini destekliyor mu

API, metin, önerilen takip soruları ve eylem bağlantıları içeren yapılandırılmış yanıt biçimlerini destekler. Ön uç, bu yapılandırılmış öğeleri yorumlar ve kendi tasarım sözleşmelerine göre işler. Bu, tıklanabilir öneriler, katılı bağlantılar ve biçimlendirilmiş içerik gibi zengin etkileşimli deneyimleri mümkün kılar ve API'nin ön ucun belirli işleme yeteneklerini anlamasını gerekli kılmaz.