Skip to content

Commit 67f0aa2

Browse files
committed
Update rebuild script
1 parent 19c5571 commit 67f0aa2

File tree

1 file changed

+31
-18
lines changed

1 file changed

+31
-18
lines changed

colorist/codelab_rebuild.yaml

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,11 @@ steps:
173173
174174
part 'gemini.g.dart';
175175
176-
@riverpod
176+
@Riverpod(keepAlive: true)
177177
Future<FirebaseApp> firebaseApp(Ref ref) =>
178178
Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
179179
180-
@riverpod
180+
@Riverpod(keepAlive: true)
181181
Future<GenerativeModel> geminiModel(Ref ref) async {
182182
await ref.watch(firebaseAppProvider.future);
183183
@@ -245,7 +245,7 @@ steps:
245245
}
246246
}
247247
248-
@riverpod
248+
@Riverpod(keepAlive: true)
249249
GeminiChatService geminiChatService(Ref ref) => GeminiChatService(ref);
250250
- name: Run build_runner
251251
path: colorist
@@ -448,7 +448,7 @@ steps:
448448
449449
part 'system_prompt.g.dart';
450450
451-
@riverpod
451+
@Riverpod(keepAlive: true)
452452
Future<String> systemPrompt(Ref ref) =>
453453
rootBundle.loadString('assets/system_prompt.md');
454454
- name: Patch lib/providers/gemini.dart
@@ -465,7 +465,7 @@ steps:
465465
part 'gemini.g.dart';
466466
467467
@@ -19,9 +20,11 @@ Future<FirebaseApp> firebaseApp(Ref ref) =>
468-
@riverpod
468+
@Riverpod(keepAlive: true)
469469
Future<GenerativeModel> geminiModel(Ref ref) async {
470470
await ref.watch(firebaseAppProvider.future);
471471
+ final systemPrompt = await ref.watch(systemPromptProvider.future);
@@ -526,7 +526,7 @@ steps:
526526
];
527527
}
528528
529-
@riverpod
529+
@Riverpod(keepAlive: true)
530530
GeminiTools geminiTools(Ref ref) => GeminiTools(ref);
531531
- name: Patch lib/providers/gemini.dart
532532
path: colorist/lib/providers/gemini.dart
@@ -723,7 +723,7 @@ steps:
723723
+ }
724724
}
725725
726-
@riverpod
726+
@Riverpod(keepAlive: true)
727727
- name: Run build_runner
728728
path: colorist
729729
dart: run build_runner build --delete-conflicting-outputs
@@ -751,17 +751,31 @@ steps:
751751
752752
import 'package:colorist_ui/colorist_ui.dart';
753753
import 'package:firebase_ai/firebase_ai.dart';
754-
+import 'package:flutter_riverpod/legacy.dart';
754+
+import 'package:flutter_riverpod/flutter_riverpod.dart';
755755
import 'package:riverpod_annotation/riverpod_annotation.dart';
756756
757757
import '../providers/gemini.dart';
758-
@@ -13,46 +14,41 @@ import 'gemini_tools.dart';
758+
@@ -13,46 +14,55 @@ import 'gemini_tools.dart';
759759
760760
part 'gemini_chat_service.g.dart';
761-
762-
+final conversationStateProvider = StateProvider(
763-
+ (ref) => ConversationState.idle,
764-
+);
761+
762+
+class ConversationStateNotifier extends Notifier<ConversationState> {
763+
+ @override
764+
+ ConversationState build() => ConversationState.idle;
765+
+
766+
+ void busy() {
767+
+ state = ConversationState.busy;
768+
+ }
769+
+
770+
+ void idle() {
771+
+ state = ConversationState.idle;
772+
+ }
773+
+}
774+
+
775+
+final conversationStateProvider =
776+
+ NotifierProvider<ConversationStateNotifier, ConversationState>(
777+
+ ConversationStateNotifier.new,
778+
+ );
765779
+
766780
class GeminiChatService {
767781
GeminiChatService(this.ref);
@@ -784,7 +798,7 @@ steps:
784798
+ final conversationStateNotifier = ref.read(
785799
+ conversationStateProvider.notifier,
786800
+ );
787-
+ conversationStateNotifier.state = ConversationState.busy;
801+
+ conversationStateNotifier.busy();
788802
chatStateNotifier.addUserMessage(message);
789803
logStateNotifier.logUserText(message);
790804
final llmMessage = chatStateNotifier.createLlmMessage();
@@ -824,11 +838,11 @@ steps:
824838
}
825839
} catch (e, st) {
826840
logStateNotifier.logError(e, st: st);
827-
@@ -63,6 +59,45 @@ class GeminiChatService {
841+
@@ -63,6 +73,44 @@ class GeminiChatService {
828842
);
829843
} finally {
830844
chatStateNotifier.finalizeMessage(llmMessage.id);
831-
+ conversationStateNotifier.state = ConversationState.idle;
845+
+ conversationStateNotifier.idle();
832846
+ }
833847
+ }
834848
+
@@ -840,7 +854,6 @@ steps:
840854
+ final chatStateNotifier = ref.read(chatStateProvider.notifier);
841855
+ final logStateNotifier = ref.read(logStateProvider.notifier);
842856
+ final blockText = block.text;
843-
+
844857
+ if (blockText != null) {
845858
+ logStateNotifier.logLlmText(blockText);
846859
+ chatStateNotifier.appendToMessage(llmMessageId, blockText);
@@ -922,7 +935,7 @@ steps:
922935
923936
import 'package:colorist_ui/colorist_ui.dart';
924937
import 'package:firebase_ai/firebase_ai.dart';
925-
@@ -22,6 +23,10 @@ class GeminiChatService {
938+
@@ -36,6 +37,10 @@ class GeminiChatService {
926939
GeminiChatService(this.ref);
927940
final Ref ref;
928941

0 commit comments

Comments
 (0)