跳转到内容

配置: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配置文件运行:

Terminal window
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。这会自动处理容器生命周期,并在启动机器人之前等待容器健康:

Terminal window
bun run launch --searxng

如果你希望自己管理容器,请将SEARXNG_BASE_URL=http://localhost:8080/保留在.env中。首先构建存储库的映像,以便加载JSON搜索设置并替换签名密钥:

Terminal window
docker build -t tomoribot-searxng:latest -f servers/searxng/Dockerfile servers/searxng

然后运行它:

电源外壳:

Terminal window
docker run -d --name searxng -p 8080:8080 `
--tmpfs /etc/searxng `
tomoribot-searxng:latest

Bash(Linux/macOS):

Terminal window
docker run -d --name searxng -p 8080:8080 \
--tmpfs /etc/searxng \
tomoribot-searxng:latest

然后在容器正常运行后运行bun run dev(docker ps显示(healthy))。如果容器环境中没有SEARXNG_SECRET,则镜像会生成临时签名密钥。


保留SEARXNG_BASE_URL未设置。链条回落至Brave → DuckDuckGo。

当未配置SearXNG服务器时,组装的web_search模式不再通告仅SearXNG类别。配置Brave时,常见类别(text、image、video、news)仍会显示,并且当仅内置的DuckDuckGo后备可用时,会显示纯文本搜索。


SearXNG图像结果经过HEAD验证,可选择压缩,并作为Discord附件发布:与Brave图像相同的UX。如果所有候选URL均未通过验证,SearXNG将返回图像链接的文本列表,而不是硬失败。

多变的默认描述
SEARXNG_IMAGE_COUNT3(最多10个)有多少张有效图像发送到Discord。被LLM的count参数覆盖。
SEARXNG_IMAGE_POOL10LLM未指定count时的候选URL池。当指定count时,池为count × 3(上限为30)以吸收热链接保护故障。
WEB_SEARCH_TIMEOUT_MS—每个引擎请求超时。

(有关所有可调参数,请参阅.env.optional.example。)