class MyProvider extends ChatHistoryProvider with ChangeNotifier {
MyProvider({
required MyLlmModel model,
Iterable<ChatMessage>? history,
}) : _model = model,
_history = history?.toList() ?? [];
final MyLlmModel _model;
final List<ChatMessage> _history;
@override
Stream<String> sendMessageStream(
String prompt, {
Iterable<Part> attachments = const [],
}) async* {
final userMessage = ChatMessage.user(prompt);
_history.add(userMessage);
// Call your LLM here and stream the response
final response = await _model.generate(prompt);
_history.add(ChatMessage.model(response));
yield response;
notifyListeners();
}
@override
Iterable<ChatMessage> get history => _history;
@override
set history(Iterable<ChatMessage> history) {
_history.clear();
_history.addAll(history);
notifyListeners();
}
@override
Stream<String> transcribeAudio(XFile audioFile) async* {
// Implement audio transcription
yield 'Transcribed text';
}
}