news 2026/9/29 2:26:46

Vane 接入外部 SearXNG 实例的 3 步完整集成指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vane 接入外部 SearXNG 实例的 3 步完整集成指南

Vane 接入外部 SearXNG 实例的 3 步完整集成指南

【免费下载链接】VaneVane is an AI-powered answering engine.项目地址: https://gitcode.com/GitHub_Trending/pe/Vane

把 Vane 接到你自己的 SearXNG 实例上,SearXNG 集成就算完成了——这个 AI 问答引擎背后的多搜索源聚合能力立刻就位,答案里附带的每条引用都归你管。

为什么值得换成自己的 SearXNG

  • 🔍 一次查询聚合一众引擎,答案引用不再被单一来源带偏
  • 🕵️ 搜索链路全程自托管,查询数据不经过第三方服务
  • ⚡ 元搜索帮你过滤去重,来源回得快,答案有据可查
  • 🛠️ 用哪些引擎、搜哪些类别,几行配置就能微调

动手前先备齐这 3 样

  1. 一个外部可访问的 SearXNG 实例,且已开启 JSON 输出格式
  2. Vane 的 Docker 镜像或源码:
git clone https://gitcode.com/GitHub_Trending/pe/Vane cd Vane
  1. 实例的完整地址,形如http://your-host:8080

如果你手上没有实例、又不想折腾,直接用默认镜像最省事——它内置了一个 SearXNG,跑在容器内部 8080 端口,整段外部集成可以直接跳过:

docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane itzcrazykns1337/vane:latest

主流程:3 步接通外部 SearXNG

第 1 步:把实例地址喂给 Vane

定位配置入口:src/lib/config/serverRegistry.ts 里的getSearxngURL(),它只从配置管理器读search.searxngURL这一个键,所有配置统一落在data/config.json(目录可用DATA_DIR环境变量改)。

所以"改什么"只有两条路:在 setup 界面填 "SearXNG URL" 字段,或者启动容器时注入环境变量。slim 镜像配自有 SearXNG 时,后者最省事:

docker run -d -p 3000:3000 \ -e SEARXNG_API_URL=http://your-searxng:8080 \ -v vane-data:/home/vane/data \ --name vane itzcrazykns1337/vane:slim-latest

为什么这一行就够:启动时 src/lib/config/index.ts 会自动把SEARXNG_API_URL读进配置并写盘,后面不用再手工碰文件。

第 2 步:给 SearXNG 侧打开 JSON 输出

定位文件:仓库自带的参考配置searxng/settings.yml。在你实例的同名 settings.yml 里对齐两处:

search: formats: - html - json # 必须开启 engines: - name: wolframalpha disabled: false # 建议开启,Vane 会用它做计算类参考

为什么:src/lib/searxng.ts的searchSearxng调的是/search?format=json,实例没开 json 格式的话,这个请求会被直接挡回来。

第 3 步:用一条 curl 验证集成通了

先直连 SearXNG 实例,确认它能吐出 JSON:

curl "http://your-host:8080/search?q=test&format=json"

再打 Vane 的搜索 API:

curl -X POST http://localhost:3000/api/search \ -H 'Content-Type: application/json' \ -d '{"sources":["web"],"query":"What is Vane"}'

响应里出现sources数组,说明 SearXNG 集成已经通了。

进阶:只搜你想搜的那部分

src/lib/searxng.ts里的SearxngSearchOptions有两个高频选项,改造搜索行为时顺手就能加上:

// 指定聚合哪些引擎,结果更干净 searchSearxng('AI 模型最新进展', { engines: ['google', 'wikipedia'], }); // 限定结果类别,比如只看技术内容 searchSearxng('Rust 异步运行时对比', { categories: ['it'], });

效果很直接:论坛噪音少很多,返回的来源更贴近你要的那类信息。

踩坑速查

报错 "SearXNG search timed out"

症状:答案卡一会儿后抛超时错误。最可能的原因:实例不可达,或响应慢超过了代码里 10 秒的超时上限。30 秒检查:直接 curl 实例的/search?format=json,慢或不通就先修实例和网络。

结果为空,或返回 403/406

症状:搜索调用失败或结果为空。最可能的原因:实例没开 json 格式,或请求被 limiter 拦了。30 秒检查:确认实例配置里有formats: - json;浏览器手动加&format=json请求一次看返回什么。

setup 界面里搜索配置是空的

症状:Vane 日志提示搜索源不可用。最可能的原因:环境变量和界面都没设,config.json里search.searxngURL为空。30 秒检查:在 setup 界面 "SearXNG URL" 填入地址,或检查数据卷里data/config.json的search.searxngURL字段。

现在你能做什么

Vane 已经跑在你自己的 SearXNG 搜索源上,每条答案背后的引用不再是黑箱。

延伸阅读:

  • 搜索核心实现:src/lib/searxng.ts
  • 搜索 API 文档:docs/API/SEARCH.md
  • 参考 SearXNG 配置:searxng/settings.yml

【免费下载链接】VaneVane is an AI-powered answering engine.项目地址: https://gitcode.com/GitHub_Trending/pe/Vane

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 2:26:28

用OLED给STM32做实时调试面板:告别串口日志的嵌入式调试方案

从串口屏到OLED小屏,我为什么坚持用这种方式做调试嵌入式调试这事儿,说难不难,说简单也不简单。刚入行那会儿我也跟大多数人一样,全靠串口打印,printf一梭子打出去,数据倒是有了,但脑子里得一边…

作者头像 李华
网站建设 2026/9/29 2:26:14

Java足球俱乐部管理系统实战:Spring Boot+MySQL落地指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 2:25:37

ZeroLaunch-rs字体调整:搜索结果显示优化

ZeroLaunch-rs字体调整:搜索结果显示优化 🎯 痛点分析:为什么需要字体优化? 还在为Windows应用启动器的搜索结果看不清而烦恼吗?ZeroLaunch-rs提供了强大的字体自定义功能,让搜索结果显示更加清晰、美观、个…

作者头像 李华
网站建设 2026/9/29 2:25:23

toyDB 架构指南:用 Rust 从零实现一个分布式 SQL 数据库

【免费下载链接】toydb Distributed SQL database in Rust, written as an educational project 项目地址: https://gitcode.com/gh_mirrors/to/toydb 点击查看 免费下载 toyDB 是一个以教学为目的、用 Rust 编写的分布式 SQL 数据库,其目标不是性能与规…

作者头像 李华
网站建设 2026/9/29 2:25:14

生成对抗网络GAN基础:原理与PyTorch实战实现

近几年生成模型发展很快,你可能常听到“AI 绘画”“人脸生成”“图像修复”这些词。背后有一个绕不开的基础模型——GAN,中文通常叫生成对抗网络(Generative Adversarial Network)。如果你刚进入深度学习的学习路线,看…

作者头像 李华