mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-12 04:15:25 +00: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:
parent
3111d1bf61
commit
562710fe33
1 changed files with 6 additions and 5 deletions
|
|
@ -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",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue