📖 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:
Dustin Healy
2025-11-26 07:12:42 -08:00
committed by GitHub
parent 39d7844bd7
commit 587d65b87a
10 changed files with 328 additions and 22 deletions

View 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

View 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 />

View File

@@ -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.

View File

@@ -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

View File

@@ -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
```

View File

@@ -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:

View File

@@ -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

View File

@@ -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"'],
]} ]}
/> />

View File

@@ -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

View File

@@ -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
``` ```