配置:SearXNG
使用 SearXNG 将私有、自部署的Web搜索添加到TomoriBot。
web_search工具查询引擎后备链:Brave、SearXNG和DuckDuckGo。当外部提供商达到速率限制或失败时,运行本地SearXNG实例可提供自部署搜索源,并启用专门的搜索类别:science、it、files和music。
选择安装路径:
选项A:Docker Compose(当TomoriBot在Docker中运行时)
Section titled “选项A:Docker Compose(当TomoriBot在Docker中运行时)”如果你使用存储库的Docker Compose堆栈运行TomoriBot,请使用此路径。然后使用searxng配置文件运行:
docker compose --profile searxng up -d在启动此配置文件之前,请在.env中设置SEARXNG_BASE_URL=http://searxng:8080/。机器人使用该地址访问searxng服务。当配置文件关闭时,让变量保持未设置状态。
如果你直接与bun run dev一起运行TomoriBot,请改用下面的独立路径。
将.env中的SEARXNG_SECRET设置为容器签名密钥的单独随机值。
选项B:独立Docker(运行bun run dev时)
Section titled “选项B:独立Docker(运行bun run dev时)”首先,在.env中设置SEARXNG_BASE_URL=http://localhost:8080/,以便机器人知道连接到哪里。
然后,不要直接使用bun run dev运行TomoriBot,而是使用bun run launch --searxng。这会自动处理容器生命周期,并在启动机器人之前等待容器健康:
bun run launch --searxng如果你希望自己管理容器,请将SEARXNG_BASE_URL=http://localhost:8080/保留在.env中。首先构建存储库的映像,以便加载JSON搜索设置并替换签名密钥:
docker build -t tomoribot-searxng:latest -f servers/searxng/Dockerfile servers/searxng然后运行它:
电源外壳:
docker run -d --name searxng -p 8080:8080 ` --tmpfs /etc/searxng ` tomoribot-searxng:latestBash(Linux/macOS):
docker run -d --name searxng -p 8080:8080 \ --tmpfs /etc/searxng \ tomoribot-searxng:latest然后在容器正常运行后运行bun run dev(docker ps显示(healthy))。如果容器环境中没有SEARXNG_SECRET,则镜像会生成临时签名密钥。
选项C:无SearXNG
Section titled “选项C:无SearXNG”保留SEARXNG_BASE_URL未设置。链条回落至Brave → DuckDuckGo。
当未配置SearXNG服务器时,组装的web_search模式不再通告仅SearXNG类别。配置Brave时,常见类别(text、image、video、news)仍会显示,并且当仅内置的DuckDuckGo后备可用时,会显示纯文本搜索。
图像结果调整
Section titled “图像结果调整”SearXNG图像结果经过HEAD验证,可选择压缩,并作为Discord附件发布:与Brave图像相同的UX。如果所有候选URL均未通过验证,SearXNG将返回图像链接的文本列表,而不是硬失败。
| 多变的 | 默认 | 描述 |
|---|---|---|
SEARXNG_IMAGE_COUNT | 3(最多10个) | 有多少张有效图像发送到Discord。被LLM的count参数覆盖。 |
SEARXNG_IMAGE_POOL | 10 | LLM未指定count时的候选URL池。当指定count时,池为count × 3(上限为30)以吸收热链接保护故障。 |
WEB_SEARCH_TIMEOUT_MS | — | 每个引擎请求超时。 |
(有关所有可调参数,请参阅.env.optional.example。)