Hark - ИИ чат бот

Написал чат-бота для сайта, который ставишь себе сам. Один бинарник на Go, база файлом рядом, ключи от модели свои. Ни облака, ни чужого сервера с перепиской клиентов.

Но интереснее оказалось другое.

Каждый ответ бот сопровождает чеком: какую модель дёрнул, в какие подключения сходил, сколько это заняло и во что обошлось. Когда чеки появились, стало видно то, чего не показывает личный кабинет поставщика: от 72 до 86 процентов оплаченных токенов вывода — это рассуждение, которого посетитель не видит вообще. В одном ответе из 518 токенов вывода 448 ушли на думанье.

Это не обман, так работают думающие модели. Но если считать бюджет поддержки по длине реплик, ошибёшься примерно впятеро, и ниоткуда об этом не узнаешь. Теперь рассуждение стоит в чеке отдельной колонкой.

Вторая находка — поставщики не договорились о собственных ручках. Я хотел, чтобы Hark работал с чем угодно: OpenAI, Anthropic, Ollama, vLLM, своя ЛЛМ на localhost. Звучит как один протокол, а на деле `gpt-5-nano` отвергает `temperature` наотрез: поддерживается только значение по умолчанию. И старое поле `max_tokens` тоже отвергает. В документации этого нет нигде, а настройки с ползунком температуры ломают с такой моделью каждый запрос.

Поэтому Hark спрашивает сам. Одна кнопка шлёт несколько крошечных запросов и записывает, что вернулось. Дальше в настройках остаются только те ручки, которые эта модель приняла.

Ещё там: подключение своего API и базы данных, где SQL пишет модель, а пускать его или нет решает Hark; передача разговора живому человеку, когда бот сдался, с оповещением в админку потоком и наружу одним вызовом; виджет одним тегом на страницу, 23 КБ, а по проводу семь.

Ставится в три команды или через `docker compose up`. Демонстрация разворачивается без ключа и ничего не тратит — чеки в ней записаны, а не сгенерированы.

Исходники: github.com/dripips/hark

Hark - ИИ чат бот | Сетка — социальная сеть от hh.ru
Hark - ИИ чат бот | Сетка — социальная сеть от hh.ru Hark - ИИ чат бот | Сетка — социальная сеть от hh.ru