乐于分享
好东西不私藏

笔触AI创作软件技术选型深度解析

笔触AI创作软件技术选型深度解析

一款融合AI、本地优先、隐私安全的现代化写作软件,其技术栈是如何炼成的?

引言

在AI大模型蓬勃发展的今天,将AI能力无缝集成到日常创作工具中已成为开发者的热门方向。我们团队正在开发的“笔触”软件,正是一款旨在赋能写作者、内容创作者的AI辅助工具——支持小说创作、公众号文章、小红书图文、视频脚本等多种内容类型,通过智能体动态理解用户意图,自动生成高质量内容。

作为一款桌面端应用,“笔触”需要在跨平台、性能、安全、AI能力、开发效率之间找到最佳平衡。本文将深入解析“笔触”的技术选型,分享我们在Electron、Vue、AI集成、数据存储等方面的思考与实践,希望能为正在构思类似项目的开发者提供参考。

一、核心架构:稳中求进,现代而不激进

客户端框架:Electron

选型理由:跨平台、成熟生态、可复用Web技术栈。Electron允许我们使用HTML/CSS/JavaScript构建桌面应用,一次开发,打包成Windows、macOS、Linux安装包。对于需要深度访问操作系统(如文件系统、系统托盘、自动更新)的创作软件,Electron是稳妥之选。

版本:使用最新稳定版,享受性能改进和安全性更新。

前端框架:Vue 3 + TypeScript

选型理由:Vue 3的Composition API带来更好的逻辑复用与类型推断,配合<script setup>语法,代码简洁且易于维护。TypeScript提供全栈类型安全,减少运行时错误,提升协作效率。

构建工具:Vite,极速启动与热更新,开发体验极佳。

UI组件库与状态管理

  • • Naive UI:一款高质量的Vue 3组件库,内置深色主题,与TypeScript完美集成,组件丰富且API设计友好。
  • • Pinia:Vue官方推荐的状态管理库,与Composition API无缝衔接,模块化清晰。
  • • Vue Router:管理多页面视图(如作品列表、编辑器、设置页)。

二、Electron主进程:安全隔离,服务化设计

Electron的架构核心是主进程(Node环境)与渲染进程(浏览器环境)的分离。我们严格遵循安全最佳实践:渲染进程通过预加载脚本(preload.ts)调用主进程暴露的有限API,所有敏感操作(文件读写、数据库访问、密钥管理)均封装在主进程的服务模块中。

关键服务模块

服务
技术
职责
IPC通信
ipcMain

 + contextBridge
定义安全API,如window.electronAPI.work.save
配置管理
electron-store
存储窗口大小、主题、最近打开文件等用户偏好
密钥管理
基于Electron safeStorage自封装
加密存储大模型API密钥,保证安全且减少原生依赖
日志系统
winston
分级日志,同时输出到文件和控制台,便于排查问题
文件服务
Node.js fs模块
读写Markdown文档,管理用户工作目录
开发辅助
child_process
在开发模式下同时启动Vite与Electron

三、数据存储:三层架构,各司其职

SQLite:结构化元数据与流程持久化

选型理由:轻量、嵌入式、单文件,无需独立服务,完美契合桌面应用场景。使用better-sqlite3驱动,性能优异且API同步易用。

存储内容:

  • • 作品元数据(标题、类型、风格、标签等)
  • • 角色关系表(支持历史版本追溯)
  • • 智能体流程实例(flow_instances),保存创作状态

LanceDB:向量数据库,语义检索的基石

选型理由:嵌入式向量数据库,基于列存储,查询性能极高,支持复杂元数据过滤。与Electron主进程无缝集成(通过vectordb npm包)。

存储内容:

  • • 文本片段的向量嵌入(使用本地BGE模型生成)
  • • 元数据关联(所属作品、章节、角色等)

应用场景:AI创作时检索相似段落,保持风格一致;用户灵感搜索;情节连贯性检测。

四、AI与智能体:轻量自研,灵活可控

我们不希望被某个特定AI框架(如LangChain)锁定,因此决定在核心部分自研一套轻量级智能体系统,同时保持对多模型的支持。

LLM服务封装

class LLMService {  async chat(messages: { role: string; content: string }[], options?: any): Promise<string> {    // 根据配置选择 DeepSeek、OpenAI 等    // 从加密存储获取API Key    // 调用 HTTP 客户端(axios)  }}

支持DeepSeek、OpenAI、智谱等主流模型,通过配置切换。

本地嵌入模型

使用@xenova/transformers,在用户设备本地运行BGE系列中英文嵌入模型(量化版本,约300MB),实现完全离线的语义向量生成。

优势:隐私安全、零延迟、无API费用。

动态智能体系统

用户通过自然语言描述创作需求(如“写一篇创业经验分享的公众号文章”),系统自动识别意图,路由到对应工作流。

  • • 意图识别器:调用LLM分析用户输入,输出结构化JSON(动作类型、创作类型、主题等)。若信息不足,自动启动多轮对话引导。
  • • 工作流定义库:JSON格式,每个创作类型对应一个流程定义(如新建公众号文章、为已有作品添加章节)。节点支持LLM调用、工具调用(如向量检索)、流程控制(foreach)。
  • • 模板管理器:从服务器增量下载提示词模板,支持多语言。模板中包含占位符(如{{topic}}{{genre}}),运行时结合作品元信息动态生成最终提示词。
  • • 动态提示词生成器:根据模板ID、作品元数据、上下文变量替换占位符,生成适配当前场景的提示词。

优势:无需为每个创作类型编写硬编码逻辑,新增类型只需添加工作流定义和模板,即可无缝扩展。

五、工具链与支持库

  • • Markdown渲染marked,轻量且生态丰富,支持代码高亮扩展。
  • • 数据验证zod,在IPC边界、配置加载等场景进行运行时类型检查。
  • • 唯一IDuuid,用于流程实例、会话等。
  • • HTTP客户端axios,封装LLM API调用。
  • • 打包与分发electron-builder,配置简单,支持NSIS、dmg、AppImage等格式。
  • • 自动更新electron-updater,实现增量更新。
  • • 测试Vitest(单元测试)、Playwright(E2E测试),保证代码质量。
  • • 开发协调concurrently + wait-on,同时启动Vite和Electron。

六、开发环境与部署

  • • Node.js:18+(推荐20 LTS)
  • • 包管理器:pnpm(硬链接节省磁盘,依赖解析快)
  • • Python:3.11(用于编译部分原生模块,如better-sqlite3
  • • 构建输出:支持Windows(x64/arm64)、macOS(x64/arm64)、Linux(可选)
  • • 安装包大小:通过优化(如量化模型、按需打包)控制在合理范围

七、总结:本地优先、隐私安全、可扩展

“笔触”的技术选型贯穿了三个核心原则:

  1. 1. 本地优先:所有用户数据(作品、向量、配置)均存储在用户设备,无需云服务,保护隐私。
  2. 2. 隐私安全:API密钥使用操作系统加密存储,LLM调用只在用户主动触发时进行;本地嵌入模型确保语义计算不离开设备。
  3. 3. 可扩展:基于工作流定义的智能体系统,新增创作类型只需添加模板和流程定义;工具集可插拔,未来可集成图像生成、音频处理等功能。

这套技术栈既保证了开发效率,又兼顾了用户体验和长期可维护性,为“笔触”成为一款强大的AI创作伙伴奠定了坚实基础。

如果你也对类似项目感兴趣,或想探讨某个技术点的实现细节,欢迎留言交流!

邀请你:一起打磨真正属于写作者的AI

目前“笔触”还在开发中,正在邀请第一批种子用户内测。

如果你是:

  • • 公众号/自媒体运营者,每天为日更发愁,又不想丢掉个人风格
  • • 小说作者,经常卡文,希望有个助手能顺着你的风格续写
  • • 兼职写手/内容创业者,想提高效率,又怕AI写的东西太“塑料”
  • • 或者只是一个在意自己文字的普通人

——你就是我想找的人。

加入我们的创作者社群,你可以:

  • • 抢先体验内测版本
  • • 告诉我你的写作习惯,帮算法更懂创作者
  • • 和一群重视风格的写作者交流心得

关注下方公众号,回复“笔触”,获取入群方式。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 笔触AI创作软件技术选型深度解析

评论 抢沙发

8 + 1 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮