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

Configuration de la mémoire

Aperçu

L'objet memory vous permet de configurer la mémoire de conversation et les fonctionnalités de personnalisation de l'application. Cette configuration contrôle la manière dont le système mémorise et personnalise les conversations, incluant les limites de jetons, les fenêtres de contexte des messages et le traitement de la mémoire basé sur des agents.

Exemple

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
disabledBooleanDésactive la fonctionnalité de mémoire lorsqu'elle est définie sur true. Lorsqu'elle est désactivée, le système ne stockera ni n'utilisera la mémoire de conversation.disabled: false

Par défaut : false

memory:
  disabled: true

validKeys

KeyTypeDescriptionExample
validKeysArray of StringsSpécifie quelles clés sont valides pour le stockage en mémoire. Cela permet de contrôler quels types d'informations peuvent être stockés en mémoire.validKeys: ["user_name", "preferences", "contexte"]

Par défaut : Aucune restriction (toutes les clés sont valides)

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

tokenLimit

KeyTypeDescriptionExample
tokenLimitNumberDéfinit le nombre maximal de jetons pouvant être utilisés pour le stockage et le traitement de la mémoire.tokenLimit: 2000

Par défaut : Aucune limite

memory:
  tokenLimit: 2000

charLimit

KeyTypeDescriptionExample
charLimitNumberDéfinit le nombre maximal de caractères autorisés pour les entrées de mémoire individuelles. Cela évite les charges utiles de mémoire surdimensionnées qui pourraient affecter les performances ou dépasser les limites de l'API.charLimit: 10000

Par défaut : 10000

memory:
  charLimit: 10000

maxInputTokens

KeyTypeDescriptionExample
maxInputTokensNumberDéfinit le nombre maximal de jetons de chat récents envoyés à l'agent de mémoire automatique avant l'extraction de la mémoire. Les entrées longues sont tronquées à partir du début afin que le contexte le plus récent soit préservé.maxInputTokens: 12000

Par défaut : 12000

memory:
  maxInputTokens: 12000

personalize

KeyTypeDescriptionExample
personalizeBooleanLorsqu'il est défini sur true, donne aux utilisateurs la possibilité d'activer ou de désactiver l'utilisation des fonctionnalités de mémoire. Les utilisateurs peuvent activer/désactiver la mémoire dans leur interface de chat. Lorsqu'il est défini sur false, les fonctionnalités de mémoire sont complètement désactivées.personalize: true

Par défaut : true

memory:
  personalize: false

messageWindowSize

KeyTypeDescriptionExample
messageWindowSizeNumberSpécifie le nombre de messages récents à inclure dans la fenêtre de contexte de la mémoire.messageWindowSize: 5

Par défaut : 5

memory:
  messageWindowSize: 10

agent

KeyTypeDescriptionExample
agentObject | UnionConfigure l'agent responsable du traitement de la mémoire. Il peut s'agir soit d'une référence à un agent existant par son ID, soit d'une configuration d'agent complète.agent: { provider: "openAI", model: "gpt-4" }

Le champ agent prend en charge deux formats de configuration différents :

Agent par ID

Lorsque vous disposez d'un agent préconfiguré, vous pouvez le référencer par son ID :

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

Configuration d'agent personnalisé

Pour plus de contrôle, vous pouvez définir une configuration d'agent complète :

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

Champs de configuration de l'agent

Lors de l'utilisation d'une configuration d'agent personnalisée, les champs suivants sont disponibles :

provider (requis)

KeyTypeDescriptionExample
providerStringSpécifie le fournisseur d'IA pour l'agent de mémoire. Peut être un fournisseur intégré (par ex. "openAI", "anthropic", "google") ou un nom d'endpoint personnalisé.provider: "openAI"

model (requis)

KeyTypeDescriptionExample
modelStringSpécifie le modèle à utiliser pour le traitement de la mémoire.model: "gpt-4"

instructions (facultatif)

KeyTypeDescriptionExample
instructionsStringInstructions personnalisées qui remplacent les instructions par défaut pour définir et/ou supprimer la mémoire. À utiliser principalement avec des validKeys nécessitant un traitement spécifique des informations.instructions: "Only store user preferences and facts when explicitly mentioned."

model_parameters (optionnel)

KeyTypeDescriptionExample
model_parametersObjectParamètres supplémentaires à transmettre au modèle pour affiner son comportement. Les valeurs doivent être des chaînes de caractères, des nombres ou des booléens.model_parameters: { temperature: 0.7 }

Exemple de configuration complète

Voici un exemple complet présentant toutes les options de configuration de la mémoire :

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

Utilisation d'endpoints personnalisés

La fonctionnalité de mémoire prend en charge les endpoints personnalisés. Lors de l'utilisation d'un endpoint personnalisé, le champ provider doit correspondre exactement au name de l'endpoint personnalisé. Les en-têtes personnalisés avec des variables d'environnement et des espaces réservés utilisateur sont correctement résolus.

 
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'

Notes

  • La fonctionnalité Memory améliore la continuité et la personnalisation des conversations.
  • Lorsque personalize est défini sur true, les utilisateurs disposent d'un bouton bascule dans leur interface de chat pour contrôler l'utilisation de la mémoire.
  • Les limites de jetons aident à contrôler l'utilisation de la mémoire et les coûts de traitement.
  • maxInputTokens limite le contexte de chat envoyé à l'agent de mémoire automatique, tandis que tokenLimit contrôle l'utilisation de la mémoire stockée.
  • Les clés valides offrent un contrôle granulaire sur les informations pouvant être stockées
  • Les instructions personnalisées remplacent les instructions de gestion de la mémoire par défaut et doivent être utilisées avec validKeys
  • La configuration des agents permet de personnaliser le comportement du traitement de la mémoire.
  • Lorsque cette option est désactivée, toutes les fonctionnalités de mémoire sont désactivées, indépendamment des autres paramètres.
  • La taille de la fenêtre de message affecte la quantité de contexte récent prise en compte pour les mises à jour de la mémoire

Que pensez-vous de ce guide ?