Files
MrbWebLibre/app/lib/features/kagi/utils/url_builder.dart
T

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,
},
);