Configuración de búsqueda web
La configuración webSearch le permite personalizar la funcionalidad de búsqueda web dentro de LibreChat, incluyendo proveedores de búsqueda, scrapers de contenido y rerankers de resultados.
Descripción general
La función de búsqueda web consta de tres componentes principales:
- Proveedores de búsqueda: Servicios que realizan la búsqueda web inicial
- Scrapers: Servicios que extraen contenido de páginas web
- Rerankers: Servicios que reordenan los resultados de búsqueda para una mejor relevancia
Ejemplo
webSearch:
# Search Provider Configuration
serperApiKey: "${SERPER_API_KEY}"
searxngInstanceUrl: "${SEARXNG_INSTANCE_URL}"
searxngApiKey: "${SEARXNG_API_KEY}"
searchProvider: "serper" # Options: "serper", "searxng", "tavily"
# Tavily Configuration (search and/or scraper)
tavilyApiKey: "${TAVILY_API_KEY}"
# Optional: custom Tavily-compatible endpoints
tavilySearchUrl: "${TAVILY_SEARCH_URL}"
tavilyExtractUrl: "${TAVILY_EXTRACT_URL}"
# Scraper Configuration
firecrawlApiKey: "${FIRECRAWL_API_KEY}"
firecrawlApiUrl: "${FIRECRAWL_API_URL}"
firecrawlVersion: "${FIRECRAWL_VERSION}"
scraperProvider: "firecrawl" # Options: "firecrawl", "serper", "tavily"
# Reranker Configuration
jinaApiKey: "${JINA_API_KEY}"
jinaApiUrl: "${JINA_API_URL}"
cohereApiKey: "${COHERE_API_KEY}"
rerankerType: "jina" # Options: "jina", "cohere", "none"
# General Settings
scraperTimeout: 7500 # Timeout in milliseconds for scraper requests (default: 7500)
safeSearch: 1 # Options: 0 (OFF), 1 (MODERATE - default), 2 (STRICT)Proveedores de búsqueda
searchProvider
| Key | Type | Description | Example |
|---|---|---|---|
| searchProvider | String | Especifica qué proveedor de búsqueda utilizar. | Options: "serper", "searxng", "tavily" |
serperApiKey
| 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. | ${SERPER_API_KEY} |
Nota: Obtén tu clave de API en Serper.dev
searxngInstanceUrl
| Key | Type | Description | Example |
|---|---|---|---|
| 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. | ${SEARXNG_INSTANCE_URL} |
searxngApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| 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. | ${SEARXNG_API_KEY} |
Nota: Esto es opcional y solo es necesario si tu instancia de SearXNG requiere autenticación.
tavilyApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| 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. | ${TAVILY_API_KEY} |
Nota: Obtén tu clave de API desde Tavily
tavilySearchUrl
| Key | Type | Description | Example |
|---|---|---|---|
| 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. | ${TAVILY_SEARCH_URL} |
tavilyExtractUrl
| Key | Type | Description | Example |
|---|---|---|---|
| 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. | ${TAVILY_EXTRACT_URL} |
tavilySearchOptions
| Key | Type | Description | Example |
|---|---|---|---|
| tavilySearchOptions | Object | Opciones de configuración para la búsqueda de Tavily. |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| searchDepth | String | Controla la relación entre relevancia y latencia. "basic" devuelve un resumen de PNL por URL. "advanced" devuelve múltiples fragmentos semánticamente relevantes por URL (2 créditos de API). "fast" equilibra velocidad y relevancia con fragmentos. "ultra-fast" minimiza la latencia con un resumen de PNL. | Options: "basic", "advanced", "fast", "ultra-fast". Default: "basic" |
| maxResults | Number | El número máximo de resultados de búsqueda a devolver. | Range: 1-20. Default: 5 |
| topic | String | La categoría de la búsqueda. "news" es útil para actualizaciones en tiempo real. "finance" para datos financieros. | Options: "general", "news", "finance". Default: "general" |
| includeImages | Boolean | Incluir imágenes en la respuesta. Devuelve tanto las imágenes de la consulta de nivel superior como las imágenes por resultado. | Default: false |
| includeAnswer | Boolean or String | Incluye una respuesta generada por LLM. "basic" o true para una respuesta rápida, "advanced" para una respuesta detallada. | Default: false |
| includeRawContent | Boolean or String | Incluir contenido HTML limpio y analizado. "markdown" o true para formato markdown, "text" para texto plano. | Default: false |
| includeDomains | Array of Strings | Restringir la búsqueda a dominios específicos. Máximo 300 dominios. | |
| excludeDomains | Array of Strings | Excluir dominios específicos de los resultados. Máximo 150 dominios. | |
| timeRange | String | Filtro de rango de tiempo basado en la fecha de publicación o última actualización. | Options: "day", "week", "month", "year" |
| includeImageDescriptions | Boolean | Cuando includeImages sea true, añade también un texto descriptivo para cada imagen. | Default: false |
| includeFavicon | Boolean | Incluir la URL del favicon para cada resultado de búsqueda. | Default: false |
| chunksPerSource | Number | Número máximo de fragmentos de contenido relevantes por fuente. Solo disponible cuando searchDepth es "advanced". | Range: 1-3. Default: 3 |
| safeSearch | Boolean | Anulación opcional de safe_search de Tavily para solicitudes de Tavily Search. Omitido por defecto; true puede requerir Tavily Enterprise. | Default: omitted |
| timeout | Number | Tiempo de espera de la solicitud HTTP del lado del cliente en milisegundos. Controla cuánto tiempo esperar a que la API de Tavily responda antes de desistir. | Default: 15000 |
Scrapers
firecrawlApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| 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. | ${FIRECRAWL_API_KEY} |
Nota: Obtén tu clave API en Firecrawl.dev
firecrawlApiUrl
| Key | Type | Description | Example |
|---|---|---|---|
| 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. | ${FIRECRAWL_API_URL} |
Nota: Esto es opcional y solo es necesario si estás utilizando una instancia personalizada de Firecrawl.
firecrawlVersion
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlVersion | String | Nombre de la variable de entorno para la versión de la API de Firecrawl (v0 o v1). | ${FIRECRAWL_VERSION} |
scraperProvider
| Key | Type | Description | Example |
|---|---|---|---|
| scraperProvider | String | Especifica qué servicio de scraper utilizar. | Options: "firecrawl", "serper", "tavily" |
firecrawlOptions
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlOptions | Object | Opciones de configuración avanzada para el scraper Firecrawl. |
Subclaves:
formats
| Key | Type | Description | Example |
|---|---|---|---|
| formats | Array of Strings | Formatos a incluir en la salida. |
includeTags
| Key | Type | Description | Example |
|---|---|---|---|
| includeTags | Array of Strings | Etiquetas a incluir en la salida. |
excludeTags
| Key | Type | Description | Example |
|---|---|---|---|
| excludeTags | Array of Strings | Etiquetas a excluir de la salida. |
headers
| Key | Type | Description | Example |
|---|---|---|---|
| headers | Object | Cabeceras a enviar con la solicitud. Se pueden utilizar para enviar cookies, user-agent, etc. |
waitFor
| Key | Type | Description | Example |
|---|---|---|---|
| waitFor | Number | Especifique un retraso en milisegundos antes de obtener el contenido, permitiendo que la página tenga tiempo suficiente para cargarse. |
timeout
| Key | Type | Description | Example |
|---|---|---|---|
| timeout | Integer | Tiempo de espera en milisegundos para la solicitud de scraping. Debe ser un número entero no negativo. | Default: 7500 |
maxAge
| Key | Type | Description | Example |
|---|---|---|---|
| maxAge | Number | Devuelve una versión en caché de la página si es más reciente que esta antigüedad en milisegundos. Si una versión en caché de la página es más antigua que este valor, la página será analizada (scraped). |
Nota: Si no necesitas datos extremadamente recientes, habilitar esto puede acelerar tus extracciones en un 500%.
mobile
| Key | Type | Description | Example |
|---|---|---|---|
| mobile | Boolean | Emular el scraping desde un dispositivo móvil. |
skipTlsVerification
| Key | Type | Description | Example |
|---|---|---|---|
| skipTlsVerification | Boolean | Omitir la verificación del certificado TLS al realizar solicitudes. |
blockAds
| Key | Type | Description | Example |
|---|---|---|---|
| blockAds | Boolean | Habilita el bloqueo de anuncios y el bloqueo de ventanas emergentes de cookies. |
removeBase64Images
| Key | Type | Description | Example |
|---|---|---|---|
| removeBase64Images | Boolean | Elimina todas las imágenes en base 64 de la salida, las cuales pueden ser excesivamente largas. El texto alternativo (alt text) de la imagen permanece en la salida, pero la URL se reemplaza por un marcador de posición. |
parsePDF
| Key | Type | Description | Example |
|---|---|---|---|
| parsePDF | Boolean | Controla cómo se procesan los archivos PDF durante la extracción. |
storeInCache
| Key | Type | Description | Example |
|---|---|---|---|
| storeInCache | Boolean | Si es true, la página se almacenará en el índice y la caché de Firecrawl. Establecer esto en false es útil si su actividad de scraping puede tener problemas de protección de datos. El uso de algunos parámetros asociados con el scraping sensible (headers) forzará a que este parámetro sea false. |
zeroDataRetention
| Key | Type | Description | Example |
|---|---|---|---|
| zeroDataRetention | Boolean | Si es true, esto habilitará la retención de datos cero para este scrape (requiere configuración previa en Firecrawl). |
location
| Key | Type | Description | Example |
|---|---|---|---|
| location | Object | Ubicación geográfica y configuración de idioma para el scraping. |
onlyMainContent
| Key | Type | Description | Example |
|---|---|---|---|
| onlyMainContent | Boolean | Solo devuelve el contenido principal de la página excluyendo encabezados, navegaciones, pies de página, etc. |
changeTrackingOptions
| Key | Type | Description | Example |
|---|---|---|---|
| changeTrackingOptions | Object | Configuración para el seguimiento de cambios en contenido extraído. |
Ejemplo:
webSearch:
firecrawlApiKey: "${FIRECRAWL_API_KEY}"
firecrawlOptions:
formats: ["markdown", "rawHtml"]
includeTags: ["main", "article", ".content"]
excludeTags: ["nav", "footer", ".ads"]
waitFor: 2000
timeout: 10000
mobile: false
blockAds: true
onlyMainContent: true
location:
country: "US"
languages: ["en"]Nota: Para obtener información detallada sobre las opciones y valores predeterminados del scraper de Firecrawl, consulte la Documentación de la API de Firecrawl.
tavilyScraperOptions
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyScraperOptions | Object | Opciones de configuración para Tavily Extract (scraper). |
Subclaves:
| Key | Type | Description | Example |
|---|---|---|---|
| extractDepth | String | La profundidad del proceso de extracción. "advanced" recupera más datos, incluyendo tablas y contenido incrustado con mayor éxito, pero puede aumentar la latencia. "basic" cuesta 1 crédito por cada 5 URL exitosas, "advanced" cuesta 2 créditos por cada 5 URL exitosas. | Options: "basic", "advanced". Default: "basic" |
| includeImages | Boolean | Incluir una lista de imágenes extraídas de las URLs en la respuesta. | Default: false |
| includeFavicon | Boolean | Incluir la URL del favicon para cada resultado extraído. | Default: false |
| format | String | El formato del contenido de la página web extraído. "markdown" devuelve el contenido en formato markdown. "text" devuelve texto plano y puede aumentar la latencia. | Options: "markdown", "text". Default: "markdown" |
| timeout | Number | Tiempo de espera en milisegundos. Controla el tiempo de espera HTTP del lado del cliente. Cuando se establece, también envía a Tavily un tiempo de espera de extracción del lado del servidor convertido a segundos y limitado a 1-60s. | Default: 15000 for basic, 30000 for advanced |
Ejemplo:
webSearch:
searchProvider: tavily
scraperProvider: tavily
tavilyApiKey: "${TAVILY_API_KEY}"
# Optional: custom Tavily-compatible endpoints
# tavilySearchUrl: "${TAVILY_SEARCH_URL}"
# tavilyExtractUrl: "${TAVILY_EXTRACT_URL}"
tavilySearchOptions:
searchDepth: basic
maxResults: 5
topic: general
tavilyScraperOptions:
extractDepth: basicNota: Para obtener información detallada sobre las opciones de la API de Tavily, consulte la Documentación de la API de Tavily.
Rerankers
jinaApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| 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. | ${JINA_API_KEY} |
Nota: Obtén tu clave de API en Jina.ai
jinaApiUrl
| Key | Type | Description | Example |
|---|---|---|---|
| jinaApiUrl | String | Nombre de la variable de entorno para la URL de la 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. | ${JINA_API_URL} |
Nota: Esto es opcional y solo es necesario si estás utilizando una instancia personalizada de Jina.
cohereApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| 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. | ${COHERE_API_KEY} |
Nota: Obtén tu clave API desde el Cohere Dashboard
rerankerType
| Key | Type | Description | Example |
|---|---|---|---|
| rerankerType | String | Especifica qué servicio de reranker utilizar. Establézcalo en "none" para omitir el reranking. | Options: "jina", "cohere", "none" |
Configuración general
scraperTimeout
| Key | Type | Description | Example |
|---|---|---|---|
| scraperTimeout | Integer | Tiempo de espera en milisegundos para las solicitudes del scraper. Debe ser un número entero no negativo. | Default: 7500 |
safeSearch
| Key | Type | Description | Example |
|---|---|---|---|
| safeSearch | Number | Nivel de filtrado de búsqueda segura. 0 = OFF (sin filtrado), 1 = MODERATE (predeterminado), 2 = STRICT (filtrado máximo). | Default: 1 (MODERATE) |
Nota: Los niveles de búsqueda segura se ajustan a las convenciones estándar de la API de búsqueda. El filtrado MODERATE está habilitado de forma predeterminada para proporcionar un filtrado de contenido razonable mientras se mantiene la eficacia de la búsqueda. Tavily no hereda esta configuración global de forma predeterminada; utilice tavilySearchOptions.safeSearch solo si su cuenta de Tavily admite safe_search.
Notas
- Las API keys se pueden configurar de dos maneras:
- Establezca las variables de entorno especificadas en la configuración YAML
- Si las variables de entorno no están configuradas, se solicitará a los usuarios que proporcionen las claves de API a través de la interfaz de usuario.
- La configuración admite múltiples servicios para cada componente (providers, scrapers, rerankers)
- Si no se especifica un tipo de servicio concreto, el sistema probará todos los servicios disponibles en esa categoría.
- La búsqueda segura ofrece tres niveles de filtrado de contenido: OFF (0), MODERATE (1) y STRICT (2)
- Tavily no hereda la configuración global de búsqueda segura de forma predeterminada; establezca
tavilySearchOptions.safeSearchexplícitamente solo cuando su cuenta de Tavily sea compatible consafe_search - Nunca coloque claves de API reales en la configuración YAML; utilice únicamente nombres de variables de entorno.
Configuración de SearXNG
SearXNG es un metabuscador centrado en la privacidad que puedes alojar por tu cuenta. Para más información, consulta la documentación oficial de SearXNG.
Aquí tienes los pasos para configurar tu propia instancia de SearXNG para usarla con LibreChat:
Uso de Docker Desktop
-
Busca la imagen oficial de SearXNG
- Abra Docker Desktop
- Busque
searxng/searxngen la pestaña Images - Haz clic en Run en la imagen oficial para descargar y ejecutar automáticamente un contenedor de la imagen.
-
Ejecutando el contenedor
- Expanda el menú desplegable Optional Settings en el panel siguiente que aparece una vez que se completa la descarga.
- Establezca los detalles de configuración deseados (número de puerto, nombre del contenedor, etc.)
- Haz clic en Run para iniciar el contenedor
-
Configurar SearXNG para LibreChat
- Navegue a la pestaña
Filesen Docker Desktop - Ve a
/etc/searxng/settings.yaml - Abrir el editor de archivos
- Navegue a la sección
formats - Agregue
jsoncomo formato aceptable para que LibreChat pueda comunicarse con su instancia - Guarda el archivo
- Navegue a la pestaña
-
Reiniciar el contenedor
- Reinicie el contenedor para que los cambios surtan efecto
Guía en video:
Aquí tienes un video para guiarte a través del proceso de principio a fin en aproximadamente un minuto:
Nota: En este ejemplo, la URL de la instancia es http://localhost:55011 (el número de puerto se encuentra debajo del nombre del contenedor en la parte superior izquierda al final del video)
Configuración de LibreChat para usar SearXNG
Puedes configurar SearXNG en LibreChat dentro de la interfaz de usuario o a través de librechat.yaml.
Configuración de la UI
-
Abre el menú desplegable de herramientas en la barra de entrada del chat

-
Haz clic en el icono de engranaje junto a Web Search

-
Seleccione SearXNG en el menú desplegable de Search Provider

-
Ingrese los detalles de su configuración (p. ej., URL de la instancia, tipo de scraper, etc.) y haga clic en guardar

-
Haz clic en la opción Web Search en el menú desplegable de herramientas

-
El distintivo de Web Search debería estar ahora habilitado, lo que significa que sus consultas pueden utilizar la funcionalidad de búsqueda web

¿Qué te parece esta guía?