From 92c6b8b7013dde7ef41a0ea655549195daae9a27 Mon Sep 17 00:00:00 2001 From: sun <3371392206@qq.com> Date: Sun, 17 May 2026 18:51:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(tts=20server):=20=E4=BC=98=E5=8C=96TTS?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E9=85=8D=E7=BD=AE=E9=94=99=E8=AF=AF=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 将初始化TTS配置的致命错误改为警告,服务继续运行 2. 在TTS请求和健康检查中加入配置错误判断,返回对应错误信息 3. 在健康检查详情中添加配置错误状态和提示信息 --- tts_server.go | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/tts_server.go b/tts_server.go index 5bc60ab..f7009c0 100644 --- a/tts_server.go +++ b/tts_server.go @@ -94,6 +94,7 @@ type Stats struct { var ( VALID_API_KEYS []string ttsConfig ByteDanceTTSConfig + ttsConfigErr error globalHTTPClient *http.Client apiStats *Stats rateLimiter *RateLimiter @@ -466,6 +467,19 @@ func openaiTTSHandler(w http.ResponseWriter, r *http.Request) { return } + if ttsConfigErr != nil { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusServiceUnavailable) + json.NewEncoder(w).Encode(map[string]interface{}{ + "error": map[string]interface{}{ + "message": fmt.Sprintf("TTS service configuration error: %v. Please check environment variables and restart the service.", ttsConfigErr), + "type": "configuration_error", + "code": "service_unavailable", + }, + }) + return + } + clientIP := getClientIP(r) if !rateLimiter.Allow(clientIP) { w.Header().Set("Content-Type", "application/json") @@ -566,7 +580,12 @@ func getMemoryInfo() map[string]interface{} { func healthHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") - w.WriteHeader(http.StatusOK) + + if ttsConfigErr != nil { + w.WriteHeader(http.StatusServiceUnavailable) + } else { + w.WriteHeader(http.StatusOK) + } apiStats.mutex.RLock() totalRequests := apiStats.totalRequests @@ -625,6 +644,8 @@ func healthHandler(w http.ResponseWriter, r *http.Request) { }, "config_status": map[string]interface{}{ "all_required_vars_set": allEnvVarsSet, + "config_error": ttsConfigErr != nil, + "config_error_message": fmt.Sprintf("%v", ttsConfigErr), }, } @@ -666,8 +687,12 @@ func main() { initAPIKeys() - if err := initTTSConfig(); err != nil { - log.Fatalf("配置初始化失败: %v", err) + ttsConfigErr = initTTSConfig() + if ttsConfigErr != nil { + log.Printf("警告: 配置初始化失败: %v", ttsConfigErr) + log.Printf("服务将继续运行,但TTS功能不可用,请检查环境变量配置") + } else { + log.Printf("配置初始化成功") } router := mux.NewRouter()