Бот «сломается» при большом числе запросов. Прежде, чем отдать ожидаемое «ok», он выполняет ещё два веб-запроса: users.get()
и messages.send()
– это съедает время и память. Будье готовы переключиться на схему с очередью и отдельными рабочими. Приняли запрос, сохранили, отдали "ok". Другой процесс, рабочий, неспеша разбирает задачи из очереди, отправляет ответы. Стали популярнее, добавили рабочих с других серверов.
Не проверяете user text на минимальную длину. Пришлют одну букву - получат весь FAQ. По мере роста FAQ'а, можете столкнуться с дубликацией: на запрос "hi" найдётся, скажем, ключ с "high load".