From 2d8095779a688573f1944088982ce28359aee0dd Mon Sep 17 00:00:00 2001 From: tanlongsheng <252620078@qq.com> Date: Tue, 21 Oct 2025 18:57:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BC=9A=E8=AE=AE=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=A8=A1=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../meeting/meeting_task_service.dart | 37 ++++++++++++------- .../meeting/meeting_upload_service.dart | 10 ++++- .../meeting_details_controller.dart | 8 ++-- .../bottomSheet/generate_bottom_sheet.dart | 10 ++++- 4 files changed, 44 insertions(+), 21 deletions(-) diff --git a/lib/data/services/meeting/meeting_task_service.dart b/lib/data/services/meeting/meeting_task_service.dart index ccae12596..debff4b35 100644 --- a/lib/data/services/meeting/meeting_task_service.dart +++ b/lib/data/services/meeting/meeting_task_service.dart @@ -6,7 +6,6 @@ import 'package:http/http.dart' as http; import '../../../core/utils/logger.dart'; import '../../../core/utils/synchrodata.dart'; -import '../../models/appconfig.dart'; import '../db/sqflite_api.dart'; import '../deapsound_ai_service.dart'; import 'meeting_upload_service.dart'; @@ -21,7 +20,6 @@ class MeetingTaskService extends GetxService { bool _isTask = false; - String _systemPrompt = ''; String _userId = ''; final String _appid = '2316081933'; @@ -50,7 +48,6 @@ class MeetingTaskService extends GetxService { void _getAgent() async { Map userInfo = _storage.read("user_info"); _userId = userInfo['user']['uid']; - _systemPrompt = AppConfig.agentsystemPrompt("meet_assistant") ?? ''; } void _getTaskList() { @@ -59,7 +56,8 @@ class MeetingTaskService extends GetxService { _executeTask(); } - Future addTask(int id, String audiourl, String taskid) async { + Future addTask(int id, String audiourl, String taskid, String prompt, + String outline) async { if (audiourl.isEmpty) { Map uploadData = _uploadService.uploadList.firstWhere( (element) => element['id'] == id, @@ -68,16 +66,20 @@ class MeetingTaskService extends GetxService { if (uploadData.isNotEmpty) { if (uploadData['audiourl'].isEmpty) { uploadData['isTask'] = true; + uploadData['prompt'] = prompt; + uploadData['outline'] = outline; } else { - await addTaskList(id, uploadData['audiourl'], taskid); + await addTaskList( + id, uploadData['audiourl'], taskid, prompt, outline); } } } else { - await addTaskList(id, audiourl, taskid); + await addTaskList(id, audiourl, taskid, prompt, outline); } } - Future addTaskList(int id, String audiourl, String taskId) async { + Future addTaskList(int id, String audiourl, String taskId, + String prompt, String outline) async { if (taskId.isEmpty) { taskId = await _submitTask(audiourl); } @@ -86,6 +88,8 @@ class MeetingTaskService extends GetxService { 'id': id, 'taskid': taskId, 'tasktype': 1, + 'prompt': prompt, + 'outline': outline, }); taskFinishList.add({ 'id': id, @@ -206,7 +210,12 @@ class MeetingTaskService extends GetxService { var code = respDic['resp']['code'] as int; if (code == 1000) { - await _addTextList(item['id'], respDic['resp']['utterances']); + await _addTextList( + item['id'], + respDic['resp']['utterances'], + item['prompt'], + item['outline'], + ); return; } else if (code < 2000) { Logger.debug("FileRecognize failed"); @@ -217,7 +226,8 @@ class MeetingTaskService extends GetxService { } } - Future _addTextList(int id, List utterances) async { + Future _addTextList( + int id, List utterances, String prompt, String outline) async { String text = ''; String personnel = ''; List> list = []; @@ -267,10 +277,10 @@ class MeetingTaskService extends GetxService { _storage.write("meeting_task_list", _taskList); _storage.write("meeting_task_finish_list", taskFinishList); } - aiServiceMessage(id, text); + aiServiceMessage(id, text, prompt, outline); } - void aiServiceMessage(int id, String text) { + void aiServiceMessage(int id, String text, String prompt, String outline) { int awaitQuantity = 0; String summaryText = ''; String overviewText = ''; @@ -278,8 +288,7 @@ class MeetingTaskService extends GetxService { messages: [ { 'role': 'system', - 'content': - '您将扮演一名会议总结专家,拥有超强的信息归纳与细分能力。不仅能高效处理各类通用场景会议,精准提炼会议核心内容,为后续思维导图生成奠定坚实基础。若涉及人员,人员名称保留[]。并根据内容只输出对应语言。', + 'content': prompt, }, {'role': 'user', 'content': text}, ], @@ -294,7 +303,7 @@ class MeetingTaskService extends GetxService { messages: [ { 'role': 'system', - 'content': '您将扮演一名会议事件归纳专家,能准确抓住会议中事件的关键点,并每个事件只需一句话精简总结。', + 'content': outline, }, {'role': 'user', 'content': text}, ], diff --git a/lib/data/services/meeting/meeting_upload_service.dart b/lib/data/services/meeting/meeting_upload_service.dart index 65ebdd805..27e25ee47 100644 --- a/lib/data/services/meeting/meeting_upload_service.dart +++ b/lib/data/services/meeting/meeting_upload_service.dart @@ -41,6 +41,8 @@ class MeetingUploadService extends GetxService { 'rootdir': rootDir, 'audiourl': '', 'isTask': false, + 'prompt': '', + 'outline': '', }); _storage.write("meeting_upload_list", uploadList); if (isUpload) { @@ -70,7 +72,13 @@ class MeetingUploadService extends GetxService { {'audiourl': audiourl}, ); if (element['isTask']) { - await _taskService.addTaskList(element['id'], audiourl, ''); + await _taskService.addTaskList( + element['id'], + audiourl, + '', + element['prompt'], + element['outline'], + ); } element['audiourl'] = audiourl; uploadProgress.value = 0.0; diff --git a/lib/modules/meeting/controllers/meeting_details_controller.dart b/lib/modules/meeting/controllers/meeting_details_controller.dart index 19a9db30f..5d1669fc3 100644 --- a/lib/modules/meeting/controllers/meeting_details_controller.dart +++ b/lib/modules/meeting/controllers/meeting_details_controller.dart @@ -245,18 +245,18 @@ class MeetingDetailsController extends GetxController } } - void summaryCreate() async { + void summaryCreate(String prompt, String outline) async { EasyLoading.show(); _everType = 2; String audiourl = meetingData.value.audiourl; String taskId = meetingDetails.value.taskid; - await _meetingTaskService.addTask(id, audiourl, taskId); + await _meetingTaskService.addTask(id, audiourl, taskId, prompt, outline); meetingDetails.value.tasktype = 1; meetingDetails.refresh(); EasyLoading.dismiss(); } - void refreshSummary() async { + void refreshSummary(String prompt, String outline) async { String text = ''; for (var element in textList) { if (element['speaker'].isNotEmpty) { @@ -267,6 +267,6 @@ class MeetingDetailsController extends GetxController _everType = 3; await SqfliteApi.editMeeting(id, {'tasktype': 2}); _meetingTaskService.tasktype.value = 2; - _meetingTaskService.aiServiceMessage(id, text); + _meetingTaskService.aiServiceMessage(id, text, prompt, outline); } } diff --git a/lib/modules/meeting/views/bottomSheet/generate_bottom_sheet.dart b/lib/modules/meeting/views/bottomSheet/generate_bottom_sheet.dart index 3537b4435..8b704ef7a 100644 --- a/lib/modules/meeting/views/bottomSheet/generate_bottom_sheet.dart +++ b/lib/modules/meeting/views/bottomSheet/generate_bottom_sheet.dart @@ -283,9 +283,15 @@ class _GenerateBottomSheetState extends State { _storage.write("meeting_template_list", _templateList); Get.back(); if (widget.isSummarizeAgain) { - _controller.refreshSummary(); + _controller.refreshSummary( + _templateData['prompt'], + _templateData['outline'], + ); } else { - _controller.summaryCreate(); + _controller.summaryCreate( + _templateData['prompt'], + _templateData['outline'], + ); } }, child: Container(