ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

NoteGen 深度解析:本地优先 Markdown 笔记应用如何用 AI 完成“先记录、再整理“

NoteGen 深度解析:本地优先 Markdown 笔记应用如何用 AI 完成“先记录、再整理“ AI 应用桌面应用移动开发知识管理【免费下载链接】note-genCapture first. Organize later. A local-first Markdown app that turns scattered records into clear notes with AI.项目地址https://gitcode.com/GitHub_Trending/no/note-gen点击查看免费下载导读NoteGen 是一款本地优先、以 Markdown 文件为核心的跨平台笔记应用核心设计理念是先记录再整理Capture first. Organize later.有内容时先以最轻量的方式留下来需要时再借助 AI 把零散记录整理成结构清晰的笔记。本文以仓库中的 README.zh-CN.md 为骨架结合 src/、config/ 等目录下的真实源码实现从记录体系、编辑器、AI 与模型配置、知识库检索、画布工作区、多端同步六个维度展开读者将掌握 NoteGen 的设计思路、功能边界与源码级工作原理并可直接上手安装、配置与日常使用。NoteGen 的技术栈以 Next.js 15 React 19 Tauri 2 构建桌面与移动端见 package.json编辑器基于 TipTap 3.19 与 CodeMirror画布基于 xyflow/reactAI 层通过 OpenAI 兼容协议连接可自配模型。以下内容均以当前仓库实际代码为准。核心理念把记录和整理拆成两个阶段README 开篇就点明了产品哲学一个想法刚出现时往往只有一句话、一段录音、一张截图或者一个暂时没时间读的链接。此时要求用户先想好标题、目录和文章结构是对创作冲动最大的损耗。因此 NoteGen 将写作过程拆为两个独立阶段记录阶段有内容时先把它留下来不需要任何结构设计整理阶段需要时选出属于同一主题的记录组织成一篇结构清楚的 Markdown 笔记再继续修改、补充。在源码中记录与整理是两套独立的模块。记录侧位于 src/app/core/main/mark/其中control-*.tsx系列组件分别对应文本control-text.tsx、链接control-link.tsx、图片control-image.tsx、录音control-recording.tsx、扫描control-scan.tsx、待办control-todo.tsx和剪贴板clipboard.tsx等记录入口整理侧则通过organize-notes.tsx组件把选中的记录送入 AI 生成结构化笔记。这与 README 中记录不是一篇没写完的笔记它更像是写作之前的原材料的表述完全一致。NoteGen 如何工作四步工作流README 给出了完整的工作流程从仓库代码可以逐条印证其落地形态先把内容记录下来随手记一句话、录一段音、保存截图、图片、链接、文件或待办事项。对应mark目录下control-*系列记录控件以及 src/lib/web-capture/ 中的网页内容提取服务。挑选真正相关的材料按标签、时间或类型筛选记录。筛选逻辑实现在 src/app/core/main/mark/mark-filters.ts标签管理在 src/app/core/main/mark/tag-manage.tsx记录类型元数据定义在 src/app/core/main/mark/mark-type-meta.ts。把记录整理成笔记选择模板或直接描述想写什么AI 基于选中材料生成总结、报告、文章等结构化内容。入口为 src/app/core/main/mark/organize-notes.tsx。继续完成自己的写作在编辑器里检查、修改、补充。AI 生成的是草稿最终产物仍是一篇可自由编辑的 Markdown 文档编辑器实现见下文。四个步骤共同支撑起 README 中的真实使用场景开会时记录几句话、录一段音、截两张图会后统一整理成会议纪要阅读时先保存链接和摘录周末整理成主题笔记按标签筛选最近一周的记录快速准备周报围绕一个主题收集图片和文档再基于这些材料提问和写作。以普通 Markdown 文件为基础编辑器与工作区README 强调完成的笔记会以普通 Markdown 文件保存在自己选择的工作区中可以继续用 NoteGen 编辑也可以用其他 Markdown 编辑器打开放进 Git、复制、迁移和备份无需从专有格式导出。这正是 src/lib/markdown.ts、src/lib/markdown-file-link.ts 与 src/lib/files.ts 等文件管理模块存在的意义NoteGen 是在文件之外补充记录、AI、搜索和整理能力而不是把笔记锁进某个平台。编辑器支持的能力在源码中均有对应实现核心模块位于 src/app/core/main/editor/README 所述能力源码依据表格、任务列表、代码块TipTap 的extension-table、extension-task-list、extension-code-block见 package.json 依赖数学公式、图表、文章大纲src/lib/latex.tsKaTeX、src/lib/mermaid.ts、src/lib/outline-preferences.tsMarkdown 源码模式与可视化编辑CodeMirror 的codemirror/lang-markdown与 TipTap 双引擎文本查找与替换sereneinserenade/tiptap-search-and-replace与 CodeMirror search图片、附件、链接和文件引用src/lib/image-handler.ts、src/lib/markdown-media-path.ts导出与打印src-tauri/src/printing.rs、src/app/print/page.tsx文件历史和工作区管理src/app/core/main/file/ 下的文件树、src/lib/workspace.ts值得一提的细节工作区主界面采用可拖拽的三栏布局左侧记录/标签栏、中间编辑器、右侧扩展栏默认尺寸与各面板最小宽度定义在 src/app/core/main/page.tsx包括左栏最小 320px、右栏最小 280px、编辑器最小 400px 的约束布局记忆通过react-resizable-panels持久化。在需要时使用 AI模型体系与配置README 说明 NoteGen 可以连接你自己配置的 AI 服务与模型。聊天、写作、嵌入、图片识别、OCR 和音频任务可以分别选择模型。这一点在源码中体现得相当完整。按任务类型拆分模型从 src/app/model-config.ts 可以看到模型的modelType字段区分了chat对话/写作、embedding向量嵌入、stt语音转文字等类型配置样例中甚至出现了note-gen-vlm视觉语言模型的键名。这意味着主对话、快速补全、写作、知识库嵌入、图片识别、OCR、语音任务都可以指向不同的模型服务AI 能力调用集中在 src/lib/ai/ 目录其中 chat.ts、completion.ts、embedding.ts、translate.ts、rewrite.ts、description.ts、image-recognition.ts 与 src/lib/ocr.ts 分别对应各类任务。内置默认模型配置仓库config目录提供了开箱即用的模型清单也是理解模型配置格式的最佳样例config/notegen-default-models.json 定义了三个默认模型{ models: [ { id: note-gen-chat, model: Qwen/Qwen3-8B, modelType: chat, temperature: 0.7, topP: 1, enableStream: true }, { id: note-gen-embedding, model: BAAI/bge-m3, modelType: embedding }, { id: note-gen-vlm, model: Qwen/Qwen3.5-4B, modelType: chat } ] }而 config/notegen-model-policy.json 则定义了 NoteGen 内置免费/限量模型的策略limited档使用gpt-6-luna每日请求上限 200 次free档使用Qwen/Qwen3-8B。这些配置文件通过 config/config-manifest.json 声明版本号与远端下载地址由 src/lib/ai/notegen-default-models-runtime.ts 和 src/lib/ai/notegen-model-policy.ts 在运行时加载实现配置热更新。若想接入自己的服务只需在设置中按同样的apiKey / baseURL / models[]结构添加自定义 Provider 即可。AI 能做什么README 列出的 AI 能力在源码中均可找到落点把选中的记录整理成结构化笔记src/app/core/main/mark/organize-notes.tsx续写、缩写、扩写、润色或翻译src/lib/ai/rewrite.ts、src/lib/ai/translate.ts、src/lib/ai/condense.ts围绕笔记、记录、图片和知识库对话src/lib/ai/chat.ts、src/lib/chat-attachments.ts、src/lib/chat-image-context.ts回答问题前先检索本地材料见下一节知识库根据笔记生成图表和画布src/lib/canvas/ 下的chart-data.ts、mermaid.ts与 AI 输出解析逻辑使用 Agent 模式处理更长任务src/lib/agent/ 目录。README 特别强调AI 是写作过程中的工具不是最终作者。生成结果可以继续修改不满意的内容可以直接删掉——这与普通 Markdown 文件为基础的定位互为表里。让写过的内容重新派上用场知识库与混合检索很多笔记完成后就再也没有被打开过——针对这一痛点NoteGen 为工作区文件建立知识库把语义检索和本地文本搜索结合起来。发起对话时可以引用一篇笔记、一组记录或整个知识库而不必反复复制原文。知识库检索的主入口是 src/lib/knowledge-search.ts 的searchKnowledge函数底层依赖 src/lib/knowledge-index.ts、src/lib/knowledge-content.ts、src/lib/bm25.ts 与 src/lib/vector.ts 组成的索引体系。README 提到的高级工作流在仓库中对应如下模块高级能力源码模块向量索引与混合检索src/lib/vector.ts、src/lib/knowledge-search.ts、src/lib/folder-vector.ts自定义嵌入和重排序模型src/lib/ai/embedding.ts 设置中的模型选择长期记忆与可复用提示词src/lib/memory/含auto-memory.ts、consolidation.ts、src/stores/prompt.tsMCP 服务src/lib/mcp/客户端、工具注册、服务器管理可安装的 Skillssrc/lib/skills/解析、执行、运行时、远程安装处理笔记和文件的 Agent 工具src/lib/agent/tools/含 note-tools、mark-tools、editor-tools、canvas-tools、knowledge-tools、web-tools、memory-tools 等值得一提的是MCP 还提供了本地桥接实现src/components/local-mcp-bridge.tsxSkills 则带有独立运行时src/lib/skills/runtime.ts可以按需扩展检索与自动化能力。不只适合线性文档画布工作区有些内容用文章表达清楚有些则更适合画出来。NoteGen 提供独立的画布工作区支持流程图、思维导图、时间线、自由绘制、数据图表以及由笔记生成的可视化结构。画布模块位于 src/lib/canvas/流程图 / 思维导图底层为 xyflow/react 节点编辑器见 package.json 中xyflow/react依赖并提供 mermaid.ts 在 Mermaid 文本与画布结构之间转换时间线 / 自由绘制freehand.ts基于 perfect-freehand 实现手绘笔迹数据图表chart-data.ts 定义 AI 生成图表的 schema最多 8 个图表chart-appearance.ts 负责配色等外观由笔记生成AI 产出结构化描述后通过 templates.ts 与operations.ts落成画布节点。README 强调AI 生成的画布不会变成一张无法修改的图片其中的节点、文字和连线仍然可以继续编辑这是因为画布本身就是结构化节点数据file-format.ts 定义了持久化格式而非位图。按自己的方式同步多端多平台笔记默认保存在本地需要跨设备时可以选择自己信任的服务。README 列出六种同步后端源码中均有独立实现同步服务实现模块GitHubsrc/lib/sync/github.ts、src/lib/sync/github.types.tsGitLabsrc/lib/sync/gitlab.ts、src/lib/sync/gitlab.types.tsGiteesrc/lib/sync/gitee.ts、src/lib/sync/gitee.types.tsGiteasrc/lib/sync/gitea.ts、src/lib/sync/gitea.types.tsS3 兼容存储src/lib/sync/s3.tsWebDAVsrc/lib/sync/webdav.ts以 GitHub 为例src/lib/sync/github.ts 提供了uploadFile、getFiles、deleteFile、getFileCommits、checkSyncRepoState、createSyncRepo等完整 API覆盖了从鉴权、建仓到文件增删改查的完整链路src/lib/sync/provider-status.ts 则统一封装了各平台github / gitee / gitlab / gitea的连接检测与仓库状态检查配合 src/lib/sync/sync-manager.ts、src/lib/sync/auto-sync.ts 实现自动同步、冲突解决与提交信息生成src/lib/sync/commit-message.ts。不使用云同步时本地备份同样可行src/lib/backup/managed-backup.ts 与 src-tauri/src/backup.rs、src-tauri/src/backup_manager.rs 构成了备份体系。此外同步面板还支持 OneDrive 工作区src/lib/sync/onedrive.ts与自托管同步服务src/lib/self-hosted-sync/README 中的相关仓库也提到独立的 note-gen-server 同步服务仓库支持自行部署。下载与平台状态README 给出的各平台当前状态如下具体安装包请前往项目官网下载页获取平台当前状态WindowsBetamacOSBetaApple Silicon 或 Intel 版LinuxBetaAppImage、DEB 或 RPMAndroidAlpha · ARM64APKiOSAlphaTestFlight从仓库看多端构建均有对应配置src-tauri/tauri.conf.json桌面主配置、src-tauri/tauri.ios.conf.jsoniOS、src-tauri/ios-project.ymliOS 工程、src-tauri/tauri.macos-app-store.conf.jsonmacOS App Store且 src-tauri 目录同时包含 Androidnative-android/与 iOSnative-ocr/ios-vision/的原生代码印证了 README 中 Windows/macOS/Linux/Android/iOS 五端并进的规划。Rust 工具链版本由 rust-toolchain.toml 锁定。开始使用README 给出的上手路径非常轻量无需先完成所有配置就能写第一篇笔记根据自己的系统下载安装 NoteGen选择一个目录作为 Markdown 工作区添加第一条记录或者直接创建一篇笔记需要使用 AI 功能时再配置相应的模型服务可在设置中接入自己的 OpenAI 兼容服务或使用内置默认模型按需了解同步、知识库、MCP、Skills 等高级设置。如需从源码构建仓库 package.json 提供了完整的脚本pnpm dev以 Turbopack 在 3456 端口启动前端开发服务器pnpm build执行生产构建构建前会自动打包插件运行时plugin-runtime:build并清理 sourcemappnpm tauri进入 Tauri 命令。克隆仓库后依次执行pnpm install、pnpm dev即可在本机运行。需要注意的是前端构建依赖pnpm包管理器与 Node 环境桌面端打包依赖 Rust/Tauri 工具链。延伸阅读仓库生态README 的相关仓库一节介绍了围绕 NoteGen 的完整生态均可在对应的开源仓库中进一步研究仓库用途note-gen-docs官网、中英文使用文档与下载页面note-gen-server同步服务与账号管理支持自行部署note-gen-clipper浏览器剪藏扩展将选中文字、图片和网页链接保存到 NoteGennote-gen-plugin-sdk插件开发所需的 TypeScript API、项目脚手架、CLI 和测试工具note-gen-plugins官方插件源码与插件市场发布工具此外本仓库以 GPL v3.0 协议开源见 LICENSE贡献前可参考 scripts/ 中的插件契约与插件市场公钥检查脚本了解项目对插件生态的规范化管理。结语NoteGen 的全部核心能力——四步记录整理工作流、Markdown 文件本位、按任务拆分的 AI 模型体系、知识库混合检索、可编辑画布、六种以上同步后端——都能在仓库源码中找到一一对应的实现模块。它把记录与整理明确分层记录侧追求零摩擦整理侧借助 AI 和模板高效产出最终成果始终是可自由迁移的普通 Markdown 文件。对于希望研究本地优先 AI 笔记应用架构的开发者src/app/core/main界面层、src/lib业务层与 src-tauri/src原生层三层结构是清晰的学习范本。赞分享AI 应用桌面应用移动开发知识管理【免费下载链接】note-genCapture first. Organize later. A local-first Markdown app that turns scattered records into clear notes with AI.项目地址https://gitcode.com/GitHub_Trending/no/note-gen点击查看免费下载相关推荐ChatLab 为什么选择先整理再分析本地优先的聊天记录 AI 分析架构解析ChatLab 为什么选择先整理再分析本地优先的聊天记录 AI 分析架构解析 聊天记录里藏着大量有价值的信息——你和某人聊过什么、某个群最近在讨论什么、谁人工智能AI Agent数据分析桌面应用后端前端即时通讯MCP 服务本地部署Hyprnote终极本地优先AI会议笔记工具完整指南Hyprnote终极本地优先AI会议笔记工具完整指南 Hyprnote是一款本地优先且可扩展的AI会议笔记工具专为提升会议效率和信息管理而设计。它将强大的AAI 应用人工智能语音本地部署桌面应用音频ChatLab 为什么值得用 AI 分析聊天记录从「整包投喂」到「先整理、按需取数、本地优先」ChatLab 为什么值得用 AI 分析聊天记录从「整包投喂」到「先整理、按需取数、本地优先」 聊天记录里藏着大量有价值的信息——你和某人聊过什么、一个群组最人工智能AI Agent数据分析桌面应用后端前端即时通讯MCP 服务本地部署上一篇LeetCode 63 Unique Paths II 深度解析带障碍网格的四种动态规划解法与多语言实现下一篇24B参数多模态大模型Magistral 1.2发布消费级硬件开启本地化AI新纪元创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表