Серверное приложение для автоматического изменения рецептов под предпочтения клиентов
Подойдёт под любой бизнес, изготавливающий еду или напитки не из заготовок
Персонализация вкуса · API · бизнес-панель · форма опроса
Репозитории с:
| Роль | backend (рецепты, коэффициенты, опросы, персонализация) |
| Стек | Python, Flask, PostgreSQL, Docker Compose |
| Business-панель | Ariabochkina/balance-business |
| Форма опроса | Ariabochkina/balance-survey |
После каждой покупки пользователь получает форму из небольшого числа вопросов. Каждый вопрос - шкала, насколько гость предпочёл бы ослабить или усилить некоторую вкусовую характеристику. После заполнения формы рецепт изменяется под него автоматически, и со следующим продуктом он получит адаптированный под него вкус.
Форму для редактирования вышеуказанного опросника, отдельную для каждого продукта. Менеджер формы указывает коэфициенты, насколько каждый из параметров во время приготовление влияет на заданные вкусовые характеристики.
Мы исходим из предположения, что вкусовые предпочтения клиента - унимодальная функция над пространством из отдельных вкусовых характеристик(сладость, соленость, горечь, кислотность, температура, концентрированность вкуса и т. д.). Для поиска максимального значения таких функций идеально подходит градиентный спуск. Но что же такое градиент для предпочтений клиента? То насклолько он бы изменил каждую вкусовую характеристику, то есть результат собранного нами опросника.
JSON-файл содержит:
- Поле
name, содержащее название рецепта - Поле
tastes, содержащее вкусовые характеристики - Поле
default_measuresс полями ингридиентов и их дефолтных значений - Поле
change_coefficientsс полями ингридиентов, содержащих поля вкусовых характеристик и соответствующих им коэфициентов
JSON-файл содержит:
- поле
changes— словарь, содержащий поля вкусов, которым соответствуют коефициенты изменения от-0.1до0.1
- Добавление рецепта напитка пользователем
- Создание формы опроса пользователя для заказчика
- Изменение бизнесом коэфициентов влияния ингридиентов на вкус напитка через бизнес-панель
- Добавление бизнесом нового рецепта
- Принятие и обработка результатов опроса
- Показ кастомизированного рецепта исполнителю заказа
- Авторизация бизнеса в системе
- Предоставление удобного API бизнесу
- Бизнес редактирует общие рецепты и коэфициенты изменения при помощи business панели.
- Бизнес может добавлять новые рецепты пользователей с помощью API.
- После приобретения элемента меню некоторым пользователем, бизнес может запросить генерацию токена формы изменения рецепта, после первого её заполнения токен аннулируется и заполнение становится невозможным.
- Бизнес может получить данные о рецепте c помощью API.
Взаимодействие backend, бизнес-панели и формы опроса
Бизнес-панель (balance-business) Форма опроса (balance-survey)
│ │
│ рецепты / коэффициенты │ submit опроса
▼ ▼
┌────────────────────────────────────────────────────┐
│ balance (API) │
│ рецепты · токены · персонализация вкуса │
└───────────────────────┬────────────────────────────┘
▼
PostgreSQL
| Метод | Endpoint | Описание |
|---|---|---|
POST, GET |
/usersRecipes/<user_id>/<recipe_id> |
создание и получение рецепта пользователя |
GET |
/usersToken |
генерация формы опросника и соответствующего ей токена (параметры user_id и recipe_id) |
GET |
/tastes/<recipe_id> |
получение всех вкусовых характеристик рецепта |
POST |
/submit/ |
отправка формы с последующим изменением рецепта пользователя |
| Сервис | Репозиторий | Порт | Доступ |
|---|---|---|---|
| Редактор рецептов | balance-business | 3002 |
вход: :3002/login |
| Формы с опросами | balance-survey | 3001 |
параметры token и recipe_id |
- Backend: Shfdis/balance
- Business-панель: Ariabochkina/balance-business
- Форма опроса: Ariabochkina/balance-survey
- Демонстрация: Яндекс.Диск
