Java

浏览该分类下的所有文章

从Prompt到渲染的Markdown输出治理

在构建支持多模型、流式输出、联网搜索和文档生成的 AI 对话系统时,模型返回的文本往往不稳定,直接影响页面布局、代码高亮、表格展示乃至后续文档生成。文章围绕 Markdown 稳定输出设计了完整的治理链路:首先通过 Prompt 约束模型输出形式,避免思考过程混入正文;随后在 SSE 流式分片阶段使用状态机将 reasoning 与 content 分离,防止半标签、未闭合代码块等导致页面抖动;在后端加入 MarkdownContentNormalizer,对压缩或破碎的标题、列表、表格、引用等结构进行修复,同时严格保留 fenced code block 的原始内容不被误改;最后前端执行 HTML 清洗、链接安全属性和代码隔离等安全渲染。整体方案强调三层防线:约束输出、流式分流与后端规整、前端安全渲染,使实时流式内容保持低延迟,持久化内容确保结构完整。作者认为,这套治理不仅解决特定模型或标签的问题,而是将模型输出的不可控性转化为可解析、可管理、可测试、可演进的系统流程,成为 AI 应用的基础设施。

从96%到70%

本文记录了把四个独立的 Spring Boot 项目(chat、puke、zepp、blog)合并为一个 Maven 多模块工程,只启动一个 total‑app.jar 的实践。原先每个项目占用一个 JVM,导致服务器内存接近 96%;通过在根 pom 统一依赖、在 launcher 中用 SpringApplicationBuilder 依次启动四个 ApplicationContext,并将配置分别放在 chat.yml、puke.yml、zepp.yml、blog.yml 中,消除了 JVM 底座的重复开销,内存降至约 70%。文章重点阐述了类路径冲突、资源目录重名、自动配置串扰和日志全局化等踩坑及对应的统一依赖、资源隔离、spring.autoconfigure.exclude 等解决方案。部署时仅需一次打包并用单条 java 命令启动,端口和 Nginx 配置保持不变,运维更简洁。该方案适合资源受限、访问量不高且对隔离要求不强的场景,虽牺牲了故障隔离,但能显著降低内存压力,为小型服务器提供务实的优化路径。

Codex 实战指南:让 AI 成为你的编程搭档

Codex 与普通补全工具不同,它能进入项目读取、修改文件、运行测试、解释报错,充当“会干活的 AI 搭档”。文章首先说明它最适合处理需要上下文理解的任务,如阅读陌生代码库、定位 Bug、补充测试、实现小功能等,并比较 IDE 插件、CLI 与云端三种使用方式,建议新手先从 IDE 或 CLI 入手。随后提供 macOS Homebrew 安装、账号或 API Key 登录步骤,并示例第一次只读分析项目结构,以低风险任务起步。针对 Prompt 编写,文章提出四要素(要解决的问题、修改范围、约束条件、验证方式),强调先让 Codex 写计划、提供充分上下文、要求自行运行测试并迭代修复。为统一项目规范,推荐在仓库根目录放置 AGENTS.md,记录依赖、lint、测试等规则,并通过 sandbox 参数控制只读、工作区写入或全访问权限。接着列举解释代码库、修复 Bug、实现筛选功能、补充测试、代码审查等常见场景,并说明使用 codex exec 实现自动化生成 release notes、总结 CI 失败等。云端任务适合大规模或并行操作,但仍需人工 Review。最后总结最佳工作流为只读分析→制定计划→小步修改→运行测试→人工 Review,提醒勿盲目信任结果,及时设定项目规则与权限,以让 Codex 成为提升效率而非取代程序员的可靠助手。

🎁 限时福利!20张VIP会员体验券免费领 - 通意千应AI平台技术解析

通意千应AI平台上线庆典,限时免费发放20张VIP会员体验券,凭券码即可解锁全模型(DeepSeek、Kimi、Llama、Qwen等)无限使用。VIP用户享深度思考、联网搜索、图片识别、文件解析及优先响应等专属功能,平台采用多模型融合、智能调度、异步生成和双模式图片传输等技术,后端基于Spring Boot+MySQL+Redis,前端Vue.js,安全采用JWT+HTTPS。领取步骤为复制券码、注册登录、在会员中心兑换,即可立即体验顶级AI能力。

【AI率检测帮手】小程序

在AI写作工具广泛使用的背景下,「AI率检测帮手」小程序提供精准的AI生成概率检测、句式结构、词汇分布等多维度分析,并给出改写、增添情感等优化建议。支持学术论文、小说、新闻、作文等所有文体,文字长度无限制,操作简洁:粘贴文本‑点击检测‑秒返结果。帮助教师、编辑、自媒体人和写作者辨别和提升作品的人味,防止学术不端和平台限流。扫码或搜索即可免费使用。

通意千应如何“读懂“你的文件?一文拆解多模态上传全链路

通意千应在 Spring Boot + Vue.js 架构下实现了完整的多模态附件上传链路。前端提供文件选择、类型/大小/数量校验及图片预览;后端通过统一的上传 API 完成用户鉴权、批量限制、文件存储路径生成(UUID + 日期分层)并调用 FileParseService 对 PDF、Word、Excel、PPT、TXT、图片等七类文件进行文本提取。提取结果与元数据一起写入 MyBatis 管理的 chat_file 表,并同步上传至七牛云 OSS,实现 CDN 加速和双路径访问。系统采用分层结构、预解析策略、事务一致性和多策略解析模式,确保上传安全、高效且支持 AI 多模态交互。

通意千应语音播放(TTS)技术方案

通意千应 TTS 方案面向 AI 对话、智能客服等实时流式语音交互,采用“异步分段合成 + 流式预加载 + 语义级文本分割”三大核心策略。通过首段优先合成、后段后台预加载,实现首段即播、无感延迟;基于标点层级的三级智能分句(句末 > 逗号 > 强制截断),保证语义完整且避免生硬断句;采用本地 Caffeine 与 Redis 组合缓存,防止重复合成与资源浪费。系统架构采用 Vue3 前端配合 HTML5/Web Audio 音频引擎,后端 Spring Boot + Java 17 负责文本分段、Token 管理和调用百度云 TTS 接口,提供播放/暂停/切换会话等控制并具备合成失败自动重试、降级等异常自愈能力。整体实现兼顾低延迟、流畅衔接和高可用,适用于大模型实时语音输出场景。

一次OOM排查实录

日志在运行时被硬截断,排查后发现是 Linux OOM Killer 将进程强制 kill,根因是 2 GB 服务器同时运行 3 个未限制堆大小的 Spring Boot 项目、MySQL 8.0 和监控组件,JVM 默认占用近 3 GB,MySQL 参数又消耗数百 MB,且没有 Swap 作为缓冲。通过为每个 JVM 设置‑Xms/‑Xmx(如 512 M、256 M),调小 MySQL 的 innodb_buffer_pool、max_connections、关闭 performance_schema 并添加 2 GB swap,内存使用降至安全范围,进程不再被 OOM Killer 杀死。经验教训是:小内存机器必须限制 JVM、精简 MySQL 配置并配置 swap,长期方案是迁移数据库或升级机器。

通意千应 - 你的专属AI助手

通意千应是面向企业和个人的AI对话平台,由召田最帅boy独立研发,采用Spring Boot+Vue 前后端分离架构,集成ChatGPT、DeepSeek、Qwen、Llama、Kimi、Gemma、Nemotron 等多模型,并支持模型切换、流式输出、Markdown渲染、代码高亮、深度思考与网络搜索增强。系统基于Spring Security、JWT、MySQL 与 Redis 实现安全认证、会话管理和缓存,加上Thymeleaf 分享页实现免登录链接分享。平台提供完整的用户、会话、消息管理及统计功能,管理员可通过后台仪表盘进行用户、会话、数据安全等运营管理。整体实现一站式、可扩展且安全的企业级AI助手解决方案。

文章解锁功能安全漏洞修复技术记录

博客文章解锁功能原本依赖本地存储 `blog_global_unlocked`,导致用户可通过浏览器 DevTools 修改键值绕过关注公众号的验证码验证,破坏付费与引流策略。为根除此漏洞,方案将关键验证迁移至服务器端,采用 Spring Boot REST 接口配合 Redis 保存解锁状态和一次性令牌,使用多层客户端标识(Cookie、请求头、IP+User‑Agent 指纹)生成唯一 `clientId`。前端通过 Fetch 与服务器查询解锁状态、获取令牌并在页面加载时决定是否解锁;拦截器统一注入 `clientId` 并写入长期 Cookie。令牌采用 MD5(clientId+timestamp+UUID) 生成,具滑动过期和防篡改校验。整体实现保持用户体验流畅,同时实现服务器可控、不可伪造、可追踪的安全解锁机制。

微信公众号API+Redis实现内容访问控制

实现基于微信公众号验证码的文章解锁功能:未关注用户仅能阅读文章前1/3,底部“查看全文”引导关注;关注后发送关键词“博客”即获6位数字验证码,验证码存入Redis(5 分钟有效、单次使用),前端通过 CSS max‑height 与渐变遮罩实现内容截断。用户验证成功后在浏览器 LocalStorage 标记全局解锁状态,实现全站解锁。后端采用 Spring Boot 提供验证码生成/验证 API 与微信消息处理接口,配合 Redis 保存验证码,整体架构为 浏览器 ↔ Spring Boot ↔ Redis ←→ 微信服务器。实现步骤包括 Redis 配置、验证码服务实现、微信接入及前端交互逻辑。

博客文章“部分展示+验证解锁”实现

本文介绍在博客中实现“部分展示+验证解锁”阅读限制的完整方案。通过自动计算文章高度,仅显示前1/3并加底部虚化遮罩,配合“查看全文”按钮触发验证弹窗。用户扫码关注公众号、发送关键词获取验证码,校验成功后在本地存储全局解锁标识,文章平滑展开并显示成功动画。实现核心包括HTML结构划分、CSS变量控制截断高度与过渡、JS负责高度计算、锁定/解锁逻辑及验证码校验。文中还提供响应式布局、全局解锁持久化及后续优化建议,如后端API动态验证码、微信自动回复、有效期控制、数据统计和A/B测试等。