本方案针对 AI 对话、智能客服等实时流式语音交互,提出“异步分段合成 + 流式预加载 + 语义级文本分割”三位一体的 TTS 方案。通过首段优先合成、后台预加载,实现秒级首段播放并无缝衔接后续段;采用基于句号、逗号等层级的智能分句,避免语义断裂;引入本地 Caffeine 与 Redis 多级缓存、Token 集中管理、合成失败自动重试等机制,降低延迟、避免资源浪费。前端使用 Vue3 + Web Audio,后端基于 Spring Boot、百度云 TTS API,实现文本分段、缓存、合成等核心功能,支持播放控制、会话隔离和异常自愈。

线上日志突止,排查发现 Linux OOM Killer 在 2 GB 机器上把博客的 Java 进程 kill 掉。根因是 3 个未限制堆大小的 Spring Boot、默认占内存巨大的 MySQL 8.0,以及没有 Swap。通过为每个 JVM 设置‑Xms/‑Xmx(512 M、256 M)、精简 MySQL 配置(缩小 innodb_buffer_pool、关闭 performance_schema、限制连接数等)并创建 2 GB swap,内存使用恢复正常,进程不再被杀。文末提醒小内存环境必须限制 JVM、调优 MySQL 并配置 Swap,业务增长时应迁移 RDS 或升级机器。

通意千应是一款企业级AI对话平台,采用Spring Boot+Vue前后端分离架构,集成ChatGPT、DeepSeek、Qwen、Llama、Kimi等多模型,提供流式回复、Markdown渲染、代码高亮、深度思考、网络搜索等交互特性,并支持会话管理、分享链接、Token统计。系统基于Spring Security+JWT实现安全认证,使用MySQL和Redis存储,管理员可进行用户、会话、数据统计及权限管理,帮助企业快速搭建专属AI助手。

项目遵循 Keep a Changelog 与语义化版本,记录自2023‑01‑10 起的所有发布。最新 v2.2.0(2026‑03‑26)加入文章阅读限制、微信公众号验证码、Redis 验证码存储及多项安全加固;v2.1.0 引入基于 OpenAI 的 AI 对话机器人、AI 评论审核、表情系统、弹幕等功能;v2.0.0 提供 AI 智能摘要、实时天气等。后续版本逐步完善评论、音乐、天气、图片等特性。提交规范分为 feat、fix、docs 等,维护者为召田最帅boy。

博客文章解锁功能原本仅依赖本地 localStorage 的 blog_global_unlocked 键,导致用户可通过开发者工具直接置为 true 绕过关注公众号的验证码验证,破坏付费引流并带来安全隐患。为根除此缺陷,方案将核心验证迁移至服务器:前端请求验证码接口,服务器校验后在 Redis 中以 clientId 记录解锁状态并生成一次性令牌;页面加载时通过 /status 接口查询解锁状态,若已解锁则返回令牌供前端保存。系统通过拦截器统一生成并写入 blog_client_id Cookie,结合请求头、IP + User‑Agent 指纹实现多层身份识别,令牌采用 MD5(clientId+timestamp+UUID) 并在 Redis 中设置滑动过期,以防篡改。整个改造保持用户体验流畅,同时实现服务器端可追踪、不可伪造的安全解锁机制。

本文实现了基于微信公众号验证码的文章解锁功能:未关注用户只能阅读文章前1/3,页面底部提供“查看全文”引导关注;用户关注后发送关键词“博客”,公众号自动回复6位数字验证码,验证码存于Redis(5 分钟有效、单次使用),前端通过LocalStorage记录全局解锁状态,实现一次验证后所有文章永久解锁。核心技术包括CSS 截断+遮罩、Spring Boot 与 Redis 的验证码生成/校验接口、微信服务器消息推送与XML解析,以及前端的状态持久化和响应式交互。整体架构为浏览器 ↔ Spring Boot ↔ Redis,配合微信服务器完成验证码下发与验证。