Anasayfa
/
Sözlük
/
Chat Geçmişi Nasıl Sınırlandırılabilir?

Chat Geçmişi Nasıl Sınırlandırılabilir?

SÖZLÜK MADDESİ

Chat Geçmişi Nasıl Sınırlandırılabilir?

Bir chatbot ya da generatif bir asistan geliştirirken kaçınılmaz olarak aynı duvara çarpıyorsunuz: Kullanıcı konuştukça konuşuyor, model her seferinde tüm geçmişi tekrar tekrar okuyor ve faturayı açtığınızda gözleriniz yuvalarından fırlıyor. Aslında burada teknik bir problemden çok bir tasarım tercihi var; modelin ne kadarını hatırlaması gerektiğine karar vermek, ürününüzün hem deneyimini hem de sürdürülebilirliğini doğrudan belirliyor.

Kısaca söylemek gerekirse, chat geçmişini sınırlandırmanın en pratik yolu bir kesim noktası (cutoff) belirlemek ve bu noktanın ötesinde kalan mesajları arka planda özetleyerek konteksti sıkıştırmak. Böylece model son mesajları detaylıca hatırlarken, daha eskiye ait bilgileri de kaybetmeden kısa bir özet üzerinden takip edebiliyor.

Neden Her Mesaj Bir Öncekini Sırtında Taşıyor?

Genellikle bir chat uygulaması kurduğunuzda, model konuşmayı hatırlıyor gibi görünse de aslında hatırlamıyor. Her yeni mesajda tüm geçmiş, input ve output’larla birlikte modele yeniden gönderiliyor. Yani ekranda 30 mesajlık bir sohbet gördüğünüzde, arka planda modele giden yük 60 mesaja karşılık geliyor; sizin yazdıklarınız ve modelin yanıtları birlikte.

Bu yapı, konuşma uzadıkça eksponansiyel bir maliyet eğrisi doğuruyor. İlk mesajlar ucuz, ama 40. mesaja geldiğinizde her tur artık gerçekten pahalıya patlıyor. İşte chat tabanlı ürünler geliştirenlerin en sık takıldığı iki soru buradan doğuyor: Yeni bir sohbet nerede başlamalı? ve model kaç mesaja kadar hatırlamalı?

Kesim Noktası Fikri: Son N Mesaj Kuralı

Burada işe yarayan yaklaşım oldukça sezgisel. Diyelim ki 60 mesajlık bir konuşma var. Bunun tamamını her seferinde modele göndermek yerine bir cutoff noktası belirliyorsunuz. Örneğin son 10 mesajı, input ve output’uyla birlikte tam olarak taşıyorsunuz; bu da 20 girdiye denk geliyor. Model bu 20 girdiyi kelimesi kelimesine hatırlıyor.

Geriye kalan mesajlar ne olacak? İşte kritik nokta burada başlıyor. O eski mesajları çöpe atmak yerine, arka planda çalışan bir başka mekanizma onları özetleyip saklıyor. Sonuç olarak modele giden pakette iki parça bulunuyor:

  • Eski konuşmanın önemli noktalarını içeren kısa bir özet paragrafı
  • Son N mesajın ham hali

Bu ikisi bir araya geldiğinde, hem maliyet kontrol altında kalıyor hem de sohbetin ruhu kayboluyor.

Arka Planda Çalışan Sessiz Bir Yardımcı

Bu özetleme işini kullanıcıya hissettirmemek gerekiyor. Yani ana modelinizin akışını kesmeden, arkada bir sub agent ya da ayrı bir agent devreye giriyor. Belirli bir eşiğe ulaşıldığında, örneğin her 20 mesajda bir, bu agent geçmişi tarayıp bir özet çıkarıyor ve onu bir yere yazıyor. Bir sonraki turda ana modele artık o 40 mesajın tamamı değil, sadece o özet paragrafı gidiyor.

Bunu şöyle düşünebilirsiniz: Ana modeliniz sahnede performans sergileyen sanatçı, sub agent ise kulise notlar taşıyan asistan. Sanatçı her replikte tüm senaryoyu okumak zorunda kalmıyor; sadece özetlenmiş notlarla ve son sahnelerle devam ediyor.

Peki Pratikte Kaç Mesaj Tutmalı?

Bu sayı uygulamadan uygulamaya değişiyor; bir müşteri destek botu ile bir yaratıcı yazım asistanının hafıza ihtiyacı aynı değil. Ancak denenmiş ve işe yaradığı gözlenen bir öneri var: 15 mesaja kadar hatırlasın, 15’ten sonrası summarize edilsin.

Bu eşik, çoğu sohbetin doğal akışını korumaya yetiyor. Kullanıcı yakın zamanda ne söylediyse model onu tazelikle hatırlıyor; daha eskiye ait konular ise özet formunda erişilebilir kalıyor. Bu sınırı koymadığınızda konuşma büyüdükçe maliyet katlanarak artıyor ve kısa sürede sürdürülemez hâle geliyor.

Bu yüzden erken aşamada bir strateji belirlemek önemli. Ürününüzü kurgularken şu soruları sormakta fayda var:

  • Kullanıcının sohbeti ortalama ne kadar uzuyor?
  • Hangi bilgilerin uzun vadeli hatırlanması gerçekten kritik?
  • Özet üretimini hangi sıklıkta tetiklemek istiyorsunuz?
  • Yeni bir sohbetin başlaması için nasıl bir sinyal kullanacaksınız?

Bu sorulara verdiğiniz cevaplar, cutoff noktanızın ve özetleme stratejinizin şeklini belirliyor.

Somut Bir Senaryoyla Bakınca

Düşünün ki bir generatif chatbot yayına aldınız. Kullanıcılarınız uzun konuşmalar yapıyor, ortalama 40-60 mesajlık oturumlar açıyor. Hiçbir sınırlama koymadığınız senaryoda, her yeni mesajda 120 kadar girdi modele gidiyor ve fatura oturumun sonuna doğru asıl şoku yaşatıyor.

Aynı ürünü, son 15 mesajı ham tutan ve öncesini özetleyen bir yapıyla kurguladığınızda tablo değişiyor. Model her turda yaklaşık 30 mesajlık ham girdiyle birlikte tek paragraflık bir özet alıyor. Konuşmanın gidişatı korunuyor, kullanıcı fark etmiyor, ama arka plandaki token tüketimi bambaşka bir yerde seyrediyor.

Bu, üründe daha ilk günden alabileceğiniz en temel maliyet azaltma kararlarından biri.

Merak Edilenler

Chat geçmişini kesince model bağlamı kaybetmez mi?

Ham mesajları kesmek yerine özetleyerek sakladığınız sürece kaybolmuyor. Önemli olan özetin kalitesi; iyi kurulmuş bir özet paragrafı, 40 mesajın taşıdığı bağlamın büyük kısmını modele aktarmaya yetiyor.

Yeni sohbet ne zaman başlamalı?

Bu bir ürün kararı. Bazı uygulamalar zaman bazlı (örneğin belirli bir süre inaktiflik) sıfırlama kullanıyor, bazıları konu değişikliğini algılayınca. Kullanıcının belirgin bir “yeni konuşma” niyeti olmadığı sürece mevcut sohbeti sürdürmek genellikle daha iyi bir deneyim veriyor.

Özetleme için ana modelin kendisini mi kullanmalıyım?

Özetleme için genellikle daha hafif ve ucuz bir model tercih edilebilir. Ana modelin gücünü asıl konuşmaya saklayıp, özet gibi arka plan işlerini daha ekonomik bir modele devretmek toplam maliyetinizi ciddi şekilde düşürüyor.

15 mesaj her ürün için doğru sayı mı?

Bu bir başlangıç noktası. Kullanıcı davranışınızı gözlemleyerek yukarı ya da aşağı ayarlayabilirsiniz. Kısa etkileşimli bir asistan için 8-10 yeterli olabilir; teknik bir eş programlama aracı için daha fazlasına ihtiyaç duyabilirsiniz.

Hafızayı Tasarlamak, Ürünü Tasarlamaktır

Chat geçmişini nasıl sınırlandırdığınız aslında ürününüzün hafızasını nasıl kurguladığınızla ilgili bir mesele. Modelin neyi tam hatırlayacağına, neyi özet olarak taşıyacağına ve neyi tamamen unutabileceğine karar verdiğinizde, sadece maliyeti değil kullanıcının hissettiği kaliteyi de tasarlıyorsunuz.

İyi haber şu: Bu kararı vermek için karmaşık altyapılara ihtiyacınız yok. Bir cutoff, bir özetleyici ve doğru yerde konumlanmış bir eşik değeri, çoğu chat tabanlı ürünün ihtiyaç duyduğu dengeyi kurmaya yetiyor. Hafızayı sonsuz bir kaynak gibi düşünmek yerine, bilinçli olarak seçilmiş sınırlarla tasarlamak; hem cüzdanınız hem de kullanıcı deneyiminiz için en sağlıklı yol.

BRİCK EĞİTİM VİDEOLARI

İlgili Videolar

2
 dk
Tanımlama

Chat Geçmişi Nasıl Sınırlandırılabilir?

Transkript

Daha basit düşünürsen ne dersin? Belli bir sayıya kadar buradaki chat geçmişini limitleyebiliriz. 30 tane chat geçmişinde mesaj varsa 60 mesaja karşılık geliyor. Son 10 mesaja kadar hatırlasın, her 20 mesajda bir gitsin özetlesin. Benim net önerim ve denediğim öneri, 15 mesaja kadar hatırlasın, 15'den sonrası summarize etsin, arka planda summarize'ı içeri atsın.

Aspect Component Library

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sodales leo id commodo ornare.

Aspect Component Library

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sodales leo id commodo ornare.

Aspect Component Library

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sodales leo id commodo ornare.

BRİCK EĞİTİMLERİ

İlgili Eğitimler

Online Eğitim
Yeni Eğitim
20 Eylül - 8 Aralık 2023

Yazılım Geçmişi Olmayanlar için Yazılım Eğitimi

Donec convallis magna non sem vulputate, et finibus massa commodo. Lorem ipsum dolor sit amet, consectetur. Donec convallis magna non sem vulputate, et finibus massa commodo. Lorem ipsum dolor sit amet, consectetur.
Online Eğitim
Yeni Eğitim
20 Eylül - 8 Aralık 2023

Yazılım Geçmişi Olmayanlar için Yazılım Eğitimi

Donec convallis magna non sem vulputate, et finibus massa commodo. Lorem ipsum dolor sit amet, consectetur.