Выбор пива с DMN и AI

в 8:33, , рубрики: AI, beer, BPM, bpmn, camunda, DMN, бизнес-процессы, день святого патрика, принятие решений

Сегодня - день Святого Патрика🍀🍀🍀, поэтому уместно будет поговорить о пиве. Не ждать же нам Октоберфеста, чтобы опубликовать эту статью! Тем более, что адресат этих рекомендаций по уверению автора это реальный человек, проживающий в Дублине.

Лето имеет свойство заканчиваться, но здесь, в Германии, мы научились топить это разочарование в пиве. Поэтому, когда сентябрь сменяется октябрём, неизбежно возникает вопрос: «Какое пиво мне выпить?». Большинство традиционных участников Октоберфеста, скорее всего, настаивают на том, что вы должны пить что-то немецкое, соответствующее Reinheitsgebot (Закону о чистоте пива). Но я не настолько догматичен и, напротив, считаю, что каждый должен наслаждаться идеальным пивом для себя, независимо от вкусовых предпочтений и места, где он встречает смену сезонов. Именно поэтому я выделил время из своего очень занятого графика, чтобы создать процесс, который поможет в этом.

Здесь полностью солидарен с автором - этот немецкий закон о чистоте есть пережиток средневековья. Принимали из благих побуждений, но сейчас это архаика, с которой пора распрощаться. Из-за него немецкое пиво в мире давно не в топе. (Мнение переводчика)

Давным-давно я создал проект, который использовал DMN для реализации Распределяющей Шляпы (как в Гарри Поттере). На этот раз я решил развить эту идею, ведь теперь у нас есть новые инструменты, а именно ИИ. В одной из своих публикаций я рассказывал, как можно комбинировать DMN и ИИ для полезной категоризации инвестиционных рисков. Теперь пришло время объединить DMN и ИИ для создания чего-то гораздо менее полезного, но гораздо более весёлого.

Создание DMN-таблицы

Когда вы спрашиваете людей, какое пиво им нравится, важно сначала определить стиль пива, который лучше всего соответствует их вкусовым предпочтениям. Многое можно узнать, выяснив, насколько сладкое, фруктовое и охмеленое пиво они предпочитают. Также полезно узнать, нравится ли им солодовое пиво или нет. Поэтому я создал DRD (Decision Requirements Diagram), который представляет эти параметры для вашей таблицы.

Выбор пива с DMN и AI - 1

Каждый входной параметр представляет собой оценку от 1 до 10, за исключением параметра "солодовое" (malty), который является булевым значением. Это сделано исключительно для того, чтобы таблица не была слишком скучной, если бы все параметры были числовыми. Определив эти входные данные, я начал создавать некоторые правила.

Выбор пива с DMN и AI - 2

Первым важным аспектом таблицы является Hit Policy, для которого я выбрал значение "Collect". Это означает, что могут сработать сразу несколько правил, поскольку вкусы в пиве — это спектр, и между стилями существует значительное пересечение.

Сами правила основаны на моих личных предпочтениях и небольшом гуглинге. То есть, если вы не согласны с какими-то правилами, смело создавайте issue (который я, скорее всего, проигнорирую, потому что я прав, а вы нет).

Если таблица работает так, как задумано, то в результате вы получите один или несколько стилей пива, соответствующих вашим предпочтениям. Однако есть и вероятность, что ничего не совпадёт! Или, например, таблица подскажет вам, что вам стоит выпить стаут, но вы не будете знать, какие именно варианты доступны. Эти и другие вопросы решаются с помощью BPMN (Business Process Model and Notation), который мы интегрируем в процесс.

Создание BPMN-модели

Добавление этой DMN-таблицы в BPMN-модель позволяет расширить возможности процесса, интегрируя другие системы и обрабатывая различные варианты ответов в зависимости от результатов. В данном случае я хотел добавить несколько дополнительных функций:

  1. Интерфейс, где пользователи могут вводить данные для использования в таблице.

  2. Механизм подбора местного пива, соответствующего предложенному стилю.

  3. Интеграцию с email, чтобы результаты можно было отправлять пользователю.

Выбор пива с DMN и AI - 3

Стартовое событие будет содержать интерфейс, а собранные там данные передаются в DMN-таблицу через задачу "Определить стиль пива"— и вот тут начинается самое интересное.

Если DMN-таблица смогла подобрать для вас пиво, я использую OpenAI Connector, чтобы запросить у ChatGPT рекомендации мест, где можно найти пиво этого стиля поблизости. Если же подходящего варианта не нашлось, ChatGPT предложит вам альтернативу.

В обоих случаях затем отправляется email с предложенным напитком с помощью SendGrid Connector.

Создание фронтенда

С самого начала нам нужно собрать ряд данных — не только информацию, необходимую для выбора стиля пива, но также данные о том, где пользователь может найти это пиво локально, а также его email-адрес, чтобы я мог отправить ему результаты. Я использовал конструктор форм, чтобы создать этот довольно простой интерфейс, который собирает всю необходимую информацию.

Выбор пива с DMN и AI - 4

Развертывание и запуск

Теперь осталось только следовать инструкциям по развертыванию в файле README проекта и запустить его. Вы можете начать процесс из Tasklist, заполнив стартовую форму.

Выбор пива с DMN и AI - 5

Затем вы можете перейти в Operate, чтобы просмотреть ход выполнения процесса, а также переменные процесса.

Выбор пива с DMN и AI - 6

Но вы также можете детально изучить DMN-таблицу, чтобы увидеть, как именно сработали правила. В данном случае мы видим, что Реб Браун получил два стиля: пшеничное пиво и бельгийское пиво — оба, конечно, отличные.

Выбор пива с DMN и AI - 7

Наконец, Реб может проверить свою электронную почту, чтобы найти предложения о том, где можно купить пиво выбранных им стилей в Дублине, где он точно живет, потому что он действительно реальный человек.

Выбор пива с DMN и AI - 8

Наконец…

Вы можете найти проект во всей его красе прямо здесь, где можете клонировать его и запустить на своем устройстве. Вы также можете пропустить все это и сразу перейти к пиву, заполнив стартовую форму. Как по волшебству, ваши варианты пива появятся в вашем почтовом ящике.

Подписывайтесь на Telegram канал BPM Developers.
Рассказываем про бизнес процессы: новости, гайды,  полезная информация и юмор.

Автор: stas_makarov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js