From c307f6b0af10a13bf44c6b034794c201988407c3 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Mon, 6 Jan 2025 11:08:57 +0800 Subject: [PATCH] feat: Support stt mode auto send message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --story=1017616 --user=刘瑞斌 【应用】语音输入支持自动发送 https://www.tapd.cn/57709429/s/1641715 --- .../0023_application_stt_autosend.py | 18 +++++++++ apps/application/models/application.py | 1 + .../serializers/application_serializers.py | 4 +- ui/src/api/type/application.ts | 1 + .../component/chat-input-operate/index.vue | 39 ++++++++++++------- .../views/application/ApplicationSetting.vue | 23 +++++------ ui/src/workflow/nodes/base-node/index.vue | 23 +++++------ 7 files changed, 65 insertions(+), 44 deletions(-) create mode 100644 apps/application/migrations/0023_application_stt_autosend.py diff --git a/apps/application/migrations/0023_application_stt_autosend.py b/apps/application/migrations/0023_application_stt_autosend.py new file mode 100644 index 000000000..13453c5a9 --- /dev/null +++ b/apps/application/migrations/0023_application_stt_autosend.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.15 on 2025-01-06 10:37 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('application', '0022_application_tts_autoplay'), + ] + + operations = [ + migrations.AddField( + model_name='application', + name='stt_autosend', + field=models.BooleanField(default=False, verbose_name='自动发送'), + ), + ] diff --git a/apps/application/models/application.py b/apps/application/models/application.py index 80872c7dc..0f611cea8 100644 --- a/apps/application/models/application.py +++ b/apps/application/models/application.py @@ -66,6 +66,7 @@ class Application(AppModelMixin): stt_model_enable = models.BooleanField(verbose_name="语音识别模型是否启用", default=False) tts_type = models.CharField(verbose_name="语音播放类型", max_length=20, default="BROWSER") tts_autoplay = models.BooleanField(verbose_name="自动播放", default=False) + stt_autosend = models.BooleanField(verbose_name="自动发送", default=False) clean_time = models.IntegerField(verbose_name="清理时间", default=180) file_upload_enable = models.BooleanField(verbose_name="文件上传是否启用", default=False) file_upload_setting = models.JSONField(verbose_name="文件上传相关设置", default=dict) diff --git a/apps/application/serializers/application_serializers.py b/apps/application/serializers/application_serializers.py index 0bc8c0554..b2fe9bf5c 100644 --- a/apps/application/serializers/application_serializers.py +++ b/apps/application/serializers/application_serializers.py @@ -1009,7 +1009,7 @@ class ApplicationSerializer(serializers.Serializer): update_keys = ['name', 'desc', 'model_id', 'multiple_rounds_dialogue', 'prologue', 'status', 'dataset_setting', 'model_setting', 'problem_optimization', 'dialogue_number', 'stt_model_id', 'tts_model_id', 'tts_model_enable', 'stt_model_enable', 'tts_type', - 'tts_autoplay', 'file_upload_enable', 'file_upload_setting', + 'tts_autoplay', 'stt_autosend', 'file_upload_enable', 'file_upload_setting', 'api_key_is_active', 'icon', 'work_flow', 'model_params_setting', 'tts_model_params_setting', 'problem_optimization_prompt', 'clean_time'] for update_key in update_keys: @@ -1075,6 +1075,8 @@ class ApplicationSerializer(serializers.Serializer): instance['tts_type'] = node_data['tts_type'] if 'tts_autoplay' in node_data: instance['tts_autoplay'] = node_data['tts_autoplay'] + if 'stt_autosend' in node_data: + instance['stt_autosend'] = node_data['stt_autosend'] if 'tts_model_params_setting' in node_data: instance['tts_model_params_setting'] = node_data['tts_model_params_setting'] if 'file_upload_enable' in node_data: diff --git a/ui/src/api/type/application.ts b/ui/src/api/type/application.ts index 45c6dd4b8..51dac2fed 100644 --- a/ui/src/api/type/application.ts +++ b/ui/src/api/type/application.ts @@ -22,6 +22,7 @@ interface ApplicationFormType { tts_model_enable?: boolean tts_type?: string tts_autoplay?: boolean + stt_autosend?: boolean } interface Chunk { real_node_id: string diff --git a/ui/src/components/ai-chat/component/chat-input-operate/index.vue b/ui/src/components/ai-chat/component/chat-input-operate/index.vue index 1f9335be2..451fd6312 100644 --- a/ui/src/components/ai-chat/component/chat-input-operate/index.vue +++ b/ui/src/components/ai-chat/component/chat-input-operate/index.vue @@ -175,7 +175,7 @@