docs/self-hosting/advanced/online-search.zh-CN.mdx
LobeHub 支持为 AI 配置联网搜索功能,使其能够实时获取互联网信息,从而提供更准确、最新的回答。联网搜索支持多个搜索引擎提供商,包括 SearXNG、Search1API、Google、Brave 等。
<Callout type="info"> 联网搜索可以让 AI 获取时效性内容,如最新新闻、技术动态或产品信息。你可以使用开源的 SearXNG 自行部署,也可以选择集成主流搜索引擎服务,如 Search1API、Google、Brave 等,根据你的使用场景自由组合。 </Callout>通过设置搜索服务环境变量 SEARCH_PROVIDERS 和对应的 API Key,LobeHub 将在多个搜索源中查询并返回结果。你还可以搭配配置爬虫服务环境变量 CRAWLER_IMPLS(如 browserless、firecrawl、tavily 等)以提取网页内容,实现搜索 + 阅读的增强能力。
CRAWLER_IMPLS配置可用的网页爬虫,用于对网页进行结构化内容提取。
CRAWLER_IMPLS="naive,search1api"
支持的爬虫类型如下:
| 值 | 说明 | 环境变量 |
|---|---|---|
browserless | 基于 Browserless 的无头浏览器爬虫,适合渲染复杂页面。 | BROWSERLESS_TOKEN |
exa | 使用 Exa 提供的爬虫能力,需申请 API。 | EXA_API_KEY |
firecrawl | Firecrawl 无头浏览器 API,适合现代网站抓取。 | FIRECRAWL_API_KEY |
jina | 使用 Jina AI 的爬虫服务,支持快速提取摘要信息。 | JINA_READER_API_KEY |
naive | 内置简易通用爬虫,适用于标准网页结构。 | |
search1api | 利用 Search1API 提供的页面抓取能力,适合结构化内容提取。 | SEARCH1API_API_KEY SEARCH1API_CRAWL_API_KEY SEARCH1API_SEARCH_API_KEY |
tavily | 使用 Tavily 的网页抓取与摘要 API。 | TAVILY_API_KEY |
💡 设置多个爬虫可提升成功率,系统将根据优先级尝试不同爬虫。
CRAWL_CONCURRENCY控制单次网页抓取任务的并发数量,默认值为 3。在低配置服务器上建议设置为 1 以降低 CPU 峰值。
CRAWL_CONCURRENCY=3
CRAWLER_RETRY控制单个 URL 的抓取失败重试次数,默认值为 1(即最多尝试 2 次)。
CRAWLER_RETRY=1
SEARCH_PROVIDERS配置联网搜索使用的搜索引擎提供商。
SEARCH_PROVIDERS="searxng"
支持的搜索引擎如下:
| 值 | 说明 | 环境变量 |
|---|---|---|
anspire | 基于 Anspire(安思派) 提供的搜索服务。 | ANSPIRE_API_KEY |
bocha | 基于 Bocha(博查) 提供的搜索服务。 | BOCHA_API_KEY |
brave | Brave,隐私友好的搜索源。 | BRAVE_API_KEY |
exa | Exa,面向 AI 的搜索 API。 | EXA_API_KEY |
firecrawl | 支持 Firecrawl 提供的搜索服务。 | FIRECRAWL_API_KEY |
google | 使用 Google Programmable Search Engine。 | GOOGLE_PSE_API_KEY GOOGLE_PSE_ENGINE_ID |
jina | 使用 Jina AI 提供的语义搜索服务。 | JINA_READER_API_KEY |
kagi | Kagi 提供的高级搜索 API,需订阅 Key。 | KAGI_API_KEY |
search1api | 使用 Search1API 聚合搜索能力。 | SEARCH1API_API_KEY SEARCH1API_CRAWL_API_KEY SEARCH1API_SEARCH_API_KEY |
searxng | 使用自托管或公共 SearXNG 实例。 | SEARXNG_URL |
tavily | Tavily,快速网页摘要与答案返回。 | TAVILY_API_KEY |
⚠️ 某些搜索提供商需要单独申请 API Key,并在
.env中配置相关凭证。
BROWSERLESS_URL指定 Browserless 服务的 API 地址,用于执行网页爬取任务。Browserless 是一个基于无头浏览器(Headless Chrome)的浏览器自动化平台,适合处理需要渲染的动态页面。
BROWSERLESS_URL=https://chrome.browserless.io
📌 通常需要搭配
CRAWLER_IMPLS=browserless启用。
BROWSERLESS_BLOCK_ADS启用广告拦截功能,在使用 Browserless 进行网页抓取时自动屏蔽常见广告资源(如脚本、图片、追踪器等),提高抓取速度与页面清晰度。
BROWSERLESS_BLOCK_ADS=1
📌 支持的值:
1:启用广告拦截(推荐);0:禁用广告拦截(默认)。
✅ 建议与
BROWSERLESS_STEALTH_MODE=1一起使用,提高爬虫的隐蔽性和成功率。
BROWSERLESS_STEALTH_MODE启用隐身模式,在使用 Browserless 抓取网页时,通过一系列防检测手段(如修改 UA、移除 webdriver 特征、模拟用户操作)来规避反爬虫机制。
BROWSERLESS_STEALTH_MODE=1
📌 支持的值:
1:启用隐身模式(推荐);0:禁用隐身模式(默认)。
⚠️ 某些网站存在高级反爬机制,启用隐身模式可以显著提升抓取成功率。
GOOGLE_PSE_ENGINE_ID配置 Google Programmable Search Engine(Google PSE)的搜索引擎 ID,用于限定搜索范围。需配合 GOOGLE_PSE_API_KEY 一起使用。
GOOGLE_PSE_ENGINE_ID=your-google-cx-id
🔑 获取方式:访问 programmablesearchengine.google.com,创建搜索引擎后获取
cx参数值。
FIRECRAWL_URL设置 Firecrawl API 的访问地址。用于网页内容抓取,默认值如下:
FIRECRAWL_URL=https://api.firecrawl.dev/v2
⚙️ 一般无需修改,除非你使用的是自托管版本或代理服务。
TAVILY_SEARCH_DEPTH配置 Tavily 搜索的结果深度。
TAVILY_SEARCH_DEPTH=basic
支持的值:
basic: 快速搜索,返回简要结果;advanced: 深度搜索,返回更多上下文和网页信息。TAVILY_EXTRACT_DEPTH配置 Tavily 在抓取网页内容时的提取深度。
TAVILY_EXTRACT_DEPTH=basic
支持的值:
basic: 提取标题、正文摘要等基础信息;advanced: 提取网页的结构化信息、列表、图表等更多内容。SEARXNG_URLSearXNG 实例的 URL 地址,这是启用联网搜索功能的必要配置。例如:
SEARXNG_URL=https://searxng-instance.com
这个 URL 应该指向一个可用的 SearXNG 实例。您可以选择自行部署 SearXNG,或使用公共可用的 SearXNG 实例。
您可以在 SearXNG 实例列表 中找到公开可用的 SearXNG 实例。选择一个响应速度快、可靠性高的实例,然后将其 URL 配置到 LobeHub 中。
注意,使用的
searxng必须开启json输出,否则lobehub调用会报错。如果是自托管,类似下面这样,找到searxng的配置文件,追加json即可。
$ vi searxng/settings.yml
...
search:
formats:
- html
- json
配置完成后,您可以通过以下步骤验证联网搜索功能是否正常工作:
如果 AI 能够回答这些时效性问题,说明联网搜索功能已经成功配置。