Browse Source

优化会议总结

weicu
tanlongsheng 1 year ago
parent
commit
c5b8453da6
  1. 10
      lib/data/services/meeting/meeting_task_service.dart
  2. 31
      lib/modules/meeting/controllers/meeting_details_controller.dart
  3. 7
      lib/modules/meeting/views/bottomSheet/generate_bottom_sheet.dart

10
lib/data/services/meeting/meeting_task_service.dart

@ -33,7 +33,6 @@ class MeetingTaskService extends GetxService {
int meetingId = 0; int meetingId = 0;
RxInt tasktype = 1.obs; RxInt tasktype = 1.obs;
List textList = []; List textList = [];
String allText = '';
String summary = ''; String summary = '';
String overview = ''; String overview = '';
@ -268,11 +267,10 @@ class MeetingTaskService extends GetxService {
_storage.write("meeting_task_list", _taskList); _storage.write("meeting_task_list", _taskList);
_storage.write("meeting_task_finish_list", taskFinishList); _storage.write("meeting_task_finish_list", taskFinishList);
} }
allText = text; aiServiceMessage(id, text);
_aiServiceMessage(id);
} }
void _aiServiceMessage(int id) { void aiServiceMessage(int id, String text) {
int awaitQuantity = 0; int awaitQuantity = 0;
String summaryText = ''; String summaryText = '';
String overviewText = ''; String overviewText = '';
@ -283,7 +281,7 @@ class MeetingTaskService extends GetxService {
'content': 'content':
'您将扮演一名会议总结专家,拥有超强的信息归纳与细分能力。不仅能高效处理各类通用场景会议,精准提炼会议核心内容,为后续思维导图生成奠定坚实基础。若涉及人员,人员名称保留[]。并根据内容只输出对应语言。', '您将扮演一名会议总结专家,拥有超强的信息归纳与细分能力。不仅能高效处理各类通用场景会议,精准提炼会议核心内容,为后续思维导图生成奠定坚实基础。若涉及人员,人员名称保留[]。并根据内容只输出对应语言。',
}, },
{'role': 'user', 'content': allText}, {'role': 'user', 'content': text},
], ],
).then((value) { ).then((value) {
awaitQuantity++; awaitQuantity++;
@ -298,7 +296,7 @@ class MeetingTaskService extends GetxService {
'role': 'system', 'role': 'system',
'content': '您将扮演一名会议事件归纳专家,能准确抓住会议中事件的关键点,并每个事件只需一句话精简总结。', 'content': '您将扮演一名会议事件归纳专家,能准确抓住会议中事件的关键点,并每个事件只需一句话精简总结。',
}, },
{'role': 'user', 'content': allText}, {'role': 'user', 'content': text},
], ],
).then((value) { ).then((value) {
awaitQuantity++; awaitQuantity++;

31
lib/modules/meeting/controllers/meeting_details_controller.dart

@ -49,12 +49,13 @@ class MeetingDetailsController extends GetxController
Rx<MeetingModel> meetingData = MeetingModel().obs; Rx<MeetingModel> meetingData = MeetingModel().obs;
Rx<MeetingDetailsModel> meetingDetails = MeetingDetailsModel().obs; Rx<MeetingDetailsModel> meetingDetails = MeetingDetailsModel().obs;
RxList textList = [].obs; RxList textList = [].obs;
String allText = '';
RxBool isSpeakerText = false.obs; RxBool isSpeakerText = false.obs;
List editSpeakerTextList = []; List editSpeakerTextList = [];
RxInt editSpeakerTextId = 0.obs; RxInt editSpeakerTextId = 0.obs;
String editSpeakerTextChange = ''; String editSpeakerTextChange = '';
int _everType = 99;
String markmapLibJs = ''; String markmapLibJs = '';
String d3Js = ''; String d3Js = '';
String markmapViewJs = ''; String markmapViewJs = '';
@ -83,13 +84,14 @@ class MeetingDetailsController extends GetxController
_loadJS(); _loadJS();
ever(_meetingTaskService.tasktype, (value) { ever(_meetingTaskService.tasktype, (value) {
meetingDetails.value.tasktype = value; meetingDetails.value.tasktype = value;
if (value == 2) { if (_everType <= value) {
textList.value = _meetingTaskService.textList; if (value == 2) {
} else if (value == 3) { textList.value = _meetingTaskService.textList;
meetingDetails.value.summary = _meetingTaskService.summary; } else if (value == 3) {
meetingDetails.value.overview = _meetingTaskService.overview; meetingDetails.value.summary = _meetingTaskService.summary;
meetingDetails.value.overview = _meetingTaskService.overview;
}
} }
meetingDetails.refresh(); meetingDetails.refresh();
}); });
} }
@ -239,6 +241,7 @@ class MeetingDetailsController extends GetxController
void summaryCreate() async { void summaryCreate() async {
EasyLoading.show(); EasyLoading.show();
_everType = 2;
String audiourl = meetingData.value.audiourl; String audiourl = meetingData.value.audiourl;
String taskId = meetingDetails.value.taskid; String taskId = meetingDetails.value.taskid;
await _meetingTaskService.addTask(id, audiourl, taskId); await _meetingTaskService.addTask(id, audiourl, taskId);
@ -246,4 +249,18 @@ class MeetingDetailsController extends GetxController
meetingDetails.refresh(); meetingDetails.refresh();
EasyLoading.dismiss(); EasyLoading.dismiss();
} }
void refreshSummary() async {
String text = '';
for (var element in textList) {
if (element['speaker'].isNotEmpty) {
text += '[${element['speaker']}]: ';
}
text += '${element['content']}\n';
}
_everType = 3;
await SqfliteApi.editMeeting(id, {'tasktype': 2});
_meetingTaskService.tasktype.value = 2;
_meetingTaskService.aiServiceMessage(id, text);
}
} }

7
lib/modules/meeting/views/bottomSheet/generate_bottom_sheet.dart

@ -283,11 +283,10 @@ class _GenerateBottomSheetState extends State<GenerateBottomSheet> {
_storage.write("meeting_template_list", _templateList); _storage.write("meeting_template_list", _templateList);
Get.back(); Get.back();
if (widget.isSummarizeAgain) { if (widget.isSummarizeAgain) {
_controller.meetingDetails.value.tasktype = 2; _controller.refreshSummary();
_controller.meetingDetails.value.summary = ''; } else {
_controller.meetingDetails.refresh(); _controller.summaryCreate();
} }
_controller.summaryCreate();
}, },
child: Container( child: Container(
height: 48.w, height: 48.w,

Loading…
Cancel
Save