43 lines
1.1 KiB
Dart
43 lines
1.1 KiB
Dart
import 'package:lensai/features/kagi/data/entities/modes.dart';
|
|
import 'package:lensai/features/share_intent/domain/entities/shared_content.dart';
|
|
|
|
final _baseUrl = Uri.https('kagi.com');
|
|
|
|
Uri assistantUri({
|
|
required String prompt,
|
|
required AssistantMode assistantMode,
|
|
ResearchVariant? researchVariant,
|
|
ChatModel? chatModel,
|
|
}) => _baseUrl.replace(
|
|
pathSegments: ['assistant'],
|
|
queryParameters: {
|
|
'mode': assistantMode.value.toString(),
|
|
'q': prompt,
|
|
...switch (assistantMode) {
|
|
AssistantMode.research => {'sub_mode': researchVariant!.value.toString()},
|
|
AssistantMode.code => {},
|
|
AssistantMode.chat => {'sub_mode': chatModel!.value.toString()},
|
|
AssistantMode.custom => {},
|
|
},
|
|
},
|
|
);
|
|
|
|
Uri summarizerUri({
|
|
required SharedContent document,
|
|
required SummarizerMode mode,
|
|
}) => _baseUrl.replace(
|
|
pathSegments: [
|
|
'summarizer',
|
|
//TODO: check if really necessary
|
|
'index.html',
|
|
],
|
|
queryParameters: {
|
|
'summary': mode.value,
|
|
if (document case SharedUrl(url: final url)) 'url': url.toString(),
|
|
},
|
|
fragment: switch (document) {
|
|
SharedText(text: final text) => text,
|
|
_ => null,
|
|
},
|
|
);
|