Vibe-Coding-4天开发AI知识管理App

Vibe Coding 4天开发AI知识管理App,我是如何做到的

4天、1个人、19000行代码、52个Tauri命令、190个自动化测试------这不是爽文,而是一个真实的Vibe Coding实战记录。本文将完整复盘整个开发过程,展示如何用AI辅助编程的全新方式,从零构建一个完整的AI知识管理桌面应用。


一、先说结论:什么是Vibe Coding

2025年初,Andrej Karpathy提出了一个概念------Vibe Coding:你只需要"感受"代码的风格,AI就能帮你完成具体的编码工作。

但"感受"这个词太模糊了。经过这次4天19000行代码的实战,我对Vibe Coding有了更落地的理解:

Vibe Coding = 文档先行 + AI编码 + 人把关

它不是让AI乱写代码,而是一种全新的开发范式:

  • 人负责:产品定义、架构设计、技术决策、质量把控
  • AI负责:代码实现、Bug修复、测试编写、文档同步

传统开发中,程序员70%的时间花在"把想法变成代码"上。Vibe Coding把这部分工作交给AI,人类程序员的角色从"代码工人"升级为"架构师+产品经理"。

二、4天做了什么:简库产品全貌

我开发的这个应用叫**「简库」**,是一个完全本地运行的AI驱动知识管理桌面工具。它的核心能力是一条完整的知识处理流水线:

复制代码
文件导入 → 文档解析 → AI素材提取 → AI摘要生成 → AI问答生成 → RAG智能检索

核心功能清单

功能模块 说明 状态
文件导入 支持16种文档格式(PDF/Word/PPT/Excel/MD/TXT等),多选批量导入 已完成
文档分类 纯规则引擎,16类自动分类(专利/论文/合同/标书/标准/会议纪要等) 已完成
AI素材提取 从文档中提取5类结构化知识单元(case/data/method/framework/conclusion) 已完成
AI摘要生成 基于素材自动生成文档摘要 已完成
AI问答生成 4维度学习问答(概念/方法/应用/洞察),支持AI评分 已完成
RAG智能问答 多轮对话,素材级混合检索(BM25+语义向量),来源引用 已完成
子知识库 一层平铺管理,搜索/问答按知识库范围过滤 已完成
系统托盘 最小化到托盘、单实例锁、双击唤醒 已完成

成果数据

先看一组数字:

指标 数据
总代码量 约19,000行
Tauri命令数 52个
自动化测试 190个(100%通过)
数据库迁移 13个SQL文件
支持文件格式 16种
Bug修复 30个(全部记录在案)
设计文档 20+篇
Git提交 17个

这不是一个玩具项目,而是一个有完整架构、测试覆盖、故障排查体系的生产级应用。

三、技术选型:每个选择都有理由

技术选型是Vibe Coding中人必须亲自把关的环节。AI可以帮你写代码,但选型决策需要人的经验判断。

为什么选Tauri 2而非Electron?

复制代码
对比维度    Tauri 2               Electron
打包大小    ~10MB(Rust原生)      ~150MB(Chromium)
内存占用    ~50MB                  ~300MB
启动速度    即时                   3-5秒
安全模型    Rust内存安全           V8沙箱
API能力     系统级API直接调用      Node.js桥接

对于一个本地知识管理工具,用户可能全天开着它。50MB vs 300MB的内存差异,意味着是否会影响用户其他工作。Tauri 2的Rust后端还能直接调用系统API,这对文件解析、进程管理(Ollama Sidecar)至关重要。

为什么Rust而非Go?

核心原因:Tauri 2的默认后端就是Rust。如果选Go,就需要通过sidecar方式调用Go程序,增加了进程间通信的复杂度。

Rust的另一个优势是内存安全和零成本抽象。在处理PDF解析、文本分段、向量计算等密集操作时,Rust的性能表现优秀。

为什么SQLite而非PostgreSQL?

这是一个桌面应用,不是Web服务。SQLite的优势:

  • 零配置:无需安装数据库服务,双击即用
  • 单文件:整个数据库就是一个.db文件,备份/迁移/分享都是复制文件
  • FTS5:内置全文搜索引擎,支持中文分词
  • WAL模式:读写不冲突,适合前端查询+后台Pipeline同时操作

为什么不用专用向量数据库(Milvus/Qdrant)?

桌面场景下,数据量通常在几百到几千条素材。SQLite BLOB存储向量 + Rust原生余弦相似度计算,完全够用。引入Milvus/Qdrant意味着用户需要额外安装和配置服务,违背了"开箱即用"的产品定位。

四、4天开发时间线

通过git log可以看到完整的开发节奏:

复制代码
Day 0    项目初始化提交(基础架构+文件导入+Pipeline骨架)
Day 1    核心Pipeline实现(素材提取→摘要→问答,完整4阶段)
Day 2    质量优化批次(P0-P2共19项优化任务)
Day 3    Excel支持+检索精度优化+远程LLM集成+子知识库
Day 4    发布准备(11项必须修复+8项应该修复+5项锦上添花)

关键洞察:Day 0的初始化提交已经包含了完整的架构设计。这不是边写边想,而是先花时间把架构想清楚,然后AI在这个清晰的架构上快速实现。

五、项目架构一览

复制代码
knowledge-app/
├── src/                          # React 前端(16个文件)
│   ├── components/               # 9个UI组件
│   └── lib/api.ts                 # 33个前端API封装
└── src-tauri/                    # Rust 后端
    ├── src/
    │   ├── commands/             # 52个Tauri命令(10个模块)
    │   ├── pipeline/             # 4阶段处理Pipeline
    │   ├── ai_service/           # Ollama客户端+进程管理
    │   ├── db/                   # 数据库层(13个文件)
    │   ├── qa/                   # RAG问答引擎
    │   ├── parser/               # 文件解析(6种格式)
    │   └── models/               # Rust数据模型
    └── migrations/               # 13个SQL迁移文件

核心架构是经典的分层设计:

复制代码
React前端 → Tauri Bridge(ipc) → Commands(API层) → Pipeline(业务层) → DB(数据层)
                                          ↕
                                    AiService(LLM集成)

六、系列预告

本系列共5篇,后续内容安排:

标题 核心内容
第2篇 架构先行------用AI对话式完成产品定义到技术架构 CLAUDE.md的核心作用、产品定义方法、数据库设计演进、API接口分层
第3篇 核心实现------Rust后端AI处理Pipeline与Ollama集成实战 4阶段Pipeline状态机、素材提取策略、Prompt工程、错误处理与容错
第4篇 RAG检索精度优化------从零命中到精准回答的三次迭代 CJK分词困境、三阶段检索策略、混合检索分数融合、向量存储方案
第5篇 方法论总结------CLAUDE.md驱动的人机协作与Vibe Coding最佳实践 30个Bug精选教训、测试策略、Vibe Coding边界、适合的项目特征

总结与互动

这篇开篇我们建立了一个基本认知:Vibe Coding不是让AI乱写代码,而是一种"人定义架构、AI实现细节"的高效协作模式。它的核心前提是------你必须先想清楚要做什么。

下一篇,我们将深入CLAUDE.md这个"项目大脑",看看如何在Vibe Coding中完成产品定义到技术架构的全流程设计。


💬 讨论话题

  1. 你在日常开发中使用AI辅助编码吗?效率提升有多大?
  2. 对于Tauri vs Electron的选型,你有什么不同看法?
  3. 你认为Vibe Coding适合什么规模的项目?

👍 觉得有用请点赞收藏,关注我获取更多Vibe Coding实战内容!

系列导航

  • 第1篇:Vibe Coding 4天开发AI知识管理App,我是如何做到的(本文)
  • 第2篇:架构先行------用AI对话式完成产品定义到技术架构(即将发布)
  • 第3篇:核心实现------Rust后端AI处理Pipeline与Ollama集成实战(即将发布)
  • 第4篇:RAG检索精度优化------从零命中到精准回答的三次迭代(即将发布)
  • 第5篇:方法论总结------CLAUDE.md驱动的人机协作与Vibe Coding最佳实践(即将发布)