sun
c00c46e7a1
chore: 注入构建时版本信息到 /health 端点
...
现状:controller/tts.go:232 硬编码 Version: "2.0.0 (v3 API)",
不会随代码变化而更新,/health 无法反映实际跑的代码。
修复:四文件改动,实现构建时 ldflags 注入。
1. 新建 version/version.go,声明两个包级变量:
Version (默认 "dev")
Commit (默认 "dev")
2. dto/health.go:HealthResponse 加 Commit 字段(JSON 输出多一字段)
3. controller/tts.go:HealthResponse 用 version.Version / version.Commit
替代硬编码字面量
4. Dockerfile:加 ARG VERSION=dev ARG COMMIT=dev,
go build 时通过 -ldflags 注入到 version 包的两个变量
效果:
- 本地 go build (不传 ldflags) → version=dev commit=dev
- 开发 build (git describe) → version=v0.2.0-5-g4abcd5 commit=g4abcd5
- release build (打 tag 后) → version=v0.2.1 commit=<对应 hash>
测试环境(develop 分支,无 tag)显示距离上次 release 几个 commit +
具体 hash;生产环境(main + tag)显示干净 semver。
2026-08-27 10:18:34 +08:00
sun
3b3aa3b708
chore: 清理 DEBT-2 死代码(7 文件,约 30 行)
...
VUL-003 修复期间意外发现项目遗留一批死代码,本次一并清掉:
- middleware/ratelimit_middleware.go(37 行,物理删除)
文件内 RateLimit / ConcurrencyLimit 函数从 977e9cc 创建后
从未被引用,370a217 commit 用 ratelimit_instrumented.go
(带 metrics 埋点 + 路径过滤)取代了它。占用包体,清。
- middleware/auth.go:InitAPIKeys(6 行)
注释说"已在 setting.InitAuthConfig 中完成",无 op。
- middleware/cors.go:InitCORSConfig(6 行)
同上,setting.InitCORSConfig 已做实际工作。
- dto/tts.go:ByteDanceTTSConfig 类型(7 行)
完整的配置走 setting.TTSOptions + adapter/volcano.Options,
此类型从未被任何代码实例化。
- setting/config.go: var _ = dto.ByteDanceTTSConfig{} 占位(3 行)
配合上方类型删除,移除 dto import。
- controller/tts.go:resolveClientFormat
合并 if reqFmt == "" 与 default 分支(都返回
setting.TTSOptions.Format),2 行简化。
- common/constants.go: MaxResponseTimes / MaxErrors
定义后从未被任何文件引用。
- middleware/ratelimit_instrumented.go 顶部注释
移除对"原 ratelimit_middleware.go"的悬空引用,
改为描述本文件相对路由使用实现的两个增强点。
影响:
- 包体减少约 30 行
- 降低新人接手时的代码理解成本
- 零功能变更,24 个现有测试用例全过
2026-08-27 00:57:49 +08:00
sun
155fab6b4b
feat: add debug log control and optimize error response and cors log
...
- add DebugLog global variable controlled by BYTEDANCE_TTS_DEBUG env
- enable debug logs for cors, tts upstream, response parsing etc when debug mode is on
- update tts error response to use standardized json error format
- add dashboard and metrics path to cache-control exempt list
2026-08-15 19:03:37 +08:00
sun
81fcc9fff4
chore: 清理多余的BOM头并整理依赖与telemetry代码
...
- 移除所有文件开头的多余UTF-8 BOM头
- 简化go.mod依赖,移除未使用的uuid包
- 重构telemetry包:将Meter改为接口并拆分默认实现
2026-08-15 14:38:14 +08:00
sun
5b970f49e1
feat: 实现完整可观测性架构与火山v3适配器重构
...
重构整体架构:
1. 新增telemetry包实现零依赖的Prometheus指标系统
2. 新增metrics包集中管理业务埋点指标
3. 重构火山v3适配器,拆分client/request/response等模块
4. 替换旧的service/stats统计系统为标准指标埋点
5. 新增/metrics观测端点与完整仪表盘支持
功能更新:
- 实现基于IP的限流与并发限制,添加指标埋点
- 重构TTS控制器,支持多格式输出与完整错误分类
- 更新.env.example配置示例,新增多项可选参数
- 替换旧的volcano适配器实现,支持完整的v3 API特性
- 清理冗余代码,移除service/stats与旧adapter实现
2026-08-15 13:30:35 +08:00
sun
07a7dd450c
refactor(tts): 简化火山TTS实现,移除可配置格式采样率等参数
...
重构了火山TTS的适配器与配置逻辑,移除了格式、采样率、model等可配置项,固定使用wav/24000Hz参数,简化请求流程并删除冗余的格式转换、WAV头拼装逻辑,同时更新文档与环境变量配置。
2026-07-01 18:27:07 +08:00
sun
21b86bfcfe
feat: 新增音频格式与采样率配置,完善OpenAI兼容格式映射
...
1. 新增BYTEDANCE_TTS_FORMAT和BYTEDANCE_TTS_SAMPLE_RATE环境变量配置
2. 实现OpenAI TTS格式到火山API格式的映射转换
3. 自动处理wav格式:内部用pcm请求后封装标准WAV头
4. 动态设置响应Content-Type,适配不同输出格式
5. 更新文档与配置示例,完善日志与错误处理
2026-06-27 23:28:35 +08:00
sun
8592843bdf
refactor(tts controller): add detailed request logging for TTS handler
...
新增truncateForLog工具函数处理日志截断,为各个请求校验环节和错误场景补充详细日志记录,包括请求方法、鉴权状态、配置错误、请求体读取、参数校验以及合成失败等场景,同时记录客户端IP、请求路径等上下文信息,方便问题排查。
2026-06-26 23:09:27 +08:00
sun
bc42295ff6
chore(controller/tts): 移除未使用的log导入包
...
删除了tts控制器文件中不再需要的log标准库导入
2026-06-26 20:46:34 +08:00
sun
61431e00ba
refactor: 重构并优化项目多项功能
...
1. 调整CORS中间件挂载位置,重构CORS处理逻辑
2. 重写IP获取逻辑,增加私有网络IP信任校验
3. 优化日志中间件,移除/health接口单独日志逻辑
4. 改进API密钥未配置时的提示信息
5. 重构volcano TTS调用,新增voice参数支持
6. 优化请求体过大错误处理
7. 完善统计服务,修复环形缓冲区遍历逻辑,新增去重错误日志功能
2026-06-26 19:12:50 +08:00
sun
3d50b6c69d
fix: 修复代码格式、乱码和CORS校验问题
...
1. 修复tts.go中多余的缩进错误
2. 修复main.go和auth.go中的中文乱码问题,修正日志文本
3. 修复CORS校验逻辑,将origin转为小写后再判断协议前缀
4. 修正auth.go中API密钥未配置时的提示逻辑
2026-06-23 10:23:44 +08:00
sun
977e9ccadb
build: 升级go版本到1.26并添加限流中间件
...
1. 调整go.mod将Go版本升级至1.26
2. 新增速率限制和并发限制中间件,将其加入路由中间件链
3. 重构TTS处理逻辑,将限流逻辑迁移至中间件统一处理
4. 优化CORS中间件代码,移除冗余日志和格式调整
2026-06-22 18:13:35 +08:00
sun
be6c2ad34e
Revert "fix: 修复请求体过大处理和冗余代码问题"
...
This reverts commit 23b962a90e .
2026-05-26 10:42:41 +08:00
sun
23b962a90e
fix: 修复请求体过大处理和冗余代码问题
...
1. 修复OpenAI TTS接口的请求体过大错误提示,返回正确的状态码和提示信息
2. 删除volcano适配器中无用的空循环扫描代码
3. 修正constants.go的包声明重复空格问题
2026-05-26 10:41:47 +08:00
sun
9c35f780db
功能 (语音合成):新增语音合成请求的模型名校验
...
新增模型名最大长度常量,限定字符上限为 64 位
传入模型名称时,校验名称长度并拦截非法控制字符
移除闲置的 tts-api.exe 可执行文件
2026-05-24 11:52:57 +08:00
sun
4e1820d45b
refactor: 重构项目架构,拆分代码到模块化目录
...
将单文件tts_server.go重构为模块化项目结构,拆分出common、dto、middleware、router、controller、service、adapter、setting等目录,优化代码组织提升可维护性
2026-05-23 20:32:12 +08:00