- Introduced `asr_interim_enabled` field in the Assistant model to control interim ASR results. - Updated AssistantBase and AssistantUpdate schemas to include the new field. - Modified the database schema to add the `asr_interim_enabled` column. - Enhanced runtime metadata to reflect interim ASR settings. - Updated API endpoints and tests to validate the new functionality. - Adjusted documentation to include details about interim ASR results configuration.
48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
from providers.asr.buffered import BufferedASRService
|
|
from providers.asr.dashscope import DashScopeRealtimeASRService
|
|
from providers.asr.openai_compatible import OpenAICompatibleASRService
|
|
from providers.factory.default import DefaultRealtimeServiceFactory
|
|
from runtime.ports import ASRServiceSpec
|
|
|
|
|
|
def test_create_asr_service_dashscope_returns_streaming_provider():
|
|
factory = DefaultRealtimeServiceFactory()
|
|
service = factory.create_asr_service(
|
|
ASRServiceSpec(
|
|
provider="dashscope",
|
|
mode="streaming",
|
|
sample_rate=16000,
|
|
api_key="test-key",
|
|
model="qwen3-asr-flash-realtime",
|
|
)
|
|
)
|
|
assert isinstance(service, DashScopeRealtimeASRService)
|
|
assert service.mode == "streaming"
|
|
|
|
|
|
def test_create_asr_service_openai_compatible_returns_offline_provider():
|
|
factory = DefaultRealtimeServiceFactory()
|
|
service = factory.create_asr_service(
|
|
ASRServiceSpec(
|
|
provider="openai_compatible",
|
|
sample_rate=16000,
|
|
api_key="test-key",
|
|
model="FunAudioLLM/SenseVoiceSmall",
|
|
)
|
|
)
|
|
assert isinstance(service, OpenAICompatibleASRService)
|
|
assert service.mode == "offline"
|
|
assert service.enable_interim is False
|
|
|
|
|
|
def test_create_asr_service_fallback_buffered_for_unsupported_provider():
|
|
factory = DefaultRealtimeServiceFactory()
|
|
service = factory.create_asr_service(
|
|
ASRServiceSpec(
|
|
provider="unknown_provider",
|
|
sample_rate=16000,
|
|
)
|
|
)
|
|
assert isinstance(service, BufferedASRService)
|
|
assert service.mode == "offline"
|