Bir Yapay Zekâ Metin Sohbetini Doğal Hissettiren Nedir: Yazma Hızı mı, Etkileşim Ritmi mi?
Bir yapay zekâ metin sohbetinde ikna edici bir etkileşim, harflerin ne kadar hızlı göründüğünden çok etkileşimin her aşamasının mantıklı olmasına bağlıdır: kullanıcının sistemin mesajı aldığını anlaması, yanıtın okunabilir parçalar hâlinde gelmesi ve tamamlanmanın ya da kesintinin net olması. Yalnızca bir yazma animasyonu bu ritmi yaratamaz. Arayüzü faydalı geri bildirimler ve kullanıcı kontrolü etrafında tasarlayın; simüle edilmiş yazmayı ise diğer uçta bir insanın bulunduğunun kanıtı olarak değil, isteğe bağlı bir görsel efekt olarak değerlendirin.
Yazma animasyonu bir sinyaldir, konuşmanın kendisi değil
Yanıp sönen üç nokta veya "yazıyor" etiketi, bir yanıtın hazırlandığını gösterebilir. Visa'nın sohbet tasarımı kılavuzu, yazma göstergelerini aktif bir yanıtı işaret etmenin bir yolu olarak tanımlar ve bunları üretken yapay zekâ çalışmaları sırasında kullanılan ilerleme göstergelerinden ayırır. Bu ayrım faydalıdır: "yazıyor" ifadesi birinin mesaj oluşturduğunu düşündürür; "çalışıyor" veya "üretiyor" ise bir sistem sürecini daha net şekilde tanımlar. Bir yapay zekâ asistanı için, insani bir kimliği veya insani bir yazma modelini ima etmek yerine durumu doğru bir şekilde adlandıran ifadeler seçin. (Visa Product Design System: Chat)
Sabit bir duraklamanın ardından karakter karakter simüle edilmiş bir gösterim, arayüzün bir mesajlaşma uygulaması gibi görünmesini sağlayabilir; ancak kullanıcıya isteğin alınıp alınmadığını, sistemin hâlâ işlem yapıp yapmadığını veya yanıtın tamamlanıp tamamlanmadığını söylemez. Ayrıca kısa ve basit bir yanıtın gereksiz yere gecikmiş hissettirmesine de yol açabilir. Faydalı tasarım sorusu "Her karakter kaç milisaniye sürmeli?" değil, "Kullanıcı beklerken, okurken veya bir sonraki adımda ne yapacağına karar verirken neyi bilmeye ihtiyaç duyar?" sorusudur.
Kullanıcının görevi ve beklemenin maliyetiyle başlayın
Öncelikle mesajın arkasındaki işi tanımlayın. Basit bir soruya verilecek kısa bir yanıt, yalnızca kısa bir işlem uyarısına ve eksiksiz bir yanıta ihtiyaç duyabilir. Sağlanan bir belgenin incelenmesi gibi daha uzun bir işlem gerektiren bir yanıt ise daha açıklayıcı bir durumdan ve varsa dürüst bir tahminden faydalanabilir. Süre bilinmediğinde, belirsiz bir gösterge kullanın ve uydurma bir geri sayım oluşturmayın. Apple'ın ilerleme kılavuzu; sürenin veya ilerlemenin ölçülebildiği belirli (determinate) ilerlemeyi belirsiz (indeterminate) etkinlikten ayırır ve doğru ilerleme geri bildirimi ile uygulanabilir olduğunda işlemi durdurmanın bir yolunu önerir. (Apple Human Interface Guidelines: Progress Indicators)
Pratik bir sıralama; alındığını bildirmek, fark edilir bir bekleme varsa çalışmanın devam ettiğini göstermek ve hazır olduğunda yanıtı sunmaktır. Kompakt bir arayüz bunlardan bazılarını birleştirse bile bunlar ayrı durumlardır. "Gönderildi" durumu kullanıcının eylemini onaylar; bir etkinlik uyarısı beklemeyi bildirir; oluşturulan mesaj ise sonucu içerir. Çalışma durduktan sonra ekranda bir uyarı bırakmaktan veya yanıtın tamamlandığını netleştirmeden onu kaldırmaktan kaçının. Bir istek başarısız olursa ne olduğunu açıklayın ve yeniden denemek gibi eyleme geçirilebilir bir sonraki adım sunun. Visa'nın sohbet kılavuzu da benzer şekilde, bir mesaj gönderilemediğinde net hata mesajları ve yeniden gönderme seçeneği önermektedir. (Visa Product Design System: Chat)
İnsanların okumasına yardımcı olmak için mesaj parçaları kullanın
Kelimelerin veya ifadelerin hazır oldukça parça parça akıtılması (streaming), yanıtın tamamının oluşturulması bitmeden görünür olmasını sağlayabilir. Bu, tamamlanmış bir yanıtı yapay bir yazma hızıyla canlandırmaktan farklıdır: Akıtma, çıktının gelişini yansıtırken bir açılma animasyonu metin zaten mevcut olduktan sonra gecikme ekleyebilir. OpenAI Responses akıtma referansı; yanıt oluşturma, metin güncellemeleri ve tamamlanan metin için olayları belgeler. Bu olaylar, devam eden bir yanıt ile tamamlanmış metin arasındaki faydalı bir arayüz ayrımını gösterir; evrensel bir görüntüleme hızı veya parça boyutu zorunlu kılmaz. (OpenAI API Reference: Streaming events)
Okunabilir bir etkileşim için mümkün olduğunda tutarlı ifadeler veya cümle büyüklüğünde parçalar gösterin, paragraf sonlarını koruyun ve içerik geldikçe mesajın ekranda zıplayıp durmasını önleyin. Bu, ideal parça uzunluğuna ilişkin ölçülmüş bir kural değil, okuma görevinden yola çıkan bir tasarım önerisidir. Yanıt uzunsa, kısa bir giriş veya ilk faydalı bölüm erken gelebilir ve geri kalanı kararlı bir düzende takip edebilir. Okuyucunun titreyen bir parça akışı göreceği kadar agresif şekilde bölmeyin veya yalnızca insan yazışını taklit etmek için eldeki eksiksiz bir yanıtı bekletmeyin. Arayüz bunları desteklediğinde durdurma veya yeniden oluşturma gibi kontrollerin kolayca bulunabilmesini sağlayın.
Bekleme geri bildirimini doğru ve orantılı yapın
İşlem zaman aldığında gösterge, sistemin gerçekte ne bildiğini açıklamalıdır. Belirli bir çubuğu veya yüzdeyi yalnızca ilerleme anlamlı bir şekilde ölçülebildiğinde kullanın. Aksi takdirde, basit bir etkinlik göstergesi, tamamlanmayı tahmin ediyormuş gibi görünmeden çalışmanın devam ettiğini bildirir. Apple; ilerleme raporlarının doğru tutulmasını, duraksamaların açıklanmasını ve uygulanabilir olduğunda insanların işlemi durdurmasına izin verilmesini önerir. Aynı ilkeler sohbette de geçerlidir: İşlem duraksarsa, sonsuz şekilde dönen bir "çalışıyor" durumundan "Yanıt durdu. Tekrar deneyin." gibi faydalı bir mesaja geçin.
Etkinlik görüntüsü yaratmak için durum metnini sürekli değiştirmekten kaçının. "Düşünüyor...", "Hâlâ düşünüyor..." ve "Neredeyse bitti..." gibi bir sıralama, yalnızca her mesaj gerçek bir durumu yansıtıyorsa ve kullanıcının ne yapacağına karar vermesine yardımcı oluyorsa faydalıdır. Aksi takdirde, tek bir net durum daha az gürültü yaratır. Özellikle sistemin bu iddia için güvenilir bir dayanağı yoksa "neredeyse bitti" demeyin. Kısa, dürüst bir ipucu; canlı ama bilgi vermeyen bir animasyondan daha düşünceli hissettirebilir.
Tamamlanmayı gerçek bir durum olarak ele alın
Kullanıcının, özellikle metni kopyalamak, bir takip sorusu sormak veya devam eden çıktıyı kesmek istemesi durumunda, yanıtın ne zaman bittiğini bilmesi gerekir. Üretim sona erdiğinde etkinlik uyarısını kaldırın veya değiştirin ve son mesajın kullanıcının okuyabileceği ve etkileşime girebileceği bir mesaj olarak sabit kalmasını sağlayın. Çıktı eksik kalabiliyorsa veya iptal edilebiliyorsa, kısmi bir yanıtı tamamlanmış gibi sunmak yerine bu durumu bildirin. Akıtma API referansı, metin güncellemelerini tamamlama olaylarından ayırır ve tamamlama olaylarının kesintiye uğramış veya eksik yanıtlara da eşlik edebileceğini belirtir; bu nedenle arayüz, gerçekte aldığı sonucu yansıtmalıdır. (OpenAI API Reference: Streaming events)
Tamamlanmanın, görsel animasyonu takip etmeyen kişilere de ulaşması gerekir. W3C kılavuzu; durum mesajlarının kullanıcının odağını değiştirmeden bekleme, ilerleme, başarı veya hataları bildirebileceğini ve bu güncellemelerin yardımcı teknolojiler için programatik olarak tanımlanabilir olması gerektiğini açıklar. MDN'in live-region kılavuzu, önemli ve acil olmayan güncellemeler için nazik (polite) duyuruları açıklar ve sık yapılan baskın (assertive) duyuruların kullanıcıları bölebileceği konusunda uyarır. Pratikte, her bir belirteci (token) veya animasyon karesini sesli bir güncelleme yapmadan, bir yanıtın hazır hâle gelmesi veya bir isteğin başarısız olması gibi anlamlı durum değişikliklerini duyurun. (W3C WAI: Understanding Status Messages; MDN: ARIA live regions)
İnsanlara tempo üzerinde kontrol verin
Doğal hissettiren bir etkileşim, kullanıcının harekete geçmesi için alan bırakır. Mümkün olan durumlarda insanların bir yanıtı durdurmasına izin verin ve durdurmanın üretimi mi sonlandırdığını yoksa sadece gösterimi mi duraklattığını netleştirin. Bir yanıt akarak geliyorsa görünür metni okunabilir tutun ve kullanıcının konuşmada gezinmeye devam etmesine izin verin. Eksiksiz bir yanıtın hızla hazır olduğu durumlarda yapay bir duraklatma dayatmaktan kaçının; gerçek işlemin daha uzun sürdüğü durumlarda ise çalışmanın hâlâ devam ettiğini açıklayın. Amaç, kullanıcıyı daha uzun süre beklemeye yönlendirmek değil, onun zamanlamasını desteklemektir.
Bu aynı zamanda bir arayüzün konuşma tarzını, kimin veya neyin yanıt verdiğine dair yanlış bir iddiadan ayırmaya da yardımcı olur. Bir yapay zekâ sistemi, kendini doğru bir şekilde tanıtırken net, samimi ifadeler ve mesaj biçiminde sunum kullanabilir. "Bir yanıt hazırlanıyor" sistem etkinliğini açıklar; "Yazıyorum" ise bir insanın yazdığı şeklinde anlaşılabilir. Özellikle kullanıcıların göstergeyi yanlışlıkla bir insan katılımcı zannedebileceği bir üründe, etiketleri olası yorumları göz önünde bulundurarak seçin.
Modeli seçmek için basit bir karar kuralı
Yazma tarzı bir animasyonu yalnızca net, kısa bir ipucu eklediğinde ve bir insan operatörü ima etmediğinde kullanın. Sistem, kullanıcının anlık eyleminden daha uzun süren bir iş yaparken bir ilerleme göstergesi kullanın. Erken çıktıyı göstermek göreve yardımcı olduğunda okunabilir mesaj parçaları akıtın ve yanıt gerçekten bittiğinde tamamlandı olarak işaretleyin. Kesinti mümkün ve yararlı olduğunda kontroller ekleyin. Önem taşıyan herhangi bir durum değişikliğinin yalnızca harekete veya renge dayanmadan algılanabilir olduğundan emin olun.
Hızlı bir tasarım incelemesinde şu dört soru sorulabilir: Kullanıcının eylemi neyi tetikledi? Sistem gerçekte hangi durumda? Kullanıcı beklerken ne yapabilir? Kullanıcı sonucun tamamlandığını veya bir şeylerin ters gittiğini nasıl anlayacak? Yanıtlar netse etkileşim, sahte bir insan yazma ritmine gerek kalmadan duyarlı hissettirebilir. Kalite; noktaların hızından değil, koordineli geri bildirimden, okunabilir sunumdan ve kontrolden gelir.
