mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-06-22 08:38:13 +02:00
Merge branch 'main' of https://github.com/dograh-hq/dograh
This commit is contained in:
commit
291264de7b
16 changed files with 418 additions and 2 deletions
126
api/tests/test_minimax_service_factory.py
Normal file
126
api/tests/test_minimax_service_factory.py
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
from types import SimpleNamespace
|
||||
from unittest.mock import patch
|
||||
|
||||
from pipecat.services.minimax.llm import MiniMaxLLMService as RealMiniMaxLLMService
|
||||
|
||||
from api.services.configuration.registry import (
|
||||
MiniMaxLLMConfiguration,
|
||||
MiniMaxTTSConfiguration,
|
||||
ServiceProviders,
|
||||
)
|
||||
from api.services.pipecat.service_factory import (
|
||||
create_llm_service_from_provider,
|
||||
create_tts_service,
|
||||
)
|
||||
|
||||
|
||||
class TestMiniMaxLLMConfiguration:
|
||||
def test_default_values(self):
|
||||
config = MiniMaxLLMConfiguration(api_key="test-key")
|
||||
assert config.provider == ServiceProviders.MINIMAX
|
||||
assert config.model == "MiniMax-M2.7"
|
||||
assert config.base_url == "https://api.minimax.io/v1"
|
||||
|
||||
def test_custom_model(self):
|
||||
config = MiniMaxLLMConfiguration(
|
||||
api_key="test-key", model="MiniMax-M2.7-highspeed"
|
||||
)
|
||||
assert config.model == "MiniMax-M2.7-highspeed"
|
||||
|
||||
def test_custom_base_url(self):
|
||||
config = MiniMaxLLMConfiguration(
|
||||
api_key="test-key", base_url="https://api.minimaxi.com/v1"
|
||||
)
|
||||
assert config.base_url == "https://api.minimaxi.com/v1"
|
||||
|
||||
|
||||
class TestMiniMaxTTSConfiguration:
|
||||
def test_default_values(self):
|
||||
config = MiniMaxTTSConfiguration(api_key="test-key", group_id="test-group")
|
||||
assert config.provider == ServiceProviders.MINIMAX
|
||||
assert config.model == "speech-2.8-hd"
|
||||
assert config.voice == "English_Graceful_Lady"
|
||||
assert config.speed == 1.0
|
||||
assert config.group_id == "test-group"
|
||||
|
||||
|
||||
class TestMiniMaxLLMServiceFactory:
|
||||
def test_create_minimax_llm_service_uses_openai_compatible(self):
|
||||
with patch(
|
||||
"api.services.pipecat.service_factory.MiniMaxLLMService"
|
||||
) as mock_service:
|
||||
mock_service.Settings = RealMiniMaxLLMService.Settings
|
||||
create_llm_service_from_provider(
|
||||
provider=ServiceProviders.MINIMAX.value,
|
||||
model="MiniMax-M2.7",
|
||||
api_key="test-key",
|
||||
)
|
||||
|
||||
assert mock_service.call_count == 1
|
||||
kwargs = mock_service.call_args.kwargs
|
||||
assert kwargs["api_key"] == "test-key"
|
||||
assert kwargs["base_url"] == "https://api.minimax.io/v1"
|
||||
assert kwargs["settings"].model == "MiniMax-M2.7"
|
||||
assert kwargs["settings"].temperature == 1.0
|
||||
|
||||
def test_create_minimax_llm_service_custom_base_url(self):
|
||||
with patch(
|
||||
"api.services.pipecat.service_factory.MiniMaxLLMService"
|
||||
) as mock_service:
|
||||
mock_service.Settings = RealMiniMaxLLMService.Settings
|
||||
create_llm_service_from_provider(
|
||||
provider=ServiceProviders.MINIMAX.value,
|
||||
model="MiniMax-M2.7-highspeed",
|
||||
api_key="test-key",
|
||||
base_url="https://api.minimaxi.com/v1",
|
||||
)
|
||||
|
||||
kwargs = mock_service.call_args.kwargs
|
||||
assert kwargs["base_url"] == "https://api.minimaxi.com/v1"
|
||||
assert kwargs["settings"].model == "MiniMax-M2.7-highspeed"
|
||||
|
||||
def test_create_minimax_llm_service_passes_user_temperature(self):
|
||||
with patch(
|
||||
"api.services.pipecat.service_factory.MiniMaxLLMService"
|
||||
) as mock_service:
|
||||
mock_service.Settings = RealMiniMaxLLMService.Settings
|
||||
create_llm_service_from_provider(
|
||||
provider=ServiceProviders.MINIMAX.value,
|
||||
model="MiniMax-M2.7",
|
||||
api_key="test-key",
|
||||
temperature=0.3,
|
||||
)
|
||||
kwargs = mock_service.call_args.kwargs
|
||||
assert kwargs["settings"].temperature == 0.3
|
||||
|
||||
|
||||
class TestMiniMaxTTSServiceFactory:
|
||||
def test_create_minimax_tts_service(self):
|
||||
user_config = SimpleNamespace(
|
||||
tts=SimpleNamespace(
|
||||
provider=ServiceProviders.MINIMAX.value,
|
||||
api_key="test-key",
|
||||
model="speech-2.8-hd",
|
||||
voice="English_Graceful_Lady",
|
||||
speed=1.0,
|
||||
base_url="https://api.minimax.io/v1",
|
||||
group_id="test-group",
|
||||
)
|
||||
)
|
||||
audio_config = SimpleNamespace(transport_in_sample_rate=16000)
|
||||
|
||||
with patch(
|
||||
"api.services.pipecat.service_factory.aiohttp.ClientSession"
|
||||
), patch(
|
||||
"api.services.pipecat.service_factory.MiniMaxOwnedSessionTTSService"
|
||||
) as mock_service:
|
||||
create_tts_service(user_config, audio_config)
|
||||
|
||||
assert mock_service.call_count == 1
|
||||
kwargs = mock_service.call_args.kwargs
|
||||
assert kwargs["api_key"] == "test-key"
|
||||
assert kwargs["group_id"] == "test-group"
|
||||
assert kwargs["settings"].model == "speech-2.8-hd"
|
||||
assert kwargs["settings"].voice == "English_Graceful_Lady"
|
||||
assert kwargs["settings"].speed == 1.0
|
||||
assert kwargs["aiohttp_session"] is not None
|
||||
Loading…
Add table
Add a link
Reference in a new issue