getRecommendedModel method
Get recommended model for a specific use case
Implementation
Future<AIModel?> getRecommendedModel(String useCase) async {
final allModels = await models();
switch (useCase.toLowerCase()) {
case 'chat':
case 'conversation':
return allModels.firstWhere(
(model) => model.id == 'gpt-4' || model.id == 'gpt-4-turbo',
orElse: () => allModels.firstWhere(
(model) => model.id.contains('gpt-4'),
orElse: () => allModels.first,
),
);
case 'embedding':
return allModels.firstWhere(
(model) => model.id.contains('text-embedding-3'),
orElse: () => allModels.firstWhere(
(model) => model.id.contains('embedding'),
orElse: () => allModels.first,
),
);
case 'image':
return allModels.firstWhere(
(model) => model.id.contains('dall-e-3'),
orElse: () => allModels.firstWhere(
(model) => model.id.contains('dall-e'),
orElse: () => allModels.first,
),
);
case 'reasoning':
return allModels.firstWhere(
(model) => model.id.contains('o1-preview'),
orElse: () => allModels.firstWhere(
(model) => model.id.contains('o1'),
orElse: () => allModels.first,
),
);
default:
return allModels.isNotEmpty ? allModels.first : null;
}
}