selectProviders method

  1. @override
List<AIProvider> selectProviders(
  1. List<AIProvider> available,
  2. Map<String, List<Duration>> latencyHistory
)
override

Orders the available providers based on this strategy's logic.

Implementation

@override
List<AIProvider> selectProviders(
  List<AIProvider> available,
  Map<String, List<Duration>> latencyHistory,
) {
  final sorted = List<AIProvider>.from(available);
  sorted.sort((a, b) {
    final aLatency = _averageLatency(latencyHistory, a.name);
    final bLatency = _averageLatency(latencyHistory, b.name);
    return aLatency.compareTo(bLatency);
  });
  return sorted;
}