独立产品我做了一个本地AI搜索工具,今天正式开源了!

头像
dtsola
56阅读4评论

前言

花了一段时间,我终于把小遥搜索 XiaoyaoSearch做出来了。

这是一个支持语音、文本、图片多模态输入的本地AI搜索桌面应用。最特别的是,它100%通过Vibe Coding(AI辅助编程)实现,从零开始,所有源码、设计文档、开发经验,今天全部开源。

 我做了一个本地AI搜索工具,今天正式开源了!


为什么要做这个工具?

作为知识工作者,我经常遇到这些痛点:

  • 文件太多找不到:电脑里存了成千上万个文档、图片、音视频,想找个特定内容翻半天
  • 搜索不够智能:系统自带的搜索只能匹配文件名,搜不到文件内容
  • 隐私安全担忧:很多搜索工具要上传数据到云端,不太放心
  • AI工具太复杂:想用AI提升效率,但不会配置,门槛太高

所以我就想:能不能做一个本地运行的、支持多种输入方式的AI搜索工具?


小遥搜索是什么?

简单来说,它是一个本地AI搜索桌面应用,核心特点:

🎤 多模态输入

  • 语音搜索:点一下录音,说出你要找的内容,30秒内语音自动转文字搜索
  • 文本搜索:输入关键词,AI理解语义,精准匹配文件内容
  • 图片搜索:上传一张图片,AI理解图像内容,帮你搜索相关文件

🔍 深度检索

  • 文档:TXT、Markdown、Word、Excel、PPT、PDF 全文检索
  • 音视频:MP4、AVI、MP3、WAV 内容索引和搜索(支持10分钟内音视频字幕提取)
  • 文件名:传统的文件名搜索也不缺席

🧠 AI技术

集成了多个先进AI模型:

  • BGE-M3:文本嵌入,理解语义
  • FasterWhisper:语音识别,语音转文字
  • CN-CLIP:图像理解,以图搜图
  • Ollama:本地大语言模型

🔒 隐私安全

  • 完全本地:所有数据处理都在本地,不上传云端
  • 隐私模式:可选不记录搜索历史
  • 自主可控:数据完全由你自己掌控

核心界面一览

搜索主界面

 我做了一个本地AI搜索工具,今天正式开源了!

文本搜索

 我做了一个本地AI搜索工具,今天正式开源了!

语音搜索

 我做了一个本地AI搜索工具,今天正式开源了!

图片搜索

 我做了一个本地AI搜索工具,今天正式开源了!


技术架构

前端:Electron + Vue 3 + TypeScript
后端:Python 3.10 + FastAPI
AI引擎:BGE-M3 + FasterWhisper + CN-CLIP + Ollama
搜索:Faiss(向量搜索)+ Whoosh(全文搜索)
数据库:SQLite

系统架构图

 我做了一个本地AI搜索工具,今天正式开源了!


Vibe Coding 实践案例

这是我特别想分享的部分。

这个项目从零开始,完全通过Vibe Coding实现,包括:

  • ✅ 完整源代码(前端 + 后端 + 所有功能模块)
  • ✅ 设计文档(PRD、技术方案、数据库设计、API文档)
  • ✅ 开发流程(任务分解、进度跟踪、测试验证)
  • ✅ 部署配置(环境搭建、依赖管理、打包发布)

开源的价值:对于想要学习AI辅助开发、本地AI应用、Electron桌面应用的开发者,这是一个完整的参考实现。


🚀 快速开始

方式一:整合包部署(推荐普通用户)

适用人群:非开发者、希望快速体验小遥搜索的用户
支持平台:仅支持 Windows
部署难度:⭐ 简单(一键安装)

下载整合包

从百度网盘下载最新的 Windows 整合包:

请选择最新版本下载(如 XiaoyaoSearch-Windows-v1.1.1.zip

安装步骤

1. 解压整合包

将下载的压缩包解压到任意目录(建议不要包含中文路径)

2. 运行环境准备脚本

双击运行 scripts/setup.bat,脚本会自动完成以下操作:

  • 解压 Python 嵌入式运行时
  • 安装后端 Python 依赖
  • 安装前端 Node 依赖
  • 生成配置文件
  • 创建数据目录

3. 安装 Ollama

双击运行 runtime\ollama\OllamaSetup.exe,按提示完成安装。

安装完成后,打开命令行运行:

ollama serve
ollama pull qwen2.5:1.5b

4. 下载 AI 模型

从百度网盘下载默认模型:

将模型解压到对应目录:

  • data\models\embedding\BAAI\bge-m3\ - 嵌入模型
  • data\models\cn-clip\ - 视觉模型
  • data\models\faster-whisper\ - 语音识别模型

5. 启动应用

双击运行 scripts/startup.bat,脚本会:

  • 启动后端服务
  • 启动前端服务

方式二:开发者部署

适用人群:开发者、希望参与项目贡献的用户
支持平台:Windows / macOS / Linux
部署难度:⭐⭐⭐ 需要开发环境

环境要求

安装步骤

1. 克隆项目

git clone https://github.com/dtsola/xiaoyaosearch.git
cd xiaoyaosearch

2. 后端部署

# 进入后端目录
cd backend

# 安装依赖包(默认CPU版本的推理引擎)
pip install -r requirements.txt

# 安装faster-whisper
pip install faster-whisper

# 启用CUDA(可选,注意:cuda版本需根据环境确定)
pip uninstall torch torchaudio torchvision
pip install torch==2.1.0+cu121 torchaudio==2.1.0+cu121 torchvision==0.16.0+cu121 --index-url https://download.pytorch.org/whl/cu121

安装ffmpeg:
https://ffmpeg.org/download.html

安装ollama:
https://ollama.com/

配置 .env 文件:

# 数据配置
FAISS_INDEX_PATH=../data/indexes/faiss
WHOOSH_INDEX_PATH=../data/indexes/whoosh
DATABASE_PATH=../data/database/xiaoyao_search.db

# API配置
API_HOST=127.0.0.1
API_PORT=8000
API_RELOAD=true

# 日志配置
LOG_LEVEL=info
LOG_FILE=../data/logs/app.log

准备模型:
系统默认模型说明:

  • ollama:qwen2.5:1.5b
  • 嵌入模型:BAAI/bge-m3
  • 语音识别模型:Systran/faster-whisper-base
  • 视觉模型:OFA-Sys/chinese-clip-vit-base-patch16

注意:建议先准备默认模型,先成功启动应用后,再更换模型。

ollama模型:
ollama pull qwen2.5:1.5b (根据情况自行选择)

所有模型下载地址:(百度盘)
链接: https://pan.baidu.com/s/1jRcTztvjf8aiExUh6oayVg?pwd=ycr5 提取码: ycr5

嵌入模型:

  • 模型根目录:data/models/embedding

  • 将下载的模型直接解压放入到根目录即可,以下是对应关系

  • data/models/embedding/BAAI/bge-m3

  • data/models/embedding/BAAI/bge-small-zh

  • data/models/embedding/BAAI/bge-large-zh

语音识别模型:

  • 模型根目录:data/models/faster-whisper

  • 将下载的模型直接解压放入到根目录即可,以下是对应关系

  • data/models/faster-whisper/Systran/faster-whisper-base

  • data/models/faster-whisper/Systran/faster-whisper-small

  • data/models/faster-whisper/Systran/faster-whisper-medium

  • data/models/faster-whisper/Systran/faster-whisper-large-v3

视觉模型:

  • 模型根目录:data/models/cn-clip

  • 将下载的模型直接解压放入到根目录即可,以下是对应关系

  • data/models/cn-clip/OFA-Sys/chinese-clip-vit-base-patch16

  • data/models/cn-clip/OFA-Sys/chinese-clip-vit-large-patch14

启动后端服务:

# 使用内置配置启动
python main.py

# 或使用uvicorn启动
uvicorn main:app --host 127.0.0.1 --port 8000 --reload

3. 前端部署

# 进入前端目录
cd frontend

# 安装依赖
npm install

# 启动开发服务器
npm run dev

产品路线图

当前版本(v1.1.1)✅

  • 多模态AI搜索(语音、文本、图片)
  • 本地文件深度检索
  • AI模型灵活配置
  • 隐私安全保护

未来规划

🚀 微内核架构演进

插件化系统,支持自定义扩展

🌐 多数据源扩展

  • 文档协作平台(语雀、飞书、Notion)
  • 项目管理平台(Jira、禅道、GitHub)
  • 实时同步和智能缓存

🎬 音视频搜索增强

  • 视频画面内容理解和搜索
  • 长视频处理(集成水母平台)
  • 音频声纹识别和情感分析

🧠 RAG系统升级

  • 自适应分块算法
  • 知识图谱构建
  • 检索结果智能增强

💬 智能聊天助手

  • 多轮对话和上下文记忆
  • 基于本地知识库的问答

🔌 MCP能力集成

连接Claude生态,扩展AI能力

详细路线图:ROADMAP.md


适合谁使用?

知识工作者

搜索本地文档、笔记、研究报告,快速定位关键信息

内容创作者

搜索素材和灵感,整理音视频内容,管理创作资源

技术开发者

搜索代码库和技术文档,整理学习资料,管理项目文件

研究人员

搜索论文和研究资料,整理文献笔记,管理研究数据


邀请你参与

为什么需要你?

一个人的力量有限,开源社区的力量是无限的!

优先贡献方向

  1. 插件系统开发(高优先级)
  • 设计插件接口规范
  • 实现插件加载机制
  1. 多数据源连接器(高优先级)
  • 语雀、飞书、Notion API集成
  1. UI/UX优化(中优先级)
  • 搜索结果展示优化
  • 暗色模式支持
  1. 性能优化(中优先级)
  • 大文件处理优化
  • 索引构建速度提升
  1. 测试覆盖(中优先级)
  • 单元测试补充
  • 集成测试完善

如何贡献?

# 1. Fork 项目
# 2. 创建分支
git checkout -b feature/your-feature-name

# 3. 提交代码
git commit -m "feat: 添加XX功能"
git push origin feature/your-feature-name

# 4. 提交 Pull Request

贡献者权益

  • 📝 在贡献者列表中展示你的名字
  • 🏆 对项目有重大贡献者可成为核心维护者
  • 💼 优秀贡献者可获得推荐信或工作机会

项目地址

GitHubhttps://github.com/dtsola/xiaoyaosearch

欢迎:

  • ⭐️ Star 本项目,关注最新进展
  • 🍴 Fork 本项目,开始你的贡献
  • 👀 Watch 本项目,及时获取更新
  • 🐛 提Issue,报告问题和建议功能
  • 💡 参与讨论,分享你的想法

关于我

dtsola - IT解决方案架构师 | 一人公司实践者


开源协议

本项目采用小遥搜索软件授权协议

  • ✅ 免费使用(非商业用途)
  • ✅ 可以学习和研究代码
  • ✅ 可以修改后二次分发(需保留版权声明和协议)
  • ✅ 可以集成到其他非商业项目
  • ❌ 商业使用需授权

这是一个类似 CC-BY-NC-SA 的开源协议,鼓励学习、分享和贡献!

详细协议:LICENSE


结语

小遥搜索是我对本地AI搜索工具的一次探索和实践,也是Vibe Coding的完整案例展示。

我相信,开源社区的力量会让这个项目变得更好。

无论你是:

  • 🔨 想要贡献代码的开发者
  • 💡 想要提供建议的产品经理
  • 📖 想要学习AI应用的学生
  • 🚀 想要参与创业的伙伴

都欢迎加入我们,一起打造更好的本地AI搜索工具!

让我们一起,用AI技术改变知识管理方式! 🚀


点击访问GitHub项目

Made with ❤️ by dtsola


#独立开发者 #知识工作者 #知识库 #AI工具 #内容创作者 #一人公司 #ai搜索 #dify #ragflow #vibecoding

收藏
举报
精选评论
头像
等级0

通过ai进行搜索个人需求量不大,大佬有没有考虑增加一个根据ai进行文件整理的功能呢?比如根据描述把某些文件归档重命名之类的,看到你的项目突然想做这么一个功能,但是个人的技术栈跟你这个项目差别挺大,点了个start以后有空研究一下看能不能加上这种功能

哈哈哈,感谢反馈,你可以尝试一下;你所说的功能其实可以定位是 基于小遥搜索的 上层应用(也有不少用户提过类似的需求)。小遥搜索的定位就是搜索(可以是 多数据源 本地、语雀、飞书、浏览器、网盘等等 自己的数据源、多模态,视频、语音、图片、文档等),服务于知识库、智能体及其他上层应用。

感谢回复,我已经开始在做这么一个项目了,我准备完全使用ai给我生成。我加了你的开发者群,以后可以多交流。如果做出来了会在readme里面挂一个你这个项目的链接,用于感谢你给我提供了一个灵感来做这么一个工具,你不会介意吧?

头像
等级5

看到简单问题复杂化
只用Everything

版块详情

独立产品

1k 帖子
3k 评论
626 关注
请真诚分享你的个人作品的创作灵感、开发经验、运营过程等;不得只罗列产品功能来借机营销
版主
远程老司机/游牧旅居中/电鸭社区站长
远程全职推荐

扫码下载应用

下载APP以便及时收到回复或进展