Сервис на Go · лимиты · журнал
Шлюз к нейросетям
Прежде чем бот отвечает клиентам, вызов модели должен проходить через шлюз: иначе один бот за ночь съедает бюджет всех остальных, а повтор кнопки «отправить» дважды списывает токены. Здесь три бота «Зерна» ходят в один вход. Видно, сколько осталось, какой вызов ушёл на запасную модель и какой хеш вопроса записан в журнал.
Сценарий: Обжарочная «Зерно» — вымышленная: боты поддержки, заявок и магазина.

Открыть демо
Ответ модели — локальная заглушка. Лимиты, бюджет и журнал пишет сервис на Go в PostgreSQL.
Приложение работает в браузере: на сервер ничего не отправляется.
Что показывает демо
Как попробовать
Спросите поддержку
Кнопка «Спросить поддержку» вызывает шлюз ключом бота поддержки. В журнале появляется строка с ответом и стоимостью.
Повторите запрос
«Повторить запрос» шлёт тот же ключ идемпотентности. Бюджет не уменьшается второй раз.
Включите запасную модель
«Запасная модель» помечает основную недоступной. В строке журнала маршрут заканчивается на zerno-small.
Упритесь в лимит
«Пять запросов заявок» — у бота заявок потолок 4 в минуту, пятый получает отказ. «Исчерпать бюджет заявок» тратит суточный бюджет, и следующий вызов не проходит.
Без платных нейросетей
Текст ответа собирает локальная заглушка, без платного вызова модели. Ключи, лимиты, бюджет, журнал и трасса OpenTelemetry — настоящие, их держит сервис на Go.
Демо работает без API-ключей OpenAI, YandexGPT или GigaChat. Там, где рабочая система обращается к модели, стоит локальная заглушка с тем же интерфейсом — поэтому демо бесплатно, всегда доступно и ничего не выдумывает.
Что будет в рабочем проекте
- Настоящие провайдеры моделей за тем же входом, со своими ценами и запасным маршрутом
- Ключи команд и проектов, а не три демо-бота
- Журнал и трассы в коллекторе OpenTelemetry
- Отдельный бюджет на бота, на команду и на сутки
Стек
- Все демо по стеку:
- Go
- React
- TypeScript
- Go
- net/http
- pgx
- sqlc
- goose
- PostgreSQL
- OpenTelemetry
- slog
- React 19
Нужен такой же для вашего бизнеса?
Расскажите о задаче — отвечу, что из демо подойдёт вам, сколько это займёт и что понадобится с вашей стороны.
Другие демо в этом разделе
Все демо- работает
Веб-приложение · OCR · проверка реквизитов
Распознавание документов
Загрузите счёт или акт — фото, скан или PDF. Приложение распознаёт текст, вытаскивает реквизиты и строки таблицы и проверяет их: контрольные суммы ИНН и счетов, итог и НДС.
- React
- TypeScript
- Нейросеть в браузере
- работает
Веб-приложение · диалоги · сделки · аналитика
Панель оператора
Рабочее место оператора, которому бот передаёт сложные обращения: очередь с таймером, резюме диалога, черновик ответа, сделки на канбане и аналитика — на живом потоке клиентов.
- React
- TypeScript
- работает
Веб-приложение · Recharts · RBAC · аудит
SaaS-дашборд
Кабинет команды выручки SaaS: MRR по тарифам, движение выручки, отток, здоровье клиентов, выгрузка CSV для Excel и журнал действий. Все цифры считаются из одной истории за год — смена тарифа в карточке клиента сразу двигает MRR на графиках.
- React
- TypeScript
- работает
Веб-приложение · Laravel · PostgreSQL
Складской учёт на Laravel
Учёт склада, где остаток — сумма проводок, а не «поле qty--»: заказы с резервом «всё или ничего», сборка по ячейкам, приёмка с импортом CSV, инвентаризация и журнал. Гонка двух настоящих процессов PHP в PostgreSQL показывает, зачем нужна блокировка строки.
- PHP
- работает
Веб-приложение · метрики · оповещения
Мониторинг бота
Как следят за ботом, когда он уже работает с клиентами: сколько запросов, как быстро он отвечает, как часто ошибается или не знает ответа. Журнал запросов с трассой каждого ответа и правила, которые пишут дежурному в Telegram, если что-то пошло не так.
- React
- TypeScript
- работает
Сервис на Go · очередь · подтверждение
Агент закупки
Заявка поставщику идёт шагами в очереди: проверить остаток, собрать черновик, дождаться человека и только потом отправить. Оборванная отправка возвращается в очередь и не создаёт второй заказ.
- Go
- React
- TypeScript
- работает
Сервис на Go · MCP · инструменты
MCP-сервер «Зерна»
Агент вызывает склад и заказы обжарочной инструментами Model Context Protocol: остатки, статус заказа, новая заявка. Рядом виден сам обмен JSON-RPC.
- Go
- React
- TypeScript
- работает
Парсер на Python · работает в браузере
Мониторинг цен конкурентов
Парсер на Python каждый день обходит сайты трёх конкурентов магазина электроники: HTML-каталог с пагинацией, sitemap с JSON-LD и SPA с API. Сопоставляет товары с каталогом, присылает уведомления об изменениях, рекомендует цену по правилам и выгружает отчёт в Excel. Python работает прямо в браузере.
- Python
- React
- TypeScript
- работает
Веб-приложение · PWA · нативный JS
Офлайн-приложение курьера
Рабочий день курьера: заказы, звонок клиенту, вручение с фото и подписью. Приложение открывается и работает без сети, а изменения уходят в диспетчерскую, когда связь вернётся. Если диспетчер за это время изменил тот же заказ — курьер выбирает, чья версия верная.
- Нативный JS
