mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-16 11:57:51 +01:00
join the url instead of concatenating a string in case the user adds a slash to the end of their configured url.
This commit is contained in:
@@ -4,7 +4,7 @@ import logging
|
|||||||
import os
|
import os
|
||||||
import uuid
|
import uuid
|
||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
from pathlib import Path
|
|
||||||
from pydub import AudioSegment
|
from pydub import AudioSegment
|
||||||
from pydub.silence import split_on_silence
|
from pydub.silence import split_on_silence
|
||||||
from concurrent.futures import ThreadPoolExecutor
|
from concurrent.futures import ThreadPoolExecutor
|
||||||
@@ -15,7 +15,7 @@ import aiohttp
|
|||||||
import aiofiles
|
import aiofiles
|
||||||
import requests
|
import requests
|
||||||
import mimetypes
|
import mimetypes
|
||||||
from urllib.parse import quote
|
from urllib.parse import urljoin
|
||||||
|
|
||||||
from fastapi import (
|
from fastapi import (
|
||||||
Depends,
|
Depends,
|
||||||
@@ -308,6 +308,7 @@ def load_speech_pipeline(request):
|
|||||||
@router.post("/speech")
|
@router.post("/speech")
|
||||||
async def speech(request: Request, user=Depends(get_verified_user)):
|
async def speech(request: Request, user=Depends(get_verified_user)):
|
||||||
body = await request.body()
|
body = await request.body()
|
||||||
|
tts_model = request.app.state.config.TTS_MODEL
|
||||||
name = hashlib.sha256(
|
name = hashlib.sha256(
|
||||||
body
|
body
|
||||||
+ str(request.app.state.config.TTS_ENGINE).encode("utf-8")
|
+ str(request.app.state.config.TTS_ENGINE).encode("utf-8")
|
||||||
@@ -337,8 +338,9 @@ async def speech(request: Request, user=Depends(get_verified_user)):
|
|||||||
async with aiohttp.ClientSession(
|
async with aiohttp.ClientSession(
|
||||||
timeout=timeout, trust_env=True
|
timeout=timeout, trust_env=True
|
||||||
) as session:
|
) as session:
|
||||||
|
|
||||||
r = await session.post(
|
r = await session.post(
|
||||||
url=f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/speech",
|
url=urljoin(request.app.state.config.TTS_OPENAI_API_BASE_URL, "/audio/speech"),
|
||||||
json=payload,
|
json=payload,
|
||||||
headers={
|
headers={
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
@@ -466,8 +468,7 @@ async def speech(request: Request, user=Depends(get_verified_user)):
|
|||||||
timeout=timeout, trust_env=True
|
timeout=timeout, trust_env=True
|
||||||
) as session:
|
) as session:
|
||||||
async with session.post(
|
async with session.post(
|
||||||
(base_url or f"https://{region}.tts.speech.microsoft.com")
|
urljoin(base_url or f"https://{region}.tts.speech.microsoft.com", "/cognitiveservices/v1"),
|
||||||
+ "/cognitiveservices/v1",
|
|
||||||
headers={
|
headers={
|
||||||
"Ocp-Apim-Subscription-Key": request.app.state.config.TTS_API_KEY,
|
"Ocp-Apim-Subscription-Key": request.app.state.config.TTS_API_KEY,
|
||||||
"Content-Type": "application/ssml+xml",
|
"Content-Type": "application/ssml+xml",
|
||||||
|
|||||||
Reference in New Issue
Block a user