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

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

@ -49,12 +49,13 @@ class MeetingDetailsController extends GetxController
Rx<MeetingModel> meetingData = MeetingModel().obs;
Rx<MeetingDetailsModel> meetingDetails = MeetingDetailsModel().obs;
RxList textList = [].obs;
String allText = '';
RxBool isSpeakerText = false.obs;
List editSpeakerTextList = [];
RxInt editSpeakerTextId = 0.obs;
String editSpeakerTextChange = '';
int _everType = 99;
String markmapLibJs = '';
String d3Js = '';
String markmapViewJs = '';
@ -83,13 +84,14 @@ class MeetingDetailsController extends GetxController
_loadJS();
ever(_meetingTaskService.tasktype, (value) {
meetingDetails.value.tasktype = value;
if (value == 2) {
textList.value = _meetingTaskService.textList;
} else if (value == 3) {
meetingDetails.value.summary = _meetingTaskService.summary;
meetingDetails.value.overview = _meetingTaskService.overview;
if (_everType <= value) {
if (value == 2) {
textList.value = _meetingTaskService.textList;
} else if (value == 3) {
meetingDetails.value.summary = _meetingTaskService.summary;
meetingDetails.value.overview = _meetingTaskService.overview;
}
}
meetingDetails.refresh();
});
}
@ -239,6 +241,7 @@ class MeetingDetailsController extends GetxController
void summaryCreate() async {
EasyLoading.show();
_everType = 2;
String audiourl = meetingData.value.audiourl;
String taskId = meetingDetails.value.taskid;
await _meetingTaskService.addTask(id, audiourl, taskId);
@ -246,4 +249,18 @@ class MeetingDetailsController extends GetxController
meetingDetails.refresh();
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);
Get.back();
if (widget.isSummarizeAgain) {
_controller.meetingDetails.value.tasktype = 2;
_controller.meetingDetails.value.summary = '';
_controller.meetingDetails.refresh();
_controller.refreshSummary();
} else {
_controller.summaryCreate();
}
_controller.summaryCreate();
},
child: Container(
height: 48.w,

Loading…
Cancel
Save