Bladeren bron

fix: add type hints for App model and improve error handling in audio services (#12677)

Signed-off-by: -LAN- <laipz8200@outlook.com>
tags/0.15.1
-LAN- 9 maanden geleden
bovenliggende
commit
cb34991663
No account linked to committer's email address
2 gewijzigde bestanden met toevoegingen van 9 en 3 verwijderingen
  1. 6
    2
      api/controllers/console/app/audio.py
  2. 3
    1
      api/services/audio_service.py

+ 6
- 2
api/controllers/console/app/audio.py Bestand weergeven

@@ -22,7 +22,7 @@ from controllers.console.wraps import account_initialization_required, setup_req
from core.errors.error import ModelCurrentlyNotSupportError, ProviderTokenNotInitError, QuotaExceededError
from core.model_runtime.errors.invoke import InvokeError
from libs.login import login_required
from models.model import AppMode
from models import App, AppMode
from services.audio_service import AudioService
from services.errors.audio import (
AudioTooLargeServiceError,
@@ -79,7 +79,7 @@ class ChatMessageTextApi(Resource):
@login_required
@account_initialization_required
@get_app_model
def post(self, app_model):
def post(self, app_model: App):
from werkzeug.exceptions import InternalServerError

try:
@@ -98,9 +98,13 @@ class ChatMessageTextApi(Resource):
and app_model.workflow.features_dict
):
text_to_speech = app_model.workflow.features_dict.get("text_to_speech")
if text_to_speech is None:
raise ValueError("TTS is not enabled")
voice = args.get("voice") or text_to_speech.get("voice")
else:
try:
if app_model.app_model_config is None:
raise ValueError("AppModelConfig not found")
voice = args.get("voice") or app_model.app_model_config.text_to_speech_dict.get("voice")
except Exception:
voice = None

+ 3
- 1
api/services/audio_service.py Bestand weergeven

@@ -82,7 +82,7 @@ class AudioService:
from app import app
from extensions.ext_database import db

def invoke_tts(text_content: str, app_model, voice: Optional[str] = None):
def invoke_tts(text_content: str, app_model: App, voice: Optional[str] = None):
with app.app_context():
if app_model.mode in {AppMode.ADVANCED_CHAT.value, AppMode.WORKFLOW.value}:
workflow = app_model.workflow
@@ -95,6 +95,8 @@ class AudioService:

voice = features_dict["text_to_speech"].get("voice") if voice is None else voice
else:
if app_model.app_model_config is None:
raise ValueError("AppModelConfig not found")
text_to_speech_dict = app_model.app_model_config.text_to_speech_dict

if not text_to_speech_dict.get("enabled"):

Laden…
Annuleren
Opslaan