Bu kılavuzda, sunucuyu yeniden başlatmadan OpenAI API ile bir sohbeti sıfırlayabileceğinizi öğreneceksiniz. Sıklıkla, mevcut sohbet geçmişini unutup sıfırdan başlamak istediğiniz durumlar olabilir. Bu durumda, bir sohbet ID'si, sunucudaki geçmişi sıfırlamanıza olanak tanır. Aşağıdaki kılavuz, size bu işlevi nasıl uygulayacağınızı gösterecektir.
En Önemli Bulgular
- Sohbeti sıfırlamak için yeni bir sohbet ID'si oluşturabilirsiniz.
- Sayfayı yeniden yüklediğinizde, sohbet ID'si oluşturulur ve sunucuya iletilir.
- Sunucu, yeni sohbet ID'sini mevcut olanla karşılaştırır ve farklıysa sohbet geçmişini sıfırlar.
Adım Adım Kılavuz
Zaten çalışan bir sohbet uygulamanız olabilir, ancak bir sorun var: Sohbet geçmişini henüz sıfırlayamıyorsunuz. Bunu mümkün kılmak için sayfayı her yeniden yüklediğinizde oluşturulan bir ID tanıtmamız gerekiyor.
Ardından bu yeni Sohbet ID'sini sunucunuza iletmelisiniz. Sunucu yeni bir ID aldığında, sohbet geçmişini sıfırlayabilir. Bu basit bir karşılaştırma ile gerçekleşir: Yeni sohbet ID'si mevcut sohbet ID'siyle aynı olmadığında, mesaj listesi sıfırlanır.
Bunu uygulamak için, istemcinin rastgele bir ID oluşturabilme yeteneğine sahip olduğundan emin olmalısınız. ID'yi Arama Parametresi ID ile ileteceksin. React bileşeninizin index.jsx dosyasına bir göz atalım.
Bu dosyada zaten gerekli Mesajı (MSG) ilettiniz. Şimdi aynı şekilde ID'yi de iletebilirsiniz. Bu, değişkenlerin eklenmesini kolaylaştırmak için Template-Dizelerini kullanarak etkili bir şekilde yapabilirsiniz.
Yani Kodu bir Template-Dizesine dönüştürüp değişkenleri buna göre yerleştirebilirsiniz. Şöyle görünebilir: MSG, bu senin girdi alanın, ve ID yeni ID'n ile aynıdır.
Şimdi ID oluşturma konusunda düşünmeniz gerekiyor. Basit bir yöntem, Tarih kullanımıdır. Geçerli zamanı milisaniye cinsinden 1970'ten beri kullanarak bir sabit tanımlayabilirsiniz. Date.now() kullanabilir ve bu zamanı bir dizeye dönüştürebilirsiniz.
Şimdi, her sayfa yenilendiğinde yeni bir ID gönderiyoruz. Bu istenildiği gibi çalışmalıdır. Test edelim ve verilerin doğru şekilde sunucuya iletilip iletilmediğini görmek için bir mesaj gönderelim.
"Nasılsın" mesajını gönderirseniz, sunucuda kullanıcı ve asistan mesajları olmak üzere iki mesaj olduğunu göreceksiniz.
Ancak "neden hisleri yok" gibi başka bir soru gönderirseniz, geçmişin buna göre sıfırlanması gerekir. Yalnızca mevcut soru ve cevabı orada olmalıdır.
Yani, ID'leri kontrol ettiğimizde - burada yeni Sohbet ID'sinin mevcut Sohbet ID'sine eşit olmaması gibi bir çakışma olmamalı - mantığı böyle temiz bir şekilde çalışacak şekilde basitleştirmek gerekmektedir.
Bunun işe yaradığından emin olmak için testi tekrarlayın. Sayfayı tekrar yükleyin ve mesajı bir kez daha gönderin. Şimdi dört mesajın Dizide saklanması gerekmektedir.
Dizi gönderilen tüm mesajların toplam sayısını gösterir, bu da geçmişin doğru bir şekilde sıfırlandığını gösterir. Ancak bunun yalnızca sayfayı yeniden yükleme durumunda gerçekleştiğini unutmayın. Alternatif olarak, sohbeti sıfırlayan bir düğme de uygulayabilirsiniz, ancak işimiz için sayfayı yenilemek yeterli olacaktır.
Ancak bir mesaj gönderdikten sonra girdi alanının otomatik olarak temizlenmeyeceğini unutma. Ayrıca, şu ana kadar tüm sohbet geçmişi görülemez, bu da sadece son soruyu ve cevabı göreceğin anlamına gelir. Bu konuyu gelecekteki öğreticilerde ele alacağız.
Özet
Bu kılavuzda, sohbet geçmişi sıfırlama işlevini sohbet uygulamanıza nasıl entegre edeceğinizi öğrendiniz. Sayfayı yeniden yüklerken yeni bir sohbet kimliği tanıtılarak geçmiş başarıyla sıfırlandı. Yapılacak bazı iyileştirmeler var, bunlar arasında girdi alanının temizlenmesi ve sohbet geçmişinin tamamen görüntülenmesi gibi adımları atacağız.
Sıkça Sorulan Sorular
Chat'i nasıl sıfırlayabilirim?Sayfayı yeniden yükleyerek sohbet geçmişi sıfırlanır.
Yeni kimlik nasıl oluşturuluyor?Yeni kimlik mevcut zamanı milisaniye cinsinden kullanarak oluşturuluyor.
Sayfa yeniden yüklenmeden sohbeti nasıl sıfırlayabilirim?Evet, sohbeti sıfırlayan bir buton da entegre edebilirsin.
Kimlikler aynı olduğunda ne olur?Yeni kimlik mevcut kimlikle aynı olduğunda, geçmiş sıfırlanmayacak.
Girdi alanını manuel olarak mı silmeliyim?Evet, şu anda bir mesaj gönderdikten sonra girdi alanı otomatik olarak temizlenmeyecek.