跳到主要内容

Brave

注意

本教程为社区贡献内容,不属于 OPL 数据空间团队的官方支持范围。它主要演示如何按你的具体场景定制 OPL 数据空间。若想参与贡献,请查看贡献指南。

提示

关于 Web Search 相关环境变量的完整列表,包括并发、返回结果数量等,请参阅 环境配置文档

Troubleshooting

如果 Web Search 出现问题,请先查看 Web Search 故障排查指南,里面覆盖了代理配置、连接超时、空内容等常见问题。

Brave API

Docker Compose 配置

把下面这些环境变量加入 OPL 数据空间的 docker-compose.yaml

services:
  open-webui:
    environment:
      ENABLE_WEB_SEARCH: True
      WEB_SEARCH_ENGINE: "brave"
      BRAVE_SEARCH_API_KEY: "YOUR_API_KEY"
      WEB_SEARCH_RESULT_COUNT: 3
      WEB_SEARCH_CONCURRENT_REQUESTS: 1

限流说明(免费层)

Brave 免费层 API 的限制非常严格:每秒只能 1 个请求。如果 LLM 在一次回答中生成多个搜索查询,就很容易遇到 HTTP 429 “Too Many Requests”。

对免费层用户的推荐配置:

  • 管理员面板 > 设置 > Web Search 中把 “Concurrent Requests” 设为 1
  • 或直接使用环境变量 WEB_SEARCH_CONCURRENT_REQUESTS: 1

自动重试行为

OPL 数据空间会自动处理 Brave API 返回的 429 限流响应。遇到限流时,系统会:

  1. 等待 1 秒
  2. 自动重试一次
  3. 若重试仍失败,才会真正报错

这意味着,即便你的连接速度足以在 1 秒内连续发出多个请求,自动重试机制通常也能在无需人工干预的情况下恢复。

提示

如果你使用的是 Brave 付费层,并拥有更高的速率额度,可以适当提高 WEB_SEARCH_CONCURRENT_REQUESTS,以换取更快的并行搜索速度。

理解并发与限流

WEB_SEARCH_CONCURRENT_REQUESTS 控制的是单次搜索请求内部的并发,而不是整个应用的全局并发。

  • 什么时候通常没问题:单用户实例,或低流量环境,且用户很少在同一秒同时触发搜索时,把并发设为 1 通常就足以满足免费层限制。
  • 什么时候会出问题:如果多个用户在同一时刻触发搜索, OPL 数据空间会并行处理这些请求。每个用户请求都会创建自己的连接池,因此多个请求可能同时打到 Brave API,从而触发免费层限流。

注意: 如果你运行的是多个活跃用户同时使用 Web Search 的环境,强烈建议升级到付费 API 套餐。免费层并不是为多用户吞吐设计的。