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

Speicherkonfiguration

Übersicht

Das memory Objekt ermöglicht es Ihnen, die Konversationsspeicher- und Personalisierungsfunktionen für die Anwendung zu konfigurieren. Diese Konfiguration steuert, wie das System Konversationen speichert und personalisiert, einschließlich Token-Limits, Nachrichten-Kontextfenstern und agentenbasierter Speicherverarbeitung.

Beispiel

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
disabledBooleanDeaktiviert die Speicherfunktionalität, wenn auf true gesetzt. Wenn deaktiviert, speichert oder verwendet das System keinen Konversationsspeicher.disabled: false

Standard: false

memory:
  disabled: true

validKeys

KeyTypeDescriptionExample
validKeysArray of StringsGibt an, welche Schlüssel für die Speicherverwaltung gültig sind. Dies hilft dabei zu kontrollieren, welche Arten von Informationen im Speicher abgelegt werden können.validKeys: ["user_name", "preferences", "Kontext"]

Standard: Keine Einschränkung (alle Schlüssel sind gültig)

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

tokenLimit

KeyTypeDescriptionExample
tokenLimitNumberLegt die maximale Anzahl an Token fest, die für die Speicherung und Verarbeitung im Arbeitsspeicher verwendet werden können.tokenLimit: 2000

Standard: Kein Limit

memory:
  tokenLimit: 2000

charLimit

KeyTypeDescriptionExample
charLimitNumberLegt die maximale Anzahl an Zeichen für einzelne Memory-Einträge fest. Dies verhindert zu große Memory-Payloads, die die Leistung beeinträchtigen oder API-Limits überschreiten könnten.charLimit: 10000

Standard: 10000

memory:
  charLimit: 10000

maxInputTokens

KeyTypeDescriptionExample
maxInputTokensNumberLegt die maximale Anzahl an Tokens aus aktuellen Chats fest, die vor der Speicherextraktion an den automatischen Memory-Agenten gesendet werden. Lange Eingaben werden vom Anfang an gekürzt, sodass der neueste Kontext erhalten bleibt.maxInputTokens: 12000

Standard: 12000

memory:
  maxInputTokens: 12000

personalize

KeyTypeDescriptionExample
personalizeBooleanWenn auf true gesetzt, erhalten Benutzer die Möglichkeit, Speicherfunktionen zu aktivieren oder zu deaktivieren. Benutzer können den Speicher in ihrer Chat-Oberfläche ein- und ausschalten. Wenn auf false gesetzt, sind die Speicherfunktionen vollständig deaktiviert.personalize: true

Standard: true

memory:
  personalize: false

messageWindowSize

KeyTypeDescriptionExample
messageWindowSizeNumberGibt die Anzahl der letzten Nachrichten an, die in das Memory-Kontextfenster einbezogen werden sollen.messageWindowSize: 5

Standard: 5

memory:
  messageWindowSize: 10

agent

KeyTypeDescriptionExample
agentObject | UnionKonfiguriert den Agenten, der für die Speicherverarbeitung zuständig ist. Dies kann entweder ein Verweis auf einen bestehenden Agenten per ID oder eine vollständige Agentenkonfiguration sein.agent: { provider: "openAI", model: "gpt-4" }

Das agent Feld unterstützt zwei verschiedene Konfigurationsformate:

Agent nach ID

Wenn Sie einen vorkonfigurierten Agenten haben, können Sie ihn über seine ID referenzieren:

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

Benutzerdefinierte Agentenkonfiguration

Für mehr Kontrolle können Sie eine vollständige Agentenkonfiguration definieren:

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

Agent-Konfigurationsfelder

Bei der Verwendung einer benutzerdefinierten Agentenkonfiguration stehen die folgenden Felder zur Verfügung:

provider (erforderlich)

KeyTypeDescriptionExample
providerStringGibt den KI-Anbieter für den Memory-Agent an. Kann ein integrierter Anbieter (z. B. "openAI", "anthropic", "google") oder ein benutzerdefinierter endpoint-Name sein.provider: "openAI"

model (erforderlich)

KeyTypeDescriptionExample
modelStringGibt das für die Speicherverarbeitung zu verwendende Modell an.model: "gpt-4"

Anweisungen (optional)

KeyTypeDescriptionExample
instructionsStringBenutzerdefinierte Anweisungen, die die Standardanweisungen zum Festlegen und/oder Löschen von Speicher ersetzen. Sollten hauptsächlich bei der Verwendung von validKeys eingesetzt werden, die eine spezifische Informationsverarbeitung erfordern.instructions: "Only store user preferences and facts when explicitly mentioned."

model_parameters (optional)

KeyTypeDescriptionExample
model_parametersObjectZusätzliche Parameter, die an das Modell übergeben werden, um dessen Verhalten fein abzustimmen. Die Werte müssen Strings, Zahlen oder Booleans sein.model_parameters: { temperature: 0.7 }

Vollständiges Konfigurationsbeispiel

Hier ist ein umfassendes Beispiel, das alle Konfigurationsoptionen für den Speicher zeigt:

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

Verwendung von benutzerdefinierten Endpoints

Die Memory-Funktion unterstützt benutzerdefinierte endpoints. Bei der Verwendung eines benutzerdefinierten endpoints sollte das Feld provider exakt mit dem name des benutzerdefinierten endpoints übereinstimmen. Benutzerdefinierte Header mit Umgebungsvariablen und Benutzer-Platzhaltern werden korrekt aufgelöst.

 
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'

Hinweise

  • Die Memory-Funktionalität verbessert die Kontinuität und Personalisierung von Unterhaltungen.
  • Wenn personalize auf true gesetzt ist, erhalten Benutzer einen Umschalter in ihrer Chat-Oberfläche, um die Speichernutzung zu steuern.
  • Token-Limits helfen dabei, die Speicherauslastung und die Verarbeitungskosten zu kontrollieren.
  • maxInputTokens begrenzt den Chat-Kontext, der an den automatischen Memory-Agenten gesendet wird, während tokenLimit die Nutzung des gespeicherten Speichers steuert.
  • Gültige Schlüssel bieten eine granulare Kontrolle darüber, welche Informationen gespeichert werden können.
  • Benutzerdefinierte instructions ersetzen die standardmäßige Speicherverwaltung und sollten mit validKeys verwendet werden.
  • Die Agent-Konfiguration ermöglicht die Anpassung des Verhaltens der Speicherverarbeitung.
  • Wenn deaktiviert, sind alle Speicherfunktionen unabhängig von anderen Einstellungen ausgeschaltet.
  • Die Größe des Nachrichtenfensters beeinflusst, wie viel des aktuellen Kontexts für Speicheraktualisierungen berücksichtigt wird.

Wie finden Sie diese Anleitung?