add banbanmini backend
This commit is contained in:
50
talkingq-url/services/factory.py
Normal file
50
talkingq-url/services/factory.py
Normal file
@@ -0,0 +1,50 @@
|
||||
from interfaces.asr import ASR
|
||||
from interfaces.llm import LLM
|
||||
from interfaces.tts import TTS
|
||||
from services.registry import get_service
|
||||
from config import settings
|
||||
from utils.logger import session_logger
|
||||
from services.config_manager import config_manager
|
||||
from implementations.aliyun_asr import AliyunASR
|
||||
from implementations.volcano_llm import VolcanoLLM
|
||||
from implementations.minimax_tts import MiniMaxTTS
|
||||
|
||||
async def get_asr(selected_role: dict = None) -> ASR:
|
||||
"""获取ASR服务实例 - 固定使用阿里云"""
|
||||
session_logger.info(
|
||||
"system",
|
||||
"factory",
|
||||
f"ASR提供商: Aliyun (固定)"
|
||||
)
|
||||
return AliyunASR(selected_role=selected_role)
|
||||
|
||||
async def get_llm(selected_role: dict = None) -> LLM:
|
||||
"""获取LLM服务实例 - 固定使用火山引擎"""
|
||||
role_selected_language = selected_role.get('_selected_language') if selected_role else None
|
||||
session_logger.info(
|
||||
"system",
|
||||
"factory",
|
||||
f"LLM提供商: Volcano (固定)" +
|
||||
(f", 语言: {role_selected_language}" if role_selected_language else "")
|
||||
)
|
||||
instance = VolcanoLLM(selected_role=selected_role)
|
||||
if selected_role and "role_key" not in selected_role:
|
||||
selected_role["role_key"] = "Volcano" # 使用provider作为默认值
|
||||
if hasattr(instance, "current_language"):
|
||||
instance.current_language = role_selected_language
|
||||
return instance
|
||||
|
||||
async def get_tts(selected_role: dict = None, language: str = None) -> TTS:
|
||||
"""获取TTS服务实例 - 固定使用MiniMax"""
|
||||
role_selected_language = selected_role.get('_selected_language') if selected_role else None
|
||||
effective_language = language or role_selected_language
|
||||
session_logger.info(
|
||||
"system",
|
||||
"factory",
|
||||
f"TTS提供商: MiniMax (固定)" +
|
||||
(f", 语言: {effective_language}" if effective_language else "")
|
||||
)
|
||||
instance = MiniMaxTTS(selected_role=selected_role)
|
||||
if hasattr(instance, "current_language"):
|
||||
instance.current_language = effective_language
|
||||
return instance
|
||||
Reference in New Issue
Block a user