🚀

最近搞了一个挺有意思的项目:用 Vue3.5 + Node.js 从 0 到 1 打造一个生产级的 AI 多模态应用。

你可以在里面:

  • 跟 AI 实时对话(支持流式打字动画)💬

  • 输入文字,直接合成语音,秒变播音员🎙️

  • 打开麦克风,“边说边写”,语音实时转文字🗣️→⌨️

  • 甚至还能用一句话生成图片🎨!

👇先上个图镇楼:


🧠 项目背景 & 技术选型

传统 AI 应用一般只做到聊天或语音单点功能,我们的目标是——多模态整合,用户能在同一平台体验完整的 AI 能力

技术栈选得都是最新稳定版,并且围绕“可维护性 + 性能 + 用户体验”下了不少功夫:

🧩 技术栈(核心)

  • 前端: Vue 3.5 + Vite + Element Plus + Pinia + markdown-it

  • 后端: Node.js + Express + Prisma + MySQL

  • AI 模型: 接入字节的 豆包 多个模型:

    • 对话模型(支持快速&深度思考模式)

    • 图像生成(Seedream 4.0)

    • 语音合成(TTS)

    • 语音识别(ASR)


💡核心亮点拆解(开发者视角)

✅ 1. 登录 & 权限:安全做到了极致

我们不是简单写个登录接口就完事儿,而是:

  • JWT + HttpOnly Cookie 存储,前后端自动鉴权

  • 支持角色权限(用户 / 管理员)

  • 防 CSRF / XSS,登出清除所有状态

  • 密码加密用的是 bcrypt 单向哈希

体验上:用户完全无感,开发上也很省事。


🧠 2. AI 对话系统:双模型 + 流式输出

快速模式回答快,深度模式适合复杂逻辑问题。

难点是两个模型参数格式不一样,还要做流式输出(逐字显示)。

解决方案:

  • 后端统一封装接口,自动判断模型类型

  • 前端自定义 POST SSE 客户端,支持流式渲染

  • 用户只管点按钮,打字效果很丝滑~


🔁 3. 聊天长列表不卡顿?我们用了虚拟滚动!

聊天记录多了,页面卡顿是常态?

我们用虚拟滚动 + 分页方案:

  • 初始加载 20 条消息,支持滚动加载更多

  • 可视区域 + buffer 区渲染,其他用 padding 占位

  • 自动保持滚动位置,体验完全不打断

性能提升效果惊人:

项目

优化前

优化后

首屏加载

1.8 秒

0.3 秒

DOM 节点

2000+

40

滚动帧率

30~40fps

55~60fps


🔊 4. TTS 实时语音合成:0.5 秒内开口说话!

传统 TTS 有 3~5 秒延迟,这太慢了。

我们做了:

  • 后端用 WebSocket 中继豆包 TTS 服务

  • 前端用 Audio 标签边接收边播放

  • 文本预处理(去 markdown、限制长度)

最终效果:基本做到了“输入即说话”,延迟控制在 0.5~1 秒之间!


📝 5. 富文本编辑器 + AI 写作助手

基于 WangEditor 二次封装:

  • 支持选中文本生成续写内容

  • 也可点击工具栏触发 AI

  • 生成内容逐字输出,写完自动插入到光标处

优势: 非常适合写简历、方案、内容草稿之类的场景。


🎤 6. 语音转写(ASR):真正做到“边说边写”

通过麦克风录音 → PCM 流传输 → 实时返回识别结果 → 实时填进文本框。

  • 支持格式转换(Float32 → Int16 PCM)

  • WebSocket 通信、错误重连机制

  • 最小延迟识别结果,边说边填不掉帧

结果:打字效率 ×2,不用再手动输入长段内容。


🎨 7. 图片生成:不仅能画,还能保存得住

豆包图像生成是在线图片 URL,但 URL 1 小时就失效?

我们的处理方式:

  • 后端自动将图片下载存到本地

  • 支持智能识别格式,最多并发下载 4 张

  • 本地路径写入数据库,图片长期可用


✅ 工程化细节补充

  • 统一异常处理 & 日志记录(使用 Morgan)

  • 接口响应格式统一(code/msg/data)

  • 模块解耦清晰,方便后期功能扩展

  • Prisma 类型推导 + 自动生成 SQL

  • WebSocket 与 REST 协同管理连接状态


🧾 总结一下

你可以把这个项目理解成一个“轻量 AI 多模态平台”。

✔ 安全性:JWT + Cookie + 加密✔ 用户体验:流式、实时、不卡顿✔ 工程质量:架构清晰,代码规范,日志可观测✔ AI 能力:对话 + 语音 + 图像,多模态整合✔ 可维护性:模块化开发,方便继续扩展新模型、新功能


从0到1打造一款具备Ai聊天,AI写作,文生图,语音合成,语音识别功能的多模态全栈项目,多模态AI项目开发链接

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐