From c3440a27fb7c7468cd6c09b28e24e62b1d79591d Mon Sep 17 00:00:00 2001 From: Yeuoly Date: Tue, 7 Jan 2025 18:59:13 +0800 Subject: [PATCH] fix --- .../app/apps/advanced_chat/app_generator_tts_publisher.py | 4 ++-- api/core/app/apps/advanced_chat/generate_task_pipeline.py | 4 +++- api/core/app/apps/workflow/generate_task_pipeline.py | 4 +++- .../task_pipeline/easy_ui_based_generate_task_pipeline.py | 4 +++- api/core/plugin/entities/plugin_daemon.py | 1 + api/core/plugin/manager/model.py | 6 ++++++ 6 files changed, 18 insertions(+), 5 deletions(-) diff --git a/api/core/app/apps/advanced_chat/app_generator_tts_publisher.py b/api/core/app/apps/advanced_chat/app_generator_tts_publisher.py index a506447671..4e6422e2df 100644 --- a/api/core/app/apps/advanced_chat/app_generator_tts_publisher.py +++ b/api/core/app/apps/advanced_chat/app_generator_tts_publisher.py @@ -56,7 +56,7 @@ def _process_future( class AppGeneratorTTSPublisher: - def __init__(self, tenant_id: str, voice: str): + def __init__(self, tenant_id: str, voice: str, language: Optional[str] = None): self.logger = logging.getLogger(__name__) self.tenant_id = tenant_id self.msg_text = "" @@ -67,7 +67,7 @@ class AppGeneratorTTSPublisher: self.model_instance = self.model_manager.get_default_model_instance( tenant_id=self.tenant_id, model_type=ModelType.TTS ) - self.voices = self.model_instance.get_tts_voices() + self.voices = self.model_instance.get_tts_voices(language=language) values = [voice.get("value") for voice in self.voices] self.voice = voice if not voice or voice not in values: diff --git a/api/core/app/apps/advanced_chat/generate_task_pipeline.py b/api/core/app/apps/advanced_chat/generate_task_pipeline.py index ab0f0763f4..1f13acade7 100644 --- a/api/core/app/apps/advanced_chat/generate_task_pipeline.py +++ b/api/core/app/apps/advanced_chat/generate_task_pipeline.py @@ -225,7 +225,9 @@ class AdvancedChatAppGenerateTaskPipeline(BasedGenerateTaskPipeline, WorkflowCyc and features_dict["text_to_speech"].get("enabled") and features_dict["text_to_speech"].get("autoPlay") == "enabled" ): - tts_publisher = AppGeneratorTTSPublisher(tenant_id, features_dict["text_to_speech"].get("voice")) + tts_publisher = AppGeneratorTTSPublisher( + tenant_id, features_dict["text_to_speech"].get("voice"), features_dict["text_to_speech"].get("language") + ) for response in self._process_stream_response(tts_publisher=tts_publisher, trace_manager=trace_manager): while True: diff --git a/api/core/app/apps/workflow/generate_task_pipeline.py b/api/core/app/apps/workflow/generate_task_pipeline.py index df48a83316..9820cb388f 100644 --- a/api/core/app/apps/workflow/generate_task_pipeline.py +++ b/api/core/app/apps/workflow/generate_task_pipeline.py @@ -194,7 +194,9 @@ class WorkflowAppGenerateTaskPipeline(BasedGenerateTaskPipeline, WorkflowCycleMa and features_dict["text_to_speech"].get("enabled") and features_dict["text_to_speech"].get("autoPlay") == "enabled" ): - tts_publisher = AppGeneratorTTSPublisher(tenant_id, features_dict["text_to_speech"].get("voice")) + tts_publisher = AppGeneratorTTSPublisher( + tenant_id, features_dict["text_to_speech"].get("voice"), features_dict["text_to_speech"].get("language") + ) for response in self._process_stream_response(tts_publisher=tts_publisher, trace_manager=trace_manager): while True: diff --git a/api/core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py b/api/core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py index c84f8ba3e4..8c9c26d36e 100644 --- a/api/core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py +++ b/api/core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py @@ -215,7 +215,9 @@ class EasyUIBasedGenerateTaskPipeline(BasedGenerateTaskPipeline, MessageCycleMan and text_to_speech_dict.get("autoPlay") == "enabled" and text_to_speech_dict.get("enabled") ): - publisher = AppGeneratorTTSPublisher(tenant_id, text_to_speech_dict.get("voice", None)) + publisher = AppGeneratorTTSPublisher( + tenant_id, text_to_speech_dict.get("voice", None), text_to_speech_dict.get("language", None) + ) for response in self._process_stream_response(publisher=publisher, trace_manager=trace_manager): while True: audio_response = self._listen_audio_msg(publisher, task_id) diff --git a/api/core/plugin/entities/plugin_daemon.py b/api/core/plugin/entities/plugin_daemon.py index 7df8859bcf..1588cbc3c7 100644 --- a/api/core/plugin/entities/plugin_daemon.py +++ b/api/core/plugin/entities/plugin_daemon.py @@ -59,6 +59,7 @@ class PluginBasicBooleanResponse(BaseModel): """ result: bool + credentials: dict | None = None class PluginModelSchemaEntity(BaseModel): diff --git a/api/core/plugin/manager/model.py b/api/core/plugin/manager/model.py index 2862cd9a25..5ebc0c2320 100644 --- a/api/core/plugin/manager/model.py +++ b/api/core/plugin/manager/model.py @@ -95,6 +95,9 @@ class PluginModelManager(BasePluginManager): ) for resp in response: + if resp.credentials and isinstance(resp.credentials, dict): + credentials.update(resp.credentials) + return resp.result return False @@ -132,6 +135,9 @@ class PluginModelManager(BasePluginManager): ) for resp in response: + if resp.credentials and isinstance(resp.credentials, dict): + credentials.update(resp.credentials) + return resp.result return False