From 2b5ecf56097a7ceab381d6b3388b3f0c662ef185 Mon Sep 17 00:00:00 2001 From: Alex Wallen Date: Fri, 26 May 2023 13:59:21 -1000 Subject: [PATCH] Revert "feat: support regenerating ai results #2012 (#2528)" (#2622) This reverts commit 1f1a97b21b00e20d306fbeac4540ee259859f323. --- .../assets/translations/en.json | 1 - .../widgets/auto_completion_node_widget.dart | 104 +----------------- .../widgets/auto_completion_plugins.dart | 1 - .../widgets/smart_edit_node_widget.dart | 28 +---- 4 files changed, 7 insertions(+), 127 deletions(-) diff --git a/frontend/appflowy_flutter/assets/translations/en.json b/frontend/appflowy_flutter/assets/translations/en.json index 2340f962ab..ff4afe9be2 100644 --- a/frontend/appflowy_flutter/assets/translations/en.json +++ b/frontend/appflowy_flutter/assets/translations/en.json @@ -360,7 +360,6 @@ "autoGeneratorGenerate": "Generate", "autoGeneratorHintText": "Ask OpenAI ...", "autoGeneratorCantGetOpenAIKey": "Can't get OpenAI key", - "autoGeneratorRewrite": "Rewrite", "smartEdit": "AI Assistants", "openAI": "OpenAI", "smartEditFixSpelling": "Fix spelling", diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/openai/widgets/auto_completion_node_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/openai/widgets/auto_completion_node_widget.dart index 7d177fece5..3a24d24529 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/openai/widgets/auto_completion_node_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/openai/widgets/auto_completion_node_widget.dart @@ -1,4 +1,5 @@ import 'dart:convert'; + import 'package:appflowy/plugins/document/presentation/plugins/openai/service/openai_client.dart'; import 'package:appflowy/plugins/document/presentation/plugins/openai/util/learn_more_action.dart'; import 'package:appflowy/plugins/document/presentation/plugins/openai/widgets/discard_dialog.dart'; @@ -20,8 +21,6 @@ import '../util/editor_extension.dart'; const String kAutoCompletionInputType = 'auto_completion_input'; const String kAutoCompletionInputString = 'auto_completion_input_string'; -const String kAutoCompletionGenerationCount = - 'auto_completion_generation_count'; const String kAutoCompletionInputStartSelection = 'auto_completion_input_start_selection'; @@ -125,8 +124,7 @@ class _AutoCompletionInputState extends State<_AutoCompletionInput> { } Widget _buildAutoGeneratorPanel(BuildContext context) { - if (text.isEmpty && - widget.node.attributes[kAutoCompletionGenerationCount] < 1) { + if (text.isEmpty) { return Column( mainAxisSize: MainAxisSize.min, children: [ @@ -206,15 +204,6 @@ class _AutoCompletionInputState extends State<_AutoCompletionInput> { ); } - Future _updateGenerationCount() async { - final transaction = widget.editorState.transaction; - transaction.updateNode(widget.node, { - kAutoCompletionGenerationCount: - widget.node.attributes[kAutoCompletionGenerationCount] + 1 - }); - await widget.editorState.apply(transaction); - } - Widget _buildFooterWidget(BuildContext context) { return Row( children: [ @@ -223,11 +212,6 @@ class _AutoCompletionInputState extends State<_AutoCompletionInput> { onPressed: () => _onExit(), ), const Space(10, 0), - SecondaryTextButton( - LocaleKeys.document_plugins_autoGeneratorRewrite.tr(), - onPressed: () => _onRewrite(), - ), - const Space(10, 0), SecondaryTextButton( LocaleKeys.button_discard.tr(), onPressed: () => _onDiscard(), @@ -288,7 +272,6 @@ class _AutoCompletionInputState extends State<_AutoCompletionInput> { await _showError(error.message); }, ); - await _updateGenerationCount(); }, (error) async { loading.stop(); await _showError( @@ -297,88 +280,6 @@ class _AutoCompletionInputState extends State<_AutoCompletionInput> { }); } - Future _onRewrite() async { - String previousOutput = _getPreviousOutput()!; - final loading = Loading(context); - loading.start(); - // clear previous response - final selection = - widget.node.attributes[kAutoCompletionInputStartSelection]; - if (selection != null) { - final start = Selection.fromJson(json.decode(selection)).start.path; - final end = widget.node.previous?.path; - if (end != null) { - final transaction = widget.editorState.transaction; - transaction.deleteNodesAtPath( - start, - end.last - start.last + 1, - ); - await widget.editorState.apply(transaction); - } - } - // generate new response - final result = await UserBackendService.getCurrentUserProfile(); - result.fold((userProfile) async { - final openAIRepository = HttpOpenAIRepository( - client: http.Client(), - apiKey: userProfile.openaiKey, - ); - await openAIRepository.getStreamedCompletions( - prompt: _rewritePrompt(previousOutput), - onStart: () async { - loading.stop(); - await _makeSurePreviousNodeIsEmptyTextNode(); - }, - onProcess: (response) async { - if (response.choices.isNotEmpty) { - final text = response.choices.first.text; - await widget.editorState.autoInsertText( - text, - inputType: TextRobotInputType.word, - delay: Duration.zero, - ); - } - }, - onEnd: () async {}, - onError: (error) async { - loading.stop(); - await _showError(error.message); - }, - ); - await _updateGenerationCount(); - }, (error) async { - loading.stop(); - await _showError( - LocaleKeys.document_plugins_autoGeneratorCantGetOpenAIKey.tr(), - ); - }); - } - - String? _getPreviousOutput() { - final selection = - widget.node.attributes[kAutoCompletionInputStartSelection]; - if (selection != null) { - final start = Selection.fromJson(json.decode(selection)).start.path; - final end = widget.node.previous?.path; - if (end != null) { - String lastOutput = ""; - for (var i = start.last; i < end.last - start.last + 2; i++) { - TextNode? textNode = - widget.editorState.document.nodeAtPath([i]) as TextNode?; - lastOutput = "$lastOutput ${textNode!.toPlainText()}"; - } - return lastOutput.trim(); - } - } - return null; - } - - String _rewritePrompt(String previousOutput) { - String prompt = - 'I am not satisfied with your previous response($previousOutput) to the query ($text) please write another one'; - return prompt; - } - Future _onDiscard() async { final selection = widget.node.attributes[kAutoCompletionInputStartSelection]; @@ -392,7 +293,6 @@ class _AutoCompletionInputState extends State<_AutoCompletionInput> { end.last - start.last + 1, ); await widget.editorState.apply(transaction); - await _makeSurePreviousNodeIsEmptyTextNode(); } } _onExit(); diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/openai/widgets/auto_completion_plugins.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/openai/widgets/auto_completion_plugins.dart index 512881d0dc..ce9eb5dbef 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/openai/widgets/auto_completion_plugins.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/openai/widgets/auto_completion_plugins.dart @@ -14,7 +14,6 @@ SelectionMenuItem autoGeneratorMenuItem = SelectionMenuItem.node( type: kAutoCompletionInputType, attributes: { kAutoCompletionInputString: '', - kAutoCompletionGenerationCount: 0, }, ); return node; diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/openai/widgets/smart_edit_node_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/openai/widgets/smart_edit_node_widget.dart index da599cf388..6f580e7e7a 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/openai/widgets/smart_edit_node_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/openai/widgets/smart_edit_node_widget.dart @@ -211,15 +211,15 @@ class _SmartEditInputState extends State<_SmartEditInput> { } Widget _buildResultWidget(BuildContext context) { - final loadingWidget = Padding( + final loading = Padding( padding: const EdgeInsets.symmetric(horizontal: 4.0), child: SizedBox.fromSize( size: const Size.square(14), child: const CircularProgressIndicator(), ), ); - if (result.isEmpty || loading) { - return loadingWidget; + if (result.isEmpty) { + return loading; } return Flexible( child: Text( @@ -231,18 +231,6 @@ class _SmartEditInputState extends State<_SmartEditInput> { Widget _buildInputFooterWidget(BuildContext context) { return Row( children: [ - FlowyRichTextButton( - TextSpan( - children: [ - TextSpan( - text: LocaleKeys.document_plugins_autoGeneratorRewrite.tr(), - style: Theme.of(context).textTheme.bodyMedium, - ), - ], - ), - onPressed: () => _requestCompletions(rewrite: true), - ), - const Space(10, 0), FlowyRichTextButton( TextSpan( children: [ @@ -284,7 +272,7 @@ class _SmartEditInputState extends State<_SmartEditInput> { ), onPressed: () async => await _onExit(), ), - const Spacer(flex: 1), + const Spacer(flex: 2), Expanded( child: FlowyText.regular( overflow: TextOverflow.ellipsis, @@ -371,13 +359,7 @@ class _SmartEditInputState extends State<_SmartEditInput> { ); } - Future _requestCompletions({bool rewrite = false}) async { - if (rewrite) { - setState(() { - loading = true; - result = ""; - }); - } + Future _requestCompletions() async { final openAIRepository = await getIt.getAsync(); var lines = input.split('\n\n');