迁移音频生成与语音合成到 gateway 并补充 simulation 测试
This commit is contained in:
@@ -64,6 +64,7 @@ func New(cfg config.Config, db *store.Store, logger *slog.Logger) *Service {
|
||||
"midjourney": clients.MidjourneyClient{HTTPClient: httpClients.none},
|
||||
"minimax": clients.MinimaxClient{HTTPClient: httpClients.none},
|
||||
"newapi": clients.NewAPIClient{HTTPClient: httpClients.none},
|
||||
"suno": clients.SunoClient{HTTPClient: httpClients.none},
|
||||
"tencent-hunyuan-image": clients.HunyuanImageClient{HTTPClient: httpClients.none},
|
||||
"tencent-hunyuan-video": clients.HunyuanVideoClient{HTTPClient: httpClients.none},
|
||||
"vidu": clients.ViduClient{HTTPClient: httpClients.none},
|
||||
@@ -957,6 +958,10 @@ func modelTypeFromKind(kind string, body map[string]any) string {
|
||||
return "image_to_video"
|
||||
}
|
||||
return "video_generate"
|
||||
case "song.generations", "music.generations":
|
||||
return "audio_generate"
|
||||
case "speech.generations":
|
||||
return "text_to_speech"
|
||||
default:
|
||||
return "task"
|
||||
}
|
||||
@@ -979,6 +984,10 @@ func canonicalModelType(value string) string {
|
||||
return "text_embedding"
|
||||
case "rerank", "reranks":
|
||||
return "text_rerank"
|
||||
case "audio", "music", "music_generate", "song", "songs":
|
||||
return "audio_generate"
|
||||
case "speech", "tts":
|
||||
return "text_to_speech"
|
||||
default:
|
||||
return normalized
|
||||
}
|
||||
@@ -986,7 +995,7 @@ func canonicalModelType(value string) string {
|
||||
|
||||
func isKnownModelType(value string) bool {
|
||||
switch value {
|
||||
case "text_generate", "text_embedding", "text_rerank", "image_generate", "image_edit", "video_generate", "image_to_video", "text_to_video", "video_edit", "video_reference", "video_first_last_frame", "omni_video", "omni":
|
||||
case "text_generate", "text_embedding", "text_rerank", "image_generate", "image_edit", "video_generate", "image_to_video", "text_to_video", "video_edit", "video_reference", "video_first_last_frame", "omni_video", "omni", "audio_generate", "text_to_speech":
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
@@ -1171,6 +1180,17 @@ func validateRequest(kind string, body map[string]any) error {
|
||||
if strings.TrimSpace(stringFromMap(body, "prompt")) == "" {
|
||||
return errors.New("prompt is required")
|
||||
}
|
||||
case "song.generations", "music.generations":
|
||||
if strings.TrimSpace(stringFromMap(body, "prompt")) == "" {
|
||||
return errors.New("prompt is required")
|
||||
}
|
||||
case "speech.generations":
|
||||
if strings.TrimSpace(stringFromMap(body, "text")) == "" && strings.TrimSpace(stringFromMap(body, "text_file_id")) == "" {
|
||||
return errors.New("text or text_file_id is required")
|
||||
}
|
||||
if strings.TrimSpace(stringFromMap(body, "voice_id")) == "" {
|
||||
return errors.New("voice_id is required")
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user