Estructura de configuración
Nota: Los campos que no se mencionan específicamente como obligatorios son opcionales.
version
- obligatorio
| Key | Type | Description | Example |
|---|---|---|---|
| version | String | Especifica la versión del archivo de configuración. | version: 1.3.13 |
cache
| Key | Type | Description | Example |
|---|---|---|---|
| cache | Boolean | Activa o desactiva el almacenamiento en caché. Establézcalo en `true` para habilitar el almacenamiento en caché (predeterminado). | cache: true |
skillSync
| Key | Type | Description | Example |
|---|---|---|---|
| skillSync | Object | Configura la replicación externa de Skill. En la v1.3.13, se admite GitHub Skill Sync. |
ver: Estructura del objeto Skill Sync
messageFilter
| Key | Type | Description | Example |
|---|---|---|---|
| messageFilter | Object | Configura filtros de mensajes del lado del servidor. En la v1.3.13, `messageFilter.pii` puede rechazar texto enviado con formato de credenciales antes de las llamadas al modelo y la persistencia. |
ver: Estructura del objeto de filtro de mensajes
fileStrategy
- Opciones: "local" | "firebase" | "s3" | "azure_blob" | "cloudfront"
| Key | Type | Description | Example |
|---|---|---|---|
| fileStrategy | String | Determina dónde guardar los archivos subidos o generados por el usuario. El valor predeterminado es `"local"` si se omite. | fileStrategy: "firebase" |
- Notas:
"cloudfront"almacena archivos en S3 y devuelve URLs de CloudFront para una entrega de medios estable, cookies firmadas y descargas firmadas."firebase"sirve archivos a través de Firebase Storage y las ubicaciones perimetrales (edge locations) de Firebase Hosting.- S3 sirve archivos a través de presigned URLs (tokens firmados temporales) que caducan. Una vez caducados, cualquier imagen o avatar que haga referencia a esa URL aparecerá roto en la UI. Esto hace que S3 no sea adecuado como estrategia principal para activos visuales. Consulta la related discussion para más detalles.
- Para obtener el mejor rendimiento de imágenes y avatares, utilice
"cloudfront"o"firebase", o configurefileStrategiespara dirigiravatareimagea una estrategia respaldada por una CDN. - Consulte la documentación de File Storage & CDN para obtener detalles sobre la configuración.
fileStrategies
Permite un control granular sobre las estrategias de almacenamiento de archivos para diferentes tipos de archivos.
- Estrategias disponibles: "local" | "firebase" | "s3" | "azure_blob" | "cloudfront"
| Key | Type | Description | Example |
|---|---|---|---|
| fileStrategies | Object | Configura diferentes estrategias de almacenamiento para distintos tipos de archivos. Más flexible que la opción de fileStrategy única. |
Sub-claves:
| Key | Type | Description | Example |
|---|---|---|---|
| default | String | Estrategia de almacenamiento de respaldo cuando no se define un tipo específico. El valor predeterminado es "local". | |
| avatar | String | Estrategia de almacenamiento para imágenes de avatar de usuario y agente. Se recomienda utilizar una estrategia respaldada por CDN (`"cloudfront"` o `"firebase"`) para obtener el mejor rendimiento. | |
| image | String | Estrategia de almacenamiento para imágenes subidas en chats. Se recomienda utilizar una estrategia respaldada por CDN (`"cloudfront"` o `"firebase"`) para obtener el mejor rendimiento. | |
| document | String | Estrategia de almacenamiento para la carga de documentos (PDFs, archivos de texto, etc.). | |
| skills | String | Estrategia de almacenamiento para archivos incluidos con Skills. |
- Notas:
- Esta configuración tiene prioridad sobre la opción única
fileStrategy - Si un tipo de archivo específico no está configurado, recurre a
default, luego afileStrategyy, finalmente, a"local". - Las imágenes y los avatares necesitan URLs persistentes y estables para renderizarse correctamente en toda la interfaz de usuario. Las URLs prefirmadas de S3 caducan (límite de AWS: 7 días para usuarios IAM, horas para credenciales basadas en STS/roles), lo que provoca que las imágenes se rompan en el selector de modelos y en la interfaz de chat. Consulta la discusión relacionada para obtener el contexto completo. Utiliza
"cloudfront"o"firebase"paraavatareimagepara evitar esto. - S3 y Azure Blob Storage son adecuados para el almacenamiento de
document, donde las URLs de descarga prefirmadas de corta duración son apropiadas. - Consulte la documentación de File Storage & CDN para obtener detalles de configuración para cada proveedor de almacenamiento.
- Esta configuración tiene prioridad sobre la opción única
Ejemplos:
# Use a single strategy for all file types
fileStrategies:
default: 's3'# Route images and avatars to CDN, keep documents in object storage
fileStrategies:
avatar: 'cloudfront' # CDN delivery for avatars
image: 'cloudfront' # CDN delivery for generated/uploaded images
document: 's3' # Object storage for documents# Only configure specific types, others use default
fileStrategies:
default: 'local'
avatar: 'firebase' # Only avatars use Firebase CDN, everything else is localcloudfront
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| cloudfront | Object | Configura la entrega de CloudFront para archivos almacenados en S3. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| domain | String | Dominio de distribución de CloudFront o CNAME. Requerido cuando cualquier estrategia de archivo utiliza `"cloudfront"`. | domain: "https://cdn.example.com" |
| distributionId | String | ID de distribución de CloudFront. Requerido cuando `invalidateOnDelete` es true. | distributionId: "E1234ABCD" |
| invalidateOnDelete | Boolean | Crea una invalidación de CloudFront para archivos eliminados. Predeterminado: false. | invalidateOnDelete: false |
| imageSigning | String | Controla el acceso a imágenes/avatares en línea. Opciones: `"none"` o `"cookies"`. `"url"` está reservado y no implementado para imágenes. | imageSigning: "cookies" |
| cookieDomain | String | Se requiere un dominio de cookie principal compartido para las cookies firmadas. Debe comenzar con un punto. | cookieDomain: ".example.com" |
| cookieExpiry | Number | Duración de la cookie firmada en segundos. Predeterminado: 1800, máximo: 604800. | cookieExpiry: 1800 |
| urlExpiry | Number | Tiempo de vida de la URL de descarga firmada de CloudFront en segundos. Predeterminado: 3600. | urlExpiry: 3600 |
| storageRegion | String | Etiqueta de región opcional utilizada en las claves de objeto generadas cuando las rutas de región están habilitadas. | storageRegion: "us-east-2" |
| includeRegionInPath | Boolean | Incluye la región de almacenamiento en las claves de objeto recién generadas. Predeterminado: false. | includeRegionInPath: false |
| requireSignedAccess | Boolean | Rechaza el inicio cuando el acceso a CloudFront mediante cookies firmadas no puede inicializarse. Predeterminado: false. | requireSignedAccess: true |
ver: Estructura de objetos de CloudFront y CloudFront con S3
filteredTools
| Key | Type | Description | Example |
|---|---|---|---|
| filteredTools | Array of Strings | Filtra herramientas específicas de los endpoints de Plugins y OpenAI Assistants. | filteredTools: ["scholarai", "calculator"] |
- Notas:
- Si se especifican tanto
includedToolscomofilteredTools, solo se reconoceráincludedTools. - Afecta tanto a los endpoints
gptPluginscomo aassistants - Puedes encontrar los nombres de las herramientas para filtrar en
api/app/clients/tools/manifest.json- Utilice el valor de
pluginKey
- Utilice el valor de
- Además, cualquiera que aparezca en el directorio ".well-known"
api/app/clients/tools/.well-known- Utilice el valor de
name_for_model
- Utilice el valor de
- Si se especifican tanto
includedTools
| Key | Type | Description | Example |
|---|---|---|---|
| includedTools | Array of Strings | Incluye herramientas específicas tanto de los endpoints de Plugins como de OpenAI Assistants. | includedTools: ["calculator"] |
- Notas:
- Si se especifican tanto
includedToolscomofilteredTools, solo se reconoceráincludedTools. - Afecta tanto a los endpoints
gptPluginscomo aassistants - Puedes encontrar los nombres de las herramientas para filtrar en
api/app/clients/tools/manifest.json- Utilice el valor de
pluginKey
- Utilice el valor de
- Además, cualquiera que aparezca en el directorio ".well-known"
api/app/clients/tools/.well-known- Utilice el valor de
name_for_model
- Utilice el valor de
- Si se especifican tanto
secureImageLinks
| Key | Type | Description | Example |
|---|---|---|---|
| secureImageLinks | Boolean | Determina si se debe proteger o no el acceso a los enlaces de imágenes alojados localmente por la aplicación. Predeterminado: false. | secureImageLinks: true |
imageOutputType
- Nota: Distingue entre mayúsculas y minúsculas. El endpoint de Google solo admite los tipos de salida "jpeg" y "png".
- Opciones: "png" | "webp" | "jpeg"
| Key | Type | Description | Example |
|---|---|---|---|
| imageOutputType | String | El tipo de salida de imagen para las respuestas de imagen. Se establece en "png" de forma predeterminada si se omite. | imageOutputType: "webp" |
ocr
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| ocr | Object | Configura los ajustes de Reconocimiento Óptico de Caracteres (OCR) para extraer texto de imágenes. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| apiKey | String | La clave API para el servicio de OCR. | |
| baseURL | String | La URL base para la API del servicio de OCR. | |
| strategy | String | La estrategia de OCR a utilizar. Las opciones son "mistral_ocr", "azure_mistral_ocr", "vertexai_mistral_ocr", "document_parser" o "custom_ocr". | |
| mistralModel | String | El modelo Mistral a utilizar para el procesamiento OCR. |
ver: Estructura del objeto de configuración OCR
webSearch
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| webSearch | Object | Configura la funcionalidad de búsqueda web, incluyendo proveedores de búsqueda, extractores de contenido y reordenadores de resultados. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| serperApiKey | String | Nombre de la variable de entorno para la clave de API de Serper. Si no se establece en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario. | |
| searxngInstanceUrl | String | Nombre de la variable de entorno para la URL de la instancia de SearXNG. Si no se establece en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario. | |
| searxngApiKey | String | Nombre de la variable de entorno para la clave de API de SearXNG. Si no se configura en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario. | |
| tavilyApiKey | String | Nombre de la variable de entorno para la clave de API de Tavily. Se utiliza tanto para la búsqueda como para el scraper. Si no se establece en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario. | |
| tavilySearchUrl | String | Nombre de la variable de entorno para una URL personalizada de la API de Tavily Search. Opcional; el valor predeterminado es la búsqueda alojada en Tavily si no se establece. | |
| tavilyExtractUrl | String | Nombre de la variable de entorno para una URL personalizada de la API de Tavily Extract. Opcional; si no se establece, se utiliza el servicio de extracción alojado por Tavily de forma predeterminada. | |
| firecrawlApiKey | String | Nombre de la variable de entorno para la clave de API de Firecrawl. Si no se establece en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario. | |
| firecrawlApiUrl | String | Nombre de la variable de entorno para la URL de la API de Firecrawl. Si no se configura en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario. | |
| jinaApiKey | String | Nombre de la variable de entorno para la clave de API de Jina. Si no se establece en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario. | |
| cohereApiKey | String | Nombre de la variable de entorno para la clave de API de Cohere. Si no se establece en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario. | |
| searchProvider | String | Especifica qué proveedor de búsqueda utilizar. Opciones: "serper", "searxng", "tavily". | |
| scraperProvider | String | Especifica qué servicio de scraper utilizar. Opciones: "firecrawl", "serper", "tavily". | |
| firecrawlVersion | String | Especifica la versión de la API de Firecrawl (v0 o v1). | |
| rerankerType | String | Especifica qué servicio de reranker utilizar. Establézcalo en "none" para omitir el reranking. Opciones: "jina", "cohere", "none". | |
| scraperTimeout | Integer | Tiempo de espera en milisegundos para las solicitudes del scraper. Debe ser un número entero no negativo. | |
| safeSearch | Number | Nivel de filtrado de búsqueda segura. 0 = DESACTIVADO, 1 = MODERADO (predeterminado), 2 = ESTRICTO. |
ver: Estructura del objeto de búsqueda web
fileConfig
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| fileConfig | Object | Configura los ajustes de manejo de archivos para la aplicación, incluyendo límites de tamaño y restricciones de tipo MIME. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| endpoints | Record/Object | Especifica las configuraciones de manejo de archivos para endpoints individuales, permitiendo la personalización por cada endpoint. | |
| serverFileSizeLimit | Number | El tamaño máximo de archivo (en MB) que el servidor aceptará. Se aplica globalmente a todos los endpoint a menos que se sobrescriba mediante configuraciones específicas de cada endpoint. | |
| avatarSizeLimit | Number | Tamaño máximo (en MB) para las imágenes de avatar de usuario. | |
| clientImageResize | Object | Configura el cambio de tamaño de imágenes en el lado del cliente para optimizar las cargas de archivos y evitar errores de carga debido a tamaños de imagen grandes. | |
| ocr | Object | Configuración para el procesamiento de archivos mediante Reconocimiento Óptico de Caracteres (OCR). | |
| text | Object | Configuración para el análisis directo de archivos de texto. | |
| stt | Object | Configuración para el procesamiento de archivos de audio de voz a texto (STT). | |
| fileTokenLimit | Number | Número máximo de tokens de archivos de texto a incluir en los prompts antes del truncamiento. | fileTokenLimit: 100000 |
clientImageResize
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| clientImageResize | Object | Configura el cambio de tamaño de imágenes en el lado del cliente para optimizar las cargas de archivos y evitar errores de carga debido a tamaños de imagen grandes. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Habilita o deshabilita la funcionalidad de cambio de tamaño de imagen del lado del cliente. Predeterminado: false. | enabled: true |
| maxWidth | Number | Ancho máximo en píxeles para imágenes redimensionadas. Las imágenes más anchas que esto serán redimensionadas. Predeterminado: 1920. | maxWidth: 1024 |
| maxHeight | Number | Altura máxima en píxeles para imágenes redimensionadas. Las imágenes más altas que esto serán redimensionadas. Predeterminado: 1080. | maxHeight: 768 |
| quality | Number | Calidad de compresión JPEG (0.1 a 1.0). Los valores más altos significan mejor calidad pero tamaños de archivo más grandes. Predeterminado: 0.8. | quality: 0.9 |
| compressFormat | String | Formato de salida para imágenes comprimidas. Opciones: "jpeg", "webp". Predeterminado: "jpeg". | compressFormat: "webp" |
Descripción:
La configuración clientImageResize permite el cambio de tamaño automático de imágenes en el lado del cliente antes de subirlas. Esta función ayuda a:
- Evitar errores de carga debido a archivos de imagen grandes que exceden los límites del servidor
- Reduce el uso de ancho de banda comprimiendo las imágenes antes de su transmisión
- Mejora el rendimiento de carga con tamaños de archivo más pequeños
- Mantener la calidad de la imagen mientras se optimiza el tamaño del archivo
Cuando está habilitado, las imágenes que exceden las dimensiones maxWidth o maxHeight especificadas se redimensionan automáticamente en el lado del cliente antes de ser cargadas al servidor. El redimensionamiento mantiene la relación de aspecto original mientras asegura que la imagen se ajuste dentro de los límites especificados.
Ejemplo:
fileConfig:
clientImageResize:
enabled: true
maxWidth: 1920
maxHeight: 1080
quality: 0.8
compressFormat: 'jpeg'Notas:
- Solo se aplica a archivos de imagen (JPEG, PNG, WebP, etc.)
- El cambio de tamaño ocurre automáticamente cuando las imágenes exceden las dimensiones especificadas
- La relación de aspecto original se conserva durante el cambio de tamaño
- La función funciona con todos los endpoints de carga de imágenes compatibles
- El ajuste de calidad solo se aplica a los formatos JPEG y WebP
- Configurar la calidad demasiado baja (< 0.5) puede resultar en una degradación notable de la imagen
ver: Estructura del objeto de configuración de archivos
rateLimits
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| rateLimits | Object | Define políticas de limitación de tasa para prevenir abusos limitando el número de solicitudes. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| fileUploads | Object | Configura los límites de tasa específicamente para las operaciones de carga de archivos. | |
| conversationsImport | Object | Configura los límites de tasa específicamente para las operaciones de importación de conversaciones. | |
| stt | Object | Configura los límites de tasa específicamente para las solicitudes de voz a texto (stt) | |
| tts | Object | Configura los límites de tasa específicamente para solicitudes de texto a voz (tts) |
Subclaves de fileUploads:
| Key | Type | Description | Example |
|---|---|---|---|
| ipMax | Number | Número máximo de subidas permitidas por dirección IP por ventana. | |
| ipWindowInMinutes | Number | Ventana de tiempo en minutos para el límite de carga basado en IP. | |
| userMax | Number | Número máximo de subidas permitidas por usuario por ventana. | |
| userWindowInMinutes | Number | Ventana de tiempo en minutos para el límite de carga basado en el usuario. |
Subclaves de conversationsImport:
| Key | Type | Description | Example |
|---|---|---|---|
| ipMax | Number | Número máximo de importaciones permitidas por dirección IP por ventana. | |
| ipWindowInMinutes | Number | Ventana de tiempo en minutos para el límite de importaciones basado en IP. | |
| userMax | Number | Número máximo de importaciones por usuario por ventana. | |
| userWindowInMinutes | Number | Ventana de tiempo en minutos para el límite de importaciones basado en el usuario. |
Subclaves de tts:
| Key | Type | Description | Example |
|---|---|---|---|
| ipMax | Number | Número máximo de solicitudes permitidas por dirección IP por ventana. | |
| ipWindowInMinutes | Number | Ventana de tiempo en minutos para el límite de solicitudes basado en IP. | |
| userMax | Number | Número máximo de solicitudes por usuario por ventana. | |
| userWindowInMinutes | Number | Ventana de tiempo en minutos para el límite de solicitudes basado en el usuario. |
Subclaves de stt:
| Key | Type | Description | Example |
|---|---|---|---|
| ipMax | Number | Número máximo de solicitudes permitidas por dirección IP por ventana. | |
| ipWindowInMinutes | Number | Ventana de tiempo en minutos para el límite de solicitudes basado en IP. | |
| userMax | Number | Número máximo de solicitudes por usuario por ventana. | |
| userWindowInMinutes | Number | Ventana de tiempo en minutos para el límite de solicitudes basado en el usuario. |
- Ejemplo:
rateLimits:
fileUploads:
ipMax: 100
ipWindowInMinutes: 60
userMax: 50
userWindowInMinutes: 60
conversationsImport:
ipMax: 100
ipWindowInMinutes: 60
userMax: 50
userWindowInMinutes: 60
stt:
ipMax: 100
ipWindowInMinutes: 1
userMax: 50
userWindowInMinutes: 1
tts:
ipMax: 100
ipWindowInMinutes: 1
userMax: 50
userWindowInMinutes: 1registration
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| registration | Object | Configura los ajustes relacionados con el registro para la aplicación. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| socialLogins | Configuraciones de inicio de sesión social. | ||
| allowedDomains | Especifica los dominios permitidos para el registro. |
ver también:
memory
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| memory | Object | Configura la memoria de la conversación y las funciones de personalización para la aplicación. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| disabled | Boolean | Desactiva la funcionalidad de memoria cuando se establece en true. | |
| validKeys | Array of Strings | Especifica qué claves son válidas para el almacenamiento en memoria. | |
| tokenLimit | Number | Establece el número máximo de tokens para el almacenamiento y procesamiento de memoria. | |
| charLimit | Number | Establece el número máximo de caracteres para el almacenamiento en memoria. Predeterminado: 10000. | |
| maxInputTokens | Number | Limita los tokens de chat reciente enviados al agente de memoria automática antes de la extracción. Valor predeterminado: 12000. | |
| personalize | Boolean | Habilita o deshabilita las funciones de personalización. | |
| messageWindowSize | Number | Especifica el número de mensajes recientes a incluir en el contexto de la memoria. | |
| agent | Object | Union | Configura el agente responsable del procesamiento de memoria. |
ver: Estructura del objeto Memory
summarization
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| summarization | Object | Configura el resumen de conversaciones y la poda de contexto. Reemplaza los campos `summarize` y `summaryModel` por endpoint. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| provider | String | Proveedor de LLM para llamadas de resumen. El valor predeterminado es el propio proveedor del agente. | |
| model | String | Modelo para llamadas de resumen. Por defecto utiliza el propio modelo del agente. | |
| parameters | Object | Parámetros de LLM adicionales para solicitudes de resumen. | |
| prompt | String | Prompt personalizado para la sumarización inicial. | |
| updatePrompt | String | Prompt personalizado para la re-compactación cuando ya existe un resumen previo. | |
| trigger | Object | Define cuándo se activa el resumen (por relación de tokens, tokens restantes o recuento de mensajes). | |
| maxSummaryTokens | Number | Tokens de salida máximos para la respuesta del modelo de resumen. | |
| reserveRatio | Number | Fracción del presupuesto de tokens reservada como margen (0–1). Predeterminado: 0.05. | |
| contextPruning | Object | Configura la degradación de resultados de herramientas basada en la posición para mensajes antiguos. |
ver: Estructura del objeto de resumen
actions
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| actions | Object | Configura los ajustes relacionados con las acciones, utilizados por Agents y Assistants |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| allowedDomains | Array of Strings | Lista blanca estricta de dominios para acciones. Cuando se establece, solo se puede acceder a los dominios listados. | |
| allowedAddresses | Array of Strings | Lista de exención de SSRF (solo espacio IP privado). Permite servicios específicos de host:puerto privados sin restringir destinos públicos cuando `allowedDomains` no está configurado. |
ver también:
interface
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| interface | Object | Configura los elementos de la interfaz de usuario dentro de la aplicación, permitiendo la personalización de la visibilidad y el comportamiento de varios componentes. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| privacyPolicy | Object | Contiene la configuración relacionada con el enlace a la política de privacidad proporcionado. | |
| termsOfService | Object | Contiene la configuración relacionada con el enlace a los términos de servicio proporcionado. | |
| modelSelect | Boolean | Determina si la función de selección de modelo está disponible. | |
| parameters | Boolean | Alterna la visibilidad de las opciones de configuración de parámetros, también conocidas como ajustes de conversación. | |
| presets | Boolean | Habilita o deshabilita el menú de ajustes preestablecidos | |
| prompts | Boolean or Object | Habilita o deshabilita todas las funciones relacionadas con prompts para todos los usuarios | |
| bookmarks | Boolean | Habilita o deshabilita todas las funciones relacionadas con marcadores para todos los usuarios | |
| memories | Boolean | Habilita o deshabilita la función de memorias para todos los usuarios | |
| multiConvo | Boolean | Habilita o deshabilita todas las funciones relacionadas con "multi convo", también conocido como streaming de respuestas múltiples, para todos los usuarios | |
| agents | Boolean or Object | Habilita o deshabilita todas las funciones de agentes para todos los usuarios | |
| temporaryChat | Boolean | Habilita o deshabilita la función de chat temporal | |
| temporaryChatRetention | Number | Configura el periodo de retención para chats temporales en horas. Mín: 1, Máx: 8760. Predeterminado: 720 (30 días). | |
| autoSubmitFromUrl | Boolean | Controla si `/c/new?prompt=…&submit=true` se envía automáticamente al modelo. Cuando es `false`, el prompt se rellena previamente pero no se envía. | |
| mcpServers | Object | Contiene configuraciones relacionadas con la selección de servidores MCP y el control de acceso. | |
| customWelcome | String | Mensaje de bienvenida personalizado que se muestra en la interfaz de chat. | |
| runCode | Boolean | Habilita o deshabilita el botón "Run Code" para los bloques de código Markdown | |
| webSearch | Boolean | Habilita o deshabilita el botón de búsqueda web en la interfaz de chat | |
| fileSearch | Boolean | Habilita o deshabilita el botón de búsqueda de archivos en la interfaz de chat | |
| fileCitations | Boolean | Habilita o deshabilita globalmente las citas de archivos para todos los usuarios | |
| peoplePicker | Object | Configura qué tipos de principal están disponibles como controles en la interfaz del selector de personas | |
| marketplace | Object | Habilita o deshabilita el acceso al Agent Marketplace |
ver: Estructura del objeto de interfaz
modelSpecs
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| modelSpecs | Object | Configura las Model Specs, permitiendo una configuración y personalización detallada de los modelos de IA y sus comportamientos dentro de la aplicación. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| enforce | Boolean | Determina si las Model Specs deben anular estrictamente otras configuraciones. | |
| prioritize | Boolean | Especifica si las Model Specs deben tener prioridad sobre la configuración predeterminada cuando ambas son aplicables. | |
| list | Array of Objects | Contiene una lista de especificaciones de modelos individuales que detallan diversas configuraciones y comportamientos. |
ver: Estructura del objeto Model Specs
endpoints
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| endpoints | Object | Define puntos de conexión de API personalizados para la aplicación. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| custom | Array of Objects | Cada objeto en la matriz representa una configuración de endpoint única. | |
| azureOpenAI | Object | Configuración específica del endpoint de Azure OpenAI | |
| assistants | Object | Configuración específica del endpoint Assistants. | |
| azureAssistants | Object | Configuración específica del endpoint de Azure Assistants. | |
| agents | Object | Configuración específica del endpoint de Agents. | |
| all | Object | Configuración global de endpoint que se aplica a todos los endpoints. Consulta Shared Endpoint Settings. | |
| allowedAddresses | Array of Strings | Lista de exención de SSRF (solo espacio IP privado). Permite que las baseURLs proporcionadas por el usuario apunten a servicios específicos de host:puerto privados (p. ej., Ollama autohospedado) sin deshabilitar la protección SSRF para todo lo demás. |
Nota: Los endpoints admiten Shared Endpoint Settings tales como
streamRate,headers,titleModel,titleMethod,titlePrompt,titlePromptTemplate,titleEndpointymaxToolResultChars. Estos pueden configurarse individualmente por endpoint o globalmente utilizando la claveall. Losheadersse combinan, prevaleciendo los valores a nivel de endpoint en caso de colisión de claves. La claveallno aceptabaseURL.
Nota:
endpoints.allowedAddressesse aplica a los valores debaseURLproporcionados por el usuario (cuando un administrador configura un endpoint personalizado conapiKey: 'user_provided'ybaseURL: 'user_provided'). Cada baseURL suministrada por el usuario se valida contra el bloqueo SSRF en el momento de la solicitud; las entradas listadas aquí están exentas. ConsultamcpSettings.allowedAddressespara conocer la semántica del campo; se aplican las mismas reglas (solo espacio de IP privada, puerto requerido, sin URLs/rutas/CIDR/hosts simples/literales de IP pública).
mcpSettings
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| mcpSettings | Object | Define la configuración global para los servidores de Model Context Protocol (MCP) |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| allowedDomains | Array of Strings | Lista blanca estricta de dominios para conexiones de servidores MCP. Cuando se configura, solo se puede acceder a las entradas listadas. | |
| allowedAddresses | Array of Strings | Lista de exención de SSRF (solo espacio IP privado). Permite servicios específicos de host:puerto privados sin cambiar `allowedDomains` al modo de lista blanca estricta. |
- Notas:
- Esta es una función de seguridad para proteger contra el abuso / uso indebido de direcciones internas a través de servidores MCP
- De forma predeterminada, LibreChat restringe que los servidores MCP se conecten a direcciones de red internas, locales o privadas.
- Los servidores MCP que utilizan direcciones IP locales o dominios pueden añadirse a la lista blanca estricta
allowedDomains(que se convierte entonces en el único conjunto accesible), o bien, para mantener accesibles los destinos públicos, pueden excluirse como servicios exactos de host:puerto medianteallowedAddresses. - Como ocurre con todos los cambios de configuración en yaml, es necesario reiniciar LibreChat para que surtan efecto.
- Admite dominios, subdominios comodín (
*.example.com), dominios Docker y direcciones IP
Ejemplo:
mcpSettings:
# Strict whitelist mode:
# allowedDomains:
# - "example.com" # Specific domain
# - "*.example.com" # All subdomains
# - "http://mcp-server:3000" # Internal service, explicitly whitelisted
# Default SSRF mode with private service exemptions:
allowedAddresses:
- 'host.docker.internal:8080' # Permit one private host on one port
- '10.0.0.5:8000' # Permit one private IP on one portver: Estructura del objeto de configuración de MCP
mcpServers
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| mcpServers | Object | Define la configuración para los servidores del Model Context Protocol (MCP), permitiendo la integración dinámica de servidores MCP dentro de la aplicación. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| <serverName> | Object | Cada clave bajo `mcpServers` representa una configuración individual de servidor MCP, identificada por un nombre único. |
- Notas:
- La inicialización ocurre al iniciar, y la aplicación debe reiniciarse para que los cambios surtan efecto.
- El
<serverName>es un identificador único para cada configuración de servidor MCP. - Cada servidor MCP puede configurarse utilizando uno de los cuatro tipos de conexión:
stdiowebsocketssestreamable-http
- El campo
typeespecifica el tipo de conexión al servidor MCP. - Si se omite
type, se establece de forma predeterminada según la presencia y el formato deurlocommand:- Si se especifica
urly comienza conhttpohttps,typese establece de forma predeterminada ensse. - Si se especifica
urly comienza conwsowss,typese establece de forma predeterminada enwebsocket. - Si se especifica
command,typetomastdiocomo valor predeterminado.
- Si se especifica
- Las opciones de configuración adicionales incluyen:
timeout: Tiempo de espera en milisegundos para las solicitudes al servidor MCP. Determina cuánto tiempo esperar una respuesta para las solicitudes de herramientas.initTimeout: Tiempo de espera en milisegundos para la inicialización del servidor MCP. Determina cuánto tiempo esperar a que el servidor se inicialice.serverInstructions: Controla si las instrucciones del servidor se incluyen en el contexto del agente. Puede sertrue(usar las proporcionadas por el servidor),false(deshabilitado) o una cadena personalizada (anula las proporcionadas por el servidor).customUserVars: (Opcional) Define variables personalizadas (por ejemplo, claves de API, URLs) que los usuarios individuales pueden configurar para un servidor MCP. Estos valores por usuario, proporcionados a través de la interfaz de usuario, pueden ser referenciados en las configuraciones deheadersoenvdel servidor utilizando la sintaxis{{VARIABLE_NAME}}. Esto permite la autenticación o personalización por usuario para las herramientas MCP.
- ver: Estructura del objeto MCP Servers
Ejemplo:
mcpServers:
everything:
# type: sse # type can optionally be omitted
url: http://localhost:3001/sse
timeout: 30000
initTimeout: 10000
serverInstructions: true # Use server-provided instructions
puppeteer:
type: stdio
command: npx
args:
- -y
- '@modelcontextprotocol/server-puppeteer'
timeout: 30000
initTimeout: 10000
serverInstructions: 'Do not access any local files or local/internal IP addresses'
filesystem:
# type: stdio
command: npx
args:
- -y
- '@modelcontextprotocol/server-filesystem'
- /home/user/LibreChat/
iconPath: /home/user/LibreChat/client/public/assets/logo.svg
mcp-obsidian:
command: npx
args:
- -y
- 'mcp-obsidian'
- /path/to/obsidian/vault
streamable-http-example:
type: streamable-http
url: https://example.com/mcp
headers:
Authorization: 'Bearer ${API_TOKEN}'
timeout: 30000
per-user-crendentials-example:
type: sse
url: 'https//some.mcp/sse'
headers:
X-Custom-Auth-Token: '{{USER_API_KEY}}' # Placeholder for the user-provided API key, defined in `customUserVars` below.
customUserVars:
USER_API_KEY:
title: 'Service API Key'
description: "Your personal API key for this service. You can get it <a href='https://example.com/api-keys' target='_blank'>here</a>."
serverInstructions: truever: Estructura del objeto MCP Servers
speech
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| speech | Object | Configura los proveedores de Text-to-Speech (TTS) y Speech-to-Text (STT) para la aplicación. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| tts | Object | Configuraciones del proveedor de Text-to-Speech (OpenAI, Azure OpenAI, ElevenLabs, LocalAI). | |
| stt | Object | Configuraciones del proveedor de Speech-to-Text (OpenAI, Azure OpenAI). | |
| speechTab | Object | Configuración predeterminada de la interfaz para funciones de voz. |
ver: Estructura del objeto Speech
turnstile
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| turnstile | Object | Configura Cloudflare Turnstile para la protección contra bots en los formularios de registro e inicio de sesión. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| siteKey | String | Tu clave de sitio de Cloudflare Turnstile (obligatorio). | |
| options | Object | Opciones adicionales del widget Turnstile (opcional). |
ver: Estructura del objeto Turnstile
transactions
Clave:
| Key | Type | Description | Example |
|---|---|---|---|
| transactions | Object | Controla las funciones de registro y visibilidad de transacciones. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Habilita o deshabilita el registro de transacciones. Predeterminado: true. |
ver: Estructura del objeto Transactions
Enlaces adicionales
- Estructura del objeto de resumen
- Estructura de objeto de AWS Bedrock
- Estructura del objeto de endpoint personalizado
- Estructura del objeto del endpoint de Azure OpenAI
- Estructura del objeto del endpoint Assistants
- Agentes
- Estructura del objeto de configuración OCR
- Estructura del objeto Speech
- Estructura del objeto Turnstile
- Estructura del objeto Transactions
- Estructura del objeto Balance
- Estructura del objeto de búsqueda web
- Estructura del objeto de memoria
¿Qué te parece esta guía?