新闻详情

新闻详情

首页 / 资讯中心 / 详情

2026-06-08-架构先行-用AI对话式完成产品定义到技术架构

发布时间:2026/9/27 19:37:12来源:尧图网络
2026-06-08-架构先行-用AI对话式完成产品定义到技术架构
架构先行用AI对话式完成产品定义到技术架构Vibe Coding不是让AI乱写代码而是先让AI帮你做架构设计。本文揭秘CLAUDE.md如何作为项目大脑驱动整个开发过程以及如何用对话式方式完成从产品愿景到数据库Schema的完整架构设计。一、CLAUDE.md项目的大脑在Vibe Coding中CLAUDE.md是最关键的角色。它不是一个简单的README而是整个项目的单一真相源Single Source of Truth。为什么需要CLAUDE.md想象一个场景你让AI帮你开发一个知识管理工具。如果每次对话都是从零开始AI会忘记上次的技术决策重复已经废弃的方案不知道哪些模块已完成、哪些待开发无法保证代码风格的一致性CLAUDE.md解决了这个问题。它是AI在每次对话开始时都会读取的项目上下文相当于给AI装了一个持久化的记忆。CLAUDE.md的核心结构1. 重要原则核心要求 ← 项目红线AI不可违反 2. 项目开发强制规范 ← 代码质量标准 3. 核心工作流 ← 探索→规划→实现→提交 4. 通用编码规范 ← 全语言统一规则 5. 项目概述 ← 一句话定位 6. 技术栈 ← 精确到版本号 7. 核心特性 ← 功能清单 8. 项目结构 ← 目录树 9. 项目相关设计文件 ← 20篇文档索引 10. 已知问题 优化状态 ← 30个问题追踪表关键设计第9节项目相关设计文件是一个索引表列出了20篇设计文档的路径、用途和适用场景。这让AI在需要深入某个模块时能精确定位到对应的文档。CLAUDE.md的三个核心作用作用一架构记忆## 技术栈 - 框架Tauri 2 Rust单进程双击即用 - 前端React 18 TypeScript TailwindCSS 4 - 数据库SQLiterusqlite 0.31 bundledFTS5全文搜索WAL模式 - 向量存储BLOB嵌入 Rust原生余弦相似度 - LLMqwen3.5:4b本地 api.enterprise.com/gpu/llm-397b远程397B MoE这些技术决策一旦确定就写入CLAUDE.md。后续所有开发都以这些决策为准AI不会擅自更换技术栈。作用二状态追踪| # | 问题 | 优先级 | 状态 | |----|---------------------------|--------|---------| | 1 | Layout.tsx 过重~800行 | P0 | ✅ 已完成 | | 13 | CJK BM25 AND查询过严 | Bug | ✅ 已修复 | | 29 | PPT逐页提取方案 | Feature | ❌ 已取消 |30个问题及其状态的完整追踪表确保AI始终了解项目的当前状态不会重复处理已解决的问题。作用三变更记录## 远程LLM模型支持 — 已完成 改动文件client.rs、settings_cmd.rs、qa.rs、service.rs... 模型选型结论397B非推理模型替代某27B推理模型504超时问题每次重大变更都会记录到CLAUDE.md形成完整的变更历史。二、产品定义阶段对话式设计Vibe Coding的产品定义不是一个人闭门造车而是通过与AI的对话式迭代完成的。第一步明确产品愿景“构建一个完全基于本地运行的AI驱动知识管理工具帮助用户从文档导入→素材提取→摘要生成→学习问答→智能问答形成完整的知识管理闭环。”这个愿景明确了三个关键决策本地运行数据隐私优先不联网AI驱动核心处理流程依赖LLM知识闭环不是简单的文件管理而是输入→提炼→巩固→检索的完整链路第二步定义目标用户用户画像 - 知识工作者需要处理大量文档快速提炼核心信息 - 个人学习者希望系统化管理学习资料通过问答巩固理解第三步核心功能拆解通过对话将产品愿景拆解为可实现的功能模块文件导入多选批量 ↓ 文档分类16类规则引擎 ↓ AI素材提取5类case/data/method/framework/conclusion ↓ AI摘要生成基于素材聚合 ↓ AI问答生成4维度概念/方法/应用/洞察 ↓ RAG智能问答多轮对话来源引用踩坑记录最初设计时把文件监听/自动扫描作为核心功能。实施后发现它会导致不需要的自动导入最终在lib.rs中注释掉约200行代码将其禁用。这个教训说明在产品定义阶段就要想清楚哪些功能是必要的哪些是有了更好的。三、技术方案设计分层架构架构设计是Vibe Coding中人主导AI辅助的核心环节。我定义了清晰的分层架构AI在这个框架内实现细节。模块架构┌─────────────────────────────────────────────────────┐ │ React 前端 │ │ ┌──────────┐ ┌──────────┐ ┌─────────────────────┐ │ │ │ 文件列表 │ │ 文件详情 │ │ 知识问答 │ │ │ └────┬─────┘ └────┬─────┘ └─────────┬───────────┘ │ │ ┌────▼────────────▼─────────────────▼───────────┐ │ │ │ api.ts (invoke 封装层) │ │ │ └───────────────────┬───────────────────────────┘ │ ├──────────────────────┼──────────────────────────────┤ │ Tauri Bridge (ipc) │ ├──────────────────────┼──────────────────────────────┤ │ Rust 后端 │ │ ┌──────────┐ ┌─────┴─────┐ ┌────────────────┐ │ │ │ commands │ │ pipeline │ │ ai_service │ │ │ │ 52命令 │ │ 4阶段处理 │ │ Ollama客户端 │ │ │ └────┬─────┘ └─────┬─────┘ └───────┬────────┘ │ │ ┌────▼──────────────▼────────────────▼────────┐ │ │ │ db (rusqlite FTS5) │ │ │ │ files │ materials │ embeddings │ questions │ │ │ └─────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────┘模块职责划分commands层API网关52个Tauri命令10个模块只做参数校验和调用转发不包含业务逻辑对应前端api.ts的33个函数pipeline层业务核心4阶段处理解析→素材提取→摘要→问答状态机驱动支持中断恢复每个阶段独立可单独触发ai_service层AI集成OllamaManager进程管理启动/停止/状态检测AiClientHTTP客户端chat/embed/extract/summaryOllamaSessionRAII生命周期管理ResourceMonitorCPU/内存检测延迟后台AI任务db层数据持久化13个文件覆盖所有业务表FTS5全文搜索 BLOB向量存储WAL模式读写不阻塞关键设计决策决策一commands层零业务逻辑// commands/qa.rs — 只做转发pubasyncfnqa_ask(app:AppHandle,state:State_,AppState,body:QaRequest)-ResultQaResponse,String{letunderstandingifai.provider()openai{None// 远程模式跳过LLM意图理解}else{ai.understand_query(body.question)?// 本地模式启用};// 检索、上下文构建、LLM调用全部在service层QaService::ask(conn,ai,body,understanding,body.kb_id)}好处前端可以直接映射到后端API接口契约清晰。决策二Pipeline状态与文件状态分离-- 文件主状态status: pending → processing → ready-- 素材子状态material_status: pending → extracting → extracted/error-- 摘要子状态summary_status: pending → generating → generated-- 问答子状态question_status: pending → generating → generated/failed好处每个子任务独立追踪中断恢复时可以精确续传。四、数据库设计13个迁移文件的演进数据库不是一次性设计完成的而是随着功能迭代逐步演进。迁移时间线001_init.sql ← 核心表files, file_contents, embeddings, FTS5 002_settings.sql ← 用户设置表 003_file_relations.sql ← 文件关联 004_questions.sql ← 问答表 005_materials.sql ← 素材表AI提取的结构化知识 006_status_tracking.sql ← Pipeline状态追踪列 007_qa_conversations.sql ← QA会话表 008_retry_count.sql ← 重试计数解决扫描PDF无限重试 009_materials_fts.sql ← 素材级FTS5搜索支持CJK字符级分词 010_indexes.sql ← 性能索引 011_is_table_content.sql ← 表格内容标记 012_knowledge_bases.sql ← 子知识库 013_reset_embeddings.sql ← 嵌入向量重置踩坑记录008_retry_count.sql差点导致应用崩溃。列在调试时已手动添加但迁移文件再次尝试ALTER TABLE ADD COLUMNSQLite不支持ADD COLUMN IF NOT EXISTS迁移框架ROLLBACK后应用启动失败。修复方案迁移SQL改为SELECT 1;空操作仅作为版本标记。核心表设计-- 文件表元数据引用不复制文件本身CREATETABLEfiles(idINTEGERPRIMARYKEY,pathTEXTNOTNULL,filenameTEXTNOTNULL,doc_typeTEXT,-- 16类分类statusTEXTDEFAULTpending,material_statusTEXT,-- 素材提取状态summary_statusTEXT,-- 摘要状态question_statusTEXT,-- 问答状态summaryTEXT,-- AI生成摘要kb_idINTEGER,-- 子知识库归属...);-- 素材表AI提取的结构化知识单元CREATETABLEmaterials(idINTEGERPRIMARYKEY,file_idINTEGERREFERENCESfiles(id),contentTEXTNOTNULL,content_typeTEXT,-- case/data/method/framework/conclusiontags_jsonTEXT,-- 行业标签confidenceREAL,-- AI置信度...);-- FTS5虚拟表素材级全文搜索CREATEVIRTUALTABLEmaterials_ftsUSINGfts5(content,contentmaterials,content_rowidmaterial_id);五、API接口设计52个命令的分层组织52个Tauri命令按功能域组织为10个模块commands/ ├── files.rs ← 文件导入/列表/删除4个命令 ├── material.rs ← 素材操作3个命令 ├── summary.rs ← 摘要操作2个命令 ├── question.rs ← 问答操作4个命令 ├── qa.rs ← RAG问答2个命令 ├── search.rs ← 搜索3个命令 ├── knowledge.rs ← 知识图谱10个命令未编译 ├── dashboard.rs ← 仪表盘4个命令未编译 ├── kb.rs ← 子知识库4个命令 ├── settings_cmd.rs ← 设置5个命令 ├── classification.rs ← 分类3个命令 └── library.rs ← 文件库管理4个命令设计原则每个模块对应一个前端页面/功能命令粒度适中一个操作一个命令不过度拆分参数校验在commands层完成下游只处理已验证数据六、设计文档体系20篇文档的作用在整个开发过程中我维护了20篇设计文档每篇文档有明确的用途文档类型示例作用产品架构说明文档.md整体架构、模块设计、数据流数据库设计数据库Schema设计.md21个业务表DDL、ER图API接口API接口文档.md52个命令的完整签名优化方案项目优化方案.mdP0-P2三批优化任务质量优化素材与问答质量优化方案.md8项质量优化故障排查故障排查记录.md30个问题根因与修复检索优化QA检索精度优化方案.mdP0-P2六项检索优化发布清单发布工作清单.md必须/应该/锦上添花关键经验这些文档不是写完就放的。每完成一个优化或修复一个Bug对应的文档会同步更新。CLAUDE.md作为索引确保AI能快速定位到需要的文档。总结与互动本文展示了Vibe Coding中先设计后编码的方法论。核心理念是文档先行产品定义→技术方案→API设计→数据库Schema全部文档化后再动手写代码CLAUDE.md作为项目大脑架构记忆、决策记录、状态追踪的单一真相源增量演进数据库13个迁移文件设计文档20篇随功能迭代逐步完善下一篇我们将深入核心技术实现——Rust后端的4阶段AI处理Pipeline看看状态机设计、Prompt工程、错误处理等关键实现细节。讨论话题你在项目中是否使用过类似的项目大脑文档效果如何对于文档先行的开发方式你觉得最大的挑战是什么分层架构中commands层零业务逻辑的实践你在项目中如何处理 觉得有用请点赞收藏关注我获取更多Vibe Coding实战内容
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

避开3个建站报价陷阱,搞懂网站显示数据真相 2026/9/28 5:59:11

避开3个建站报价陷阱,搞懂网站显示数据真相

避开3个建站报价陷阱,搞懂网站显示数据真相 找建站公司,最怕听到“打包价”三个字。很多老板拿着预算去谈,对方拍胸脯说“全包”,结果上线后才发现,数据看板要加钱,后台接口要加钱,甚至最基本的页面刷新都要另算。这种 建站报价…

阅读更多 →
3D点云语义分割中的注意力机制落地实践 2026/9/28 5:58:51

3D点云语义分割中的注意力机制落地实践

简介:本资源是一份面向深度学习与三维视觉方向研究者及工程开发者的优质实战项目,聚焦于提升3D点云语义分割性能,通过融合空间注意力与通道注意力机制优化特征提取能力,有效应对点云数据非结构化、稀疏性与几何复杂性等核心挑战&a…

阅读更多 →
CMake引入第三方库的三种方式:以EnTT为例的实战指南 2026/9/28 5:58:51

CMake引入第三方库的三种方式:以EnTT为例的实战指南

1. 先想清楚:第三方库的“形态”决定了引入方式我见过不少人卡在CMake引入库这件事上,上来就是一句“为什么我加了include目录还是编译不过”,其实问题的根源往往不在include,而在于你对这个库的定位没有搞清楚。说白了&#xff0…

阅读更多 →
Flutter+鸿蒙实战:实时蔬菜价格查询系统的架构与踩坑指南 2026/9/28 5:58:51

Flutter+鸿蒙实战:实时蔬菜价格查询系统的架构与踩坑指南

一个“Flutter 鸿蒙”的实时蔬菜价格查询项目,真正做起来之后,你会发现它远不是一个“查价格”的玩具。跨平台是果,实时数据链路才是因;鸿蒙是壳,状态管理和平台适配才是魂。这篇文章我按下实战的步骤,拆解…

阅读更多 →
服务器文件备份到阿里云OSS:ossutil增量同步与定时任务完整指南 2026/9/28 5:58:51

服务器文件备份到阿里云OSS:ossutil增量同步与定时任务完整指南

总有朋友问我:自己在第三方机房、托管服务器或者别家云主机上放着大量数据,想把文件定期备份到阿里云OSS,到底怎么搞?这个问题看起来简单,真操作起来却是“处处是坑”。我前前后后帮人搭过好几套备份链路,踩…

阅读更多 →
双目视觉+YOLO实现三维目标检测与测距 2026/9/28 5:58:51

双目视觉+YOLO实现三维目标检测与测距

简介:本资源是一套基于Python实现的双目视觉测距与YOLO物体检测融合系统,面向计算机视觉初学者、毕设学生及嵌入式/机器人方向实践者,解决视频流中实时目标定位与三维距离估算的核心问题,适用于无人驾驶感知模块验证、智能小车避障…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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