Имеется 2 сервиса для решения Google Recaptcha v2 и v3: anti-captcha и rucaptcha. На данный момент через эти сервисы решается ежеминутно около 100 каптч, скорость решения каптчи негативно сказывается на производительности системы в которой они используются. Каптчи решаются только по url страницы и ключу сайта, уникальных ключей у каждой каптчи нет.
Необходимо разработать микросервис, который будет заранее подготавливать решения для каптч в зависимости от входящего потока, например:
В систему за минуту приходят 30 заданий v2 для домена X и 20 заданий v3 для домена Y, соответственно на следующую минуту у нас должно быть заготовлено 30 решений v2 для домена X и 20 заданий v3 для домена Y. Так же при генерации нужно брать в учет время решения каптчи.
Основные требования:
1. Реализовать на FastAPI.
2. Отсутствие внешних зависимостей в виде БД (максимум redis или sqlite).
3. Не использовать готовые библиотеки по типу python3-anicaptcha, только самостоятельные запросы к сервисам.
4. Возможность включать/отключать один из сервисов.
5. Для доступа к методам микросервиса авторизация по заголовку Authorization.
6. Каждый метод должен сопровождаться детальной документацией по каждому возможному ответу.
Необходимые методы:
1. Получение решенной каптчи для указанного домена.
Если при обращении к микросервису на данный момент нет заготовленной каптчи - не разрывая соединения запрашиваем решение каптчи напрямую у одного из сервисов. Желательно достичь 60-70% использований заготовленных каптч, что бы сократить время ожидания решения.
2. Получение статистики микросервиса: количество доступных каптч для каждого домена, количество обращений с момента последнего запуска.
3. Получение баланса в сервисах.
4. Репорт успешной/неуспешной каптчи в сервисе.