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:
validKeyskullanarak 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:
Okuyun mevcut anahtar/değer deposunu ve ilgili girdileri bağlam olarak ekleyin
Analiz edin: Saklanmaya veya güncellenmeye değer bilgiler için son mesaj penceresini inceleyin
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
validKeysaracı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.3Sağ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'- Tüm özel endpoint başlıkları desteklenmektedir
Sorun Giderme
Bellek (Memory) Çalışmıyor
librechat.yamldosyasında belleğin yapılandırıldığını doğrulayındisableddeğerininfalseolarak ayarlandığını kontrol edin- Yapılandırılmış ajanın/modelin kullanılabilir olduğundan emin olun
- Kullanıcıların sohbet arayüzlerinde memory özelliğini etkinleştirdiklerini doğrulayın
- Özel endpoint'ler için:
provideradının özel endpointnamedeğeriyle tam olarak eşleştiğinden emin olun
Yüksek Token Kullanımı
- Maliyetleri kontrol etmek için
tokenLimitdeğerini düşürün - Bellek aracısına gönderilen son sohbet miktarını sınırlamak için
maxInputTokensdeğerini düşürün - Daha az mesajı analiz etmek için
messageWindowSizedeğerini düşürün - Nelerin depolanacağını kısıtlamak için
validKeyskullanın - Ajan talimatlarını gözden geçirin ve optimize edin
Tutarsız Bellek
- Kullanıcıların belleği açıp kapatmadıklarını kontrol edin
- Token limitlerinin aşılmadığını doğrulayın
- Tutarlı bir ajan yapılandırması sağlayın
- Depolanan belleği çakışmalar için gözden geçirin
Özel Endpoint Kimlik Doğrulama Sorunları
.envdosyanızdaki ortam değişkenlerinin doğru ayarlandığını doğrulayın- Ö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_*}}) - Bellek ile test etmeden önce özel endpoint'in normal sohbet tamamlamaları için çalıştığını kontrol edin
- Ö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.
İlgili Özellikler
- 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?
Mesaj Arama
LibreChat'in entegre Meilisearch özelliği ile geçmiş konuşmalarda hızlıca arama yapın
RAG API (Dosyalarla Sohbet)
Langchain ve FastAPI kullanarak belge indeksleme ve getirme işlemleri için Retrieval-Augmented Generation (RAG) API. Bu API, kullanıcı tarafından yüklenen dosyalara dayalı bağlama duyarlı yanıtlar sağlamak için LibreChat ile entegre olur.