Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Kullanıcı Hafızası

LibreChat'te her sohbet isteğinde çalışan kullanıcı belleği için anahtar/değer deposu

Genel Bakış

LibreChat içindeki Kullanıcı Belleği (User Memory), konuşmalar genelinde kullanıcıya özel bilgileri kalıcı hale getiren bir anahtar/değer deposudur. Özel bir bellek aracısı, her sohbet isteğinin başında çalışarak, ana yapay zeka yanıtına kişiselleştirilmiş bir bağlam sağlamak için bu depodan okuma ve buraya yazma işlemleri yapar.

Anahtar/Değer Deposu, Sohbet Hafızası Değil

Bu, tüm konuşma geçmişiniz üzerinde anlamsal (semantic) bir bellek değildir. Geçmiş konuşmaları indekslemez, gömmez (embed) veya aramaz. Bunun yerine, her isteğe bağlam (context) olarak eklenen yapılandırılmış bir anahtar/değer çifti kümesini (örneğin; user_preferences, learned_facts) korur. Bunu, yapay zekanın her yanıttan önce okuduğu kalıcı bir not defteri olarak düşünebilirsiniz.

Tek bir konuşma içindeki önceki mesajlarla ilgili bağlam için LibreChat, halihazırda standart mesaj geçmişi penceresini kullanmaktadır; bu, bu özellikten ayrıdır.

⚠️ Yapılandırma Gerekli

Memory işlevinin çalışması için librechat.yaml dosyanızda açıkça yapılandırılması gerekir. Varsayılan olarak etkin değildir.

Temel Özellikler

  • Her İstekte Çalışır: Bellek aracısı (memory agent), her sohbet isteğinin başında çalışarak depolanan bağlamın her zaman erişilebilir olmasını sağlar.
  • Anahtar/Değer Depolama: Bilgiler ham konuşma günlükleri olarak değil, yapılandırılmış anahtar/değer çiftleri olarak depolanır
  • Manuel Girişler: Kullanıcılar, bellek girişlerini doğrudan manuel olarak ekleyebilir, düzenleyebilir veya kaldırabilir; bu da yapay zekanın neleri hatırlayacağı üzerinde tam kontrol sağlar.
  • Kullanıcı Kontrolü: Etkinleştirildiğinde, kullanıcılar bireysel sohbetleri için belleği açıp kapatabilirler
  • Özelleştirilebilir Anahtarlar: validKeys kullanarak hangi bilgi kategorilerinin saklanabileceğini kısıtlayın
  • Token Yönetimi: Maliyetleri kontrol etmek için bellek kullanımına sınırlar koyun
  • Ajan Entegrasyonu: Nelerin hatırlanacağını akıllıca yönetmek için yapay zeka ajanlarını kullanın

Yapılandırma

Bellek özelliklerini etkinleştirmek için librechat.yaml dosyanıza memory yapılandırmasını eklemeniz gerekir:

version: 1.3.5
cache: true

memory:
  disabled: false # Set to true to completely disable memory
  personalize: true # Gives users the ability to toggle memory on/off, true by default
  tokenLimit: 2000 # Maximum tokens for memory storage
  maxInputTokens: 12000 # Maximum recent-chat tokens sent to the memory agent
  messageWindowSize: 5 # Number of recent messages to consider
  agent:
    provider: 'openAI'
    model: 'gpt-4'

provider alanı, Model Spec Guide içinde tanımlanan kabul edilen değerlerle eşleşmelidir.

Not: Özel bir endpoint kullanıyorsanız, endpoint değeri tanımlanan özel endpoint adıyla tam olarak eşleşmelidir.

Ayrıntılı yapılandırma seçenekleri için Bellek Yapılandırma Kılavuzuna bakın.

Nasıl Çalışır

Bellek Aracısı Yürütme

Bellek etkinleştirildiğinde, bellek aracısı her sohbet isteğinde çalışır. Ana sohbet yanıtıyla eş zamanlı olarak yürütülür; ana yanıt başlamadan önce başlar ve ana isteğin süresi ile bittikten sonraki en fazla 3 saniyelik bir süreyle sınırlıdır.

Bu, gönderdiğiniz her mesajın bellek aracısını şunları yapması için tetiklediği anlamına gelir:

  1. Okuyun mevcut anahtar/değer deposunu ve ilgili girdileri bağlam olarak ekleyin

  2. Analiz edin: Saklanmaya veya güncellenmeye değer bilgiler için son mesaj penceresini inceleyin

  3. Yaz: Yeni veya değiştirilmiş tüm girdileri depoya geri yazın

1. Anahtar/Değer Depolama

Bellek girdileri anahtar/değer çiftleri olarak saklanır. Bellek etkinleştirildiğinde, sistem aşağıdakiler gibi girdileri saklayabilir:

  • Kullanıcı tercihleri (iletişim tarzı, ilgi alanları)
  • Kullanıcılar tarafından açıkça paylaşılan önemli gerçekler
  • Bahsedilen devam eden projeler veya görevler
  • validKeys aracılığıyla tanımladığınız herhangi bir kategori

Kullanıcılar ayrıca arayüz aracılığıyla bellek girdilerini manuel olarak oluşturabilir, düzenleyebilir ve silebilir, böylece yapay zekanın kendileri hakkında bildikleri üzerinde doğrudan kontrole sahip olurlar.

2. Bağlam Penceresi

messageWindowSize parametresi, bellek güncellemeleri için kaç adet yakın tarihli mesajın analiz edileceğini belirler. Bu, bellek aracısının anahtar/değer deposunda hangi bilgilerin saklanmaya veya güncellenmeye değer olduğuna karar vermesine yardımcı olur.

maxInputTokens parametresi, ayıklama işleminden önce otomatik bellek aracısına gönderilen son sohbet metnini sınırlar. Seçilen mesaj penceresi hala çok büyükse, LibreChat bellek aracısını çağırmadan önce en yeni bağlamı korur ve önceki sohbet içeriğini çıkarır.

3. Kullanıcı Kontrolü

personalize değeri true olarak ayarlandığında:

  • Kullanıcılar sohbet arayüzlerinde bir bellek (memory) açma/kapama düğmesi görürler
  • Bireysel konuşmalar için belleği etkinleştirebilir/devre dışı bırakabilirler
  • Memory ayarları oturumlar boyunca kalıcıdır

4. Geçerli Anahtarlar

validKeys belirterek hangi bilgi kategorilerinin saklanacağını kısıtlayabilirsiniz:

memory:
  validKeys:
    - 'user_preferences'
    - 'conversation_context'
    - 'learned_facts'
    - 'personal_information'

En İyi Uygulamalar

1. Token Sınırları

İşlevsellik ile maliyeti dengelemek için uygun token sınırlarını belirleyin:

  • Daha yüksek limitler, daha kapsamlı bir belleğe olanak tanır
  • Düşük limitler işlem maliyetlerini azaltır
  • Kullanım alışkanlıklarınızı ve bütçenizi göz önünde bulundurun

2. Özel Talimatlar

validKeys kullanırken, memory agent için özel talimatlar sağlayın:

memory:
  agent:
    provider: 'openAI'
    model: 'gpt-4'
    instructions: |
      Store information only in the specified validKeys categories.
      Focus on explicitly stated preferences and important facts.
      Delete outdated or corrected information promptly.

3. Gizlilik Hususları

  • Bellek, kullanıcı bilgilerini konuşmalar genelinde saklar
  • Kullanıcıların hangi bilgilerin saklandığını anladığından emin olun
  • Veri saklama politikalarını uygulamayı düşünün
  • Bellek kullanımı hakkında net belgeler sağlayın

Örnekler

Temel Yapılandırma

Varsayılan ayarlarla belleği etkinleştirin:

memory:
  tokenLimit: 2000
  maxInputTokens: 12000
  agent:
    provider: 'openAI'
    model: 'gpt-4.1-mini'

Gelişmiş Yapılandırma

Tüm seçenekleri içeren tam yapılandırma:

memory:
  disabled: false
  validKeys: ['preferences', 'context', 'facts']
  tokenLimit: 3000
  maxInputTokens: 12000
  personalize: true
  messageWindowSize: 10
  agent:
    provider: 'anthropic'
    model: 'claude-3-opus-20240229'
    instructions: 'Remember only explicitly stated preferences and key facts.'
    model_parameters:
      temperature: 0.3

Sağlayıcı başına geçerli model parametreleri için Model Spec Preset Fields bölümüne bakın.

Önceden Tanımlanmış Ajanları Kullanma

Mevcut bir ajansa ID ile referans verin:

memory:
  agent:
    id: 'memory-specialist-001'

Bellekli Özel endpoint'ler

Memory, özel başlıklar ve ortam değişkenleri dahil olmak üzere özel endpoint'leri tam olarak destekler. Özel bir endpoint kullanıldığında, başlık yer tutucuları ve ortam değişkenleri memory işleme sırasında düzgün bir şekilde çözümlenir.


endpoints:
    custom:
        - name: 'Custom Memory Endpoint'
           apiKey: 'dummy'
           baseURL: 'https://api.gateway.ai/v1'
           headers:
             x-gateway-api-key: '${GATEWAY_API_KEY}'
             x-gateway-virtual-key: '${GATEWAY_OPENAI_VIRTUAL_KEY}'
             X-User-Identifier: '{{LIBRECHAT_USER_EMAIL}}'
             X-Application-Identifier: 'LibreChat - Test'
             api-key: '${TEST_CUSTOM_API_KEY}'
           models:
             default:
               - 'gpt-4o-mini'
               - 'gpt-4o'
             fetch: false

memory:
  disabled: false
  tokenLimit: 3000
  maxInputTokens: 12000
  personalize: true
  messageWindowSize: 10
  agent:
    provider: 'Custom Memory Endpoint'
    model: 'gpt-4o-mini'

Sorun Giderme

Bellek (Memory) Çalışmıyor

  1. librechat.yaml dosyasında belleğin yapılandırıldığını doğrulayın
  2. disabled değerinin false olarak ayarlandığını kontrol edin
  3. Yapılandırılmış ajanın/modelin kullanılabilir olduğundan emin olun
  4. Kullanıcıların sohbet arayüzlerinde memory özelliğini etkinleştirdiklerini doğrulayın
  5. Özel endpoint'ler için: provider adının özel endpoint name değeriyle tam olarak eşleştiğinden emin olun

Yüksek Token Kullanımı

  1. Maliyetleri kontrol etmek için tokenLimit değerini düşürün
  2. Bellek aracısına gönderilen son sohbet miktarını sınırlamak için maxInputTokens değerini düşürün
  3. Daha az mesajı analiz etmek için messageWindowSize değerini düşürün
  4. Nelerin depolanacağını kısıtlamak için validKeys kullanın
  5. Ajan talimatlarını gözden geçirin ve optimize edin

Tutarsız Bellek

  1. Kullanıcıların belleği açıp kapatmadıklarını kontrol edin
  2. Token limitlerinin aşılmadığını doğrulayın
  3. Tutarlı bir ajan yapılandırması sağlayın
  4. Depolanan belleği çakışmalar için gözden geçirin

Özel Endpoint Kimlik Doğrulama Sorunları

  1. .env dosyanızdaki ortam değişkenlerinin doğru ayarlandığını doğrulayın
  2. Özel başlıkların doğru sözdizimini kullandığından emin olun (ortam değişkenleri için ${ENV_VAR}, kullanıcı yer tutucuları için {{LIBRECHAT_USER_*}})
  3. Bellek ile test etmeden önce özel endpoint'in normal sohbet tamamlamaları için çalıştığını kontrol edin
  4. Özel endpoint API'sinden kaynaklanan kimlik doğrulama hataları için sunucu günlüklerini inceleyin

Gelecekteki İyileştirmeler

Mevcut uygulama, bellek aracısını her sohbet isteğinde koşulsuz olarak çalıştırır. Planlanan iyileştirmeler şunları içerir:

  • Yazma için Anlamsal Tetikleyici: Bir kullanıcının modele açıkça bir şeyi hatırlamasını istediği durumları (örneğin, "Python'ı tercih ettiğimi hatırla") tespit eder ve bellek yazma aracısını yalnızca bu durumlarda çalıştırarak rutin mesajlardaki gereksiz işlemleri azaltır.
  • Vektör Benzerliği Geri Çağırma (Vector Similarity Recall): Depolanan tüm bellek girdilerini her isteğe dahil etmek yerine, yalnızca mevcut konuşma bağlamıyla en alakalı girdileri almak için vektör gömmelerini (vector embeddings) kullanın; bu sayede hem verimliliği hem de uygunluğu artırın.
  • Agents - Özel yapay zeka asistanları oluşturun
  • Presets - Sohbet ayarlarını kaydet
  • Fork Messages - Bağlamı korurken konuşmaları dallara ayırın

Bu rehber nasıl?