mirror of
https://github.com/LibreChat-AI/librechat.ai.git
synced 2026-03-27 10:48:32 +07:00
📖 docs: Document config changes (v0.8.0-rc1 to v0.8.1-rc1) (#448)
* feat: document new charLimit in memory configuration * feat: document peoplePicker interface configuration * feat: document Agent Marketplace configuration * chore: better description for peoplePicker permissions * feat: document fileStrategies configuration * feat: document webSearch's firecrawlVersion addition and scraperType to scraperProvider refactor * feat: document conversation file import limit env variable CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES * feat: document modelSpecs group field configuration * chore: fix formatting in peoplePicker interface markdown * feat: add missing .env.example changes * chore: formatting
This commit is contained in:
76
components/changelog/content/config_v1.3.1.mdx
Normal file
76
components/changelog/content/config_v1.3.1.mdx
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
- Added `charLimit` to `memory` configuration
|
||||||
|
- Limits the maximum character length for user-created memories
|
||||||
|
- Default value is `10000` characters
|
||||||
|
- Prevents oversized memory payloads that could impact performance
|
||||||
|
- See [Memory Configuration](/docs/configuration/librechat_yaml/object_structure/memory#charlimit) for details
|
||||||
|
|
||||||
|
- Added `interface.peoplePicker` configuration for user/group/role selection controls
|
||||||
|
- Added `users` setting to control user search (default: `true`)
|
||||||
|
- Added `groups` setting to control group search (default: `true`)
|
||||||
|
- Added `roles` setting to control role search (default: `true`)
|
||||||
|
- Enables fine-grained control over who can search and view users/groups/roles when sharing resources (agents/prompts)
|
||||||
|
- People picker access control managed through permission system
|
||||||
|
- See [Interface Configuration](/docs/configuration/librechat_yaml/object_structure/interface#peoplepicker) for details
|
||||||
|
|
||||||
|
- Added `interface.marketplace` configuration for Agent Marketplace access control
|
||||||
|
- Added `use` setting to enable/disable marketplace access (default: `false`)
|
||||||
|
- Controls visibility and access to the Agent Marketplace feature
|
||||||
|
- Access control managed through permission system
|
||||||
|
- See [Interface Configuration](/docs/configuration/librechat_yaml/object_structure/interface#marketplace) for details
|
||||||
|
|
||||||
|
- Added `fileStrategies` for granular file storage configuration
|
||||||
|
- Allows different storage strategies for different file types
|
||||||
|
- Added `default` setting for fallback storage strategy
|
||||||
|
- Added `avatar` setting for user/agent avatar image storage
|
||||||
|
- Added `image` setting for uploaded images in chats
|
||||||
|
- Added `document` setting for document uploads (PDFs, text files, etc.)
|
||||||
|
- Supports mixing storage strategies (e.g., S3 for avatars, local for documents)
|
||||||
|
- Available strategies: `"local"`, `"s3"`, `"firebase"`, `"azure_blob"`
|
||||||
|
- Backwards compatible with existing `fileStrategy` (single strategy for all files)
|
||||||
|
- See [File Strategies Configuration](/docs/configuration/librechat_yaml/object_structure/config#filestrategies) for details
|
||||||
|
|
||||||
|
- Renamed `webSearch.scraperType` to `webSearch.scraperProvider`
|
||||||
|
- Configuration field renamed for consistency with other provider naming conventions
|
||||||
|
- See [Web Search Configuration](/docs/configuration/librechat_yaml/object_structure/web_search#scraperprovider) for details
|
||||||
|
- Added `webSearch.firecrawlVersion` to specify Firecrawl API version
|
||||||
|
- Allows configuration of Firecrawl API version (v0 or v1)
|
||||||
|
- Default: uses environment variable `${FIRECRAWL_VERSION}`
|
||||||
|
- See [Web Search Configuration](/docs/configuration/librechat_yaml/object_structure/web_search#firecrawlversion) for details
|
||||||
|
|
||||||
|
- Added `CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES` environment variable
|
||||||
|
- Limits the maximum file size for conversation imports in bytes
|
||||||
|
- Prevents memory exhaustion from large import files
|
||||||
|
- Default: `0` (no limit enforced when not set)
|
||||||
|
- Example: `262144000` (250 MiB)
|
||||||
|
- See [Environment Variables](/docs/configuration/dotenv#conversation_import_max_file_size_bytes) for details
|
||||||
|
|
||||||
|
- Added optional `group` field to modelSpecs configuration
|
||||||
|
- Organizes model specs in the UI selector with flexible grouping options
|
||||||
|
- Three behaviors based on `group` value:
|
||||||
|
- If `group` matches an endpoint name (e.g., "openAI", "groq"), the spec nests under that endpoint
|
||||||
|
- If `group` is a custom name (doesn't match any endpoint), creates a separate collapsible section
|
||||||
|
- If `group` is omitted, the spec appears as a standalone item at top level
|
||||||
|
- See [Model Specs](/docs/configuration/librechat_yaml/object_structure/model_specs#group) for details
|
||||||
|
|
||||||
|
- Removed `SERPAPI_API_KEY` documentation
|
||||||
|
- SerpAPI integration is no longer supported
|
||||||
|
- See [Environment Variables](/docs/configuration/dotenv)
|
||||||
|
|
||||||
|
- Added `MCP_SKIP_CODE_CHALLENGE_CHECK` environment variable
|
||||||
|
- Skip code challenge method validation for MCP OAuth flows
|
||||||
|
- Default: `false`
|
||||||
|
- See [MCP Server Configuration](/docs/configuration/dotenv#mcp-server-configuration) for details
|
||||||
|
|
||||||
|
- Added Leader Election configuration for multi-instance deployments
|
||||||
|
- Added `LEADER_LEASE_DURATION` - Duration in seconds that the leader lease is valid (default: 25)
|
||||||
|
- Added `LEADER_RENEW_INTERVAL` - Interval in seconds at which the leader renews its lease (default: 10)
|
||||||
|
- Added `LEADER_RENEW_ATTEMPTS` - Maximum retry attempts when renewing the lease fails (default: 3)
|
||||||
|
- Added `LEADER_RENEW_RETRY_DELAY` - Delay in seconds between retry attempts (default: 0.5)
|
||||||
|
- Requires Redis to be enabled (`USE_REDIS=true`)
|
||||||
|
- Ensures only one instance performs operations like scheduled tasks
|
||||||
|
- See [Leader Election Configuration](/docs/configuration/dotenv#leader-election) for details
|
||||||
|
|
||||||
|
- Updated `FORCED_IN_MEMORY_CACHE_NAMESPACES` examples
|
||||||
|
- Removed `STATIC_CONFIG` from example values (deprecated cache key)
|
||||||
|
- Updated examples to use `ROLES,MESSAGES` as recommended defaults
|
||||||
|
- See [Redis Configuration](/docs/configuration/redis#forced-in-memory-cache) for details
|
||||||
13
pages/changelog/config_v1.3.1.mdx
Normal file
13
pages/changelog/config_v1.3.1.mdx
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
date: 2025/11/24
|
||||||
|
title: ⚙️ Config v1.3.1
|
||||||
|
---
|
||||||
|
|
||||||
|
import { ChangelogHeader } from '@/components/changelog/ChangelogHeader'
|
||||||
|
import Content from '@/components/changelog/content/config_v1.3.1.mdx'
|
||||||
|
|
||||||
|
<ChangelogHeader />
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<Content />
|
||||||
@@ -286,6 +286,7 @@ For detailed configuration and customization options, see: [Web Search Configura
|
|||||||
['SERPER_API_KEY', 'string', 'API key for Serper search provider. Get your key from https://serper.dev/api-key', '# SERPER_API_KEY='],
|
['SERPER_API_KEY', 'string', 'API key for Serper search provider. Get your key from https://serper.dev/api-key', '# SERPER_API_KEY='],
|
||||||
['FIRECRAWL_API_KEY', 'string', 'API key for Firecrawl scraper service. Get your key from https://docs.firecrawl.dev/introduction#api-key', '# FIRECRAWL_API_KEY='],
|
['FIRECRAWL_API_KEY', 'string', 'API key for Firecrawl scraper service. Get your key from https://docs.firecrawl.dev/introduction#api-key', '# FIRECRAWL_API_KEY='],
|
||||||
['FIRECRAWL_API_URL', 'string', 'Custom Firecrawl API URL (optional). Only needed for custom Firecrawl instances.', '# FIRECRAWL_API_URL='],
|
['FIRECRAWL_API_URL', 'string', 'Custom Firecrawl API URL (optional). Only needed for custom Firecrawl instances.', '# FIRECRAWL_API_URL='],
|
||||||
|
['FIRECRAWL_VERSION', 'string', 'Firecrawl API version (v0 or v1).', '# FIRECRAWL_VERSION=v1'],
|
||||||
['JINA_API_KEY', 'string', 'API key for Jina reranker service. Get your key from https://jina.ai/api-dashboard/', '# JINA_API_KEY='],
|
['JINA_API_KEY', 'string', 'API key for Jina reranker service. Get your key from https://jina.ai/api-dashboard/', '# JINA_API_KEY='],
|
||||||
['JINA_API_URL', 'string', 'Custom Jina API URL (optional). Only needed for custom Jina instances.', '# JINA_API_URL='],
|
['JINA_API_URL', 'string', 'Custom Jina API URL (optional). Only needed for custom Jina instances.', '# JINA_API_URL='],
|
||||||
['COHERE_API_KEY', 'string', 'API key for Cohere reranker service. Get your key from https://dashboard.cohere.com/welcome/login', '# COHERE_API_KEY='],
|
['COHERE_API_KEY', 'string', 'API key for Cohere reranker service. Get your key from https://dashboard.cohere.com/welcome/login', '# COHERE_API_KEY='],
|
||||||
@@ -629,18 +630,6 @@ See detailed instructions here: **[Google Search](/docs/configuration/tools/goog
|
|||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
#### SerpAPI
|
|
||||||
|
|
||||||
**Description:** SerpApi is a real-time API to access Google search results (not as performant)
|
|
||||||
|
|
||||||
**Environment Variables:**
|
|
||||||
|
|
||||||
<OptionTable
|
|
||||||
options={[
|
|
||||||
['SERPAPI_API_KEY', 'string', 'Your SerpAPI API key.','SERPAPI_API_KEY='],
|
|
||||||
]}
|
|
||||||
/>
|
|
||||||
|
|
||||||
#### Stable Diffusion (Automatic1111)
|
#### Stable Diffusion (Automatic1111)
|
||||||
|
|
||||||
See detailed instructions here: **[Stable Diffusion](/docs/configuration/tools/stable_diffusion)**
|
See detailed instructions here: **[Stable Diffusion](/docs/configuration/tools/stable_diffusion)**
|
||||||
@@ -1393,6 +1382,16 @@ LibreChat supports Google Tag Manager for analytics. You will need a Google Tag
|
|||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
#### Conversation Import
|
||||||
|
|
||||||
|
Configure limits for conversation file imports to prevent memory issues.
|
||||||
|
|
||||||
|
<OptionTable
|
||||||
|
options={[
|
||||||
|
['CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES', 'number', 'Maximum file size in bytes for conversation imports. Default: 0 (no limit enforced). Example: 262144000 (250 MiB).','# CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES=262144000'],
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
### MCP (Model Context Protocol)
|
### MCP (Model Context Protocol)
|
||||||
|
|
||||||
Configure Model Context Protocol settings for enhanced server management and OAuth support.
|
Configure Model Context Protocol settings for enhanced server management and OAuth support.
|
||||||
@@ -1404,6 +1403,7 @@ Configure Model Context Protocol settings for enhanced server management and OAu
|
|||||||
['MCP_OAUTH_ON_AUTH_ERROR', 'boolean', 'Treat 401/403 responses as OAuth requirement when no oauth metadata found.', 'MCP_OAUTH_ON_AUTH_ERROR=true'],
|
['MCP_OAUTH_ON_AUTH_ERROR', 'boolean', 'Treat 401/403 responses as OAuth requirement when no oauth metadata found.', 'MCP_OAUTH_ON_AUTH_ERROR=true'],
|
||||||
['MCP_OAUTH_DETECTION_TIMEOUT', 'number', 'Timeout for OAuth detection requests in milliseconds.', 'MCP_OAUTH_DETECTION_TIMEOUT=5000'],
|
['MCP_OAUTH_DETECTION_TIMEOUT', 'number', 'Timeout for OAuth detection requests in milliseconds.', 'MCP_OAUTH_DETECTION_TIMEOUT=5000'],
|
||||||
['MCP_CONNECTION_CHECK_TTL', 'number', 'Cache connection status checks for this many milliseconds to avoid expensive verification.', 'MCP_CONNECTION_CHECK_TTL=30000'],
|
['MCP_CONNECTION_CHECK_TTL', 'number', 'Cache connection status checks for this many milliseconds to avoid expensive verification.', 'MCP_CONNECTION_CHECK_TTL=30000'],
|
||||||
|
['MCP_SKIP_CODE_CHALLENGE_CHECK', 'boolean', 'Skip code challenge method validation. When set to true, forces S256 code challenge even if not advertised in .well-known/openid-configuration', 'MCP_SKIP_CODE_CHALLENGE_CHECK=false'],
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
@@ -1431,7 +1431,7 @@ For detailed configuration and examples, see: **[Redis Configuration Guide](/doc
|
|||||||
['REDIS_KEY_PREFIX_VAR', 'string', 'Environment variable name containing dynamic prefix (e.g., K_REVISION for Cloud Run). Cannot be used with REDIS_KEY_PREFIX.', '# REDIS_KEY_PREFIX_VAR=K_REVISION'],
|
['REDIS_KEY_PREFIX_VAR', 'string', 'Environment variable name containing dynamic prefix (e.g., K_REVISION for Cloud Run). Cannot be used with REDIS_KEY_PREFIX.', '# REDIS_KEY_PREFIX_VAR=K_REVISION'],
|
||||||
['REDIS_MAX_LISTENERS', 'number', 'Maximum event listeners per Redis client. Prevents memory leaks. Default: 40.', '# REDIS_MAX_LISTENERS=40'],
|
['REDIS_MAX_LISTENERS', 'number', 'Maximum event listeners per Redis client. Prevents memory leaks. Default: 40.', '# REDIS_MAX_LISTENERS=40'],
|
||||||
['REDIS_PING_INTERVAL', 'number', 'Ping interval in seconds to maintain connections. Default: 0 (disabled). Only set if experiencing timeouts.', '# REDIS_PING_INTERVAL=300'],
|
['REDIS_PING_INTERVAL', 'number', 'Ping interval in seconds to maintain connections. Default: 0 (disabled). Only set if experiencing timeouts.', '# REDIS_PING_INTERVAL=300'],
|
||||||
['FORCED_IN_MEMORY_CACHE_NAMESPACES', 'string', 'Comma-separated cache keys to force in-memory storage even when Redis is enabled.', '# FORCED_IN_MEMORY_CACHE_NAMESPACES=STATIC_CONFIG,ROLES'],
|
['FORCED_IN_MEMORY_CACHE_NAMESPACES', 'string', 'Comma-separated cache keys to force in-memory storage even when Redis is enabled.', '# FORCED_IN_MEMORY_CACHE_NAMESPACES=ROLES,MESSAGES'],
|
||||||
['REDIS_USE_ALTERNATIVE_DNS_LOOKUP', 'boolean', 'Enable alternate dnsLookup for TLS connections with AWS Elasticache. Required for Elasticache clusters with TLS.', '# REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true'],
|
['REDIS_USE_ALTERNATIVE_DNS_LOOKUP', 'boolean', 'Enable alternate dnsLookup for TLS connections with AWS Elasticache. Required for Elasticache clusters with TLS.', '# REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true'],
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
@@ -1441,4 +1441,23 @@ Notes:
|
|||||||
- For Redis Cluster mode, provide multiple URIs: `redis://node1:7001,redis://node2:7002,redis://node3:7003` (cluster mode is auto-detected).
|
- For Redis Cluster mode, provide multiple URIs: `redis://node1:7001,redis://node2:7002,redis://node3:7003` (cluster mode is auto-detected).
|
||||||
- Use `rediss://` protocol for TLS connections and set `REDIS_CA` if your CA is not publicly trusted.
|
- Use `rediss://` protocol for TLS connections and set `REDIS_CA` if your CA is not publicly trusted.
|
||||||
- `REDIS_KEY_PREFIX_VAR` and `REDIS_KEY_PREFIX` are mutually exclusive.
|
- `REDIS_KEY_PREFIX_VAR` and `REDIS_KEY_PREFIX` are mutually exclusive.
|
||||||
- **AWS Elasticache with TLS**: Elasticache may need to use an alternate dnsLookup for TLS connections. Set `REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true` if using Elasticache with TLS. See [ioredis documentation](https://www.npmjs.com/package/ioredis) for more details.
|
- **AWS Elasticache with TLS**: Elasticache may need to use an alternate dnsLookup for TLS connections. Set `REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true` if using Elasticache with TLS. See [ioredis documentation](https://www.npmjs.com/package/ioredis) for more details.
|
||||||
|
|
||||||
|
#### Leader Election
|
||||||
|
|
||||||
|
Configure distributed leader election for multi-instance deployments with Redis. Leader election ensures only one instance performs certain operations like scheduled tasks.
|
||||||
|
|
||||||
|
<OptionTable
|
||||||
|
options={[
|
||||||
|
['LEADER_LEASE_DURATION', 'number', 'Duration in seconds that the leader lease is valid before it expires. Default: 25.', 'LEADER_LEASE_DURATION=25'],
|
||||||
|
['LEADER_RENEW_INTERVAL', 'number', 'Interval in seconds at which the leader renews its lease. Default: 10.', 'LEADER_RENEW_INTERVAL=10'],
|
||||||
|
['LEADER_RENEW_ATTEMPTS', 'number', 'Maximum number of retry attempts when renewing the lease fails. Default: 3.', 'LEADER_RENEW_ATTEMPTS=3'],
|
||||||
|
['LEADER_RENEW_RETRY_DELAY', 'number', 'Delay in seconds between retry attempts when renewing the lease. Default: 0.5.', 'LEADER_RENEW_RETRY_DELAY=0.5'],
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
- Leader election requires Redis to be enabled (`USE_REDIS=true`).
|
||||||
|
- These settings are only relevant for multi-instance deployments.
|
||||||
|
- The leader lease must be renewed before expiration to maintain leadership.
|
||||||
|
- If lease renewal fails after max attempts, the instance will relinquish leadership.
|
||||||
@@ -33,6 +33,56 @@
|
|||||||
- You can choose from several different CDNs to store files.
|
- You can choose from several different CDNs to store files.
|
||||||
- Please refer to the [CDN documentation](/docs/configuration/cdn) for more details
|
- Please refer to the [CDN documentation](/docs/configuration/cdn) for more details
|
||||||
|
|
||||||
|
## fileStrategies
|
||||||
|
|
||||||
|
Allows granular control over file storage strategies for different file types.
|
||||||
|
- **Available Strategies**: "local" | "firebase" | "s3" | "azure_blob"
|
||||||
|
|
||||||
|
<OptionTable
|
||||||
|
options={[
|
||||||
|
['fileStrategies', 'Object', 'Configures different storage strategies for different file types. More flexible than the single fileStrategy option.', ''],
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
|
**Sub-keys:**
|
||||||
|
|
||||||
|
<OptionTable
|
||||||
|
options={[
|
||||||
|
['default', 'String', 'Fallback storage strategy when specific type is not defined. Defaults to "local".', ''],
|
||||||
|
['avatar', 'String', 'Storage strategy for user and agent avatar images.', ''],
|
||||||
|
['image', 'String', 'Storage strategy for images uploaded in chats.', ''],
|
||||||
|
['document', 'String', 'Storage strategy for document uploads (PDFs, text files, etc.).', ''],
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
|
- **Notes**:
|
||||||
|
- This setting takes precedence over the single `fileStrategy` option
|
||||||
|
- If a specific file type is not configured, it falls back to `default`, then to `fileStrategy`, and finally to `"local"`
|
||||||
|
- You can mix strategies based on your needs (e.g., S3 for avatars, local for documents)
|
||||||
|
- Please refer to the [CDN documentation](/docs/configuration/cdn) for setup details for each storage provider
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
|
||||||
|
```yaml filename="fileStrategies - All in one place"
|
||||||
|
# Use a single strategy for all file types
|
||||||
|
fileStrategies:
|
||||||
|
default: "s3"
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml filename="fileStrategies - Mixed strategies"
|
||||||
|
# Mix storage strategies based on file type
|
||||||
|
fileStrategies:
|
||||||
|
avatar: "s3" # Fast global access for avatars
|
||||||
|
image: "firebase" # Automatic image optimization
|
||||||
|
document: "local" # Keep documents on-premise for compliance
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml filename="fileStrategies - Partial configuration"
|
||||||
|
# Only configure specific types, others use default
|
||||||
|
fileStrategies:
|
||||||
|
default: "local"
|
||||||
|
avatar: "s3" # Only avatars use S3, everything else is local
|
||||||
|
```
|
||||||
## filteredTools
|
## filteredTools
|
||||||
|
|
||||||
<OptionTable
|
<OptionTable
|
||||||
@@ -125,7 +175,8 @@ see: [OCR Config Object Structure](/docs/configuration/librechat_yaml/object_str
|
|||||||
['jinaApiKey', 'String', 'Environment variable name for the Jina API key. If not set in .env, users will be prompted to provide it via UI.', ''],
|
['jinaApiKey', 'String', 'Environment variable name for the Jina API key. If not set in .env, users will be prompted to provide it via UI.', ''],
|
||||||
['cohereApiKey', 'String', 'Environment variable name for the Cohere API key. If not set in .env, users will be prompted to provide it via UI.', ''],
|
['cohereApiKey', 'String', 'Environment variable name for the Cohere API key. If not set in .env, users will be prompted to provide it via UI.', ''],
|
||||||
['searchProvider', 'String', 'Specifies which search provider to use. Options: "serper", "searxng".', ''],
|
['searchProvider', 'String', 'Specifies which search provider to use. Options: "serper", "searxng".', ''],
|
||||||
['scraperType', 'String', 'Specifies which scraper service to use. Options: "firecrawl", "serper".', ''],
|
['scraperProvider', 'String', 'Specifies which scraper service to use. Options: "firecrawl", "serper".', ''],
|
||||||
|
['firecrawlVersion', 'String', 'Specifies Firecrawl API version (v0 or v1).', ''],
|
||||||
['rerankerType', 'String', 'Specifies which reranker service to use. Options: "jina", "cohere".', ''],
|
['rerankerType', 'String', 'Specifies which reranker service to use. Options: "jina", "cohere".', ''],
|
||||||
['scraperTimeout', 'Number', 'Timeout in milliseconds for scraper requests.', ''],
|
['scraperTimeout', 'Number', 'Timeout in milliseconds for scraper requests.', ''],
|
||||||
['safeSearch', 'Boolean', 'Enables safe search mode to filter out inappropriate content.', ''],
|
['safeSearch', 'Boolean', 'Enables safe search mode to filter out inappropriate content.', ''],
|
||||||
@@ -331,6 +382,7 @@ see also:
|
|||||||
['disabled', 'Boolean', 'Disables memory functionality when set to true.', ''],
|
['disabled', 'Boolean', 'Disables memory functionality when set to true.', ''],
|
||||||
['validKeys', 'Array of Strings', 'Specifies which keys are valid for memory storage.', ''],
|
['validKeys', 'Array of Strings', 'Specifies which keys are valid for memory storage.', ''],
|
||||||
['tokenLimit', 'Number', 'Sets the maximum number of tokens for memory storage and processing.', ''],
|
['tokenLimit', 'Number', 'Sets the maximum number of tokens for memory storage and processing.', ''],
|
||||||
|
['charLimit', 'Number', 'Sets the maximum number of characters for memory storage. Default: 10000.', ''],
|
||||||
['personalize', 'Boolean', 'Enables or disables personalization features.', ''],
|
['personalize', 'Boolean', 'Enables or disables personalization features.', ''],
|
||||||
['messageWindowSize', 'Number', 'Specifies the number of recent messages to include in memory context.', ''],
|
['messageWindowSize', 'Number', 'Specifies the number of recent messages to include in memory context.', ''],
|
||||||
['agent', 'Object | Union', 'Configures the agent responsible for memory processing.', ''],
|
['agent', 'Object | Union', 'Configures the agent responsible for memory processing.', ''],
|
||||||
@@ -383,10 +435,12 @@ see also:
|
|||||||
['agents', 'Boolean', 'Enables or disables all agents features for all users', ''],
|
['agents', 'Boolean', 'Enables or disables all agents features for all users', ''],
|
||||||
['webSearch', 'Boolean', 'Enables or disables the web search button in the chat interface', ''],
|
['webSearch', 'Boolean', 'Enables or disables the web search button in the chat interface', ''],
|
||||||
['fileSearch', 'Boolean', 'Enables or disables the file search button in the chat interface', ''],
|
['fileSearch', 'Boolean', 'Enables or disables the file search button in the chat interface', ''],
|
||||||
|
['peoplePicker', 'Object', 'Configures which principal types are available controls in the people picker interface', ''],
|
||||||
|
['marketplace', 'Object', 'Enables or disables access to the Agent Marketplace', ''],
|
||||||
['temporaryChatRetention', 'Number', 'Configures the retention period for temporary chats in hours. Min: 1, Max: 8760. Default: 720 (30 days).', 'temporaryChatRetention: 168'],
|
['temporaryChatRetention', 'Number', 'Configures the retention period for temporary chats in hours. Min: 1, Max: 8760. Default: 720 (30 days).', 'temporaryChatRetention: 168'],
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
see: [Interface Object Structure](/docs/configuration/librechat_yaml/object_structure/interface)
|
see: [Interface Object Structure](/docs/configuration/librechat_yaml/object_structure/interface)
|
||||||
|
|
||||||
## temporaryChatRetention
|
## temporaryChatRetention
|
||||||
|
|||||||
@@ -363,3 +363,73 @@ Controls the global availability of file citations functionality. When disabled,
|
|||||||
interface:
|
interface:
|
||||||
fileCitations: true
|
fileCitations: true
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## peoplePicker
|
||||||
|
|
||||||
|
Controls which principal types (users, groups, roles) are available for selection in the people picker interface, typically used when sharing agents or managing access controls.
|
||||||
|
|
||||||
|
**Key:**
|
||||||
|
<OptionTable
|
||||||
|
options={[
|
||||||
|
['peoplePicker', 'Object', 'Configuration for which principal types are available in the people picker interface.'],
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
|
**Sub-keys:**
|
||||||
|
|
||||||
|
<OptionTable
|
||||||
|
options={[
|
||||||
|
['users', 'Boolean', 'Enables user search in the people picker. Default: true'],
|
||||||
|
['groups', 'Boolean', 'Enables group search in the people picker. Default: true'],
|
||||||
|
['roles', 'Boolean', 'Enables role search in the people picker. Default: true'],
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
|
**Default:**
|
||||||
|
```yaml
|
||||||
|
peoplePicker:
|
||||||
|
users: true
|
||||||
|
groups: true
|
||||||
|
roles: true
|
||||||
|
```
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
```yaml filename="interface / peoplePicker"
|
||||||
|
interface:
|
||||||
|
peoplePicker:
|
||||||
|
users: true
|
||||||
|
groups: true
|
||||||
|
roles: false # Disable role selection in people picker
|
||||||
|
```
|
||||||
|
|
||||||
|
## marketplace
|
||||||
|
|
||||||
|
Enables/disables access to the Agent Marketplace.
|
||||||
|
|
||||||
|
**Key:**
|
||||||
|
<OptionTable
|
||||||
|
options={[
|
||||||
|
['marketplace', 'Object', 'Configuration for Agent Marketplace access control.'],
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
|
**Sub-keys:**
|
||||||
|
|
||||||
|
<OptionTable
|
||||||
|
options={[
|
||||||
|
['use', 'Boolean', 'Enables or disables marketplace access. Default: false'],
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
|
**Default:**
|
||||||
|
```yaml
|
||||||
|
marketplace:
|
||||||
|
use: false
|
||||||
|
```
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
```yaml filename="interface / marketplace"
|
||||||
|
interface:
|
||||||
|
marketplace:
|
||||||
|
use: true # Enable marketplace access
|
||||||
|
```
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ memory:
|
|||||||
disabled: false
|
disabled: false
|
||||||
validKeys: ["user_preferences", "conversation_context", "personal_info"]
|
validKeys: ["user_preferences", "conversation_context", "personal_info"]
|
||||||
tokenLimit: 2000
|
tokenLimit: 2000
|
||||||
|
charLimit: 10000
|
||||||
personalize: true
|
personalize: true
|
||||||
messageWindowSize: 5
|
messageWindowSize: 5
|
||||||
agent:
|
agent:
|
||||||
@@ -71,6 +72,21 @@ memory:
|
|||||||
tokenLimit: 2000
|
tokenLimit: 2000
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## charLimit
|
||||||
|
|
||||||
|
<OptionTable
|
||||||
|
options={[
|
||||||
|
['charLimit', 'Number', 'Sets the maximum number of characters allowed for individual memory entries. This prevents oversized memory payloads that could impact performance or exceed API limits.', 'charLimit: 10000'],
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
|
**Default:** `10000`
|
||||||
|
|
||||||
|
```yaml filename="memory / charLimit"
|
||||||
|
memory:
|
||||||
|
charLimit: 10000
|
||||||
|
```
|
||||||
|
|
||||||
## personalize
|
## personalize
|
||||||
|
|
||||||
<OptionTable
|
<OptionTable
|
||||||
@@ -185,6 +201,7 @@ memory:
|
|||||||
- "learned_facts"
|
- "learned_facts"
|
||||||
- "personal_information"
|
- "personal_information"
|
||||||
tokenLimit: 3000
|
tokenLimit: 3000
|
||||||
|
charLimit: 10000
|
||||||
personalize: true
|
personalize: true
|
||||||
messageWindowSize: 8
|
messageWindowSize: 8
|
||||||
agent:
|
agent:
|
||||||
|
|||||||
@@ -204,6 +204,52 @@ A brief description of the model and its intended use or role, shown in the head
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### group
|
||||||
|
|
||||||
|
<OptionTable
|
||||||
|
options={[
|
||||||
|
['group', 'String', 'Optional field to organize model specs in the UI selector with flexible grouping.', 'No default. Optional.'],
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
|
**Description:**
|
||||||
|
Optional group name for organizing specs in the UI selector. The behavior depends on the `group` value:
|
||||||
|
|
||||||
|
- **Endpoint name** (e.g., "openAI", "groq"): If `group` matches an existing endpoint name, the spec appears nested under that endpoint in the UI
|
||||||
|
- **Custom name**: If `group` is a custom string that doesn't match any endpoint, it creates a separate collapsible section with that name
|
||||||
|
- **Omitted**: If `group` is not specified, the spec appears as a standalone item at the top level
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
```yaml filename="modelSpecs / group"
|
||||||
|
modelSpecs:
|
||||||
|
list:
|
||||||
|
# Nested under openAI endpoint
|
||||||
|
- name: "gpt-4o-custom"
|
||||||
|
label: "GPT-4 Optimized"
|
||||||
|
group: "openAI" # Matches endpoint name
|
||||||
|
preset:
|
||||||
|
endpoint: "openAI"
|
||||||
|
model: "gpt-4o"
|
||||||
|
|
||||||
|
# Custom group section
|
||||||
|
- name: "coding-assistant"
|
||||||
|
label: "Coding Assistant"
|
||||||
|
group: "my-assistants" # Custom group
|
||||||
|
preset:
|
||||||
|
endpoint: "openAI"
|
||||||
|
model: "gpt-4o"
|
||||||
|
|
||||||
|
# Standalone at top level
|
||||||
|
- name: "general-assistant"
|
||||||
|
label: "General Assistant"
|
||||||
|
# No group field - appears at top level
|
||||||
|
preset:
|
||||||
|
endpoint: "openAI"
|
||||||
|
model: "gpt-4o-mini"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
### showIconInMenu
|
### showIconInMenu
|
||||||
|
|
||||||
<OptionTable
|
<OptionTable
|
||||||
|
|||||||
@@ -23,7 +23,8 @@ webSearch:
|
|||||||
# Scraper Configuration
|
# Scraper Configuration
|
||||||
firecrawlApiKey: "${FIRECRAWL_API_KEY}"
|
firecrawlApiKey: "${FIRECRAWL_API_KEY}"
|
||||||
firecrawlApiUrl: "${FIRECRAWL_API_URL}"
|
firecrawlApiUrl: "${FIRECRAWL_API_URL}"
|
||||||
scraperType: "firecrawl" # Options: "firecrawl", "serper"
|
firecrawlVersion: "${FIRECRAWL_VERSION}"
|
||||||
|
scraperProvider: "firecrawl" # Options: "firecrawl", "serper"
|
||||||
|
|
||||||
# Reranker Configuration
|
# Reranker Configuration
|
||||||
jinaApiKey: "${JINA_API_KEY}"
|
jinaApiKey: "${JINA_API_KEY}"
|
||||||
@@ -98,11 +99,19 @@ webSearch:
|
|||||||
|
|
||||||
**Note:** This is optional and only needed if you're using a custom Firecrawl instance.
|
**Note:** This is optional and only needed if you're using a custom Firecrawl instance.
|
||||||
|
|
||||||
### scraperType
|
### firecrawlVersion
|
||||||
|
|
||||||
<OptionTable
|
<OptionTable
|
||||||
options={[
|
options={[
|
||||||
['scraperType', 'String', 'Specifies which scraper service to use.', 'Options: "firecrawl", "serper"'],
|
['firecrawlVersion', 'String', 'Environment variable name for the Firecrawl API version (v0 or v1).', '${FIRECRAWL_VERSION}'],
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
|
### scraperProviderider
|
||||||
|
|
||||||
|
<OptionTable
|
||||||
|
options={[
|
||||||
|
['scraperProvider', 'String', 'Specifies which scraper service to use.', 'Options: "firecrawl", "serper"'],
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ Force specific cache namespaces to use in-memory storage even when Redis is enab
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Comma-separated list of cache keys
|
# Comma-separated list of cache keys
|
||||||
FORCED_IN_MEMORY_CACHE_NAMESPACES=STATIC_CONFIG,ROLES,MESSAGES
|
FORCED_IN_MEMORY_CACHE_NAMESPACES=ROLES,MESSAGES
|
||||||
```
|
```
|
||||||
|
|
||||||
Valid cache keys are defined in the `CacheKeys` enum from `librechat-data-provider`.
|
Valid cache keys are defined in the `CacheKeys` enum from `librechat-data-provider`.
|
||||||
@@ -240,7 +240,7 @@ REDIS_CA=/etc/ssl/redis-ca.pem
|
|||||||
REDIS_KEY_PREFIX_VAR=DEPLOYMENT_ID
|
REDIS_KEY_PREFIX_VAR=DEPLOYMENT_ID
|
||||||
REDIS_MAX_LISTENERS=100
|
REDIS_MAX_LISTENERS=100
|
||||||
REDIS_PING_INTERVAL=300
|
REDIS_PING_INTERVAL=300
|
||||||
FORCED_IN_MEMORY_CACHE_NAMESPACES=STATIC_CONFIG,ROLES
|
FORCED_IN_MEMORY_CACHE_NAMESPACES=ROLES,MESSAGES
|
||||||
```
|
```
|
||||||
|
|
||||||
### Cluster Setup
|
### Cluster Setup
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ To get started with web search, you'll need to configure API keys for all three
|
|||||||
FIRECRAWL_API_KEY=your_firecrawl_api_key
|
FIRECRAWL_API_KEY=your_firecrawl_api_key
|
||||||
# Optional: Custom Firecrawl API URL
|
# Optional: Custom Firecrawl API URL
|
||||||
FIRECRAWL_API_URL=your_firecrawl_api_url
|
FIRECRAWL_API_URL=your_firecrawl_api_url
|
||||||
|
# Optional: Firecrawl API version (v0 or v1)
|
||||||
|
# FIRECRAWL_VERSION=v1
|
||||||
|
|
||||||
# Reranker (Required)
|
# Reranker (Required)
|
||||||
JINA_API_KEY=your_jina_api_key
|
JINA_API_KEY=your_jina_api_key
|
||||||
@@ -164,7 +166,7 @@ webSearch:
|
|||||||
# ... variable configurations ...
|
# ... variable configurations ...
|
||||||
searchProvider: "serper" # Only use Serper for search
|
searchProvider: "serper" # Only use Serper for search
|
||||||
# searchProvider: "searxng" # Only use SearXNG for search
|
# searchProvider: "searxng" # Only use SearXNG for search
|
||||||
scraperType: "firecrawl" # Only use Firecrawl for scraping
|
scraperProvider: "firecrawl" # Only use Firecrawl for scraping
|
||||||
rerankerType: "jina" # Only use Jina for reranking
|
rerankerType: "jina" # Only use Jina for reranking
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user