Back to Lobehub

配置联网搜索功能 - 增强 AI 的网络信息获取能力

docs/self-hosting/advanced/online-search.zh-CN.mdx

2.1.5610.2 KB
Original Source

配置联网搜索功能

LobeHub 支持为 AI 配置联网搜索功能,使其能够实时获取互联网信息,从而提供更准确、最新的回答。联网搜索支持多个搜索引擎提供商,包括 SearXNGSearch1APIGoogleBrave 等。

<Callout type="info"> 联网搜索可以让 AI 获取时效性内容,如最新新闻、技术动态或产品信息。你可以使用开源的 SearXNG 自行部署,也可以选择集成主流搜索引擎服务,如 Search1API、Google、Brave 等,根据你的使用场景自由组合。 </Callout>

通过设置搜索服务环境变量 SEARCH_PROVIDERS 和对应的 API Key,LobeHub 将在多个搜索源中查询并返回结果。你还可以搭配配置爬虫服务环境变量 CRAWLER_IMPLS(如 browserlessfirecrawltavily 等)以提取网页内容,实现搜索 + 阅读的增强能力。

核心环境变量

CRAWLER_IMPLS

配置可用的网页爬虫,用于对网页进行结构化内容提取。

env
CRAWLER_IMPLS="naive,search1api"

支持的爬虫类型如下:

说明环境变量
browserless基于 Browserless 的无头浏览器爬虫,适合渲染复杂页面。BROWSERLESS_TOKEN
exa使用 Exa 提供的爬虫能力,需申请 API。EXA_API_KEY
firecrawlFirecrawl 无头浏览器 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 峰值。

env
CRAWL_CONCURRENCY=3

CRAWLER_RETRY

控制单个 URL 的抓取失败重试次数,默认值为 1(即最多尝试 2 次)。

env
CRAWLER_RETRY=1

SEARCH_PROVIDERS

配置联网搜索使用的搜索引擎提供商。

env
SEARCH_PROVIDERS="searxng"

支持的搜索引擎如下:

说明环境变量
anspire基于 Anspire(安思派) 提供的搜索服务。ANSPIRE_API_KEY
bocha基于 Bocha(博查) 提供的搜索服务。BOCHA_API_KEY
braveBrave,隐私友好的搜索源。BRAVE_API_KEY
exaExa,面向 AI 的搜索 API。EXA_API_KEY
firecrawl支持 Firecrawl 提供的搜索服务。FIRECRAWL_API_KEY
google使用 Google Programmable Search EngineGOOGLE_PSE_API_KEY GOOGLE_PSE_ENGINE_ID
jina使用 Jina AI 提供的语义搜索服务。JINA_READER_API_KEY
kagiKagi 提供的高级搜索 API,需订阅 Key。KAGI_API_KEY
search1api使用 Search1API 聚合搜索能力。SEARCH1API_API_KEY SEARCH1API_CRAWL_API_KEY SEARCH1API_SEARCH_API_KEY
searxng使用自托管或公共 SearXNG 实例。SEARXNG_URL
tavilyTavily,快速网页摘要与答案返回。TAVILY_API_KEY

⚠️ 某些搜索提供商需要单独申请 API Key,并在 .env 中配置相关凭证。


BROWSERLESS_URL

指定 Browserless 服务的 API 地址,用于执行网页爬取任务。Browserless 是一个基于无头浏览器(Headless Chrome)的浏览器自动化平台,适合处理需要渲染的动态页面。

env
BROWSERLESS_URL=https://chrome.browserless.io

📌 通常需要搭配 CRAWLER_IMPLS=browserless 启用。


BROWSERLESS_BLOCK_ADS

启用广告拦截功能,在使用 Browserless 进行网页抓取时自动屏蔽常见广告资源(如脚本、图片、追踪器等),提高抓取速度与页面清晰度。

env
BROWSERLESS_BLOCK_ADS=1

📌 支持的值:

  • 1:启用广告拦截(推荐);
  • 0:禁用广告拦截(默认)。

✅ 建议与 BROWSERLESS_STEALTH_MODE=1 一起使用,提高爬虫的隐蔽性和成功率。


BROWSERLESS_STEALTH_MODE

启用隐身模式,在使用 Browserless 抓取网页时,通过一系列防检测手段(如修改 UA、移除 webdriver 特征、模拟用户操作)来规避反爬虫机制。

env
BROWSERLESS_STEALTH_MODE=1

📌 支持的值:

  • 1:启用隐身模式(推荐);
  • 0:禁用隐身模式(默认)。

⚠️ 某些网站存在高级反爬机制,启用隐身模式可以显著提升抓取成功率。


GOOGLE_PSE_ENGINE_ID

配置 Google Programmable Search Engine(Google PSE)的搜索引擎 ID,用于限定搜索范围。需配合 GOOGLE_PSE_API_KEY 一起使用。

env
GOOGLE_PSE_ENGINE_ID=your-google-cx-id

🔑 获取方式:访问 programmablesearchengine.google.com,创建搜索引擎后获取 cx 参数值。


FIRECRAWL_URL

设置 Firecrawl API 的访问地址。用于网页内容抓取,默认值如下:

env
FIRECRAWL_URL=https://api.firecrawl.dev/v2

⚙️ 一般无需修改,除非你使用的是自托管版本或代理服务。


TAVILY_SEARCH_DEPTH

配置 Tavily 搜索的结果深度。

env
TAVILY_SEARCH_DEPTH=basic

支持的值:

  • basic: 快速搜索,返回简要结果;
  • advanced: 深度搜索,返回更多上下文和网页信息。

TAVILY_EXTRACT_DEPTH

配置 Tavily 在抓取网页内容时的提取深度。

env
TAVILY_EXTRACT_DEPTH=basic

支持的值:

  • basic: 提取标题、正文摘要等基础信息;
  • advanced: 提取网页的结构化信息、列表、图表等更多内容。

SEARXNG_URL

SearXNG 实例的 URL 地址,这是启用联网搜索功能的必要配置。例如:

shell
SEARXNG_URL=https://searxng-instance.com

这个 URL 应该指向一个可用的 SearXNG 实例。您可以选择自行部署 SearXNG,或使用公共可用的 SearXNG 实例。

您可以在 SearXNG 实例列表 中找到公开可用的 SearXNG 实例。选择一个响应速度快、可靠性高的实例,然后将其 URL 配置到 LobeHub 中。

注意,使用的 searxng 必须开启 json 输出,否则 lobehub 调用会报错。如果是自托管,类似下面这样,找到 searxng 的配置文件,追加 json 即可。

bash
$ vi searxng/settings.yml
...
search:
formats:
- html
- json

验证联网搜索功能

配置完成后,您可以通过以下步骤验证联网搜索功能是否正常工作:

  1. 重启 LobeHub 服务
  2. 启动一个新的聊天,启动智能联网,之后向 AI 提问一个需要最新信息的问题,例如:"今天的实时金价是多少?" 或 "最近的重大新闻有哪些?"
  3. 观察 AI 是否能够返回基于互联网搜索的最新信息

如果 AI 能够回答这些时效性问题,说明联网搜索功能已经成功配置。

参考资料