- PVSM.RU - https://www.pvsm.ru -
Сегодня - день Святого Патрика
, поэтому уместно будет поговорить о пиве. Не ждать же нам Октоберфеста, чтобы опубликовать эту статью! Тем более, что адресат этих рекомендаций по уверению автора это реальный человек, проживающий в Дублине.
Лето имеет свойство заканчиваться, но здесь, в Германии, мы научились топить это разочарование в пиве. Поэтому, когда сентябрь сменяется октябрём, неизбежно возникает вопрос: «Какое пиво мне выпить?». Большинство традиционных участников Октоберфеста, скорее всего, настаивают на том, что вы должны пить что-то немецкое, соответствующее Reinheitsgebot (Закону о чистоте пива). Но я не настолько догматичен и, напротив, считаю, что каждый должен наслаждаться идеальным пивом для себя, независимо от вкусовых предпочтений и места, где он встречает смену сезонов. Именно поэтому я выделил время из своего очень занятого графика, чтобы создать процесс, который поможет в этом.
Здесь полностью солидарен с автором - этот немецкий закон о чистоте есть пережиток средневековья. Принимали из благих побуждений, но сейчас это архаика, с которой пора распрощаться. Из-за него немецкое пиво в мире давно не в топе. (Мнение переводчика)
Давным-давно я создал проект, который использовал DMN [1] для реализации Распределяющей Шляпы (как в Гарри Поттере). На этот раз я решил развить эту идею, ведь теперь у нас есть новые инструменты, а именно ИИ. В одной из своих публикаций я рассказывал, как можно комбинировать DMN и ИИ для полезной категоризации инвестиционных рисков. Теперь пришло время объединить DMN и ИИ для создания чего-то гораздо менее полезного, но гораздо более весёлого.
Когда вы спрашиваете людей, какое пиво им нравится, важно сначала определить стиль пива, который лучше всего соответствует их вкусовым предпочтениям. Многое можно узнать, выяснив, насколько сладкое, фруктовое и охмеленое пиво они предпочитают. Также полезно узнать, нравится ли им солодовое пиво или нет. Поэтому я создал DRD (Decision Requirements Diagram), который представляет эти параметры для вашей таблицы.
Каждый входной параметр представляет собой оценку от 1 до 10, за исключением параметра "солодовое" (malty), который является булевым значением. Это сделано исключительно для того, чтобы таблица не была слишком скучной, если бы все параметры были числовыми. Определив эти входные данные, я начал создавать некоторые правила.
Первым важным аспектом таблицы является Hit Policy, для которого я выбрал значение "Collect". Это означает, что могут сработать сразу несколько правил, поскольку вкусы в пиве — это спектр, и между стилями существует значительное пересечение.
Сами правила основаны на моих личных предпочтениях и небольшом гуглинге. То есть, если вы не согласны с какими-то правилами, смело создавайте issue (который я, скорее всего, проигнорирую, потому что я прав, а вы нет).
Если таблица работает так, как задумано, то в результате вы получите один или несколько стилей пива, соответствующих вашим предпочтениям. Однако есть и вероятность, что ничего не совпадёт! Или, например, таблица подскажет вам, что вам стоит выпить стаут, но вы не будете знать, какие именно варианты доступны. Эти и другие вопросы решаются с помощью BPMN (Business Process Model and Notation), который мы интегрируем в процесс.
Добавление этой DMN-таблицы в BPMN-модель позволяет расширить возможности процесса, интегрируя другие системы и обрабатывая различные варианты ответов в зависимости от результатов. В данном случае я хотел добавить несколько дополнительных функций:
Интерфейс, где пользователи могут вводить данные для использования в таблице.
Механизм подбора местного пива, соответствующего предложенному стилю.
Интеграцию с email, чтобы результаты можно было отправлять пользователю.
Стартовое событие будет содержать интерфейс, а собранные там данные передаются в DMN-таблицу через задачу "Определить стиль пива"— и вот тут начинается самое интересное.
Если DMN-таблица смогла подобрать для вас пиво, я использую OpenAI Connector, [2] чтобы запросить у ChatGPT рекомендации мест, где можно найти пиво этого стиля поблизости. Если же подходящего варианта не нашлось, ChatGPT предложит вам альтернативу.
В обоих случаях затем отправляется email с предложенным напитком с помощью SendGrid Connector [3].
С самого начала нам нужно собрать ряд данных — не только информацию, необходимую для выбора стиля пива, но также данные о том, где пользователь может найти это пиво локально, а также его email-адрес, чтобы я мог отправить ему результаты. Я использовал конструктор форм [4], чтобы создать этот довольно простой интерфейс, который собирает всю необходимую информацию.
Теперь осталось только следовать инструкциям по развертыванию в файле README проекта [5] и запустить его. Вы можете начать процесс из Tasklist, заполнив стартовую форму.
Затем вы можете перейти в Operate, чтобы просмотреть ход выполнения процесса, а также переменные процесса.
Но вы также можете детально изучить DMN-таблицу, чтобы увидеть, как именно сработали правила. В данном случае мы видим, что Реб Браун получил два стиля: пшеничное пиво и бельгийское пиво — оба, конечно, отличные.
Наконец, Реб может проверить свою электронную почту, чтобы найти предложения о том, где можно купить пиво выбранных им стилей в Дублине, где он точно живет, потому что он действительно реальный человек.
Вы можете найти проект во всей его красе прямо здесь [5], где можете клонировать его и запустить на своем устройстве. Вы также можете пропустить все это и сразу перейти к пиву, заполнив стартовую форму. Как по волшебству, ваши варианты пива появятся в вашем почтовом ящике.
Подписывайтесь на Telegram канал BPM Developers [6].
Рассказываем про бизнес процессы: новости, гайды, полезная информация и юмор.
Автор: stas_makarov
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/prinyatie-reshenij/413772
Ссылки в тексте:
[1] DMN: https://habr.com/ru/articles/887764/
[2] OpenAI Connector,: https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/openai/
[3] SendGrid Connector: https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/sendgrid/
[4] конструктор форм: https://docs.camunda.io/docs/guides/utilizing-forms/
[5] README проекта: https://github.com/NPDeehan/Beer-Suggestion-Process
[6] BPM Developers: https://t.me/bpm_developers
[7] Источник: https://habr.com/ru/articles/891466/?utm_campaign=891466&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.