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

网页搜索

LibreChat 的网页搜索功能允许您搜索互联网并检索相关信息,以增强您的对话体验。该功能由三个主要组件组成,它们协同工作以提供全面的搜索结果。

快速开始

要开始使用网页搜索,您需要为搜索提供商和抓取工具配置 API 密钥。重排序(Reranking)可以使用 Jina 或 Cohere,也可以通过 rerankerType: "none" 禁用。您可以通过以下两种方式进行配置:

  1. 环境变量(推荐管理员使用):

    # Search Provider (Required - choose one)
    SERPER_API_KEY=your_serper_api_key
    # or
    SEARXNG_INSTANCE_URL=your_searxng_instance_url
    SEARXNG_API_KEY=your_searxng_api_key  # Optional
    # or
    TAVILY_API_KEY=your_tavily_api_key
    
    # Scraper (Required - choose one)
    FIRECRAWL_API_KEY=your_firecrawl_api_key
    # Optional: Custom Firecrawl API URL
    FIRECRAWL_API_URL=your_firecrawl_api_url
    # Optional: Firecrawl API version (v0 or v1)
    # FIRECRAWL_VERSION=v1
    # or
    TAVILY_API_KEY=your_tavily_api_key
    
    # Reranker (Optional - choose one, or set rerankerType: "none")
    JINA_API_KEY=your_jina_api_key
    # Optional: Custom Jina API URL
    JINA_API_URL=your_jina_api_url
    # or
    COHERE_API_KEY=your_cohere_api_key
  2. 用户界面 (如果未设置环境变量):

    • 当用户首次使用网页搜索功能时,系统将提示他们输入所需的 API 密钥。
    • 他们可以选择使用哪种搜索提供商(Serper、SearXNG 或 Tavily)以及使用哪种重排序服务(Jina、Cohere 或不使用)。

获取 API Keys

每个启用的外部服务都需要其各自的 API key。以下是获取它们的方法:

搜索提供商

Serper

  1. 访问 Serper.dev
  2. 注册账户
  3. 导航至 API Key 部分
  4. 复制您的 API key
  5. 在环境变量中设置它,或通过 UI 提供它

SearXNG

  1. 请按照 Web Search Configuration 文档中的设置说明进行操作。
  2. SEARXNG_INSTANCE_URL 设置为您的实例 URL
  3. 如果您的实例需要身份验证,可以选择性地设置 SEARXNG_API_KEY

Tavily

  1. 访问 Tavily
  2. 注册账户
  3. 复制您的 API key
  4. 在环境变量中设置 TAVILY_API_KEY 或通过 UI 提供它。
  5. Tavily 既可以用作搜索提供商,也可以用作抓取提供商。

抓取工具:Firecrawl

  1. 访问 Firecrawl.dev
  2. 注册账户
  3. 导航至 API Key 部分
  4. 复制您的 API key
  5. 在环境变量中设置它,或通过 UI 提供它
  6. (可选)如果您正在使用自定义的 Firecrawl 实例,您还需要设置 API URL

重排序器 (Rerankers)

Jina

  1. 访问 Jina.ai
  2. 注册账户
  3. 导航至 API Dashboard
  4. 复制您的 API key
  5. 在环境变量中设置它,或通过 UI 提供它

Cohere

  1. 访问 Cohere Dashboard
  2. 注册账户
  3. 导航至 API Keys 部分
  4. 复制您的 API key
  5. 在环境变量中设置它,或通过 UI 提供它

组件

1. 搜索提供商

搜索提供商负责执行初始网络搜索并返回相关结果。

可用提供商:

  • Serper: 一个提供高质量搜索结果的 Google 搜索 API
  • SearXNG:开源、自托管的元搜索引擎
    • 自托管您自己的实例
    • 注重隐私的搜索结果
  • Tavily: AI 优化搜索 API
    • Tavily 获取您的 API key
    • 支持可配置的搜索深度、主题过滤、域名过滤等功能
    • 也可以作为抓取工具提供商使用

2. Scrapers

Scrapers 会从搜索提供商返回的网页中提取实际内容。

可用抓取工具:

  • Firecrawl:一个强大的网页抓取服务,可从网页中提取内容

    • Firecrawl.dev 获取您的 API key。
    • API URL 是可选的(默认为 Firecrawl 的托管服务)
  • Tavily: 通过 Tavily Extract API 进行批量 URL 提取

    • 使用与搜索提供商相同的 TAVILY_API_KEY
    • 支持可配置的提取深度、图像提取和网站图标提取

计划中的爬虫:

  • Local Firecrawl: Firecrawl 的自托管版本
  • 其他第三方抓取服务

3. Rerankers

Rerankers 会分析抓取的内容,以确定最相关的部分并对其进行重新排序,从而获得更好的结果。

可用的重排序模型 (Rerankers):

  • Jina: 基于 AI 的重排序服务
    • Jina.ai 获取您的 API key
    • API URL 是可选的(默认为 Jina 的托管服务)
  • Cohere: 高级重排序服务
  • None: 当 rerankerType 设置为 "none" 时,跳过重排序。

计划中的重排序模型 (Rerankers):

  • RAG API: 使用 RAG(检索增强生成)的开源重排序 (reranking)
  • 其他第三方重排序服务

配置

管理员配置

管理员可以使用环境变量配置网页搜索功能。YAML 配置允许您为每个组件指定自定义的环境变量名称。

⚠️ 重要提示:切勿将实际的 API 密钥或值放入 YAML 文件中(它们无法生效)——请仅使用环境变量名称。

webSearch:
  # Search Provider Configuration
  serperApiKey: "${CUSTOM_SERPER_API_KEY}"  # ✅ Correct: Using environment variable name
  # serperApiKey: "sk-123..."               # ❌ Wrong: Never put actual API keys here
  # or
  searxngInstanceUrl: "${CUSTOM_SEARXNG_INSTANCE_URL}"  # ✅ Correct: Using environment variable name
  searxngApiKey: "${CUSTOM_SEARXNG_API_KEY}"            # ✅ Correct: Using environment variable name
  # searxngInstanceUrl: "http://..."        # ❌ Wrong: Never put actual URLs here
  # searxngApiKey: "sk-123..."              # ❌ Wrong: Never put actual API keys here

  # Tavily Configuration (search and/or scraper)
  tavilyApiKey: "${CUSTOM_TAVILY_API_KEY}"
  tavilySearchUrl: "${CUSTOM_TAVILY_SEARCH_URL}"
  tavilyExtractUrl: "${CUSTOM_TAVILY_EXTRACT_URL}"

  # Scraper Configuration
  firecrawlApiKey: "${CUSTOM_FIRECRAWL_API_KEY}"
  firecrawlApiUrl: "${CUSTOM_FIRECRAWL_API_URL}"
  # firecrawlApiKey: "fc-123..."            # ❌ Wrong: Never put actual API keys here
  # firecrawlApiUrl: "https://..."          # ❌ Wrong: Never put actual URLs here

  # Reranker Configuration
  jinaApiKey: "${CUSTOM_JINA_API_KEY}"
  jinaApiUrl: "${CUSTOM_JINA_API_URL}"
  cohereApiKey: "${CUSTOM_COHERE_API_KEY}"
  # jinaApiKey: "jn-123..."                 # ❌ Wrong: Never put actual API keys here
  # jinaApiUrl: "https://..."               # ❌ Wrong: Never put actual URLs here
  # cohereApiKey: "ch-123..."               # ❌ Wrong: Never put actual API keys here

  # General Settings
  safeSearch: 1 # Options: 0 (OFF), 1 (MODERATE - default), 2 (STRICT)

注意: YAML 配置应仅包含环境变量名称(格式为 ${VARIABLE_NAME})。这种灵活性实现了:

  • 在不同环境中使用不同的变量名称
  • 为不同用户组支持多种配置
  • 未来与基于角色的配置的集成

如果您想限制系统仅使用特定的服务,您可以指定服务类型:

webSearch:
  # ... variable configurations ...
  searchProvider: "serper"    # Only use Serper for search
  # searchProvider: "searxng" # Only use SearXNG for search
  # searchProvider: "tavily"  # Only use Tavily for search
  scraperProvider: "firecrawl"    # Only use Firecrawl for scraping
  # scraperProvider: "tavily" # Only use Tavily for scraping
  rerankerType: "jina"        # Options: "jina", "cohere", "none"

用户配置

如果管理员尚未配置所有必要的 API 密钥,系统将提示用户通过 UI 提供这些密钥。该界面允许用户:

  1. 选择他们偏好的重排序模型(Jina、Cohere 或无)
  2. 输入所需服务的 API 密钥
  3. 如果需要,请配置 Firecrawl API URL(可选)
  4. 如果需要,配置 Jina API URL(可选)
  5. 如果需要,请配置 Tavily Search 或 Extract API URL(可选)

使用方法

配置完成后,您可以通过以下两种方式使用网页搜索:

  1. 聊天界面:点击聊天界面中的网页搜索按钮,即可为您的对话启用网页搜索功能。
  2. Agents: 在 Agent 中使用 web_search 功能,使其能够进行网络搜索

注意事项

  • 必须配置搜索提供商和抓取工具;可以通过 rerankerType: "none" 禁用重排序。
  • Firecrawl API URL 是可选的,默认为其托管服务。
  • Jina API URL 是可选的,默认为其托管服务。
  • Tavily Search 和 Extract API URL 是可选的,默认使用 Tavily 的托管服务。
  • 安全搜索提供三个级别的内容过滤:OFF (0)、MODERATE (1 - 默认) 和 STRICT (2)
  • Tavily 默认不会继承全局 safeSearch 设置;仅当您的 Tavily 账户支持 safe_search 时,才使用 tavilySearchOptions.safeSearch
  • 爬虫超时时间默认设置为 7.5 秒 (7500ms)。
  • API keys 可以随时通过 UI 进行撤销。
  • 未来的更新将包含更多适用于所有组件的开源、自托管选项
  • 计划提供更多的自定义选项,包括:
    • 控制抓取链接的数量
    • 用于抓取的域名允许列表/黑名单
    • 自定义抓取规则和过滤器
    • 高级结果过滤和排序选项
    • 速率限制和请求节流控制

这篇指南怎么样?