mirror of
https://github.com/open-webui/open-webui
synced 2025-03-05 03:48:55 +00:00
Merge pull request #10501 from Synergyst/feature/openai-tts-custom-url-fix-dev
fix: Custom OpenAI-TTS URL to fetch actual voices and models
This commit is contained in:
commit
b0a19a9801
@ -680,6 +680,17 @@ def transcription(
|
|||||||
def get_available_models(request: Request) -> list[dict]:
|
def get_available_models(request: Request) -> list[dict]:
|
||||||
available_models = []
|
available_models = []
|
||||||
if request.app.state.config.TTS_ENGINE == "openai":
|
if request.app.state.config.TTS_ENGINE == "openai":
|
||||||
|
# Use custom endpoint if not using the official OpenAI API URL
|
||||||
|
if not request.app.state.config.TTS_OPENAI_API_BASE_URL.startswith("https://api.openai.com"):
|
||||||
|
try:
|
||||||
|
response = requests.get(f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/models")
|
||||||
|
response.raise_for_status()
|
||||||
|
data = response.json()
|
||||||
|
available_models = data.get("models", [])
|
||||||
|
except Exception as e:
|
||||||
|
log.error(f"Error fetching models from custom endpoint: {str(e)}")
|
||||||
|
available_models = []
|
||||||
|
else:
|
||||||
available_models = [{"id": "tts-1"}, {"id": "tts-1-hd"}]
|
available_models = [{"id": "tts-1"}, {"id": "tts-1-hd"}]
|
||||||
elif request.app.state.config.TTS_ENGINE == "elevenlabs":
|
elif request.app.state.config.TTS_ENGINE == "elevenlabs":
|
||||||
try:
|
try:
|
||||||
@ -711,6 +722,18 @@ def get_available_voices(request) -> dict:
|
|||||||
"""Returns {voice_id: voice_name} dict"""
|
"""Returns {voice_id: voice_name} dict"""
|
||||||
available_voices = {}
|
available_voices = {}
|
||||||
if request.app.state.config.TTS_ENGINE == "openai":
|
if request.app.state.config.TTS_ENGINE == "openai":
|
||||||
|
# Use custom endpoint if not using the official OpenAI API URL
|
||||||
|
if not request.app.state.config.TTS_OPENAI_API_BASE_URL.startswith("https://api.openai.com"):
|
||||||
|
try:
|
||||||
|
response = requests.get(f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/voices")
|
||||||
|
response.raise_for_status()
|
||||||
|
data = response.json()
|
||||||
|
voices_list = data.get("voices", [])
|
||||||
|
available_voices = {voice["id"]: voice["name"] for voice in voices_list}
|
||||||
|
except Exception as e:
|
||||||
|
log.error(f"Error fetching voices from custom endpoint: {str(e)}")
|
||||||
|
available_voices = {}
|
||||||
|
else:
|
||||||
available_voices = {
|
available_voices = {
|
||||||
"alloy": "alloy",
|
"alloy": "alloy",
|
||||||
"echo": "echo",
|
"echo": "echo",
|
||||||
|
Loading…
Reference in New Issue
Block a user