智能翻译助手 · 技术文档
本文档是本系统的技术参考手册,面向使用、部署与二次集成的开发与运维人员,方便随时查阅各功能模块的接口调用方式、
参数字段、校验规则、响应结构、计费逻辑与错误码。内容基于 ai-translation-assistant 1.0.0(Spring Boot 3.5.6 / Java 21)编写,与实际实现一一对应。
产品概览
智能翻译助手(AI Translation Assistant)是一套基于 Spring Boot 3.5 + 通义千问大模型 + 阿里云机器翻译的多语言智能翻译系统, 采用 Thymeleaf 服务端渲染提供开箱即用的 Web 界面,同时暴露完整的 REST API 供第三方系统集成。
系统内置会员 + 点数双层计费体系(点数优先扣减、会员月度额度补足)、基于 JWT + Redis 的登录态管理、 支付宝 / 微信扫码支付、RocketMQ 订单超时自动取消,以及 MinIO 对象存储支撑的文档翻译链路。
文档目录
全部文档按功能划分为 11 个章节,每个章节对应独立页面,建议按顺序阅读。
全局约定速览
以下约定适用于全部 /api/** 接口,各章节不再重复,详细规则见对应章节。
应用默认监听 8090 端口(server.port),接口前缀统一为 /api/:
# 本地开发 http://localhost:8090/api/... # 页面(Thymeleaf 服务端渲染) http://localhost:8090/translate /document /chat /membership ...
除 SSE 流式响应、文件二进制流、支付回调(纯文本)外,所有 /api/** 响应由
ApiResponseAdvice 统一包装为以下结构:
{
"success": true, // 业务是否成功
"message": "操作成功", // 人类可读的提示信息
"data": { ... }, // 业务数据(各接口定义见对应章节)
"error": null // 失败时的错误码,成功时为 null
}
客户端取业务数据一律读取 data 字段;判断成败以 success 为准。
# 方式一:请求头携带 JWT(推荐) Authorization: Bearer {token} # 方式二:Cookie(浏览器端登录后自动携带) Cookie: auth_token={token}
登录、注册、发送验证码、支付回调等白名单接口无需认证,完整白名单见「02 认证与鉴权」。
所有分页接口的 page 参数从 0 开始(0 = 第一页),
服务端内部转换为 MyBatis-Plus 的 1 起始页码,响应中的 page 仍按 0 起始返回。
{
"data": [ ... ], // 当前页记录列表
"page": 0, // 当前页码(0 起始,回显请求值)
"size": 20, // 每页条数
"totalPages": 12, // 总页数
"totalElements": 231 // 总记录数
}
- 文本翻译:按字符数计费,
点数 = max(1, ceil(字符数 / 1000))(每 1000 字符 1 点,不足 1000 按 1 点)。 - 文档翻译:按页计费,
1 点 / 页,翻译开始前一次性预扣。 - 扣减顺序:点数余额优先扣减,不足部分由会员月度额度补足;余额与额度均不足时返回
HTTP 402。 - 缓存命中:相同翻译请求命中缓存时直接返回,不扣点。
- Mock 引擎:未配置引擎时路由到 Mock 演示引擎,结果返回后自动退回点数,便于联调测试。
技术栈总览
| 分类 | 技术 / 组件 | 说明 |
|---|---|---|
| 运行时 | Java 21 + Spring Boot 3.5.6 | 默认端口 8090,开启缓存 / 异步 / 事务 |
| 页面 | Thymeleaf(SSR) | 服务端渲染,统一 layout 母版 |
| 持久层 | MyBatis-Plus + MySQL | 15+ 业务表,utf8mb4,DDL 见 database/ 脚本 |
| 缓存 | Redis(Lettuce) | 登录 Token、翻译结果缓存、验证码存储 |
| 对象存储 | MinIO 8.5.7 | 文档原文 / 译文存储与预签名下载 |
| 消息队列 | RocketMQ 2.3.0 | 会员订单 30 分钟延时自动取消 |
| 大模型 | 通义千问 qwen3-max(DashScope) | LLM 翻译 / 客服回复 / 润色 / 质量评估 |
| 机器翻译 | 阿里云 alimt TranslateGeneral | 通用文本翻译引擎与语种检测 |
| 文档解析 | Apache PDFBox 3 / Apache POI 5.2 | pdf 与 doc/docx/xls/xlsx/ppt/pptx 解析回写 |
| 支付 | 支付宝 EasySDK / 微信 pay-java | 当面付扫码 + Native 扫码;银联为占位实现 |
| 鉴权 | JJWT 0.11.5(HS256) | JWT 令牌 + Redis 会话 + Cookie |
| RAG | Spring AI 1.0.0-M6(Embedding) | 术语 + 历史翻译检索与向量重排 |
| 监控 | Actuator + Prometheus | /actuator/health,info,metrics,prometheus |