getRecommendedModel method

Future<AIModel?> getRecommendedModel(
  1. String useCase
)

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