53 lines
1.9 KiB
Go
53 lines
1.9 KiB
Go
package ai
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func bailianFixture(t *testing.T) Binding {
|
|
return bailianFixtureWithTTSParams(t, map[string]any{"rate": 1.25, "sample_rate": 16000, "format": "pcm"})
|
|
}
|
|
|
|
func bailianFixtureWithTTSParams(t *testing.T, params map[string]any) Binding {
|
|
t.Helper()
|
|
task, ps := currentFixture(t, "full_ai")
|
|
task = changeCurrentAgent(t, task, func(a map[string]any) {
|
|
for _, role := range []string{"asr", "llm", "tts"} {
|
|
a[role].(map[string]any)["provider_ref"] = "ali_bailian"
|
|
}
|
|
a["asr"].(map[string]any)["model"] = "fun-asr-flash-8k-realtime-2026-01-28"
|
|
a["asr"].(map[string]any)["params"] = map[string]any{"sample_rate": 8000, "format": "pcm", "language": "zh"}
|
|
a["llm"].(map[string]any)["model"] = "Qwen3.8-Flash"
|
|
a["tts"].(map[string]any)["model"] = "cosyvoice-v3-flash"
|
|
a["tts"].(map[string]any)["voice"] = "longanyang"
|
|
a["tts"].(map[string]any)["params"] = params
|
|
})
|
|
p := ps["ali_bailian"]
|
|
p.Credential = "mock-key"
|
|
ps["ali_bailian"] = p
|
|
b, err := Bind(task, ps)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
return b
|
|
}
|
|
func TestTaskModelsShareConnectionOnlyProvider(t *testing.T) {
|
|
b := bailianFixture(t)
|
|
if b.ASR.Provider.Code != "ali_bailian" || b.LLM.Provider.Code != "ali_bailian" || b.TTS.Provider.Code != "ali_bailian" || string(b.TTS.Params["rate"]) != "1.25" {
|
|
t.Fatal("shared connection or opaque params lost")
|
|
}
|
|
}
|
|
|
|
func TestBailianTTSDefaultsMissingOutputSettings(t *testing.T) {
|
|
b := bailianFixtureWithTTSParams(t, map[string]any{"rate": 1.25})
|
|
if b.TTS.OutputFormat != ttsOutputFormatPCM || b.TTS.OutputSampleRate != internalPCM16SampleRate {
|
|
t.Fatalf("TTS defaults = (%q, %d), want (%q, %d)", b.TTS.OutputFormat, b.TTS.OutputSampleRate, ttsOutputFormatPCM, internalPCM16SampleRate)
|
|
}
|
|
if _, ok := b.TTS.Params["format"]; ok {
|
|
t.Fatal("default format must not rewrite the approved params snapshot")
|
|
}
|
|
if _, ok := b.TTS.Params["sample_rate"]; ok {
|
|
t.Fatal("default sample rate must not rewrite the approved params snapshot")
|
|
}
|
|
}
|