mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-06-07 07:55:16 +02:00
Mirrors the LLM treatment from #368 for the OpenAI STT and OpenAI TTS providers. Users running OpenAI-compatible self-hosted services (vLLM, Speaches, llama.cpp, custom proxies) can now point Dograh at them via the OpenAI provider with `base_url`, instead of being forced onto the Speaches provider as a workaround. Changes: * `registry.py` — add `base_url` field (default `https://api.openai.com/v1`) to `OpenAISTTConfiguration` and `OpenAITTSService`, identical in shape to the existing `OpenAILLMService.base_url` from #368. * `service_factory.py` — in the OPENAI branches of `create_stt_service` and `create_tts_service`, lift `base_url` off the user config, run it through `_validate_runtime_service_url`, and forward it as a kwarg to `OpenAISTTService` / `OpenAITTSService` (both already accept it). Same pattern as the LLM branch. * `test_user_configured_service_url_security.py` — adds four runtime validation tests covering private-IP rejection and localhost rejection in SaaS mode for both STT and TTS. Existing OSS-mode permissiveness is unchanged (DEPLOYMENT_MODE=oss skips the validator, as before). No schema migration needed — Pydantic populates the default; existing configurations without `base_url` continue to talk to api.openai.com. `check_validity.py` requires no edits because the per-service validation loop already iterates `("base_url", "endpoint")` via `getattr`, and the `_check_openai_api_key` dispatcher already routes OPENAI providers through the base_url-aware code path (introduced in #368) for STT and TTS too. Tests pass locally: pytest api/tests/test_user_configured_service_url_security.py 23 passed in 4.80s (19 existing + 4 new) Co-authored-by: developer603 <developer603@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| realtime | ||
| __init__.py | ||
| audio_config.py | ||
| audio_file_cache.py | ||
| audio_mixer.py | ||
| audio_playback.py | ||
| event_handlers.py | ||
| exceptions.py | ||
| in_memory_buffers.py | ||
| minimax_tts.py | ||
| pipeline_builder.py | ||
| pipeline_engine_callbacks_processor.py | ||
| pipeline_metrics_aggregator.py | ||
| pre_call_fetch.py | ||
| realtime_feedback_events.py | ||
| realtime_feedback_observer.py | ||
| recording_audio_cache.py | ||
| recording_router_processor.py | ||
| run_pipeline.py | ||
| service_factory.py | ||
| tracing_config.py | ||
| transport_params.py | ||
| transport_setup.py | ||
| turn_context.py | ||
| worker_runner.py | ||
| ws_sender_registry.py | ||