35 lines
953 B
Dart
35 lines
953 B
Dart
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:relationship_saver/core/llm/llm_service.dart';
|
|
|
|
abstract interface class LlmDigestTextClient {
|
|
Future<String> complete({
|
|
required String systemPrompt,
|
|
required String userPrompt,
|
|
bool enableWebSearch = false,
|
|
});
|
|
}
|
|
|
|
class ConfiguredLlmDigestTextClient implements LlmDigestTextClient {
|
|
const ConfiguredLlmDigestTextClient(this._service);
|
|
|
|
final LlmService _service;
|
|
|
|
@override
|
|
Future<String> complete({
|
|
required String systemPrompt,
|
|
required String userPrompt,
|
|
bool enableWebSearch = false,
|
|
}) {
|
|
return _service.completeText(
|
|
systemPrompt: systemPrompt,
|
|
userPrompt: userPrompt,
|
|
enableWebSearch: enableWebSearch,
|
|
);
|
|
}
|
|
}
|
|
|
|
final Provider<LlmDigestTextClient> llmDigestTextClientProvider =
|
|
Provider<LlmDigestTextClient>((Ref ref) {
|
|
return ConfiguredLlmDigestTextClient(ref.watch(llmServiceProvider));
|
|
});
|