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实现
This commit is contained in:
sun
2026-08-15 13:30:35 +08:00
parent 07a7dd450c
commit 5b970f49e1
30 changed files with 1875 additions and 836 deletions
+31 -11
View File
@@ -1,4 +1,4 @@
# ByteDance TTS v3 API 配置示例
# 字节火山引擎 TTS v3 API 配置示例
# 将此文件复制为 .env 并填入实际配置
# ==========================================
@@ -8,31 +8,51 @@
# 火山引擎新版控制台获取的 API Key
BYTEDANCE_TTS_API_KEY=your_api_key_here
# 资源信息ID(决定使用1.0还是2.0模型)
BYTEDANCE_TTS_RESOURCE_ID=seed-tts-1.0
# 资源信息ID(决定使用1.0还是2.0模型)
# 复刻 2.0 音色(seed-icl-2.0 / 复刻 1.0 音色(seed-icl-1.0)
BYTEDANCE_TTS_RESOURCE_ID=seed-icl-2.0
# 发音人(音色)ID
# 发音人(音色)ID
BYTEDANCE_TTS_SPEAKER=your_speaker_id_here
# ==========================================
# 可选的环境变量
# ==========================================
# 请求超时时间,默认30秒
# 单次合成超时,默认30s
BYTEDANCE_TTS_TIMEOUT=30s
# 音频格式:mp3/ogg_opus/pcm/wav(默认mp3)
# 注意:流式场景下wav会多次返回header,内部自动用pcm请求再封装header
# 上游实际请求的音频格式:mp3 / pcm / ogg_opus
# 客户端要求 wav 时,内部自动转 pcm 上游 + 本地拼 WAV 头
BYTEDANCE_TTS_FORMAT=mp3
# 音频采样率:8000/16000/22050/24000/32000/44100/48000(默认24000)
# 上游采样率:8000/16000/22050/24000/32000/44100/48000
BYTEDANCE_TTS_SAMPLE_RATE=24000
# OpenAI兼容接口的API密钥(可选)
# MP3 比特率(可选),仅 MP3 生效
# BYTEDANCE_TTS_BIT_RATE=128000
# 复刻 2.0 子模型(可选),留空则使用控制台默认值
# seed-tts-2.0-standard:标准版,延时更优
# seed-tts-2.0-expressive:表现力增强版,支持 QA / Cot
# BYTEDANCE_TTS_MODEL=seed-tts-2.0-standard
# 复刻 2.0 模型类型(可选,推荐显式指定)
# 4 = ICL V2,5 = ICL V3
# BYTEDANCE_TTS_MODEL_TYPE=4
# 非中文/英文合成时指定语种(可选)
# zh-cn / en / ja / es-mx / id / pt-br / ko
# BYTEDANCE_TTS_EXPLICIT_LANGUAGE=zh-cn
# 复刻 2.0 启用字级时间戳(可选)
# BYTEDANCE_TTS_ENABLE_SUBTITLE=false
# OpenAI兼容接口的API密钥(可选,多个用逗号分隔)
OPENAI_TTS_API_KEY=your_openai_compatible_key_here
# CORS 跨域白名单(逗号分隔,开发环境可设 *)
# CORS 跨域白名单(逗号分隔;开发环境可设 *;空则拒绝所有跨域)
# ALLOWED_ORIGINS=https://example.com,https://app.example.com
# 服务监听端口,默认8080
# 服务监听端口,默认8080
PORT=8080