新闻详情

新闻详情

首页 / 资讯中心 / 详情

Vane|接入外部 SearXNG 实例,为 AI 问答构建检索底座

发布时间:2026/9/29 2:34:51来源:尧图网络
Vane|接入外部 SearXNG 实例,为 AI 问答构建检索底座
Vane接入外部 SearXNG 实例为 AI 问答构建检索底座【免费下载链接】VaneVane is an AI-powered answering engine.项目地址: https://gitcode.com/GitHub_Trending/pe/VaneVane 里提了个问题答案却没有任何来源引用或者搜索步骤卡了 10 秒后直接报错——这类现象基本都不是模型的问题而是它依赖的 SearXNG 实例没有配置到位。Vane 是一个 AI 驱动的问答引擎它的检索层不直接对接任何上游搜索引擎所有 web/学术/社区搜索都收口到一个 SearXNG 实例的 JSON API 上。地址配错、JSON 输出没开、超时被打断三件事决定了搜索结果能否进入回答生成的上下文。接入 SearXNG 实例并开启 JSON 输出SearXNG 是一个开源元搜索引擎把 Google、Bing、Wikipedia 等多个上游源聚合为单一查询接口Vane 的 researcher agent 只跟这个接口说话。两者的分工如下维度未配置 SearXNG配置完成后sources: [web]等检索源请求直接失败或无结果经 SearXNG 聚合多引擎返回结果上游引擎的增删无法影响通过 SearXNG 侧配置即可调整部署依赖仅 Vane 服务Vane 一个可达的 SearXNG 实例仓库在 searxng/ 目录下只提供了 SearXNG 的配置模板服务本身需要独立部署。拿到可访问的实例后有两处必须确认。第一步确认 SearXNG 允许 JSON 输出。Vane 的请求固定携带formatjson参数实例没放行这个格式时请求会被直接拒绝# searxng/settings.yml search: formats: - html - json第二步把实例地址写进 Vane 的配置。设置面板的 Search 分区里有一个 SearXNG URL 字段占位提示为http://localhost:4000也可以通过环境变量SEARXNG_API_URL注入SEARXNG_API_URLhttp://localhost:4000 yarn dev配好后不经过 Vane直接验证 SearXNG 自身curl http://localhost:4000/search?qtestformatjson返回 JSON 而不是 HTML 或 403说明检索底座就绪。拆解 URL 来源、超时与请求参数URL 的读取逻辑在 src/lib/config/index.ts 和 src/lib/config/serverRegistry.ts 里实际跑起来之后会发现环境变量并不是最终来源。设计意图上data/config.json是唯一持久化的配置源SEARXNG_API_URL只在config.json中该字段为空时填充一次初始值initializeFromEnv中有!this.currentConfig.search[f.key]的判断。怎么改在设置面板里改 SearXNG URL 后值会写回config.json。改了之后的行为变化此后重启时环境变量不再被读取面板里的值长期生效想切回环境变量控制必须先把面板里清空。超时行为集中在 src/lib/searxng.ts 的searchSearxng每次请求挂一个AbortController10 秒未返回即 abort 并抛出SearXNG search timed out。设计意图是让慢引擎不至于拖死整个研究会话。怎么改这个值是写死的不能通过配置调整真正能改的是 SearXNG 侧启用的上游引擎数量和实例缓存策略——上游引擎越多、无缓存冷启动时单次/search越容易逼近 10 秒。改了之后的行为变化上游引擎收敛后同一查询的 P95 延迟下降超时异常消失。请求参数的透传也在同一函数里categories、engines、language、pageno四个选项会被序列化进 query string数组用逗号连接。也就是说 Vane 目前把用哪些引擎、搜哪类内容的决定权留给了调用方参数而 researcher agent 在 src/lib/agents/search/researcher/actions/search/webSearch.ts 中生成的是纯关键词查询不传engines限制——引擎选择完全由你的 SearXNG 实例配置决定。端到端验证一次带引用的检索配置无误后用 docs/API/SEARCH.md 定义的/api/search端点做一次完整链路验证。该端点接收查询、检索源和模型参数内部由 API Search Agent 执行检索→排序→生成全流程curl -X POST http://localhost:3000/api/search \ -H Content-Type: application/json \ -d { chatModel: {providerId: provider-uuid, key: gpt-4o-mini}, embeddingModel: {providerId: provider-uuid, key: text-embedding-3-large}, sources: [web], query: What is Kimi K2?, optimizationMode: balanced, stream: false }其中providerId是 UUID需先GET /api/providers获取optimizationMode影响的是 researcher 调用web_search的轮次speed只许调一次quality要求至少 5-6 轮不改变单次 SearXNG 请求的内容。预期响应为{ message: Kimi K2 is a state-of-the-art LLM ... [1][3], sources: [ { content: Vane is an open-source AI-powered search ..., metadata: {title: What is Vane ..., url: https://...} } ] }message里的[1][3]是引用标记下标对应sources数组的位次——能稳定产出带下标的回答和可追溯的来源列表才算整条 SearXNG 链路验证通过。排查超时、拒绝与空结果现象curl 直接请求/search?formatjson返回 403 或 400。根因settings.yml的search.formats未包含jsonSearXNG 拒绝该输出格式。动作按前文补上json并重启实例再复测。现象Vane 日志报SearXNG search timed out。根因searchSearxng内 10 秒的AbortController触发通常是上游引擎过多或实例冷启动。动作收敛 SearXNG 侧启用的引擎数量确认实例预热后复测这是代码内写死的上限改 Vane 配置无法绕过。现象偶发 429同一实例浏览器里正常。根因仓库模板 searxng/limiter.toml 开启了botdetection.ip_limit且link_token true服务端客户端不携带 link token被限流器判定为机器人。动作在 limiter 配置中放宽对服务器出口 IP 的规则或关闭 link_token 要求。现象改了SEARXNG_API_URL重启后仍指向旧实例。根因config.json里已有面板写入的值环境变量只在字段为空时填充。动作以设置面板里的 SearXNG URL 为准或清空面板值让环境变量重新生效。深入源码与 API下一步可以按两条线展开读 docs/architecture/WORKING.md 理解检索结果如何进入 embedding 排序和回答生成的完整流水线或从 src/lib/agents/search/ 的 researcher actions 入手看web_search、academic_search、social_search如何按sources参数动态启用。现在就可以动手把 SearXNG 实例地址填入设置面板的 Search 分区用前文的 curl 命令打一次/api/search确认响应里出现带下标的message和对应sources。【免费下载链接】VaneVane is an AI-powered answering engine.项目地址: https://gitcode.com/GitHub_Trending/pe/Vane创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

揭开3G开关:如何将32位.NET应用内存上限从2GB提升至4GB 2026/9/29 3:27:37

揭开3G开关:如何将32位.NET应用内存上限从2GB提升至4GB

/* 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 3:27:37

高可靠芯片烧录零缺陷:六大失效路径与全流程管控方法

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

阅读更多 →
绝区零一条龙(ZenlessZoneZero-OneDragon)通知配置体系全解析:二维配置语义、运行时读取链路与旧版迁移实现 2026/9/29 3:27:31

绝区零一条龙(ZenlessZoneZero-OneDragon)通知配置体系全解析:二维配置语义、运行时读取链路与旧版迁移实现

桌面应用RPA计算机视觉 【免费下载链接】ZenlessZoneZero-OneDragon 绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄 项目地址: https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon 点击查看 免费下载 本文以 OneDragon 项目&…

阅读更多 →
序列化 与 反序列化 解读 2026/9/29 3:27:31

序列化 与 反序列化 解读

前言:做工具开发的小伙伴,对序列化和反序列化应该很熟悉,几乎每天打交道。本文,我们一起入个门。 目录 一、概念 二、为什么需要序列化 三、代码示例 一、概念 序列化是这样一个过程:将内存中的数据或对象转化为可…

阅读更多 →
axure9.0中“每项加载时”替代方法 2026/9/29 3:27:31

axure9.0中“每项加载时”替代方法

方案一:使用“添加筛选”“移除筛选”(推荐,最简单)利用“添加筛选”和“移除筛选”来强制中继器重新计算,从而触发“每项加载时”事件。操作步骤:在“上一步”按钮的“鼠标单击时”用例中,在“…

阅读更多 →
phpcms v9 后端全新升级,支持php8.3 2026/9/29 3:27:31

phpcms v9 后端全新升级,支持php8.3

phpcms v9 全新升级,支持Apache/2.4.37 PHP/8.3.31,界面也做全面升级,前端代码跟以前一样的方法调用,全面支持目录伪静态

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉