18 lines
672 B
Dart
18 lines
672 B
Dart
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|||
|
|
import '../services/gemini_service.dart';
|
|||
|
|
|
|||
|
|
/// GeminiService のシングルトンプロバイダー
|
|||
|
|
///
|
|||
|
|
/// アプリ全体で同一インスタンスを共有する。
|
|||
|
|
/// レート制限の状態(_lastApiCallTime)がインスタンス間で共有されるため、
|
|||
|
|
/// 複数画面から同時に呼び出しても連打防止が正しく機能する。
|
|||
|
|
///
|
|||
|
|
/// 使用例:
|
|||
|
|
/// ```dart
|
|||
|
|
/// final geminiService = ref.read(geminiServiceProvider);
|
|||
|
|
/// final result = await geminiService.analyzeSakeLabel(paths);
|
|||
|
|
/// ```
|
|||
|
|
final geminiServiceProvider = Provider<GeminiService>((ref) {
|
|||
|
|
return GeminiService();
|
|||
|
|
});
|