Skip to content
Neuronavt
Go back

Nivara: помощник для магазина добавок

Кейс8/10

Коротко

Priyanshu Jha создал для подруги мобильный веб-помощник, который превращает сообщения и голосовые заметки WhatsApp в черновики заказов и показывает, что доставить, пополнить и у какого поставщика закупиться. Ключевой принцип: Gemma обрабатывает язык, а расчёты и запись данных выполняет проверяемый код, поэтому модель не решает, сколько товара есть на складе.

Контекст

Автор Priyanshu Jha сделал Nivara для подруги, которая одна управляет магазином пищевых добавок через телефон и получает заказы в WhatsApp на хинди и хинглише. У неё не было учёта продаж и запасов в программе; автор начал с трёх практических вопросов: что доставить сегодня, что заказать заранее и где цена поставщика выгоднее.

Главное

Как сделано

Nivara предлагает разделы Today, Orders, Ask, Stock, Forecast и Suppliers. Заказ можно создать из текста или голосовой записи: ElevenLabs Scribe переводит аудио в текст, Gemma формирует JSON-черновик, а Zod проверяет его. Код сопоставляет имена клиентов и товаров с каталогом, вычисляет даты вроде «kal» и показывает результат для проверки; заказ сохраняется только после нажатия «Confirm and save» и повторной проверки.

Gemma (gemma-4-26b-a4b-it через Google AI Studio в работающей версии, либо gemma3:4b в Ollama при разработке) используется для языковых задач, но не для фактов. Остатки, риск дефицита, объёмы закупки, даты и экономия поставщика вычисляются TypeScript-кодом по данным базы. Прогноз спроса на 7 дней по каждому товару рассчитывается TabPFN по 60 дням истории; из-за отсутствия Python на Render автор вычислил прогнозы локально и сохранил их в Atlas.

MongoDB Atlas хранит заказы, запасы и клиентов. Tiger Data/Timescale хранит ежедневные продажи в sales_daily и поддерживает агрегаты sales_demand_7d и sales_demand_28d; синхронизация доставленных заказов устроена так, чтобы повторная обработка не удваивала продажи. Поиск товаров объединяет полнотекстовый поиск Postgres и pgvector с 768-мерными эмбеддингами gemini-embedding-001. SerpApi поставляет цены Google Shopping и данные Google Trends. Приложение размещено на бесплатном Render; ежедневная сводка готовится к 8:00, а при отсутствии фонового воркера запускается внутри приложения.

Результаты

Автор сообщает о готовом веб-приложении и проверке его страниц и кнопок на телефонах шириной 360 и 390 пикселей и на ноутбуке. В демонстрационном заказе распознан текст «राहुल भाई को 2 MB Biozyme भेज देना कल तक»: приложение подготовило заказ на 2 упаковки Biozyme whey по ₹2,599, всего ₹5,198, с доставкой 6 октября; дата и заказ не сохраняются без подтверждения. Прогноз строился для 212 товаров за 317 секунд на CPU. В проекте указаны 137 тестов и 15 записанных API-кейсов Keploy. Исправлены найденные несогласованность рекомендаций по закупке, подбор несопоставимой цены, отображение времени не по Индии и ряд других ошибок.

Ограничения

У автора пока нет реальной истории продаж подруги; прогноз спроса основан на Google Trends, масштабированном под небольшой магазин, и помечен как прокси. Каталог включает 212 товаров Open Food Facts India, но реальные цены Open Prices были только для четырёх позиций, остальные оценены автором. Прогноз TabPFN рассчитан по тестовым данным, а не проверен на реальных продажах магазина. Работающая версия использует Google AI Studio, а не локальную модель; локальный режим заявлен как вариант. Бесплатный Render может просыпаться до минуты после простоя, а автоматическая обработка заказов напрямую из WhatsApp Business и отправка заказа поставщику пока не реализованы. Автор описывает собственную проверку и тесты, но не приводит независимой оценки качества прогноза или распознавания.

Что взять себе

Читать оригинал, если…

Откройте оригинал, если нужны репозиторий, демонстрация интерфейса и точные детали реализации интеграций, таблиц и настроек.