Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Configuração de Pesquisa na Web

A configuração webSearch permite que você personalize a funcionalidade de pesquisa na web dentro do LibreChat, incluindo provedores de pesquisa, scrapers de conteúdo e rerankers de resultados.

Visão geral

O recurso de pesquisa na web consiste em três componentes principais:

  1. Provedores de pesquisa: Serviços que realizam a pesquisa inicial na web
  2. Scrapers: Serviços que extraem conteúdo de páginas da web
  3. Rerankers: Serviços que reordenam resultados de pesquisa para melhor relevância

Exemplo

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)

Provedores de Busca

searchProvider

KeyTypeDescriptionExample
searchProviderStringEspecifica qual provedor de busca utilizar.Options: "serper", "searxng", "tavily"

serperApiKey

KeyTypeDescriptionExample
serperApiKeyStringNome da variável de ambiente para a chave de API do Serper. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.${SERPER_API_KEY}

Nota: Obtenha sua chave de API em Serper.dev

searxngInstanceUrl

KeyTypeDescriptionExample
searxngInstanceUrlStringNome da variável de ambiente para a URL da instância do SearXNG. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.${SEARXNG_INSTANCE_URL}

searxngApiKey

KeyTypeDescriptionExample
searxngApiKeyStringNome da variável de ambiente para a chave de API do SearXNG. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.${SEARXNG_API_KEY}

Nota: Isso é opcional e necessário apenas se a sua instância do SearXNG exigir autenticação.

tavilyApiKey

KeyTypeDescriptionExample
tavilyApiKeyStringNome da variável de ambiente para a chave de API do Tavily. Usada tanto para pesquisa quanto para scraper. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.${TAVILY_API_KEY}

Nota: Obtenha sua chave de API em Tavily

tavilySearchUrl

KeyTypeDescriptionExample
tavilySearchUrlStringNome da variável de ambiente para uma URL personalizada da API Tavily Search. Opcional; o padrão é a busca hospedada pelo Tavily quando não definida.${TAVILY_SEARCH_URL}

tavilyExtractUrl

KeyTypeDescriptionExample
tavilyExtractUrlStringNome da variável de ambiente para uma URL personalizada da API Tavily Extract. Opcional; o padrão é o extract hospedado pela Tavily quando não definido.${TAVILY_EXTRACT_URL}

tavilySearchOptions

KeyTypeDescriptionExample
tavilySearchOptionsObjectOpções de configuração para a pesquisa Tavily.

Subchaves:

KeyTypeDescriptionExample
searchDepthStringControla o equilíbrio entre relevância e latência. "basic" retorna um resumo de PLN por URL. "advanced" retorna múltiplos trechos semanticamente relevantes por URL (2 créditos de API). "fast" equilibra velocidade e relevância com trechos. "ultra-fast" minimiza a latência com um resumo de PLN.Options: "basic", "advanced", "fast", "ultra-fast". Default: "basic"
maxResultsNumberO número máximo de resultados de pesquisa a serem retornados.Range: 1-20. Default: 5
topicStringA categoria da pesquisa. "news" é útil para atualizações em tempo real. "finance" para dados financeiros.Options: "general", "news", "finance". Default: "general"
includeImagesBooleanIncluir imagens na resposta. Retorna tanto imagens da consulta de nível superior quanto imagens por resultado.Default: false
includeAnswerBoolean or StringInclua uma resposta gerada por LLM. "basic" ou true para uma resposta rápida, "advanced" para uma resposta detalhada.Default: false
includeRawContentBoolean or StringIncluir conteúdo HTML limpo e analisado. "markdown" ou true para formato markdown, "text" para texto simples.Default: false
includeDomainsArray of StringsRestrinja a pesquisa a domínios específicos. Máximo de 300 domínios.
excludeDomainsArray of StringsExcluir domínios específicos dos resultados. Máximo de 150 domínios.
timeRangeStringFiltro de intervalo de tempo baseado na data de publicação ou última atualização.Options: "day", "week", "month", "year"
includeImageDescriptionsBooleanQuando includeImages for true, adicione também um texto descritivo para cada imagem.Default: false
includeFaviconBooleanInclua a URL do favicon para cada resultado de pesquisa.Default: false
chunksPerSourceNumberNúmero máximo de blocos de conteúdo relevante por fonte. Disponível apenas quando searchDepth for "advanced".Range: 1-3. Default: 3
safeSearchBooleanSubstituição opcional safe_search do Tavily para solicitações de pesquisa do Tavily. Omitido por padrão; true pode exigir o Tavily Enterprise.Default: omitted
timeoutNumberTempo limite da solicitação HTTP do lado do cliente em milissegundos. Controla por quanto tempo aguardar a resposta da API Tavily antes de desistir.Default: 15000

Scrapers

firecrawlApiKey

KeyTypeDescriptionExample
firecrawlApiKeyStringNome da variável de ambiente para a chave de API do Firecrawl. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.${FIRECRAWL_API_KEY}

Nota: Obtenha sua chave de API em Firecrawl.dev

firecrawlApiUrl

KeyTypeDescriptionExample
firecrawlApiUrlStringNome da variável de ambiente para a URL da API do Firecrawl. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.${FIRECRAWL_API_URL}

Nota: Isso é opcional e necessário apenas se você estiver usando uma instância personalizada do Firecrawl.

firecrawlVersion

KeyTypeDescriptionExample
firecrawlVersionStringNome da variável de ambiente para a versão da API do Firecrawl (v0 ou v1).${FIRECRAWL_VERSION}

scraperProvider

KeyTypeDescriptionExample
scraperProviderStringEspecifica qual serviço de scraper utilizar.Options: "firecrawl", "serper", "tavily"

firecrawlOptions

KeyTypeDescriptionExample
firecrawlOptionsObjectOpções de configuração avançadas para o scraper Firecrawl.

Subchaves:

formats

KeyTypeDescriptionExample
formatsArray of StringsFormatos a incluir na saída.

includeTags

KeyTypeDescriptionExample
includeTagsArray of StringsTags para incluir na saída.

excludeTags

KeyTypeDescriptionExample
excludeTagsArray of StringsTags a serem excluídas da saída.

headers

KeyTypeDescriptionExample
headersObjectCabeçalhos a serem enviados com a requisição. Podem ser usados para enviar cookies, user-agent, etc.

waitFor

KeyTypeDescriptionExample
waitForNumberEspecifique um atraso em milissegundos antes de buscar o conteúdo, permitindo tempo suficiente para a página carregar.

timeout

KeyTypeDescriptionExample
timeoutIntegerTempo limite em milissegundos para a solicitação de scraping. Deve ser um número inteiro não negativo.Default: 7500

maxAge

KeyTypeDescriptionExample
maxAgeNumberRetorna uma versão em cache da página se ela for mais recente do que esta idade em milissegundos. Se uma versão em cache da página for mais antiga do que este valor, a página será extraída (scraped).

Nota: Se você não precisa de dados extremamente recentes, habilitar isso pode acelerar suas capturas (scrapes) em 500%.

mobile

KeyTypeDescriptionExample
mobileBooleanEmular scraping a partir de um dispositivo móvel.

skipTlsVerification

KeyTypeDescriptionExample
skipTlsVerificationBooleanIgnorar a verificação de certificado TLS ao fazer solicitações.

blockAds

KeyTypeDescriptionExample
blockAdsBooleanAtiva o bloqueio de anúncios e o bloqueio de pop-ups de cookies.

removeBase64Images

KeyTypeDescriptionExample
removeBase64ImagesBooleanRemove todas as imagens em base 64 da saída, que podem ser excessivamente longas. O texto alternativo da imagem permanece na saída, mas a URL é substituída por um espaço reservado.

parsePDF

KeyTypeDescriptionExample
parsePDFBooleanControla como os arquivos PDF são processados durante a extração.

storeInCache

KeyTypeDescriptionExample
storeInCacheBooleanSe definido como true, a página será armazenada no índice e no cache do Firecrawl. Definir isso como false é útil se sua atividade de scraping puder envolver preocupações com proteção de dados. O uso de alguns parâmetros associados a scraping sensível (headers) forçará este parâmetro a ser false.

zeroDataRetention

KeyTypeDescriptionExample
zeroDataRetentionBooleanSe verdadeiro, isso habilitará a retenção zero de dados para esta raspagem (requer configuração prévia no Firecrawl).

location

KeyTypeDescriptionExample
locationObjectLocalização geográfica e configurações de idioma para scraping.

onlyMainContent

KeyTypeDescriptionExample
onlyMainContentBooleanRetorne apenas o conteúdo principal da página, excluindo cabeçalhos, navegação, rodapés, etc.

changeTrackingOptions

KeyTypeDescriptionExample
changeTrackingOptionsObjectConfiguração para rastrear alterações em conteúdo extraído.

Exemplo:

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 informações detalhadas sobre as opções e padrões do scraper Firecrawl, consulte a Documentação da API do Firecrawl.

tavilyScraperOptions

KeyTypeDescriptionExample
tavilyScraperOptionsObjectOpções de configuração para o Tavily Extract (scraper).

Subchaves:

KeyTypeDescriptionExample
extractDepthStringA profundidade do processo de extração. "advanced" recupera mais dados, incluindo tabelas e conteúdo incorporado com maior sucesso, mas pode aumentar a latência. "basic" custa 1 crédito por 5 URLs bem-sucedidas, "advanced" custa 2 créditos por 5 URLs bem-sucedidas.Options: "basic", "advanced". Default: "basic"
includeImagesBooleanInclua uma lista de imagens extraídas das URLs na resposta.Default: false
includeFaviconBooleanInclua a URL do favicon para cada resultado extraído.Default: false
formatStringO formato do conteúdo da página web extraído. "markdown" retorna o conteúdo em formato markdown. "text" retorna texto simples e pode aumentar a latência.Options: "markdown", "text". Default: "markdown"
timeoutNumberTempo limite em milissegundos. Controla o tempo limite de HTTP do lado do cliente. Quando definido, também envia ao Tavily um tempo limite de extração do lado do servidor convertido em segundos e limitado a 1-60s.Default: 15000 for basic, 30000 for advanced

Exemplo:

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

Nota: Para informações detalhadas sobre as opções da API Tavily, consulte a Documentação da API Tavily.

Rerankers

jinaApiKey

KeyTypeDescriptionExample
jinaApiKeyStringNome da variável de ambiente para a chave de API da Jina. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.${JINA_API_KEY}

Nota: Obtenha sua chave de API em Jina.ai

jinaApiUrl

KeyTypeDescriptionExample
jinaApiUrlStringNome da variável de ambiente para a URL da API Jina. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.${JINA_API_URL}

Nota: Isso é opcional e necessário apenas se você estiver usando uma instância personalizada do Jina.

cohereApiKey

KeyTypeDescriptionExample
cohereApiKeyStringNome da variável de ambiente para a chave de API da Cohere. Se não for definida no .env, os usuários serão solicitados a fornecê-la via interface.${COHERE_API_KEY}

Nota: Obtenha sua chave de API no Cohere Dashboard

rerankerType

KeyTypeDescriptionExample
rerankerTypeStringEspecifica qual serviço de reranker utilizar. Defina como "none" para pular o reranking.Options: "jina", "cohere", "none"

Configurações Gerais

scraperTimeout

KeyTypeDescriptionExample
scraperTimeoutIntegerTempo limite em milissegundos para solicitações do scraper. Deve ser um número inteiro não negativo.Default: 7500

safeSearch

KeyTypeDescriptionExample
safeSearchNumberNível de filtragem de pesquisa segura. 0 = DESLIGADO (sem filtragem), 1 = MODERADO (padrão), 2 = ESTRITO (filtragem máxima).Default: 1 (MODERATE)

Nota: Os níveis de pesquisa segura estão alinhados com as convenções padrão da API de pesquisa. A filtragem MODERATE (moderada) é ativada por padrão para fornecer uma filtragem de conteúdo razoável, mantendo a eficácia da pesquisa. O Tavily não herda essa configuração global por padrão; use tavilySearchOptions.safeSearch apenas se sua conta Tavily oferecer suporte a safe_search.

Notas

  • As chaves de API podem ser configuradas de duas maneiras:
    1. Defina as variáveis de ambiente especificadas na configuração YAML
    2. Se as variáveis de ambiente não estiverem definidas, os usuários serão solicitados a fornecer as chaves de API através da interface.
  • A configuração suporta múltiplos serviços para cada componente (providers, scrapers, rerankers)
  • Se um tipo de serviço específico não for especificado, o sistema tentará todos os serviços disponíveis nessa categoria
  • O Safe search oferece três níveis de filtragem de conteúdo: OFF (0), MODERATE (1) e STRICT (2)
  • O Tavily não herda a configuração global de pesquisa segura por padrão; defina tavilySearchOptions.safeSearch explicitamente apenas quando sua conta Tavily oferecer suporte a safe_search.
  • Nunca coloque chaves de API reais na configuração YAML - use apenas nomes de variáveis de ambiente

Configurando o SearXNG

SearXNG é um meta mecanismo de busca focado em privacidade que você pode auto-hospedar. Para mais informações, consulte a documentação oficial do SearXNG.

Aqui estão os passos para configurar sua própria instância do SearXNG para uso com o LibreChat:

Usando o Docker Desktop

  1. Procure pela imagem oficial do SearXNG

    • Abra o Docker Desktop
    • Pesquise por searxng/searxng na aba Images
    • Clique em Run na imagem oficial para baixar automaticamente e executar um container da imagem
  2. Executando o container

    • Expanda o menu suspenso Optional Settings no painel subsequente que aparece assim que o download for concluído
    • Defina os detalhes de configuração desejados (número da porta, nome do container, etc.)
    • Clique em Run para iniciar o container
  3. Configurar o SearXNG para o LibreChat

    • Navegue até a aba Files no Docker Desktop
    • Vá para /etc/searxng/settings.yaml
    • Abra o editor de arquivos
    • Navegue até a seção formats
    • Adicione json como um formato aceitável para que o LibreChat possa se comunicar com sua instância
    • Salve o arquivo
  4. Reinicie o container

    • Reinicie o container para que as alterações entrem em vigor

Guia em vídeo:

Aqui está um vídeo para guiá-lo pelo processo do início ao fim em cerca de um minuto:

Passo a passo da configuração do SearXNG no Docker

Nota: Neste exemplo, a URL da instância é http://localhost:55011 (o número da porta encontrado abaixo do nome do container no canto superior esquerdo ao final do vídeo)

Configurando o LibreChat para usar o SearXNG

Você pode configurar o SearXNG no LibreChat através da interface do usuário ou pelo librechat.yaml.

Configuração da UI

  1. Abra o menu suspenso de ferramentas na barra de entrada do chat Botão de configuração de ferramentas

  2. Clique no ícone de engrenagem ao lado de Web Search Tools configuration section

  3. Selecione SearXNG no menu suspenso Search Provider SearXNG dropdown selection

  4. Insira os detalhes da sua configuração (por exemplo, URL da instância, tipo de scraper, etc.) e clique em salvar Salvar configuração de pesquisa na web

  5. Clique na opção Web Search no menu suspenso de ferramentas Web search badge in chat interface

  6. O selo de Web Search agora deve estar ativado, o que significa que suas consultas podem utilizar a funcionalidade de pesquisa na web Confirmação do selo de Web Search

Como está este guia?