Skip to content

Commit 8528811

Browse files
committed
chore: remove ai model class
1 parent f9e1dcc commit 8528811

8 files changed

Lines changed: 42 additions & 61 deletions

File tree

frontend/appflowy_flutter/lib/ai/service/ai_model_state_notifier.dart

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import 'package:universal_platform/universal_platform.dart';
1212

1313
typedef OnModelStateChangedCallback = void Function(AiType, bool, String);
1414
typedef OnAvailableModelsChangedCallback = void Function(
15-
List<AiModel>,
16-
AiModel?,
15+
List<AIModelPB>,
16+
AIModelPB?,
1717
);
1818

1919
class AIModelStateNotifier {
@@ -133,14 +133,12 @@ class AIModelStateNotifier {
133133
return (AiType.local, hintText, editable);
134134
}
135135

136-
(List<AiModel>, AiModel?) getAvailableModels() {
136+
(List<AIModelPB>, AIModelPB?) getAvailableModels() {
137137
final availableModels = _availableModels;
138138
if (availableModels == null) {
139139
return ([], null);
140140
}
141-
final models = availableModels.models.map(AiModel.fromPB).toList();
142-
final selectedModel = AiModel.fromPB(availableModels.selectedModel);
143-
return (models, selectedModel);
141+
return (availableModels.models, availableModels.selectedModel);
144142
}
145143

146144
void _notifyAvailableModelsChanged() {

frontend/appflowy_flutter/lib/ai/service/select_model_bloc.dart

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,11 @@ import 'dart:async';
33
import 'package:appflowy/ai/service/ai_model_state_notifier.dart';
44
import 'package:appflowy_backend/dispatch/dispatch.dart';
55
import 'package:appflowy_backend/protobuf/flowy-ai/entities.pbserver.dart';
6-
import 'package:equatable/equatable.dart';
76
import 'package:flutter_bloc/flutter_bloc.dart';
87
import 'package:freezed_annotation/freezed_annotation.dart';
98

109
part 'select_model_bloc.freezed.dart';
1110

12-
class AiModel extends Equatable {
13-
const AiModel({
14-
required this.name,
15-
required this.isLocal,
16-
});
17-
18-
factory AiModel.fromPB(AIModelPB pb) {
19-
return AiModel(name: pb.name, isLocal: pb.isLocal);
20-
}
21-
22-
AIModelPB toPB() {
23-
return AIModelPB()
24-
..name = name
25-
..isLocal = isLocal;
26-
}
27-
28-
final String name;
29-
final bool isLocal;
30-
31-
@override
32-
List<Object?> get props => [name, isLocal];
33-
}
34-
3511
class SelectModelBloc extends Bloc<SelectModelEvent, SelectModelState> {
3612
SelectModelBloc({
3713
required AIModelStateNotifier aiModelStateNotifier,
@@ -44,7 +20,7 @@ class SelectModelBloc extends Bloc<SelectModelEvent, SelectModelState> {
4420
AIEventUpdateSelectedModel(
4521
UpdateSelectedModelPB(
4622
source: _aiModelStateNotifier.objectId,
47-
selectedModel: model.toPB(),
23+
selectedModel: model,
4824
),
4925
).send();
5026

@@ -77,7 +53,10 @@ class SelectModelBloc extends Bloc<SelectModelEvent, SelectModelState> {
7753
await super.close();
7854
}
7955

80-
void _onAvailableModelsChanged(List<AiModel> models, AiModel? selectedModel) {
56+
void _onAvailableModelsChanged(
57+
List<AIModelPB> models,
58+
AIModelPB? selectedModel,
59+
) {
8160
if (!isClosed) {
8261
add(SelectModelEvent.didLoadModels(models, selectedModel));
8362
}
@@ -87,20 +66,20 @@ class SelectModelBloc extends Bloc<SelectModelEvent, SelectModelState> {
8766
@freezed
8867
class SelectModelEvent with _$SelectModelEvent {
8968
const factory SelectModelEvent.selectModel(
90-
AiModel model,
69+
AIModelPB model,
9170
) = _SelectModel;
9271

9372
const factory SelectModelEvent.didLoadModels(
94-
List<AiModel> models,
95-
AiModel? selectedModel,
73+
List<AIModelPB> models,
74+
AIModelPB? selectedModel,
9675
) = _DidLoadModels;
9776
}
9877

9978
@freezed
10079
class SelectModelState with _$SelectModelState {
10180
const factory SelectModelState({
102-
required List<AiModel> models,
103-
required AiModel? selectedModel,
81+
required List<AIModelPB> models,
82+
required AIModelPB? selectedModel,
10483
}) = _SelectModelState;
10584

10685
factory SelectModelState.initial(AIModelStateNotifier notifier) {

frontend/appflowy_flutter/lib/ai/widgets/prompt_input/select_model_menu.dart

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:appflowy/ai/ai.dart';
22
import 'package:appflowy/generated/flowy_svgs.g.dart';
33
import 'package:appflowy/generated/locale_keys.g.dart';
4+
import 'package:appflowy_backend/protobuf/flowy-ai/protobuf.dart';
45
import 'package:easy_localization/easy_localization.dart';
56
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
67
import 'package:flowy_infra_ui/style_widget/hover.dart';
@@ -72,9 +73,9 @@ class SelectModelPopoverContent extends StatelessWidget {
7273
this.onSelectModel,
7374
});
7475

75-
final List<AiModel> models;
76-
final AiModel? selectedModel;
77-
final void Function(AiModel)? onSelectModel;
76+
final List<AIModelPB> models;
77+
final AIModelPB? selectedModel;
78+
final void Function(AIModelPB)? onSelectModel;
7879

7980
@override
8081
Widget build(BuildContext context) {
@@ -154,7 +155,7 @@ class _ModelItem extends StatelessWidget {
154155
required this.onTap,
155156
});
156157

157-
final AiModel model;
158+
final AIModelPB model;
158159
final bool isSelected;
159160
final VoidCallback onTap;
160161

frontend/appflowy_flutter/lib/plugins/ai_chat/application/chat_bloc.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
483483
void _regenerateAnswer(
484484
String answerMessageIdString,
485485
PredefinedFormat? format,
486-
AiModel? model,
486+
AIModelPB? model,
487487
) async {
488488
final id = temporaryMessageIDMap.entries
489489
.firstWhereOrNull((e) => e.value == answerMessageIdString)
@@ -507,7 +507,7 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
507507
payload.format = format.toPB();
508508
}
509509
if (model != null) {
510-
payload.model = model.toPB();
510+
payload.model = model;
511511
}
512512

513513
await AIEventRegenerateResponse(payload).send().fold(
@@ -641,7 +641,7 @@ class ChatEvent with _$ChatEvent {
641641
const factory ChatEvent.regenerateAnswer(
642642
String id,
643643
PredefinedFormat? format,
644-
AiModel? model,
644+
AIModelPB? model,
645645
) = _RegenerateAnswer;
646646

647647
// streaming answer

frontend/appflowy_flutter/lib/plugins/ai_chat/presentation/message/ai_change_model_bottom_sheet.dart

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
import 'package:appflowy/ai/ai.dart';
21
import 'package:appflowy/generated/locale_keys.g.dart';
32
import 'package:appflowy/mobile/presentation/base/app_bar/app_bar_actions.dart';
43
import 'package:appflowy/mobile/presentation/bottom_sheet/bottom_sheet.dart';
54
import 'package:appflowy/mobile/presentation/widgets/widgets.dart';
5+
import 'package:appflowy_backend/protobuf/flowy-ai/protobuf.dart';
66
import 'package:collection/collection.dart';
77
import 'package:easy_localization/easy_localization.dart';
88
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
99
import 'package:flutter/material.dart';
1010

11-
Future<AiModel?> showChangeModelBottomSheet(
11+
Future<AIModelPB?> showChangeModelBottomSheet(
1212
BuildContext context,
13-
List<AiModel> models,
13+
List<AIModelPB> models,
1414
) {
15-
return showMobileBottomSheet<AiModel?>(
15+
return showMobileBottomSheet<AIModelPB?>(
1616
context,
1717
showDragHandle: true,
1818
builder: (context) => _ChangeModelBottomSheetContent(models: models),
@@ -24,7 +24,7 @@ class _ChangeModelBottomSheetContent extends StatefulWidget {
2424
required this.models,
2525
});
2626

27-
final List<AiModel> models;
27+
final List<AIModelPB> models;
2828

2929
@override
3030
State<_ChangeModelBottomSheetContent> createState() =>
@@ -33,7 +33,7 @@ class _ChangeModelBottomSheetContent extends StatefulWidget {
3333

3434
class _ChangeModelBottomSheetContentState
3535
extends State<_ChangeModelBottomSheetContent> {
36-
AiModel? model;
36+
AIModelPB? model;
3737

3838
@override
3939
Widget build(BuildContext context) {
@@ -113,9 +113,9 @@ class _Body extends StatelessWidget {
113113
required this.onSelectModel,
114114
});
115115

116-
final List<AiModel> models;
117-
final AiModel? selectedModel;
118-
final void Function(AiModel) onSelectModel;
116+
final List<AIModelPB> models;
117+
final AIModelPB? selectedModel;
118+
final void Function(AIModelPB) onSelectModel;
119119

120120
@override
121121
Widget build(BuildContext context) {
@@ -130,7 +130,7 @@ class _Body extends StatelessWidget {
130130
}
131131

132132
Widget _buildModelButton(
133-
AiModel model, [
133+
AIModelPB model, [
134134
bool isFirst = false,
135135
]) {
136136
return FlowyOptionTile.checkbox(

frontend/appflowy_flutter/lib/plugins/ai_chat/presentation/message/ai_message_action_bar.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import 'package:appflowy/workspace/application/view/view_ext.dart';
2121
import 'package:appflowy/workspace/presentation/home/menu/sidebar/space/shared_widget.dart';
2222
import 'package:appflowy/workspace/presentation/home/menu/view/view_item.dart';
2323
import 'package:appflowy/workspace/presentation/widgets/dialogs.dart';
24+
import 'package:appflowy_backend/protobuf/flowy-ai/protobuf.dart';
2425
import 'package:appflowy_backend/protobuf/flowy-folder/protobuf.dart';
2526
import 'package:appflowy_editor/appflowy_editor.dart';
2627
import 'package:appflowy_result/appflowy_result.dart';
@@ -49,7 +50,7 @@ class AIMessageActionBar extends StatefulWidget {
4950
final bool showDecoration;
5051
final void Function()? onRegenerate;
5152
final void Function(PredefinedFormat)? onChangeFormat;
52-
final void Function(AiModel)? onChangeModel;
53+
final void Function(AIModelPB)? onChangeModel;
5354
final void Function(bool)? onOverrideVisibility;
5455

5556
@override
@@ -424,7 +425,7 @@ class ChangeModelButton extends StatefulWidget {
424425

425426
final bool isInHoverBar;
426427
final PopoverMutex? popoverMutex;
427-
final void Function(AiModel)? onRegenerate;
428+
final void Function(AIModelPB)? onRegenerate;
428429
final void Function(bool)? onOverrideVisibility;
429430

430431
@override

frontend/appflowy_flutter/lib/plugins/ai_chat/presentation/message/ai_message_bubble.dart

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import 'package:appflowy/shared/markdown_to_document.dart';
1212
import 'package:appflowy/startup/startup.dart';
1313
import 'package:appflowy/workspace/application/view/view_ext.dart';
1414
import 'package:appflowy/workspace/presentation/widgets/dialogs.dart';
15+
import 'package:appflowy_backend/protobuf/flowy-ai/protobuf.dart';
1516
import 'package:easy_localization/easy_localization.dart';
1617
import 'package:flowy_infra/theme_extension.dart';
1718
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
@@ -52,7 +53,7 @@ class ChatAIMessageBubble extends StatelessWidget {
5253
final bool isSelectingMessages;
5354
final void Function()? onRegenerate;
5455
final void Function(PredefinedFormat)? onChangeFormat;
55-
final void Function(AiModel)? onChangeModel;
56+
final void Function(AIModelPB)? onChangeModel;
5657

5758
@override
5859
Widget build(BuildContext context) {
@@ -116,7 +117,7 @@ class ChatAIBottomInlineActions extends StatelessWidget {
116117
final Message message;
117118
final void Function()? onRegenerate;
118119
final void Function(PredefinedFormat)? onChangeFormat;
119-
final void Function(AiModel)? onChangeModel;
120+
final void Function(AIModelPB)? onChangeModel;
120121

121122
@override
122123
Widget build(BuildContext context) {
@@ -158,7 +159,7 @@ class ChatAIMessageHover extends StatefulWidget {
158159
final Message message;
159160
final void Function()? onRegenerate;
160161
final void Function(PredefinedFormat)? onChangeFormat;
161-
final void Function(AiModel)? onChangeModel;
162+
final void Function(AIModelPB)? onChangeModel;
162163

163164
@override
164165
State<ChatAIMessageHover> createState() => _ChatAIMessageHoverState();
@@ -321,7 +322,7 @@ class ChatAIMessagePopup extends StatelessWidget {
321322
final Message message;
322323
final void Function()? onRegenerate;
323324
final void Function(PredefinedFormat)? onChangeFormat;
324-
final void Function(AiModel)? onChangeModel;
325+
final void Function(AIModelPB)? onChangeModel;
325326

326327
@override
327328
Widget build(BuildContext context) {

frontend/appflowy_flutter/lib/plugins/ai_chat/presentation/message/ai_text_message.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:appflowy/plugins/ai_chat/application/chat_ai_message_bloc.dart';
44
import 'package:appflowy/plugins/ai_chat/application/chat_bloc.dart';
55
import 'package:appflowy/plugins/ai_chat/application/chat_entity.dart';
66
import 'package:appflowy/plugins/ai_chat/application/chat_message_stream.dart';
7+
import 'package:appflowy_backend/protobuf/flowy-ai/protobuf.dart';
78
import 'package:easy_localization/easy_localization.dart';
89
import 'package:fixnum/fixnum.dart';
910
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
@@ -54,7 +55,7 @@ class ChatAIMessageWidget extends StatelessWidget {
5455
final void Function()? onRegenerate;
5556
final void Function() onStopStream;
5657
final void Function(PredefinedFormat)? onChangeFormat;
57-
final void Function(AiModel)? onChangeModel;
58+
final void Function(AIModelPB)? onChangeModel;
5859
final bool isStreaming;
5960
final bool isLastMessage;
6061
final bool isSelectingMessages;

0 commit comments

Comments
 (0)