import 'package:flutter_mediapipe_chat/flutter_mediapipe_chat.dart'; import 'package:path_provider/path_provider.dart'; import 'package:path/path.dart' as p; import 'llm_service.dart'; class MediapipeLlmService implements LlmService { final _chat = FlutterMediapipeChat(); bool _initialised = false; static const _modelFileName = 'gemma-2b-it-cpu-int4.bin'; @override Future initialise() async { if (_initialised) return; final dir = await getApplicationSupportDirectory(); final modelPath = p.join(dir.path, _modelFileName); await _chat.loadModel(ModelConfig(path: modelPath)); _initialised = true; } @override Stream generateStream(String prompt) { return _chat.generateResponseAsync(prompt); } @override void dispose() { _initialised = false; } }