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: 1000disabled
| Key | Type | Description | Example |
|---|---|---|---|
| disabled | Boolean | Wyłą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: truevalidKeys
| Key | Type | Description | Example |
|---|---|---|---|
| validKeys | Array of Strings | Okreś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
| Key | Type | Description | Example |
|---|---|---|---|
| tokenLimit | Number | Ustawia maksymalną liczbę tokenów, które mogą zostać użyte do przechowywania i przetwarzania pamięci. | tokenLimit: 2000 |
Domyślnie: Brak limitu
memory:
tokenLimit: 2000charLimit
| Key | Type | Description | Example |
|---|---|---|---|
| charLimit | Number | Okreś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: 10000maxInputTokens
| Key | Type | Description | Example |
|---|---|---|---|
| maxInputTokens | Number | Ustawia 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: 12000personalize
| Key | Type | Description | Example |
|---|---|---|---|
| personalize | Boolean | Gdy 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: falsemessageWindowSize
| Key | Type | Description | Example |
|---|---|---|---|
| messageWindowSize | Number | Określa liczbę ostatnich wiadomości do uwzględnienia w oknie kontekstu pamięci. | messageWindowSize: 5 |
Domyślnie: 5
memory:
messageWindowSize: 10agent
| Key | Type | Description | Example |
|---|---|---|---|
| agent | Object | Union | Konfiguruje 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.9Pola konfiguracji agenta
Podczas korzystania z niestandardowej konfiguracji agenta dostępne są następujące pola:
provider (wymagane)
| Key | Type | Description | Example |
|---|---|---|---|
| provider | String | Okreś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)
| Key | Type | Description | Example |
|---|---|---|---|
| model | String | Określa model używany do przetwarzania pamięci. | model: "gpt-4" |
instrukcje (opcjonalne)
| Key | Type | Description | Example |
|---|---|---|---|
| instructions | String | Niestandardowe 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)
| Key | Type | Description | Example |
|---|---|---|---|
| model_parameters | Object | Dodatkowe 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.1Korzystanie 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'- Zobacz Custom Endpoint Headers, aby uzyskać listę wszystkich dostępnych symboli zastępczych.
Uwagi
- Funkcjonalność pamięci poprawia ciągłość konwersacji i personalizację
- Gdy
personalizejest 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.
maxInputTokensogranicza kontekst czatu wysyłany do automatycznego agenta pamięci, podczas gdytokenLimitkontroluje wykorzystanie zapisanej pamięci- Prawidłowe klucze zapewniają szczegółową kontrolę nad tym, jakie informacje mogą być przechowywane
- Niestandardowe
instructionszastępują domyślne instrukcje obsługi pamięci i powinny być używane zvalidKeys - 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?