У меня тоже есть подобный чат (без регистрации) боты были раньше,
Подключил fingerprint -
https://github.com/Valve/fingerprintjs2
При первом входе пользователя в чат, запускаем fingerprint (конечно при его запуске страница гораздо дольше грузится, но это только при первом входе), после чего добавляем fingerprint в бд к остальным данным о этом пользователе и в сессию, и при каждой отправке сообщения сверяем данные.
Если у пользователя не определился fingerprint, то он просто не может писать в чат.
И боты пропали, сейчас иногда бывают спамеры, которые через браузер спамят, но на них, у меня есть модераторы, которые могут своевременно забанить данного пользователя (бан идет по IP и fingerprint)
Не каких капч нет в чате. Возле каждого сообщения есть кнопка с жалобой (любой пользователь, который общается в чате более суток может отправить жалобу, она приходит мне и модераторам на телефон, в случае чего можем быстро отреагировать)