网页搜索
LibreChat 的网页搜索功能允许您搜索互联网并检索相关信息,以增强您的对话体验。该功能由三个主要组件组成,它们协同工作以提供全面的搜索结果。
快速开始
要开始使用网页搜索,您需要为搜索提供商和抓取工具配置 API 密钥。重排序(Reranking)可以使用 Jina 或 Cohere,也可以通过 rerankerType: "none" 禁用。您可以通过以下两种方式进行配置:
-
环境变量(推荐管理员使用):
# 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 -
用户界面 (如果未设置环境变量):
- 当用户首次使用网页搜索功能时,系统将提示他们输入所需的 API 密钥。
- 他们可以选择使用哪种搜索提供商(Serper、SearXNG 或 Tavily)以及使用哪种重排序服务(Jina、Cohere 或不使用)。
获取 API Keys
每个启用的外部服务都需要其各自的 API key。以下是获取它们的方法:
搜索提供商
Serper
- 访问 Serper.dev
- 注册账户
- 导航至 API Key 部分
- 复制您的 API key
- 在环境变量中设置它,或通过 UI 提供它
SearXNG
- 请按照 Web Search Configuration 文档中的设置说明进行操作。
- 将
SEARXNG_INSTANCE_URL设置为您的实例 URL - 如果您的实例需要身份验证,可以选择性地设置
SEARXNG_API_KEY。
Tavily
- 访问 Tavily
- 注册账户
- 复制您的 API key
- 在环境变量中设置
TAVILY_API_KEY或通过 UI 提供它。 - Tavily 既可以用作搜索提供商,也可以用作抓取提供商。
抓取工具:Firecrawl
- 访问 Firecrawl.dev
- 注册账户
- 导航至 API Key 部分
- 复制您的 API key
- 在环境变量中设置它,或通过 UI 提供它
- (可选)如果您正在使用自定义的 Firecrawl 实例,您还需要设置 API URL
重排序器 (Rerankers)
Jina
- 访问 Jina.ai
- 注册账户
- 导航至 API Dashboard
- 复制您的 API key
- 在环境变量中设置它,或通过 UI 提供它
Cohere
- 访问 Cohere Dashboard
- 注册账户
- 导航至 API Keys 部分
- 复制您的 API key
- 在环境变量中设置它,或通过 UI 提供它
组件
1. 搜索提供商
搜索提供商负责执行初始网络搜索并返回相关结果。
可用提供商:
- Serper: 一个提供高质量搜索结果的 Google 搜索 API
- 从 Serper.dev 获取您的 API key
- 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: 高级重排序服务
- 从 Cohere Dashboard 获取您的 API key
- 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 提供这些密钥。该界面允许用户:
- 选择他们偏好的重排序模型(Jina、Cohere 或无)
- 输入所需服务的 API 密钥
- 如果需要,请配置 Firecrawl API URL(可选)
- 如果需要,配置 Jina API URL(可选)
- 如果需要,请配置 Tavily Search 或 Extract API URL(可选)
使用方法
配置完成后,您可以通过以下两种方式使用网页搜索:
- 聊天界面:点击聊天界面中的网页搜索按钮,即可为您的对话启用网页搜索功能。
- 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 进行撤销。
- 未来的更新将包含更多适用于所有组件的开源、自托管选项
- 计划提供更多的自定义选项,包括:
- 控制抓取链接的数量
- 用于抓取的域名允许列表/黑名单
- 自定义抓取规则和过滤器
- 高级结果过滤和排序选项
- 速率限制和请求节流控制
这篇指南怎么样?