📌 项目地址ItzCrazyKns/Vane | ⭐ 35,005 颗星 | 🔧 TypeScript | 📜 MIT

前阵子想查“失眠 治疗”的循证方法,但我既不想把搜索词喂给Google(它拿去做广告匹配),也不想把医疗查询发给ChatGPT(数据训练不知道会存多久)。找了半天,发现Vane这个项目正好解决了这个问题——在你自己硬件上跑一个AI搜索引擎,搜索用SearxNG(不给任何引擎留cookie),回答用你指定的AI模型,本地或云端随便选。

它有35005个star(2025年3月数据),仓库用TypeScript写,MIT许可。我花了一顿饭的时间部署完,做了几轮实测,下面讲清楚它的架构逻辑、你该选哪个模式、以及哪些地方还差点意思。

搜索层:SearxNG调度,不绑定任何一家

Vane默认用SearxNG做元搜索。SearxNG自己收集Google、Bing、DuckDuckGo等多个后端的结果,去重排序后返回。它不设追踪cookie,不记录你的查询IP或历史。README提到后续会支持Tavily和Exa,但目前只有SearxNG可用。

你可以在Vane设置里切换搜索源:只搜网页、只搜论坛讨论(比如Reddit)、只搜学术论文。我查一个Python协程的bug时选了“讨论”,直接看到Stack Overflow的踩坑帖,比全局搜索快得多。这个源切换是在Vane UI里做的,不是手敲site:语法。

回答层:AI模型任选,隐私成本一目了然

在Vane的设置下拉菜单里,你可以切换:

  • 本地:Ollama。数据完全不离开你机器。我用自己16GB笔记本跑Qwen2.5-7B,回答质量接近GPT-3.5,但生成速度慢,一次回答要15秒左右。
  • 云端:OpenAI、Claude、Gemini、Groq。Vane自己不记录查询,但你的查询内容会经过这些服务商——你用GPT-4o,搜索词就是直接发给OpenAI的。没有中间代理,隐私取舍很透明。

搜索层和回答层可以自由组合:用SearxNG搜知乎,本地模型总结;或者用SearxNG搜论文,Claude解析。两层之间的数据只有Vane前端转发,不经过Vane自己的后端(后端就是SearxNG+你选择的AI)。

三种搜索模式,对应不同时间投入

Vane预设了三个模式,核心区别在于AI看了多少搜索来源后再回答。我分别测了同一个问题“Transformer为什么用缩放点积而不是直接点积”。

  • Speed Mode:只抓2-3个来源,回答最快。5-8秒出答案,讲”避免梯度爆炸“,够用,但只有一个引用链接。
  • Balanced Mode:抓5-7个来源,默认选项。10秒左右,从数值稳定性和梯度溢出两个角度解释,每个论点后面标了来源。日常查API用法、技术概念用这个。
  • Quality Mode:抓十几个来源,还要多轮整合。花了15秒,不仅说了缩放原因,还对比了其他归一化方案,引用格式也更像论文。做技术调研或论文综述时值得等这几秒。

注意:这三个模式只影响AI的检索深度,不影响搜索层本身。你用哪个模式,搜索引擎列表都一样(SearxNG)。模式切换后,Vane会用不同的prompt告诉AI”你多抓几个结果再回答“。

几个值得试的设计细节

Widgets(小部件)
搜索“巴黎天气”弹出温度卡片,搜“2的10次方”出计算结果,搜“AAPL”显示实时股价曲线。数据来自SearxNG抓的公开API,不依赖第三方付费接口。目前只有天气、计算、股票三类,数量有限,但够高频。

文件上传问答
拖入PDF问“这篇论文用的数据集是哪个”,它会定位到Methods章节回答,不是全文盲扫。支持PDF、文本文件、图片(如果模型支持多模态,则走OCR+图像理解)。搜到的内容和上传的文件可以同时被AI看到,相当于交叉引用。我传入一份10页的Python文档,问“装饰器的最佳实践”,它引用了文档第8页的两个例子。

限定域名搜索
在Vane搜索框里直接输入type safety site:typescriptlang.org,结果只来自TypeScript官方文档。底层是SearxNG支持site:语法,但Vane的UI没有单独做按钮,需要你手动敲。翻手册、查issue时特别好用。

Discover(发现功能)
首页展示当天热门文章。来源是搜索引擎聚合的,没有算法推荐,本质是个随机新闻流。我偶尔打开看看,比刷推荐流少了很多“猜你喜欢”的抗拒感。但文章质量参差不齐,来自一些小众博客。

搜索历史存本地
存在浏览器IndexedDB里,不经过任何服务器。换台电脑就看不到历史。如果你需要跨设备同步,只能用云端AI模型,但历史仍留在原设备。

部署:Docker最快,20分钟完成

README顶部有Docker Hub链接(itzcrazykns1337/vane)。我推荐用Docker Compose,配置环境变量(至少需要AI模型的API key或Ollama地址),启动容器大约20分钟。架构文档在docs/architecture/目录下,写得挺清楚。

如果不喜欢Docker,可以本地构建。仓库用TypeScript写,但README没有列出npm install的具体步骤——想本地跑直接去看docs/architecture或者进官方Discord问。我推荐Docker,省去环境依赖。

实际缺点

中文搜索效果偏弱。 SearxNG抓中文结果的效率不如谷歌,偶尔混入不相关的英文页面。我试了“失眠 治疗”,第一条结果是英文wikiHow。解决办法是在查询里加中文站点限制,比如失眠 恢复 site:zhihu.com

Widgets种类太少。 只有天气、计算、股票三个。如果能加单位换算、词典、时区转换,会更实用。官方Discord说社区在讨论,但没定排期。

本地模型需要常开机器。 用Ollama跑模型,电脑必须一直开机。用云端模型则不需要,但隐私打折扣。

官方文档侧重架构而非操作。 README没有一步步的截图教程。第一次部署如果有问题,去Discord问最快,社区挺活跃的。

值不值得花一小时部署

如果你对搜索引擎的追踪感到烦躁,或者你经常做需要交叉验证的技术研究(写文章、查论文综述),Vane解决了一个具体问题:用AI总结搜索内容时,不必把每个搜索词都送给大公司。搜索归你,回答归你,选择权也归你。花一顿饭的时间部署一下,值得。

如果你只是日常快速搜索(查菜谱、看新闻),那直接浏览器默认搜索就行,没必要折腾。

这篇文章对你有帮助吗?

发表回复