Browse Source

添加概览

newdev_shunjiawei
tanlongsheng 1 year ago
parent
commit
74b152ba85
  1. 57
      lib/modules/meeting/controllers/meeting_details_controller.dart
  2. 1
      lib/modules/meeting/views/generate_bottom_sheet.dart
  3. 11
      lib/modules/meeting/views/meeting_details_view.dart
  4. 10
      lib/modules/meeting/views/overview_tab.dart

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

@ -240,19 +240,58 @@ class MeetingDetailsController extends GetxController
allText = text; allText = text;
} }
if (allText.isEmpty) return; if (allText.isEmpty) return;
await _aiServiceSummary(); _aiServiceMessage();
} }
Future<void> _aiServiceSummary() async { void _aiServiceMessage() {
String summaryText = await DeapsoundAIService().sendMessage( int awaitQuantity = 0;
messages: [ int verifyQuantity = 0;
{'role': 'system', 'content': _systemPrompt}, String summaryText = meetingDetails.value.summary;
{'role': 'user', 'content': allText}, String overviewText = meetingDetails.value.overview;
], if (summaryText.isEmpty) {
); verifyQuantity++;
SqfliteApi.editMeeting(id, {'tasktype': 3, 'summary': summaryText}); DeapsoundAIService().sendMessage(
messages: [
{'role': 'system', 'content': _systemPrompt},
{'role': 'user', 'content': allText},
],
).then((value) {
awaitQuantity++;
summaryText = value;
if (awaitQuantity >= verifyQuantity) {
_aiServiceValue(summaryText, overviewText);
}
});
}
if (overviewText.isEmpty) {
verifyQuantity++;
DeapsoundAIService().sendMessage(
messages: [
{
'role': 'system',
'content': '您将扮演一名会议事件归纳专家,能准确抓住会议中事件的关键点,并每个事件只需一句话精简总结。',
},
{'role': 'user', 'content': allText},
],
).then((value) {
awaitQuantity++;
overviewText = value;
if (awaitQuantity >= verifyQuantity) {
_aiServiceValue(summaryText, overviewText);
}
});
}
}
void _aiServiceValue(String summaryText, String overviewText) {
SqfliteApi.editMeeting(id, {
'tasktype': 3,
'summary': summaryText,
'overview': overviewText,
});
meetingDetails.value.tasktype = 3; meetingDetails.value.tasktype = 3;
meetingDetails.value.summary = summaryText; meetingDetails.value.summary = summaryText;
meetingDetails.value.overview = overviewText;
meetingDetails.refresh(); meetingDetails.refresh();
} }

1
lib/modules/meeting/views/generate_bottom_sheet.dart

@ -284,6 +284,7 @@ class _GenerateBottomSheetState extends State<GenerateBottomSheet> {
Get.back(); Get.back();
if (widget.isSummarizeAgain) { if (widget.isSummarizeAgain) {
_controller.meetingDetails.value.tasktype = 2; _controller.meetingDetails.value.tasktype = 2;
_controller.meetingDetails.value.summary = '';
_controller.meetingDetails.refresh(); _controller.meetingDetails.refresh();
} }
_controller.summaryCreate(); _controller.summaryCreate();

11
lib/modules/meeting/views/meeting_details_view.dart

@ -259,7 +259,7 @@ class MeetingDetailsView extends GetView<MeetingDetailsController> {
child: Obx( child: Obx(
() => Row( () => Row(
children: [ children: [
_iconItem(Icons.summarize, '概述', 0), _iconItem(Icons.summarize, '概览', 0),
_iconItem(Icons.message, '转写', 1), _iconItem(Icons.message, '转写', 1),
_iconItem(Icons.article, '总结', 2), _iconItem(Icons.article, '总结', 2),
_iconItem(Icons.lan, '思维导图', 3), _iconItem(Icons.lan, '思维导图', 3),
@ -279,7 +279,14 @@ class MeetingDetailsView extends GetView<MeetingDetailsController> {
controller: controller.tabController, controller: controller.tabController,
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
children: [ children: [
const OverviewTab(), Obx(
() => controller.isLoading.value
? const SizedBox()
: controller.meetingDetails.value.tasktype == 1 ||
controller.meetingDetails.value.tasktype == 2
? _meetingWait('正在分析...')
: const OverviewTab(),
),
Obx( Obx(
() => controller.meetingDetails.value.tasktype == 1 () => controller.meetingDetails.value.tasktype == 1
? _meetingWait('正在转写...') ? _meetingWait('正在转写...')

10
lib/modules/meeting/views/overview_tab.dart

@ -1,4 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../controllers/meeting_details_controller.dart';
class OverviewTab extends StatefulWidget { class OverviewTab extends StatefulWidget {
const OverviewTab({super.key}); const OverviewTab({super.key});
@ -8,13 +11,16 @@ class OverviewTab extends StatefulWidget {
} }
class _OverviewTabState extends State<OverviewTab> { class _OverviewTabState extends State<OverviewTab> {
final _controller = Get.find<MeetingDetailsController>();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return SingleChildScrollView( return SingleChildScrollView(
child: Column( child: Column(
children: [ children: [
Text(''), Text('概览'),
Text(''), Text('AI分析识别录音中的关键事件,让你选择重要事件进行AI生成。'),
Text(_controller.meetingDetails.value.overview),
], ],
), ),
); );

Loading…
Cancel
Save