Обновить

Как я довёл расходы на LLM до нуля: почему на бесплатных тарифах параллелизм — враг

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели9.5K
Всего голосов 6: ↑4 и ↓2+4
Комментарии3

Комментарии 3

А на кой хер вам асинхронность с семафором на 1?

Семафор(1) - это временный костыль, не архитектурное решение.

Задача была: перестать долбить Groq 3 параллельными запросами и вылетать на платный DeepSeek. Semaphore(1) решил это за одну строку кода.

Да, при semaphore(1) asyncio теряет смысл внутри одного дайджеста - запросы идут последовательно, как в синхронном коде. Технически правильное решение - адаптивный rate limiter: считать токены в скользящем окне 60 секунд и притормаживать только когда подходим к лимиту, а не всегда. Тогда asyncio работает на полную когда лимит не давит, и замедляется только при необходимости.

Но для текущей нагрузки (80 пользователей, бесплатные провайдеры с мягкими лимитами) semaphore(1) + 10 сек между пользователями решает задачу и не создаёт сложности. Когда пользователей станет в 10 раз больше - перепишу на нормальный rate limiter.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации