mirror of
https://github.com/LibreChat-AI/librechat.ai.git
synced 2026-03-27 02:38:32 +07:00
✨ v0.8.3-rc2 (#522)
* ✨ v0.8.3-rc2
- Added new `document_parser` OCR strategy for local text extraction from various document formats.
- Introduced `thinkingLevel` parameter for Gemini 3+ models to control thinking effort.
- Added `reasoning_effort` parameter for Bedrock models to configure reasoning capabilities.
- Enabled document uploads for Bedrock endpoints.
- Updated default model lists to include new Gemini models.
- Changed date template variable format for improved readability.
- Updated OpenRouter reasoning configuration to align with API changes.
- Bumped configuration version to 1.3.5 across multiple documentation files.
* docs: enhance `document_parser` functionality and update OCR configuration details
- Updated the `document_parser` to run automatically for agent file uploads without requiring an `ocr` configuration, providing seamless text extraction from supported document types.
- Added fallback logic for the `document_parser` when a configured OCR strategy fails, ensuring text extraction remains effective.
- Expanded documentation to clarify the automatic operation of the `document_parser` and its limitations regarding image-based documents.
* chore: update changelog for v0.8.3-rc2
- Added new features including credential variables for DB-sourced MCP servers, updates for the `gemini-3.1-flash-lite-preview` window and pricing, and the introduction of gpt-5.3 context window and pricing.
- Enhanced agent editor functionality by allowing duplication of agents.
- Implemented fixes for OIDC logout, post-auth navigation, and URL query parameter preservation.
- Updated various dependencies and improved internationalization with new translations.
* docs: add credential variables support for UI-created MCP servers
- Introduced a new section detailing how users can provide their own API keys when adding MCP servers through the UI.
- Explained the creation of `customUserVars` for user-provided API keys and the security measures in place to prevent unauthorized access to sensitive data.
- Updated documentation to enhance clarity on the configuration process for MCP servers.
* chore: update changelog for v0.8.3-rc2
- Added new features including expanded toolkit definitions for child tools in event-driven mode and consistent Mermaid theming for inline and artifact renderers.
- Updated the Agent Tool with new SVG assets for improved visual representation.
* chore: update changelog for v1.3.5
- Updated release date to 2026-03-04.
- Adjusted date template variable format to reflect the new date and include named weekdays.
- Updated OpenRouter reasoning configuration to align with API changes.
This commit is contained in:
36
content/changelog/config_v1.3.5.mdx
Normal file
36
content/changelog/config_v1.3.5.mdx
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
date: 2026-03-04
|
||||
title: ⚙️ Config v1.3.5
|
||||
version: "1.3.5"
|
||||
---
|
||||
|
||||
- Added `document_parser` OCR strategy for local text extraction
|
||||
- Extracts text from PDF, DOCX, XLS/XLSX, and OpenDocument files without external OCR services
|
||||
- Uses `pdfjs-dist`, `mammoth`, and `SheetJS` locally — no API key needed
|
||||
- Runs automatically for agent file uploads even without any `ocr` configuration, and as a fallback when a configured OCR strategy fails
|
||||
- Can also be set explicitly via `ocr.strategy: "document_parser"` in your `librechat.yaml`
|
||||
- See [OCR Configuration](/docs/configuration/librechat_yaml/object_structure/ocr) for details
|
||||
|
||||
- Added `thinkingLevel` parameter for Gemini 3+ models
|
||||
- Controls the thinking effort level: `"minimal"`, `"low"`, `"medium"`, or `"high"`
|
||||
- Exposed as a slider in the Google endpoint settings UI
|
||||
- Applies to Gemini 3+ models only (Gemini 2.5 models continue to use `thinkingBudget`)
|
||||
|
||||
- Added `reasoning_effort` parameter for Bedrock models
|
||||
- Configures reasoning effort for supported Bedrock models (ZAI, MoonshotAI)
|
||||
- Options: `"low"`, `"medium"`, `"high"`
|
||||
- Exposed as a slider in Bedrock endpoint settings UI
|
||||
- See [AWS Bedrock Configuration](/docs/configuration/librechat_yaml/object_structure/aws_bedrock) for details
|
||||
|
||||
- Added Bedrock document upload support
|
||||
- Users can now upload documents (PDF, DOCX, etc.) when using Bedrock endpoints
|
||||
|
||||
- Updated default model lists
|
||||
- Added `gemini-3.1-pro-preview`, `gemini-3.1-pro-preview-customtools`, `gemini-3-pro-preview`, and `gemini-3-flash-preview` to Google default models
|
||||
|
||||
- Changed date template variable format
|
||||
- `{{current_date}}` now uses named weekday (e.g., `2026-03-04 (Monday)`) instead of numeric index
|
||||
- `{{current_datetime}}` now includes timezone offset (e.g., `2026-03-04 14:30:00 -05:00 (Monday)`)
|
||||
|
||||
- Updated OpenRouter reasoning configuration
|
||||
- Reasoning parameters are now sent as a unified `reasoning` object to match OpenRouter's updated API
|
||||
99
content/changelog/v0.8.3-rc2.mdx
Normal file
99
content/changelog/v0.8.3-rc2.mdx
Normal file
@@ -0,0 +1,99 @@
|
||||
---
|
||||
date: 2026-03-04
|
||||
title: 🚀 LibreChat v0.8.3-rc2
|
||||
description: The v0.8.3-rc2 release of LibreChat
|
||||
version: "0.8.3-rc2"
|
||||
---
|
||||
|
||||
## What's Changed
|
||||
|
||||
### ✨ Features
|
||||
|
||||
* 🤖 Gemini 3.1 Pricing and Context Window by [@danny-avila](https://github.com/danny-avila) in [#11884](https://github.com/danny-avila/LibreChat/pull/11884)
|
||||
* 📄 Local Text Extraction for PDF, DOCX, and XLS/XLSX by [@danny-avila](https://github.com/danny-avila) in [#11900](https://github.com/danny-avila/LibreChat/pull/11900)
|
||||
* 🪨 AWS Bedrock Document Uploads by [@dustinhealy](https://github.com/dustinhealy) in [#11912](https://github.com/danny-avila/LibreChat/pull/11912)
|
||||
* 🖱️ Native Browser Navigation Support for New Chat by [@Fahleen1](https://github.com/Fahleen1) in [#11904](https://github.com/danny-avila/LibreChat/pull/11904)
|
||||
* 📍 Preserve Deep Link Destinations Through the Auth Redirect Flow by [@vmskonakanchi](https://github.com/vmskonakanchi) in [#10275](https://github.com/danny-avila/LibreChat/pull/10275)
|
||||
* 🪪 Add `OPENID_EMAIL_CLAIM` for Configurable OpenID User Identifier by [@jkuehn](https://github.com/jkuehn) in [#11699](https://github.com/danny-avila/LibreChat/pull/11699)
|
||||
* 🧩 OpenDocument Format File Upload and Native ODS Parsing by [@danny-avila](https://github.com/danny-avila) in [#11959](https://github.com/danny-avila/LibreChat/pull/11959)
|
||||
* 🪙 Add `messageId` to Transactions by [@danny-avila](https://github.com/danny-avila) in [#11987](https://github.com/danny-avila/LibreChat/pull/11987)
|
||||
* 🧠 Add `reasoning_effort` Configuration for Bedrock Models by [@danny-avila](https://github.com/danny-avila) in [#11991](https://github.com/danny-avila/LibreChat/pull/11991)
|
||||
* 🔀 Update OpenRouter with New Reasoning Config by [@danny-avila](https://github.com/danny-avila) in [#11993](https://github.com/danny-avila/LibreChat/pull/11993)
|
||||
* 🎚️ Add Thinking Level Parameter for Gemini 3+ Models by [@danny-avila](https://github.com/danny-avila) in [#11994](https://github.com/danny-avila/LibreChat/pull/11994)
|
||||
* 🗝️ Credential Variables for DB-Sourced MCP Servers by [@danny-avila](https://github.com/danny-avila) in [#12044](https://github.com/danny-avila/LibreChat/pull/12044)
|
||||
* 🤖 `gemini-3.1-flash-lite-preview` Window & Pricing by [@danny-avila](https://github.com/danny-avila) in [#12043](https://github.com/danny-avila/LibreChat/pull/12043)
|
||||
* 💰 Add gpt-5.3 Context Window and Pricing by [@danny-avila](https://github.com/danny-avila) in [#12049](https://github.com/danny-avila/LibreChat/pull/12049)
|
||||
* 🧬 Allow Agent Editors to Duplicate Agents by [@danny-avila](https://github.com/danny-avila) in [#12041](https://github.com/danny-avila/LibreChat/pull/12041)
|
||||
|
||||
### 🐛 Fixes
|
||||
|
||||
* 🪣 Proper Key Extraction from S3 URL by [@H31nz3l](https://github.com/H31nz3l) in [#11241](https://github.com/danny-avila/LibreChat/pull/11241)
|
||||
* 🪪 Handle Delimited String Role Claims in OpenID Strategy by [@danny-avila](https://github.com/danny-avila) in [#11892](https://github.com/danny-avila/LibreChat/pull/11892)
|
||||
* 🪣 S3 Path-Style URL Support for MinIO, R2, and Custom Endpoints by [@danny-avila](https://github.com/danny-avila) in [#11894](https://github.com/danny-avila/LibreChat/pull/11894)
|
||||
* 🪣 Serve Fresh Presigned URLs on Agent List Cache Hits by [@danny-avila](https://github.com/danny-avila) in [#11902](https://github.com/danny-avila/LibreChat/pull/11902)
|
||||
* 💎 Gemini Image Gen Tool Vertex AI Auth and File Storage by [@danny-avila](https://github.com/danny-avila) in [#11923](https://github.com/danny-avila/LibreChat/pull/11923)
|
||||
* 🔌 Reuse Undici Agents Per Transport and Close on Disconnect by [@danny-avila](https://github.com/danny-avila) in [#11935](https://github.com/danny-avila/LibreChat/pull/11935)
|
||||
* ⏱️ Separate MCP GET SSE Stream Timeout from POST and Suppress SDK-Internal Recovery Errors by [@danny-avila](https://github.com/danny-avila) in [#11936](https://github.com/danny-avila/LibreChat/pull/11936)
|
||||
* 🪣 Prevent Memory Retention from AsyncLocalStorage Context Propagation by [@danny-avila](https://github.com/danny-avila) in [#11942](https://github.com/danny-avila/LibreChat/pull/11942)
|
||||
* 📌 Populate `userMessage.files` Before First DB Save by [@marbence101](https://github.com/marbence101) in [#11939](https://github.com/danny-avila/LibreChat/pull/11939)
|
||||
* 🪃 Prevent Recursive Login Redirect Loop by [@danny-avila](https://github.com/danny-avila) in [#11964](https://github.com/danny-avila/LibreChat/pull/11964)
|
||||
* 🧩 Redirect Stability and Build Chunking by [@danny-avila](https://github.com/danny-avila) in [#11965](https://github.com/danny-avila/LibreChat/pull/11965)
|
||||
* 🚦 404 JSON Responses for Unmatched API Routes by [@danny-avila](https://github.com/danny-avila) in [#11976](https://github.com/danny-avila/LibreChat/pull/11976)
|
||||
* 💸 Model Identifier Edge Case in Agent Transactions by [@danny-avila](https://github.com/danny-avila) in [#11988](https://github.com/danny-avila/LibreChat/pull/11988)
|
||||
* 🎯 Use Agents Endpoint Config for Agent Panel File Upload Validation by [@danny-avila](https://github.com/danny-avila) in [#11992](https://github.com/danny-avila/LibreChat/pull/11992)
|
||||
* ✂️ Unicode-Safe Title Truncation and Shared View Layout Polish by [@danny-avila](https://github.com/danny-avila) in [#12003](https://github.com/danny-avila/LibreChat/pull/12003)
|
||||
* 🔗 Normalize MCP OAuth `resource` Parameter to Match Token Exchange by [@danny-avila](https://github.com/danny-avila) in [#12018](https://github.com/danny-avila/LibreChat/pull/12018)
|
||||
* 🔌 Resolve MCP OAuth Flow State Race Condition by [@busla](https://github.com/busla) in [#11941](https://github.com/danny-avila/LibreChat/pull/11941)
|
||||
* 👥 Duplicate Indicators for Model Specs by [@dustinhealy](https://github.com/dustinhealy) in [#11946](https://github.com/danny-avila/LibreChat/pull/11946)
|
||||
* 🚪 Complete OIDC RP-Initiated Logout With `id_token_hint` and Redirect Race Fix by [@danny-avila](https://github.com/danny-avila) in [#12024](https://github.com/danny-avila/LibreChat/pull/12024)
|
||||
* 🧭 Restore Post-Auth Navigation After Silent Token Refresh by [@danny-avila](https://github.com/danny-avila) in [#12025](https://github.com/danny-avila/LibreChat/pull/12025)
|
||||
* 🌐 Preserve URL Query Params Through Auth Refresh and Conversation Init by [@danny-avila](https://github.com/danny-avila) in [#12028](https://github.com/danny-avila/LibreChat/pull/12028)
|
||||
* 🔒 Request Interceptor for Shared Link Page Scenarios by [@danny-avila](https://github.com/danny-avila) in [#12036](https://github.com/danny-avila/LibreChat/pull/12036)
|
||||
* 🤝 Respect Server Token Endpoint Auth Method Preference in MCP OAuth by [@danny-avila](https://github.com/danny-avila) in [#12052](https://github.com/danny-avila/LibreChat/pull/12052)
|
||||
* 🧩 Expand Toolkit Definitions to Include Child Tools in Event-Driven Mode by [@danny-avila](https://github.com/danny-avila) in [#12066](https://github.com/danny-avila/LibreChat/pull/12066)
|
||||
|
||||
### ♿ Accessibility
|
||||
|
||||
* ♿ Hide Collapsed Thinking Content From Screen Readers by [@danny-avila](https://github.com/danny-avila) in [#11927](https://github.com/danny-avila/LibreChat/pull/11927)
|
||||
* 👁️🗨️ Replace Select with Menu in AccountSettings for Screen Reader Accuracy by [@dlew](https://github.com/dlew) in [#11980](https://github.com/danny-avila/LibreChat/pull/11980)
|
||||
* 💤 Add `inert` to Hidden/Background Content by [@dlew](https://github.com/dlew) in [#12016](https://github.com/danny-avila/LibreChat/pull/12016)
|
||||
* 🫳 Restore Background on Drag and Drop Overlay by [@dlew](https://github.com/dlew) in [#12017](https://github.com/danny-avila/LibreChat/pull/12017)
|
||||
* 🔍 Correct Conversations ARIA Role and Increase Placeholder Contrast by [@dlew](https://github.com/dlew) in [#12021](https://github.com/danny-avila/LibreChat/pull/12021)
|
||||
|
||||
### 🔧 Refactoring
|
||||
|
||||
* 🔒 `graphTokenController` to Use Federated Access Token for OBO Assertion by [@danny-avila](https://github.com/danny-avila) in [#11893](https://github.com/danny-avila/LibreChat/pull/11893)
|
||||
* 🧮 Bulk Transactions & Balance Updates for Token Spending by [@danny-avila](https://github.com/danny-avila) in [#11996](https://github.com/danny-avila/LibreChat/pull/11996)
|
||||
* 🪵 `onmessage` Handler and Restructure MCP Debug Logging by [@danny-avila](https://github.com/danny-avila) in [#12004](https://github.com/danny-avila/LibreChat/pull/12004)
|
||||
* 📅 Replace Numeric Weekday Index with Named Day in Date Template Variables by [@danny-avila](https://github.com/danny-avila) in [#12022](https://github.com/danny-avila/LibreChat/pull/12022)
|
||||
* 🌗 Consistent Mermaid Theming for Inline and Artifact Renderers by [@danny-avila](https://github.com/danny-avila) in [#12055](https://github.com/danny-avila/LibreChat/pull/12055)
|
||||
|
||||
### ⚙️ Other Changes
|
||||
|
||||
* 🔍 Update MeiliSearch Version by [@danny-avila](https://github.com/danny-avila) in [#11873](https://github.com/danny-avila/LibreChat/pull/11873)
|
||||
* 🐳 Update Image Registry References in Docker/Helm Configurations by [@danny-avila](https://github.com/danny-avila) in [#12026](https://github.com/danny-avila/LibreChat/pull/12026)
|
||||
* 📦 Bump `@librechat/agents` to v3.1.51–v3.1.55 by [@danny-avila](https://github.com/danny-avila) in [#11891](https://github.com/danny-avila/LibreChat/pull/11891), [#12051](https://github.com/danny-avila/LibreChat/pull/12051)
|
||||
* 📦 Bump `@modelcontextprotocol/sdk` from 1.26.0 to 1.27.1 by [@danny-avila](https://github.com/danny-avila) in [#11937](https://github.com/danny-avila/LibreChat/pull/11937)
|
||||
* 🛡️ Bump ESLint Tooling Deps and Resolve `ajv` Security Vulnerability by [@danny-avila](https://github.com/danny-avila) in [#11938](https://github.com/danny-avila/LibreChat/pull/11938)
|
||||
* 📦 Bump `minimatch` due to ReDoS vulnerability, bump `rimraf`, `rollup` by [@danny-avila](https://github.com/danny-avila) in [#11963](https://github.com/danny-avila/LibreChat/pull/11963)
|
||||
* 📦 Update multer dependency to v2.1.0 by [@danny-avila](https://github.com/danny-avila) in [#12000](https://github.com/danny-avila/LibreChat/pull/12000)
|
||||
* ⚡ Bump `vite` to v7 by [@danny-avila](https://github.com/danny-avila) in [#12031](https://github.com/danny-avila/LibreChat/pull/12031)
|
||||
* 📦 Bump `fast-xml-parser` to v5.3.8 by [@danny-avila](https://github.com/danny-avila) in [#12040](https://github.com/danny-avila/LibreChat/pull/12040)
|
||||
* 📦 Bump `turbo` to v2.8.12 by [@danny-avila](https://github.com/danny-avila) in [#12042](https://github.com/danny-avila/LibreChat/pull/12042)
|
||||
* 📦 Update `underscore` to v1.13.8 by [@danny-avila](https://github.com/danny-avila) in [#12050](https://github.com/danny-avila/LibreChat/pull/12050)
|
||||
* 🎨 Update Agent Tool with New SVG Assets by [@danny-avila](https://github.com/danny-avila) in [#12065](https://github.com/danny-avila/LibreChat/pull/12065)
|
||||
|
||||
### 🌍 Internationalization
|
||||
|
||||
* 🌍 i18n: Update translation.json with latest translations by [@github-actions[bot]](https://github.com/apps/github-actions) in [#11887](https://github.com/danny-avila/LibreChat/pull/11887), [#12005](https://github.com/danny-avila/LibreChat/pull/12005)
|
||||
* 🌍 Update translation for "no auth" message in UI by [@danny-avila](https://github.com/danny-avila) in [#12048](https://github.com/danny-avila/LibreChat/pull/12048)
|
||||
|
||||
## New Contributors
|
||||
|
||||
* [@H31nz3l](https://github.com/H31nz3l) made their first contribution in [#11241](https://github.com/danny-avila/LibreChat/pull/11241)
|
||||
* [@Fahleen1](https://github.com/Fahleen1) made their first contribution in [#11904](https://github.com/danny-avila/LibreChat/pull/11904)
|
||||
* [@vmskonakanchi](https://github.com/vmskonakanchi) made their first contribution in [#10275](https://github.com/danny-avila/LibreChat/pull/10275)
|
||||
* [@jkuehn](https://github.com/jkuehn) made their first contribution in [#11699](https://github.com/danny-avila/LibreChat/pull/11699)
|
||||
* [@marbence101](https://github.com/marbence101) made their first contribution in [#11939](https://github.com/danny-avila/LibreChat/pull/11939)
|
||||
|
||||
**Full Changelog**: https://github.com/danny-avila/LibreChat/compare/v0.8.3-rc1...v0.8.3-rc2
|
||||
@@ -78,7 +78,7 @@ AZURE_CONTAINER_NAME=files
|
||||
Update your LibreChat configuration file (`librechat.yaml`) to specify that the application should use Azure Blob Storage for file handling:
|
||||
|
||||
```yaml filename="librechat.yaml"
|
||||
version: 1.3.4
|
||||
version: 1.3.5
|
||||
cache: true
|
||||
fileStrategy: "azure_blob"
|
||||
```
|
||||
|
||||
@@ -108,7 +108,7 @@ FIREBASE_APP_ID=1:your_app_id #appId
|
||||
Finally, to enable the app use Firebase, you must set the following in your `librechat.yaml` config file.
|
||||
|
||||
```yaml
|
||||
version: 1.3.4
|
||||
version: 1.3.5
|
||||
cache: true
|
||||
fileStrategy: "firebase"
|
||||
```
|
||||
|
||||
@@ -108,7 +108,7 @@ If you are using **IRSA** on Kubernetes, you do **not** need to set `AWS_ACCESS_
|
||||
Update your LibreChat configuration file (`librechat.yaml`) to specify that the application should use Amazon S3 for file handling:
|
||||
|
||||
```yaml filename="librechat.yaml"
|
||||
version: 1.3.4
|
||||
version: 1.3.5
|
||||
cache: true
|
||||
fileStrategy: "s3"
|
||||
```
|
||||
|
||||
@@ -208,6 +208,7 @@ LibreChat has built-in central logging, see [Logging System](/docs/configuration
|
||||
['CONSOLE_JSON', 'boolean', 'Enable verbose JSON console/stdout logs suitable for cloud deployments like GCP/AWS.', 'CONSOLE_JSON=false'],
|
||||
['CONSOLE_JSON_STRING_LENGTH', 'number', 'Configure the truncation size for console/stdout logs, defaults to 255', 'CONSOLE_JSON_STRING_LENGTH=1000'],
|
||||
['LIBRECHAT_LOG_DIR', 'string', 'Custom directory for log files. Defaults to /app/logs (Docker) or api/logs (local dev).', '# LIBRECHAT_LOG_DIR=/custom/log/path'],
|
||||
['MEM_DIAG', 'boolean', 'Enable memory diagnostics — logs heap/RSS snapshots every 60 seconds. Auto-enabled when running with --inspect.', '# MEM_DIAG=true'],
|
||||
]}
|
||||
/>
|
||||
|
||||
@@ -396,8 +397,8 @@ Follow these instructions to setup the [Google Endpoint](/docs/configuration/pre
|
||||
['GOOGLE_SERVICE_KEY_FILE', 'string', 'Path to Google service account JSON key file, URL to fetch it from, or stringified JSON. Used for Vertex AI authentication (e.g., OCR features).', 'GOOGLE_SERVICE_KEY_FILE=/path/to/auth.json'],
|
||||
['GOOGLE_REVERSE_PROXY', 'string', 'Google reverse proxy URL.', 'GOOGLE_REVERSE_PROXY='],
|
||||
['GOOGLE_AUTH_HEADER', 'boolean', 'Use Authorization header instead of X-goog-api-key. Some reverse proxies require this.', '# GOOGLE_AUTH_HEADER=true'],
|
||||
['GOOGLE_MODELS', 'string', 'Available Gemini API Google models, separated by commas.', 'GOOGLE_MODELS=gemini-1.0-pro,gemini-1.0-pro-001,gemini-1.0-pro-latest,gemini-1.0-pro-vision-latest,gemini-1.5-pro-latest,gemini-pro,gemini-pro-vision'],
|
||||
['GOOGLE_MODELS', 'string', 'Available Vertex AI Google models, separated by commas.', 'GOOGLE_MODELS=gemini-1.5-pro-preview-0409,gemini-1.0-pro-vision-001,gemini-pro,gemini-pro-vision,chat-bison,chat-bison-32k,codechat-bison,codechat-bison-32k,text-bison,text-bison-32k,text-unicorn,code-gecko,code-bison,code-bison-32k'],
|
||||
['GOOGLE_MODELS', 'string', 'Available Gemini API Google models, separated by commas.', 'GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash,gemini-2.0-flash-lite'],
|
||||
['GOOGLE_MODELS', 'string', 'Available Vertex AI Google models, separated by commas.', 'GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash-001,gemini-2.0-flash-lite-001'],
|
||||
['GOOGLE_TITLE_MODEL', 'string', 'DEPRECATED: The model used for titling with Google.', 'GOOGLE_TITLE_MODEL=gemini-pro'],
|
||||
['GOOGLE_LOC', 'string', 'Specifies the Google Cloud location for processing API requests', 'GOOGLE_LOC=us-central1'],
|
||||
['GOOGLE_CLOUD_LOCATION', 'string', 'Alternative region for Gemini Image Generation (e.g., global).', '# GOOGLE_CLOUD_LOCATION=global'],
|
||||
@@ -1045,6 +1046,9 @@ For more information:
|
||||
['OPENID_CLOCK_TOLERANCE', 'number', 'Clock tolerance in seconds for token validation. Default: 300.','# OPENID_CLOCK_TOLERANCE=300'],
|
||||
['OPENID_GENERATE_NONCE', 'boolean', 'Force the OpenID client to generate a nonce parameter. Required by some identity providers like AWS Cognito (especially with federation) and Authentik.','OPENID_GENERATE_NONCE=true'],
|
||||
['DEBUG_OPENID_REQUESTS', 'boolean', 'Enable detailed logging of OpenID request headers. When disabled (default), only request URLs are logged at debug level. When enabled, request headers are also logged (with sensitive data masked) for deeper debugging of authentication issues.','DEBUG_OPENID_REQUESTS=false'],
|
||||
['OPENID_USERNAME_CLAIM', 'string', 'The user info property from the OpenID provider to store as the user\'s username.','OPENID_USERNAME_CLAIM='],
|
||||
['OPENID_NAME_CLAIM', 'string', 'The user info property from the OpenID provider to store as the user\'s display name.','OPENID_NAME_CLAIM='],
|
||||
['OPENID_EMAIL_CLAIM', 'string', 'The user info claim to use as the email/identifier for user matching (e.g., "upn" for Entra ID). When not set, defaults to: email → preferred_username → upn.','OPENID_EMAIL_CLAIM='],
|
||||
]}
|
||||
/>
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ icon: FileCode
|
||||
This example config includes all documented endpoints (Except Azure, LiteLLM, MLX, and Ollama, which all require additional configurations)
|
||||
|
||||
```yaml filename="librechat.yaml"
|
||||
version: 1.3.4
|
||||
version: 1.3.5
|
||||
|
||||
cache: true
|
||||
|
||||
@@ -273,7 +273,7 @@ This example configuration file sets up LibreChat with detailed options across s
|
||||
# https://www.librechat.ai/docs/configuration/librechat_yaml
|
||||
|
||||
# Configuration version (required)
|
||||
version: 1.3.4
|
||||
version: 1.3.5
|
||||
|
||||
# Cache settings: Set to true to enable caching
|
||||
cache: true
|
||||
|
||||
@@ -10,7 +10,7 @@ icon: Settings
|
||||
|
||||
<OptionTable
|
||||
options={[
|
||||
['version', 'String', 'Specifies the version of the configuration file.', 'version: 1.3.4' ],
|
||||
['version', 'String', 'Specifies the version of the configuration file.', 'version: 1.3.5' ],
|
||||
]}
|
||||
/>
|
||||
|
||||
@@ -156,7 +156,7 @@ fileStrategies:
|
||||
options={[
|
||||
['apiKey', 'String', 'The API key for the OCR service.', ''],
|
||||
['baseURL', 'String', 'The base URL for the OCR service API.', ''],
|
||||
['strategy', 'String', 'The OCR strategy to use. Options are "mistral_ocr" or "custom_ocr".', ''],
|
||||
['strategy', 'String', 'The OCR strategy to use. Options are "mistral_ocr", "azure_mistral_ocr", "vertexai_mistral_ocr", "document_parser", or "custom_ocr".', ''],
|
||||
['mistralModel', 'String', 'The Mistral model to use for OCR processing.', ''],
|
||||
]}
|
||||
/>
|
||||
|
||||
@@ -193,7 +193,7 @@ When using custom agent configuration, the following fields are available:
|
||||
Here's a comprehensive example showing all memory configuration options:
|
||||
|
||||
```yaml filename="librechat.yaml"
|
||||
version: 1.3.4
|
||||
version: 1.3.5
|
||||
cache: true
|
||||
|
||||
memory:
|
||||
|
||||
@@ -959,11 +959,11 @@ preset:
|
||||
- high
|
||||
- xhigh (extra high)
|
||||
|
||||
> **Supported by:** `openAI`, `azureOpenAI`, custom (OpenAI-like)
|
||||
> **Supported by:** `openAI`, `azureOpenAI`, custom (OpenAI-like), `bedrock` (ZAI, MoonshotAI models)
|
||||
|
||||
<OptionTable
|
||||
options={[
|
||||
['reasoning_effort', 'String', 'Controls the reasoning effort level for the model. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning. The `xhigh` option provides maximum reasoning capability for complex problems.', ''],
|
||||
['reasoning_effort', 'String', 'Controls the reasoning effort level for the model. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning. The `xhigh` option provides maximum reasoning capability for complex problems. For Bedrock, accepted values are `low`, `medium`, `high`.', ''],
|
||||
]}
|
||||
/>
|
||||
|
||||
@@ -1110,6 +1110,33 @@ preset:
|
||||
|
||||
---
|
||||
|
||||
#### thinkingLevel
|
||||
|
||||
> **Supported by:** `google` (Gemini 3+ models)
|
||||
|
||||
<OptionTable
|
||||
options={[
|
||||
['thinkingLevel', 'String', 'Controls the thinking effort level for Gemini 3+ models. Gemini 2.5 models use `thinkingBudget` instead.', ''],
|
||||
]}
|
||||
/>
|
||||
|
||||
**Accepted Values:**
|
||||
- `""` (unset/auto)
|
||||
- `"minimal"`
|
||||
- `"low"`
|
||||
- `"medium"`
|
||||
- `"high"`
|
||||
|
||||
**Default:** `""` (unset — model decides)
|
||||
|
||||
**Example:**
|
||||
```yaml
|
||||
preset:
|
||||
thinkingLevel: "medium"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### effort
|
||||
|
||||
> **Supported by:** `anthropic`, `bedrock` (Anthropic models)
|
||||
|
||||
@@ -26,10 +26,29 @@ There are 4 main fields under `ocr`:
|
||||
- Requires the `GOOGLE_SERVICE_KEY_FILE` environment variable to be set with service account credentials
|
||||
- The service key can be provided as: file path, URL, base64 encoded JSON, or raw JSON string
|
||||
- Project ID and location are automatically extracted from the service account credentials
|
||||
- Local text extraction is available via `document_parser`, which extracts text from PDF, DOCX, XLS/XLSX, and OpenDocument files without any external API.
|
||||
- Uses `pdfjs-dist`, `mammoth`, and `SheetJS` locally — no API key or base URL needed
|
||||
- Only the `strategy` field is required; `apiKey`, `baseURL`, and `mistralModel` are ignored
|
||||
- If using the default Mistral OCR, you may optionally specify a specific Mistral model to use.
|
||||
- Environment variable parsing is supported for `apiKey`, `baseURL`, and `mistralModel` parameters.
|
||||
- A `user_provided` strategy option is planned for future releases but is not yet implemented.
|
||||
|
||||
## Automatic Document Parsing (No Configuration Required)
|
||||
|
||||
The built-in `document_parser` runs automatically for agent file uploads **even when no `ocr` block is configured** in your `librechat.yaml`. This means PDF, DOCX, XLS/XLSX, and ODS files are parsed out of the box without any setup.
|
||||
|
||||
The resolution logic works as follows:
|
||||
|
||||
1. **No `ocr` config exists** — When an agent context file is uploaded and its MIME type matches a supported document type (PDF, DOCX, Excel, ODS), the `document_parser` is used directly. No OCR capability check is required for the agent.
|
||||
|
||||
2. **`ocr` config exists** — The configured strategy (e.g., `mistral_ocr`) is tried first. If the configured strategy **fails at runtime**, the `document_parser` is used as a fallback so text extraction still succeeds for supported document types.
|
||||
|
||||
3. **Neither succeeds** — If both the configured strategy and the document parser fail (e.g., the file is an image-only PDF with no embedded text), an error is returned suggesting that an OCR service is needed.
|
||||
|
||||
<Callout type="info">
|
||||
The `document_parser` handles text-based documents only. For image-based PDFs or scanned documents, you still need a configured OCR strategy (such as `mistral_ocr`) to extract text from the images within those files.
|
||||
</Callout>
|
||||
|
||||
## Example
|
||||
|
||||
```yaml filename="ocr"
|
||||
@@ -66,6 +85,13 @@ ocr:
|
||||
strategy: "vertexai_mistral_ocr"
|
||||
```
|
||||
|
||||
Example with local document parser (no external API needed):
|
||||
|
||||
```yaml filename="ocr with document parser"
|
||||
ocr:
|
||||
strategy: "document_parser"
|
||||
```
|
||||
|
||||
## mistralModel
|
||||
|
||||
<OptionTable
|
||||
@@ -124,7 +150,7 @@ ocr:
|
||||
|
||||
<OptionTable
|
||||
options={[
|
||||
['strategy', 'String', 'The OCR strategy to use.', 'Determines which OCR service to use. Options are "mistral_ocr", "azure_mistral_ocr", "vertexai_mistral_ocr", or "custom_ocr". Defaults to "mistral_ocr".'],
|
||||
['strategy', 'String', 'The OCR strategy to use.', 'Determines which OCR service to use. Options are "mistral_ocr", "azure_mistral_ocr", "vertexai_mistral_ocr", "document_parser", or "custom_ocr". Defaults to "mistral_ocr".'],
|
||||
]}
|
||||
/>
|
||||
|
||||
@@ -138,4 +164,5 @@ ocr:
|
||||
- `mistral_ocr`: Uses Mistral's OCR capabilities via the standard [Mistral API](/docs/features/ocr#1-mistral-ocr-default).
|
||||
- `azure_mistral_ocr`: Uses Mistral OCR models deployed on [Azure AI Foundry](/docs/features/ocr#2-azure-mistral-ocr).
|
||||
- `vertexai_mistral_ocr`: Uses Mistral OCR models deployed on [Google Cloud Vertex AI](/docs/features/ocr#3-google-vertex-ai-mistral-ocr).
|
||||
- `document_parser`: Uses local text extraction for PDF, DOCX, XLS/XLSX, and OpenDocument files. No external API needed. Also runs automatically for agent file uploads when no `ocr` config is present, and as a fallback when a configured OCR strategy fails.
|
||||
- `custom_ocr`: Uses a custom OCR service specified by the `baseURL` [(not yet implemented)](/docs/features/ocr#future-enhancements).
|
||||
|
||||
@@ -393,7 +393,7 @@ Check that your config is being read correctly by examining the server logs when
|
||||
### librechat.yaml
|
||||
|
||||
```yaml filename="librechat.yaml"
|
||||
version: 1.3.4
|
||||
version: 1.3.5
|
||||
|
||||
endpoints:
|
||||
bedrock:
|
||||
|
||||
@@ -39,7 +39,7 @@ The balance system in LibreChat allows administrators to configure how token cre
|
||||
### Complete Balance Settings
|
||||
|
||||
```yaml filename="librechat.yaml"
|
||||
version: 1.3.4
|
||||
version: 1.3.5
|
||||
|
||||
# Balance settings
|
||||
balance:
|
||||
|
||||
@@ -147,6 +147,15 @@ Your new MCP server is also available in the Agent Builder, where you can add it
|
||||
|
||||

|
||||
|
||||
#### Credential Variables for UI-Created Servers
|
||||
|
||||
When adding an MCP server through the UI, you can require users to provide their own API keys. In the Authentication section of the MCP Server Builder dialog, select "API Key" and check **"User provides key"**. Choose the header format (Bearer, Basic, or Custom) and save the server.
|
||||
|
||||
Behind the scenes, LibreChat automatically creates a `customUserVars` entry named `MCP_API_KEY` and configures the appropriate header template (e.g., `Authorization: Bearer {{MCP_API_KEY}}`). Each user provides their own key through the MCP Tool Select Dialog when configuring an agent — the same UI used for [YAML-defined `customUserVars`](#user-provided-credentials).
|
||||
|
||||
<Callout type="warning">
|
||||
For security, UI-created (DB-sourced) MCP servers can **only** resolve `customUserVars` placeholders (`{{VAR_NAME}}`). Server-side environment variables (`${ENV_VAR}`), user profile fields (`{{LIBRECHAT_USER_*}}`), and OIDC tokens (`{{LIBRECHAT_OPENID_*}}`) are intentionally blocked to prevent unauthorized access to server secrets or other users' data. For full placeholder support, configure the server in `librechat.yaml` instead.
|
||||
</Callout>
|
||||
|
||||
### Adding MCP Servers with Smithery
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ Memory functionality must be explicitly configured in your `librechat.yaml` file
|
||||
To enable memory features, you need to add the `memory` configuration to your `librechat.yaml` file:
|
||||
|
||||
```yaml filename="librechat.yaml"
|
||||
version: 1.3.4
|
||||
version: 1.3.5
|
||||
cache: true
|
||||
|
||||
memory:
|
||||
|
||||
@@ -178,7 +178,7 @@ reasoning_effort, reasoning_summary, verbosity, useResponsesApi, web_search, dis
|
||||
**Google, Anthropic:**
|
||||
```bash
|
||||
# Note: these should be valid values according to the provider's API
|
||||
topP, topK, maxOutputTokens, thinking, thinkingBudget, web_search
|
||||
topP, topK, maxOutputTokens, thinking, thinkingBudget, thinkingLevel, web_search
|
||||
```
|
||||
|
||||
**Anthropic, Bedrock (Anthropic models):**
|
||||
@@ -196,6 +196,8 @@ More info: https://www.anthropic.com/news/prompt-caching, https://docs.aws.amazo
|
||||
region=us-west-2
|
||||
# Bedrock equivalent of `max_tokens`
|
||||
maxTokens=200
|
||||
# Bedrock reasoning effort (for supported models like ZAI, MoonshotAI)
|
||||
reasoning_effort=medium
|
||||
```
|
||||
|
||||
**Assistants/Azure Assistants:**
|
||||
|
||||
@@ -42,7 +42,7 @@ services:
|
||||
- As an example, here is a configuration for both **OpenRouter** and **Ollama**:
|
||||
|
||||
```yaml
|
||||
version: 1.3.4
|
||||
version: 1.3.5
|
||||
cache: true
|
||||
endpoints:
|
||||
custom:
|
||||
|
||||
@@ -187,7 +187,7 @@ You will enter the editor screen, and you can paste the following:
|
||||
# https://www.librechat.ai/docs/configuration/librechat_yaml
|
||||
|
||||
# Configuration version (required)
|
||||
version: 1.3.4
|
||||
version: 1.3.5
|
||||
# This setting caches the config file for faster loading across app lifecycle
|
||||
cache: true
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user