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

Konfiguracja pamięci

Przegląd

Obiekt memory pozwala na skonfigurowanie pamięci konwersacji oraz funkcji personalizacji dla aplikacji. Ta konfiguracja kontroluje sposób, w jaki system zapamiętuje i personalizuje konwersacje, w tym limity tokenów, okna kontekstu wiadomości oraz przetwarzanie pamięci oparte na agentach.

Przykład

memory:
  disabled: false
  validKeys: ['user_preferences', 'conversation_context', 'personal_info']
  tokenLimit: 2000
  charLimit: 10000
  maxInputTokens: 12000
  personalize: true
  messageWindowSize: 5
  agent:
    provider: 'openAI'
    model: 'gpt-4'
    instructions: 'You are a helpful assistant that remembers user preferences and context.'
    model_parameters:
      temperature: 0.7
      max_tokens: 1000

disabled

KeyTypeDescriptionExample
disabledBooleanWyłącza funkcjonalność pamięci, gdy ustawiono na true. Po wyłączeniu system nie będzie przechowywał ani używał pamięci konwersacji.disabled: false

Domyślnie: false

memory:
  disabled: true

validKeys

KeyTypeDescriptionExample
validKeysArray of StringsOkreśla, które klucze są prawidłowe dla przechowywania w pamięci. Pomaga to kontrolować, jakie rodzaje informacji mogą być przechowywane w pamięci.validKeys: ["user_name", "preferences", "kontekst"]

Domyślnie: Brak ograniczeń (wszystkie klucze są poprawne)

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

tokenLimit

KeyTypeDescriptionExample
tokenLimitNumberUstawia maksymalną liczbę tokenów, które mogą zostać użyte do przechowywania i przetwarzania pamięci.tokenLimit: 2000

Domyślnie: Brak limitu

memory:
  tokenLimit: 2000

charLimit

KeyTypeDescriptionExample
charLimitNumberOkreśla maksymalną liczbę znaków dozwoloną dla pojedynczych wpisów w pamięci. Zapobiega to zbyt dużym ładunkom pamięci, które mogłyby wpłynąć na wydajność lub przekroczyć limity API.charLimit: 10000

Domyślnie: 10000

memory:
  charLimit: 10000

maxInputTokens

KeyTypeDescriptionExample
maxInputTokensNumberUstawia maksymalną liczbę tokenów z ostatnich czatów wysyłanych do automatycznego agenta pamięci przed ekstrakcją pamięci. Długie dane wejściowe są ucinane od początku, aby zachować najnowszy kontekst.maxInputTokens: 12000

Domyślnie: 12000

memory:
  maxInputTokens: 12000

personalize

KeyTypeDescriptionExample
personalizeBooleanGdy ustawione na true, daje użytkownikom możliwość włączenia lub wyłączenia funkcji pamięci. Użytkownicy mogą włączać/wyłączać pamięć w interfejsie czatu. Gdy ustawione na false, funkcje pamięci są całkowicie wyłączone.personalize: true

Domyślnie: true

memory:
  personalize: false

messageWindowSize

KeyTypeDescriptionExample
messageWindowSizeNumberOkreśla liczbę ostatnich wiadomości do uwzględnienia w oknie kontekstu pamięci.messageWindowSize: 5

Domyślnie: 5

memory:
  messageWindowSize: 10

agent

KeyTypeDescriptionExample
agentObject | UnionKonfiguruje agenta odpowiedzialnego za przetwarzanie pamięci. Może być odniesieniem do istniejącego agenta poprzez ID lub pełną konfiguracją agenta.agent: { provider: "openAI", model: "gpt-4" }

Pole agent obsługuje dwa różne formaty konfiguracji:

Agent według ID

Gdy masz wstępnie skonfigurowanego agenta, możesz odwołać się do niego za pomocą jego ID:

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

Konfiguracja niestandardowego agenta

Aby uzyskać większą kontrolę, możesz zdefiniować pełną konfigurację agenta:

memory:
  agent:
    provider: 'openAI'
    model: 'gpt-4'
    instructions: 'You are a memory assistant that helps maintain conversation context and user preferences.'
    model_parameters:
      temperature: 0.3
      max_tokens: 1500
      top_p: 0.9

Pola konfiguracji agenta

Podczas korzystania z niestandardowej konfiguracji agenta dostępne są następujące pola:

provider (wymagane)

KeyTypeDescriptionExample
providerStringOkreśla dostawcę AI dla agenta pamięci. Może to być wbudowany dostawca (np. "openAI", "anthropic", "google") lub niestandardowa nazwa endpoint.provider: "openAI"

model (wymagane)

KeyTypeDescriptionExample
modelStringOkreśla model używany do przetwarzania pamięci.model: "gpt-4"

instrukcje (opcjonalne)

KeyTypeDescriptionExample
instructionsStringNiestandardowe instrukcje zastępujące domyślne instrukcje dotyczące tego, kiedy ustawiać i/lub usuwać pamięć. Powinny być używane głównie w przypadku korzystania z validKeys, które wymagają określonego sposobu obsługi informacji.instructions: "Only store user preferences and facts when explicitly mentioned."

model_parameters (opcjonalne)

KeyTypeDescriptionExample
model_parametersObjectDodatkowe parametry przekazywane do modelu w celu dostosowania jego zachowania. Wartości muszą być ciągami znaków, liczbami lub wartościami logicznymi.model_parameters: { temperature: 0.7 }

Kompletny przykład konfiguracji

Oto kompleksowy przykład pokazujący wszystkie opcje konfiguracji pamięci:

version: 1.3.10
cache: true

memory:
  disabled: false
  validKeys:
    - 'user_preferences'
    - 'conversation_context'
    - 'learned_facts'
    - 'personal_information'
  tokenLimit: 3000
  charLimit: 10000
  maxInputTokens: 12000
  personalize: true
  messageWindowSize: 8
  agent:
    provider: 'openAI'
    model: 'gpt-4'
    instructions: |
      Store memory using only the specified validKeys. For user_preferences: save 
      explicitly stated preferences about communication style, topics of interest, 
      or workflow preferences. For conversation_context: save important facts or 
      ongoing projects mentioned. For learned_facts: save objective information 
      about the user. For personal_information: save only what the user explicitly 
      shares about themselves. Delete outdated or incorrect information promptly.
    model_parameters:
      temperature: 0.2
      max_tokens: 2000
      top_p: 0.8
      frequency_penalty: 0.1

Korzystanie z niestandardowych endpointów

Funkcja pamięci obsługuje niestandardowe endpointy. W przypadku korzystania z niestandardowego endpointu, pole provider powinno dokładnie odpowiadać name niestandardowego endpointu. Niestandardowe nagłówki ze zmiennymi środowiskowymi oraz symbolami zastępczymi użytkownika są poprawnie rozpoznawane.


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'

Uwagi

  • Funkcjonalność pamięci poprawia ciągłość konwersacji i personalizację
  • Gdy personalize jest ustawione na true, użytkownicy otrzymują w interfejsie czatu przełącznik umożliwiający kontrolowanie użycia pamięci.
  • Limity tokenów pomagają kontrolować zużycie pamięci oraz koszty przetwarzania.
  • maxInputTokens ogranicza kontekst czatu wysyłany do automatycznego agenta pamięci, podczas gdy tokenLimit kontroluje wykorzystanie zapisanej pamięci
  • Prawidłowe klucze zapewniają szczegółową kontrolę nad tym, jakie informacje mogą być przechowywane
  • Niestandardowe instructions zastępują domyślne instrukcje obsługi pamięci i powinny być używane z validKeys
  • Konfiguracja agenta pozwala na dostosowanie zachowania przetwarzania pamięci
  • Gdy jest wyłączone, wszystkie funkcje pamięci są wyłączone, niezależnie od innych ustawień
  • Rozmiar okna wiadomości wpływa na to, ile ostatniego kontekstu jest brane pod uwagę przy aktualizacjach pamięci

Jaka jest ta instrukcja?