ab_experiment_media_config.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. """
  2. A/B 实验用户:LLM / TTS 参数(LLM 与 TTS 均可与普通用户隔离)
  3. """
  4. from typing import Optional, TypedDict
  5. from config import settings
  6. from scenario_config import is_special_ab_experiment_user
  7. AB_LLM_MODEL = "qwen3.6-flash"
  8. AB_TTS_MODEL = "cosyvoice-v3-flash"
  9. AB_TTS_VOICE = "loongemily_v3"
  10. AB_TTS_SPEECH_RATE = 0.75
  11. AB_TTS_PITCH_RATE = 1.2
  12. class TtsParams(TypedDict):
  13. model: str
  14. voice: str
  15. speech_rate: float
  16. pitch_rate: float
  17. def resolve_llm_model(user_info: Optional[dict] = None) -> str:
  18. if is_special_ab_experiment_user(user_info):
  19. return AB_LLM_MODEL
  20. return settings.llm_model
  21. def resolve_tts_params(user_info: Optional[dict]) -> TtsParams:
  22. if is_special_ab_experiment_user(user_info):
  23. return {
  24. "model": AB_TTS_MODEL,
  25. "voice": AB_TTS_VOICE,
  26. "speech_rate": AB_TTS_SPEECH_RATE,
  27. "pitch_rate": AB_TTS_PITCH_RATE,
  28. }
  29. return {
  30. "model": settings.tts_model,
  31. "voice": settings.tts_voice,
  32. "speech_rate": settings.tts_speech_rate,
  33. "pitch_rate": settings.tts_pitch_rate,
  34. }