Browse Source

修改会议记录模版

newdev_shunjiawei
tanlongsheng 12 months ago
parent
commit
2d8095779a
  1. 37
      lib/data/services/meeting/meeting_task_service.dart
  2. 10
      lib/data/services/meeting/meeting_upload_service.dart
  3. 8
      lib/modules/meeting/controllers/meeting_details_controller.dart
  4. 10
      lib/modules/meeting/views/bottomSheet/generate_bottom_sheet.dart

37
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/logger.dart';
import '../../../core/utils/synchrodata.dart'; import '../../../core/utils/synchrodata.dart';
import '../../models/appconfig.dart';
import '../db/sqflite_api.dart'; import '../db/sqflite_api.dart';
import '../deapsound_ai_service.dart'; import '../deapsound_ai_service.dart';
import 'meeting_upload_service.dart'; import 'meeting_upload_service.dart';
@ -21,7 +20,6 @@ class MeetingTaskService extends GetxService {
bool _isTask = false; bool _isTask = false;
String _systemPrompt = '';
String _userId = ''; String _userId = '';
final String _appid = '2316081933'; final String _appid = '2316081933';
@ -50,7 +48,6 @@ class MeetingTaskService extends GetxService {
void _getAgent() async { void _getAgent() async {
Map userInfo = _storage.read("user_info"); Map userInfo = _storage.read("user_info");
_userId = userInfo['user']['uid']; _userId = userInfo['user']['uid'];
_systemPrompt = AppConfig.agentsystemPrompt("meet_assistant") ?? '';
} }
void _getTaskList() { void _getTaskList() {
@ -59,7 +56,8 @@ class MeetingTaskService extends GetxService {
_executeTask(); _executeTask();
} }
Future<void> addTask(int id, String audiourl, String taskid) async { Future<void> addTask(int id, String audiourl, String taskid, String prompt,
String outline) async {
if (audiourl.isEmpty) { if (audiourl.isEmpty) {
Map uploadData = _uploadService.uploadList.firstWhere( Map uploadData = _uploadService.uploadList.firstWhere(
(element) => element['id'] == id, (element) => element['id'] == id,
@ -68,16 +66,20 @@ class MeetingTaskService extends GetxService {
if (uploadData.isNotEmpty) { if (uploadData.isNotEmpty) {
if (uploadData['audiourl'].isEmpty) { if (uploadData['audiourl'].isEmpty) {
uploadData['isTask'] = true; uploadData['isTask'] = true;
uploadData['prompt'] = prompt;
uploadData['outline'] = outline;
} else { } else {
await addTaskList(id, uploadData['audiourl'], taskid); await addTaskList(
id, uploadData['audiourl'], taskid, prompt, outline);
} }
} }
} else { } else {
await addTaskList(id, audiourl, taskid); await addTaskList(id, audiourl, taskid, prompt, outline);
} }
} }
Future<void> addTaskList(int id, String audiourl, String taskId) async { Future<void> addTaskList(int id, String audiourl, String taskId,
String prompt, String outline) async {
if (taskId.isEmpty) { if (taskId.isEmpty) {
taskId = await _submitTask(audiourl); taskId = await _submitTask(audiourl);
} }
@ -86,6 +88,8 @@ class MeetingTaskService extends GetxService {
'id': id, 'id': id,
'taskid': taskId, 'taskid': taskId,
'tasktype': 1, 'tasktype': 1,
'prompt': prompt,
'outline': outline,
}); });
taskFinishList.add({ taskFinishList.add({
'id': id, 'id': id,
@ -206,7 +210,12 @@ class MeetingTaskService extends GetxService {
var code = respDic['resp']['code'] as int; var code = respDic['resp']['code'] as int;
if (code == 1000) { if (code == 1000) {
await _addTextList(item['id'], respDic['resp']['utterances']); await _addTextList(
item['id'],
respDic['resp']['utterances'],
item['prompt'],
item['outline'],
);
return; return;
} else if (code < 2000) { } else if (code < 2000) {
Logger.debug("FileRecognize failed"); Logger.debug("FileRecognize failed");
@ -217,7 +226,8 @@ class MeetingTaskService extends GetxService {
} }
} }
Future<void> _addTextList(int id, List utterances) async { Future<void> _addTextList(
int id, List utterances, String prompt, String outline) async {
String text = ''; String text = '';
String personnel = ''; String personnel = '';
List<Map<String, Object?>> list = []; List<Map<String, Object?>> list = [];
@ -267,10 +277,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);
} }
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; int awaitQuantity = 0;
String summaryText = ''; String summaryText = '';
String overviewText = ''; String overviewText = '';
@ -278,8 +288,7 @@ class MeetingTaskService extends GetxService {
messages: [ messages: [
{ {
'role': 'system', 'role': 'system',
'content': 'content': prompt,
'您将扮演一名会议总结专家,拥有超强的信息归纳与细分能力。不仅能高效处理各类通用场景会议,精准提炼会议核心内容,为后续思维导图生成奠定坚实基础。若涉及人员,人员名称保留[]。并根据内容只输出对应语言。',
}, },
{'role': 'user', 'content': text}, {'role': 'user', 'content': text},
], ],
@ -294,7 +303,7 @@ class MeetingTaskService extends GetxService {
messages: [ messages: [
{ {
'role': 'system', 'role': 'system',
'content': '您将扮演一名会议事件归纳专家,能准确抓住会议中事件的关键点,并每个事件只需一句话精简总结。', 'content': outline,
}, },
{'role': 'user', 'content': text}, {'role': 'user', 'content': text},
], ],

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

@ -41,6 +41,8 @@ class MeetingUploadService extends GetxService {
'rootdir': rootDir, 'rootdir': rootDir,
'audiourl': '', 'audiourl': '',
'isTask': false, 'isTask': false,
'prompt': '',
'outline': '',
}); });
_storage.write("meeting_upload_list", uploadList); _storage.write("meeting_upload_list", uploadList);
if (isUpload) { if (isUpload) {
@ -70,7 +72,13 @@ class MeetingUploadService extends GetxService {
{'audiourl': audiourl}, {'audiourl': audiourl},
); );
if (element['isTask']) { if (element['isTask']) {
await _taskService.addTaskList(element['id'], audiourl, ''); await _taskService.addTaskList(
element['id'],
audiourl,
'',
element['prompt'],
element['outline'],
);
} }
element['audiourl'] = audiourl; element['audiourl'] = audiourl;
uploadProgress.value = 0.0; uploadProgress.value = 0.0;

8
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(); EasyLoading.show();
_everType = 2; _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, prompt, outline);
meetingDetails.value.tasktype = 1; meetingDetails.value.tasktype = 1;
meetingDetails.refresh(); meetingDetails.refresh();
EasyLoading.dismiss(); EasyLoading.dismiss();
} }
void refreshSummary() async { void refreshSummary(String prompt, String outline) async {
String text = ''; String text = '';
for (var element in textList) { for (var element in textList) {
if (element['speaker'].isNotEmpty) { if (element['speaker'].isNotEmpty) {
@ -267,6 +267,6 @@ class MeetingDetailsController extends GetxController
_everType = 3; _everType = 3;
await SqfliteApi.editMeeting(id, {'tasktype': 2}); await SqfliteApi.editMeeting(id, {'tasktype': 2});
_meetingTaskService.tasktype.value = 2; _meetingTaskService.tasktype.value = 2;
_meetingTaskService.aiServiceMessage(id, text); _meetingTaskService.aiServiceMessage(id, text, prompt, outline);
} }
} }

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

@ -283,9 +283,15 @@ 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.refreshSummary(); _controller.refreshSummary(
_templateData['prompt'],
_templateData['outline'],
);
} else { } else {
_controller.summaryCreate(); _controller.summaryCreate(
_templateData['prompt'],
_templateData['outline'],
);
} }
}, },
child: Container( child: Container(

Loading…
Cancel
Save