Один облачный провайдер языковой модели может временно стать недоступным или упереться в лимит запросов — разговор с ботом не должен из-за этого прерываться, нужно было прозрачно переключаться между провайдерами.
Роутер держит пул ключей нескольких провайдеров (Groq, OpenRouter, Gemini), распределяет запросы между ними и штрафует конкретный ключ при ошибках по заголовкам ответа сервера, временно выводя его из ротации, пока лимит не восстановится.
Python, несколько облачных языковых моделей (Groq, OpenRouter, Gemini), пул ключей с ротацией и штрафами по rate-limit.
Готово и используется.