AIRouter constructor

AIRouter({
  1. required List<AIProvider> providers,
  2. RoutingStrategyHandler? strategyHandler,
  3. RoutingStrategy strategy = RoutingStrategy.primary,
})

Creates a router with a RoutingStrategyHandler.

Implementation

AIRouter({
  required this.providers,
  RoutingStrategyHandler? strategyHandler,
  RoutingStrategy strategy = RoutingStrategy.primary,
}) : strategyHandler = strategyHandler ?? strategy.toHandler() {
  for (final provider in providers) {
    _circuitBreakers[provider.name] = CircuitBreaker(name: provider.name);
  }
}