Всем привет, друзья! Сразу скажу, что данной статьей хотелось бы завершить цикл публикаций затрагивающих тему использования различных моделей искусственного интеллекта Microsoft AI Builder в тесной интеграции с приложениями Microsoft Power Platform. Мне захотелось как то подытожить всю имеющуюся у меня информацию по сервису AI Builder и свести всё это в одну статью, где можно было бы развернуто рассказать почти про каждую модель а также в целом затронуть тему Low-Code разработки. Надеюсь, что у меня это получится и будет интересно. Поехали. И начнем с Low-Code разработки и так называемого Citizen Development'а.
Давайте взглянем на официальное определение от агентства Gartner.
Citizen developer это непрофессиональный разработчик, не относящийся напрямую к IT сфере, который создает приложения без кода для себя и других людей в организации. Для создания таких приложений обычно используются low-code или no-code платформы. Основное преимущество в том, что не нужно писать ни строчки кода, либо это несложный код в виде различных готовых функций, которые можно вызывать, передавая нужные параметры. Для этого используются специальные среды разработки, так называемые No Code или Low Code платформы, которые позволяют специалистам проектировать и создавать мощные приложения, которые могут быстро адаптироваться в соответствии с потребностями бизнеса.
В общем, если коротко, то CITIZEN DEVELOPER – это человек, который создает программные приложения, не используя классические средства разработки.
Однако, что же такое в принципе, Low-Code или No-Code? Low-Code и No-Code это способ разработки приложений с минимальным использованием программирования. Данное направление также еще называется Zero Coding. Low-Code / No-Code решает одну из главных проблем IT — ускорение цикла от появления идеи до работающего бизнес-процесса, снижая time-to-market.
Low-Code / No-Code не заменяет профессиональных разработчиков, но позволяет сократить время создания продукта или дополнить его новыми возможностями
С точки зрения преимуществ Low-Code и No-Code платформ, можно отметить несколько положительных сторон:
Пришло время поговорить про различные примеры Low-Code и No-Code платформ, которые на текущий момент существуют и представляют определенный интерес.
Первая платформа, о которой хочется сказать пару слов это набор сервисов от австралийской компании Nintex. В числе сервисов Nintex присутствует сервис Nintex Forms, по настройке форм мобильных приложений. Вся настройка сводится к расположению нужных объектов на экране и описанию логики поведения через встроенный язык формул.
Второй сервис от этой же компании — это сервис Nintex Workflows, по созданию процессов. Процесс создается на базе готовых соединителей к различным сервисам, с помощью которых можно выстраивать логику поведения бизнес-процесса. Например, получить данные из CRM системы, проверить значение поля и в зависимости от значения направить уведомление либо одной группе пользователей, либо другой. Настройка также происходит через графический интерфейс.
Российская Low-Code платформа, состоящая из нескольких основных сервисов.
Первый из них это ZForms — редактор для создания экранных форм. Настройка производится в браузере с помощью подготовленных компонентов-кубиков.
Второй продукт это ZFlow — редактор для создания процессов взаимодействия с данными. Конфигурируется всё в редакторе схемы потока из преднастроенных блоков.
Еще один пример Low-Code редактора — это редактор под названием Webcon BPS. В нем настройка приложения происходит в пошаговом визарде, где вы шаг за шагом настраивате что будет отображаться и происходить. Все настраивается мышкой и минимумом касаний клавиатуры.
Платформа K2 Process Automation примерно похожа на предыдущий пример, смысл практически такой же. Пошаговый редактор, набор объектов, которые могут быть связаны между собой и область настройки каждого выбранного объекта с помощью готовых блоков настроек или с помощью встроенного языка.
И у Гугла есть своя Low-Code платформа, если вдруг кто-то не знал) Называется данная платформа Google AppSheet и предоставляет целый комплекс готовых блоков для настройки интерфейса, поведения, автоматизированных процессов, безопасности и возможность подключения к различным источникам данных, например к тем же Гугл таблицам. Всё это позволяет создавать мобильные и веб-приложения для разных целей, например, как показано на картинке – пример приложения адресной книги и журнала звонков.
У Microsoft тоже есть своя линейка Low-Code платформ, на которой остановимся чуть-чуть подробнее. Low-Code платформа от Microsoft называется Microsoft Power Platform и состоит из нескольких сервисов. В первую очередь это сервис Microsoft Power Apps, который используется для создания мобильных и веб-приложений. Вся настройка, как и в предыдущих примерах производится в графическом редакторе с использованием встроенных блоков-компонентов. Также есть возможность писать код на встроенном языке, который очень напоминает формулы в Excel. Созданным приложением можно поделиться с другими участниками и установить себе на телефон или планшет.
Второй сервис линейки Power Platform называется Power Automate и с помощью него можно создавать процессы, запускаемые по определенным событиям. Например, событием может быть изменение файла, получение письма на почту, расписание или нажатие на кнопку. И запустившись по событию процесс, может обрабатывать данные из разных источников, подключаясь к ним через дата коннекторы – соединители к различным сервисам и службам.
Для аналитики данных используется сервис Power BI, при помощи которого можно визуализировать данные в виде различных отчетов и дашбордов.
Данный сервис состоит из трёх интегрированных компонентов:
Power Query (редактор запросов) — выполняет загрузку и очистку данных;
PowerPivot (наборы данных и модели данных) — интерфейс работы с табличными данными в оперативной памяти где выполняются запросы к данным, агрегация, расчёты и т. п.;
Power View — подсистема визуализации и построения отчётов (Reporting).
Логика работы с данным сервисом примерно такая же как и в других сервисах – подключаемся к данным, выбираем нужный объект визуализации и настраиваем его отображение.
И финальный сервис линейки Power Platform — это сервис Power Virtual Agents, с помощью которого можно создавать чат-ботов. Вся настройка производится в графическом интерфейсе, где доступны блоки для построения диалога с пользователем. Любой диалог начинается с триггер фразы, а далее можно задать вопрос, в зависимости от ответа двинуться на ту или иную ветку, отобразить сообщение, выполнить действие. При настройке тут же можно прогонять диалоги и проверять правильность настроенной логики.
Ну и кажется пришло время переходить к теме искусственного интеллекта, сменим фокус и обсудим как можно использовать искусственный интеллект и приложения без кода. А можно ли это делать вообще? Давайте разбираться.
Термин «искусственный интеллект» (ИИ) означает способность машины имитировать разумное поведение человека. Он охватывает множество сфер, таких как обработка естественного языка, машинное обучение, управление знаниями, машинное зрение, решение проблем и так далее.
Мы не будем сегодня говорить в целом про искусственный интеллект и его влияние на развитие всех сфер жизни, а сосредоточимся скорее на частных случаях ИИ – моделях искусственного интеллекта, которые позволят решать задачи применительно к приложениям без кода, сделанных на базе Low-Code конструкторов.
Какие есть примеры моделей искусственного интеллекта, применимых к приложениям без кода?
Как пример использования моделей ИИ в реальной жизни привести одну кофейню, которая полностью построена с учетом использования искусственного интеллекта. Кофейня использует алгоритмы нейросетей для того, чтобы распознавать ряд эмоций (радость, грусть, усталость, удивление и другие) и в зависимости от него выдает бариста несколько подходящих вариантов на выбор, чтобы он мог предложить их посетителю. Для предсказания спроса используется машинное обучение (предиктивная аналитика). Система анализирует несколько факторов: погодные условия, день недели и время года, проведение рядом с кофейней каких-либо мероприятий и другие.
Рассмотрим сервис Microsoft AI Builder, который может быть использован совместно с приложениями, сделанными на базе Power Platform. Microsoft AI Builder — это набор инструментов, который дает возможность приложениям Microsoft Power Platform обрабатывать информацию с использованием моделей искусственного интеллекта, таких как прогнозирование, обработка форм, обнаружение объектов, классификация категорий, а также извлечение объектов, через достаточно простой и понятный интерфейс. Кроме этого, можно использовать готовые экземпляры моделей и сразу приступить к обработке данных с помощью подготовленных сценариев ИИ, включая извлечение ключевых фраз, определение языка, анализ тональности, распознавание текста (OCR), считывание визитных карточек, обработку квитанций и прочих сценариев. Причем некоторые модели AI Buider требуют предварительного обучения на базе примеров файлов, а некоторые готовы к употреблению сразу.
Первый сценарий — это распознавание текста. Данная модель искусственного интеллекта AI Builder не требует предварительного обучения и предназначена для считывания текста с фотографий и документов. Можно использовать любые изображения, главное, чтобы на них был читаемый текст на существующем в мире языке)
Пример использования данной модели довольно прост – делаем мобильное приложение на базе редактора Microsoft Power Apps и внедряем в него компонент «распознавание текста». Далее, через интерфейс самого приложения загружаем файл, в моем случае это был скриншот из википедии, и ниже в текстовом блоке отображается считанный текст. Извлечение текста из изображения делается с помощью одной формулы, в которой мы обращаемся к компоненту TextRecognizer.
В качестве второго варианта применения модели распознавания текста в Low-Code приложениях, можно рассмотреть создание Microsoft Power Automate потока, который запускается по событию поступления письма на почтовый ящик и последующий прогон вложений из письма через обученную модель AI Buider. Результаты обработки используются для создания шаблона документа Microsoft Word.
Следующая модель — это анализ тональности. Так же, как и с распознаванием текста, эта модель не требует обучения. Как правило, данная модель используется для автоматического понимания положительного, отрицательного или нейтрального тона текста. Как пример использования – анализ писем от клиентов и автоматическая эскалация в случае отрицательной тональности.
В качестве примера можно привести настроенный в сервисе Microsoft Power Virtual Agents диалог с пользователем, где в конце общения можно задать вопрос из разряда «оставьте ваш отзыв о качестве сервиса». Диалог ожидает ответа, полученный ответ сохраняем в переменную varFeedback и эту переменную передаем в Power Automate поток для дальнейшей обработки текста.
Прогоняем через Power Automate поток, который анализирует текст на признак тональности. И в зависимости от результата анализа мы направляем наш диалог на одну из трех ветвей, где в случае отрицательной тональности идет эскалация на руководителя.
Возвращаем результат обратно в диалог чат бота, где уже после получения результатов анализа идет направление на нужную ветвь диалога. Проанализировали фидбэк, получили тип тональности и либо сказали «спасибо, было приятно с вами общаться» либо «извините пожалуйста, скоро с вами свяжется менеджер и разрулит ситуацию».
А на очереди у нас обработка форм – модель, которая позволяет извлекать тэгированные данные из различных документов. Например, организация получает много файлов, которые имеют одинаковую структуру, но разный набор данных, к примеру счета или акты и было бы неплохо автоматизировать извлечение данных из подобного типа документов. Попробуем применить такой шаблон к какому-нибудь набору документов.
Предположим, что нам на почту присылают файлы PDF, в которых в формализованной таблице описывается возникшая при использовании системы проблема. Пример таблицы на экране. Слева заголовки, справа значения. Соответственно, таких писем в день мы можем получать немало и хочется, чтобы информация из таких таблиц извлекалась самостоятельно.
В отличие от предыдущих моделей, данная модель уже требует предварительного обучения и для обучения необходимо загрузить 5 файлов-примеров. Файлы должны иметь одинаковую структуру, но разный контент. Процесс обучения модели занимает несколько минут, в ходе которого как правило требуется помощь живого человека в обучении.
Запускается обучение модели. При обучении модель может попросить протэгировать нужные данные, которые предполагаются к извлечению из документов. Выделяем мышкой фрагменты текста, назначаем тэги и переходим к следующему документу, с которым у модели в процессе обучения возникли вопросы. В таком ключе производим обработку всех документов, на основе которых планируем обучать модель.
После того как все тэги проставлены, мы должны запустить обучение модели с помощью нажатия на кнопку «Поезд». Судя по всему, это артефакт машинного перевода на русский язык, так как в оригинале там написано «Train». Обучение модели и анализ данных занимает некоторое время. После окончания анализа можно применять данную модель и для применения можно также использовать поток Power Automate, который запустится по событию получения электронной почты на определенный ящик, в цикле произведем обработку каждого вложения из письма и прогоним файл через только что обученную модель AI Buider по обработке форм. На выходе из обработки мы будем иметь тэги с данными, которые можем использовать далее в виде подстановки для создания записи в таблице базы данных, CRM системе и так далее.
Еще один пример модели искусственного интеллекта AI Builder, которая не требует обучения это модель автоматической обработки визитных карточек. Довольно простой пример, но о нем тоже стоит рассказать. Данная модель позволяет извлекать в автоматическом режиме данные с загруженной визитки в виде файла или фотографии. По факту эта модель содержит уже настроенную функциональность определения с визитки ФИО, номера телефона, должности и почты.
Применить такую модель довольно просто. Создаем приложение и добавляем в него готовый компонент по считыванию визиток. Также, чуть ниже располагаем несколько текстовых контролов, в которые будем автоматически писать данные со считанной визитки. Создаем в онлайн редакторе визитку. Русский кот Шлёпа смотрится очень аутентично рядом с моим номером телефона. Загружаем фотографию в блок считывания визитки и тут же происходит извлечение данных из файла. Данные раскладываем по соответствующим контролам нашего приложения. Заодно можно прикрутить кнопку для сохранения контакта опять же в какую-нибудь CRM систему. Однако у вас может возникнуть вопрос, а как мы записываем извлеченные данные в контролы? Приложение же само не понимает куда и что ему надо записать.
Всё очень даже несложно, в редакторе создания нашего приложения выбираем нужный контрол, например EmailTextBox и в свойстве Default пишем ссылку на объект считывания визитной карточки. Ставим точку и обращаемся к одному из нескольких предустановленных свойств – Department, Email, Fax, Phone, Name и так далее. Приложение готово.
Ну и финальный пример модели искусственного интеллекта, которую можно попытаться внедрить в приложение это модель обнаружения и распознавания объектов. Используется данная модель для считывания и определения различных объектов на фотографии или в документе. Из сценариев применения могу выделить допустим проведение инвентаризации на складе или в торговом зале с помощью камеры смартфона, чтение штрихкодов, определение деталей машин и станков на производстве.
Для проверки работы модели мне пришлось наведаться в ближайший магазин и скопировать данные с первых попавшихся ценников, чтобы занести в свою собственную базу. Под покровом ночи, я свистнул данные с трех ценников товаров, которые предоставляют для меня максимальный интерес и создал три строки в своей базе – Свекла вареная, сахар советский и хлопья Ясно солнышко.
Я планировал создать приложение, которое сможет по фотографии ценника извлечь данные штрихкода, сделать запрос к базе данных и вернуть из нее актуальную цену товара, по аналогии как это делают сканеры проверки цены в магазинах.
Итак, создаем приложение и добавляем в него компонент искусственного интеллекта по считыванию объектов. Также размещаем несколько вспомогательных контролов – контрол отображения кода товара, текущая цена из базы и возможность ввести код товара вручную, если штрихкод не читается.
На кнопку «Проверить цены» вешаем функцию, которая обращается к моей таблице «Базовая цена товаров» и возвращает данные о цене продукта по штрихкоду. Сама формула выглядит как показано на экране. Ну и пора проверять. Фотографируем ценник, модель AI Builder определяет, где на ценнике находится штрихкод товара, преобразовывает его в текст, кладет в контрол «Код товара», на который опирается наш запрос. И в контроле «Текущая цена из базы» отображается наша цена, полученная в результате запроса. Осталось подключить приложение к реальной базе товаров и можно будет проверять цены на товары просто фотографируя ценники из приложения. Разве не круто?)
Всё что мы с вами увидели это, разумеется, не разработка в чистом виде. Это скорее настройка и конфигурирование. Однако. Со всеми вышеперечисленными сервисами и редакторами работают абсолютно разные специалисты. Это могут быть специалисты по внедрению, аналитики, тестировщики. Люди, которые не пишут код и возможно даже никогда не открывали Visual Studio или любое другое средство разработки. И может быть никогда не откроют. Но эти люди могут создавать рабочие системы, составляя их из блоков, настраивая условия, правила и сценарии поведения, с помощью возможностей, которые предоставляют различные Low-Code и No Code платформы и применять различные модели искусственного интеллекта. Сейчас создавать и модифицировать приложения может практически любой человек, и я считаю, что это интересная тенденция. На этом я завершаю цикл статей по теме Microsoft AI Builder и дальше мы с вами познакомимся с новыми сервисами и новыми возможностями. Спасибо что дочитали до конца, всем хорошего дня!
Кто такой Citizen Developer?
Давайте взглянем на официальное определение от агентства Gartner.
Citizen developer это непрофессиональный разработчик, не относящийся напрямую к IT сфере, который создает приложения без кода для себя и других людей в организации. Для создания таких приложений обычно используются low-code или no-code платформы. Основное преимущество в том, что не нужно писать ни строчки кода, либо это несложный код в виде различных готовых функций, которые можно вызывать, передавая нужные параметры. Для этого используются специальные среды разработки, так называемые No Code или Low Code платформы, которые позволяют специалистам проектировать и создавать мощные приложения, которые могут быстро адаптироваться в соответствии с потребностями бизнеса.
В общем, если коротко, то CITIZEN DEVELOPER – это человек, который создает программные приложения, не используя классические средства разработки.
Low-Code / No Code
Однако, что же такое в принципе, Low-Code или No-Code? Low-Code и No-Code это способ разработки приложений с минимальным использованием программирования. Данное направление также еще называется Zero Coding. Low-Code / No-Code решает одну из главных проблем IT — ускорение цикла от появления идеи до работающего бизнес-процесса, снижая time-to-market.
Low-Code / No-Code не заменяет профессиональных разработчиков, но позволяет сократить время создания продукта или дополнить его новыми возможностями
С точки зрения преимуществ Low-Code и No-Code платформ, можно отметить несколько положительных сторон:
- В первую очередь это быстрое создание прототипа. Для создания прототипа достаточно открыть редактор и набросать несколько экранов с объектами и связать их между собой.
- Второе преимущество — это быстрое привлечение новых специалистов, ведь найти человека, который сможет подхватить разработку приложения на базе Low-Code платформы намного проще, так как ими могут вполне выступать даже внутренние сотрудники компании.
- Третье это очевидность сделанных настроек и низкий порог вхождения. В графическом редакторе можно быстрее разобраться с настроенной логикой и максимально быстро вникнуть в суть приложения.
- Четвертое это в целом увеличение скорости разработки и скорости внесения изменений. Это, наверное, ключевое преимущество. No Code платформы позволяют создавать приложения гораздо быстрее, чем если бы оно разрабатывалось с нуля. Преимущество в том, что все готовые блоки, для построения приложения уже есть. Остается их только разместить на форме, прописать поведение, свойства и связи с различными источниками данных. В результате, время, затрачиваемое на тестирование и разработку приложений, значительно сокращается. Также сокращается время на внесение изменений в уже разработанные приложения.
- Ну и стоимость технической поддержки такой системы также снижается.
Какие существуют Low-Code и No-Code платформы?
Пришло время поговорить про различные примеры Low-Code и No-Code платформ, которые на текущий момент существуют и представляют определенный интерес.
Nintex
Первая платформа, о которой хочется сказать пару слов это набор сервисов от австралийской компании Nintex. В числе сервисов Nintex присутствует сервис Nintex Forms, по настройке форм мобильных приложений. Вся настройка сводится к расположению нужных объектов на экране и описанию логики поведения через встроенный язык формул.
Второй сервис от этой же компании — это сервис Nintex Workflows, по созданию процессов. Процесс создается на базе готовых соединителей к различным сервисам, с помощью которых можно выстраивать логику поведения бизнес-процесса. Например, получить данные из CRM системы, проверить значение поля и в зависимости от значения направить уведомление либо одной группе пользователей, либо другой. Настройка также происходит через графический интерфейс.
SystemZ
Российская Low-Code платформа, состоящая из нескольких основных сервисов.
Первый из них это ZForms — редактор для создания экранных форм. Настройка производится в браузере с помощью подготовленных компонентов-кубиков.
Второй продукт это ZFlow — редактор для создания процессов взаимодействия с данными. Конфигурируется всё в редакторе схемы потока из преднастроенных блоков.
Webcon BPS
Еще один пример Low-Code редактора — это редактор под названием Webcon BPS. В нем настройка приложения происходит в пошаговом визарде, где вы шаг за шагом настраивате что будет отображаться и происходить. Все настраивается мышкой и минимумом касаний клавиатуры.
K2 Process Automation
Платформа K2 Process Automation примерно похожа на предыдущий пример, смысл практически такой же. Пошаговый редактор, набор объектов, которые могут быть связаны между собой и область настройки каждого выбранного объекта с помощью готовых блоков настроек или с помощью встроенного языка.
Google AppSheet
И у Гугла есть своя Low-Code платформа, если вдруг кто-то не знал) Называется данная платформа Google AppSheet и предоставляет целый комплекс готовых блоков для настройки интерфейса, поведения, автоматизированных процессов, безопасности и возможность подключения к различным источникам данных, например к тем же Гугл таблицам. Всё это позволяет создавать мобильные и веб-приложения для разных целей, например, как показано на картинке – пример приложения адресной книги и журнала звонков.
Microsoft Power Platform
У Microsoft тоже есть своя линейка Low-Code платформ, на которой остановимся чуть-чуть подробнее. Low-Code платформа от Microsoft называется Microsoft Power Platform и состоит из нескольких сервисов. В первую очередь это сервис Microsoft Power Apps, который используется для создания мобильных и веб-приложений. Вся настройка, как и в предыдущих примерах производится в графическом редакторе с использованием встроенных блоков-компонентов. Также есть возможность писать код на встроенном языке, который очень напоминает формулы в Excel. Созданным приложением можно поделиться с другими участниками и установить себе на телефон или планшет.
Второй сервис линейки Power Platform называется Power Automate и с помощью него можно создавать процессы, запускаемые по определенным событиям. Например, событием может быть изменение файла, получение письма на почту, расписание или нажатие на кнопку. И запустившись по событию процесс, может обрабатывать данные из разных источников, подключаясь к ним через дата коннекторы – соединители к различным сервисам и службам.
Для аналитики данных используется сервис Power BI, при помощи которого можно визуализировать данные в виде различных отчетов и дашбордов.
Данный сервис состоит из трёх интегрированных компонентов:
Power Query (редактор запросов) — выполняет загрузку и очистку данных;
PowerPivot (наборы данных и модели данных) — интерфейс работы с табличными данными в оперативной памяти где выполняются запросы к данным, агрегация, расчёты и т. п.;
Power View — подсистема визуализации и построения отчётов (Reporting).
Логика работы с данным сервисом примерно такая же как и в других сервисах – подключаемся к данным, выбираем нужный объект визуализации и настраиваем его отображение.
И финальный сервис линейки Power Platform — это сервис Power Virtual Agents, с помощью которого можно создавать чат-ботов. Вся настройка производится в графическом интерфейсе, где доступны блоки для построения диалога с пользователем. Любой диалог начинается с триггер фразы, а далее можно задать вопрос, в зависимости от ответа двинуться на ту или иную ветку, отобразить сообщение, выполнить действие. При настройке тут же можно прогонять диалоги и проверять правильность настроенной логики.
Ну и кажется пришло время переходить к теме искусственного интеллекта, сменим фокус и обсудим как можно использовать искусственный интеллект и приложения без кода. А можно ли это делать вообще? Давайте разбираться.
Искусственный интеллект
Термин «искусственный интеллект» (ИИ) означает способность машины имитировать разумное поведение человека. Он охватывает множество сфер, таких как обработка естественного языка, машинное обучение, управление знаниями, машинное зрение, решение проблем и так далее.
Мы не будем сегодня говорить в целом про искусственный интеллект и его влияние на развитие всех сфер жизни, а сосредоточимся скорее на частных случаях ИИ – моделях искусственного интеллекта, которые позволят решать задачи применительно к приложениям без кода, сделанных на базе Low-Code конструкторов.
Какие есть примеры моделей искусственного интеллекта, применимых к приложениям без кода?
- В первую очередь это анализ текста, извлечение из текста ключевых фраз и значений, по определенному шаблону
- Прогнозирование наступления определенного события по входному набору данных
- Анализ изображений и видео на предмет поиска определенной информации. Как вариант, может быть использована модель для поиска запрещенной информации, которую нельзя публиковать по ряду причин. Скажем взрослый контент.
- Автоматический перевод текста с одного языка на другой
- Преобразование текста в синтетическую речь с использованием вспомогательных сервисов. Также доступен и обратный вариант – перевод речи в текст.
- Анализ тональности – модель, которая автоматически распознает тон текста (позитивный, негативный или нейтральный).
- Распознавание языка – автоматическое определение языка, на котором сейчас написано сообщение или произнесена фраза.
Как пример использования моделей ИИ в реальной жизни привести одну кофейню, которая полностью построена с учетом использования искусственного интеллекта. Кофейня использует алгоритмы нейросетей для того, чтобы распознавать ряд эмоций (радость, грусть, усталость, удивление и другие) и в зависимости от него выдает бариста несколько подходящих вариантов на выбор, чтобы он мог предложить их посетителю. Для предсказания спроса используется машинное обучение (предиктивная аналитика). Система анализирует несколько факторов: погодные условия, день недели и время года, проведение рядом с кофейней каких-либо мероприятий и другие.
Microsot AI Builder
Рассмотрим сервис Microsoft AI Builder, который может быть использован совместно с приложениями, сделанными на базе Power Platform. Microsoft AI Builder — это набор инструментов, который дает возможность приложениям Microsoft Power Platform обрабатывать информацию с использованием моделей искусственного интеллекта, таких как прогнозирование, обработка форм, обнаружение объектов, классификация категорий, а также извлечение объектов, через достаточно простой и понятный интерфейс. Кроме этого, можно использовать готовые экземпляры моделей и сразу приступить к обработке данных с помощью подготовленных сценариев ИИ, включая извлечение ключевых фраз, определение языка, анализ тональности, распознавание текста (OCR), считывание визитных карточек, обработку квитанций и прочих сценариев. Причем некоторые модели AI Buider требуют предварительного обучения на базе примеров файлов, а некоторые готовы к употреблению сразу.
Распознавание текста
Первый сценарий — это распознавание текста. Данная модель искусственного интеллекта AI Builder не требует предварительного обучения и предназначена для считывания текста с фотографий и документов. Можно использовать любые изображения, главное, чтобы на них был читаемый текст на существующем в мире языке)
Пример использования данной модели довольно прост – делаем мобильное приложение на базе редактора Microsoft Power Apps и внедряем в него компонент «распознавание текста». Далее, через интерфейс самого приложения загружаем файл, в моем случае это был скриншот из википедии, и ниже в текстовом блоке отображается считанный текст. Извлечение текста из изображения делается с помощью одной формулы, в которой мы обращаемся к компоненту TextRecognizer.
В качестве второго варианта применения модели распознавания текста в Low-Code приложениях, можно рассмотреть создание Microsoft Power Automate потока, который запускается по событию поступления письма на почтовый ящик и последующий прогон вложений из письма через обученную модель AI Buider. Результаты обработки используются для создания шаблона документа Microsoft Word.
Анализ тональности
Следующая модель — это анализ тональности. Так же, как и с распознаванием текста, эта модель не требует обучения. Как правило, данная модель используется для автоматического понимания положительного, отрицательного или нейтрального тона текста. Как пример использования – анализ писем от клиентов и автоматическая эскалация в случае отрицательной тональности.
В качестве примера можно привести настроенный в сервисе Microsoft Power Virtual Agents диалог с пользователем, где в конце общения можно задать вопрос из разряда «оставьте ваш отзыв о качестве сервиса». Диалог ожидает ответа, полученный ответ сохраняем в переменную varFeedback и эту переменную передаем в Power Automate поток для дальнейшей обработки текста.
Прогоняем через Power Automate поток, который анализирует текст на признак тональности. И в зависимости от результата анализа мы направляем наш диалог на одну из трех ветвей, где в случае отрицательной тональности идет эскалация на руководителя.
Возвращаем результат обратно в диалог чат бота, где уже после получения результатов анализа идет направление на нужную ветвь диалога. Проанализировали фидбэк, получили тип тональности и либо сказали «спасибо, было приятно с вами общаться» либо «извините пожалуйста, скоро с вами свяжется менеджер и разрулит ситуацию».
Обработка форм
А на очереди у нас обработка форм – модель, которая позволяет извлекать тэгированные данные из различных документов. Например, организация получает много файлов, которые имеют одинаковую структуру, но разный набор данных, к примеру счета или акты и было бы неплохо автоматизировать извлечение данных из подобного типа документов. Попробуем применить такой шаблон к какому-нибудь набору документов.
Предположим, что нам на почту присылают файлы PDF, в которых в формализованной таблице описывается возникшая при использовании системы проблема. Пример таблицы на экране. Слева заголовки, справа значения. Соответственно, таких писем в день мы можем получать немало и хочется, чтобы информация из таких таблиц извлекалась самостоятельно.
В отличие от предыдущих моделей, данная модель уже требует предварительного обучения и для обучения необходимо загрузить 5 файлов-примеров. Файлы должны иметь одинаковую структуру, но разный контент. Процесс обучения модели занимает несколько минут, в ходе которого как правило требуется помощь живого человека в обучении.
Запускается обучение модели. При обучении модель может попросить протэгировать нужные данные, которые предполагаются к извлечению из документов. Выделяем мышкой фрагменты текста, назначаем тэги и переходим к следующему документу, с которым у модели в процессе обучения возникли вопросы. В таком ключе производим обработку всех документов, на основе которых планируем обучать модель.
После того как все тэги проставлены, мы должны запустить обучение модели с помощью нажатия на кнопку «Поезд». Судя по всему, это артефакт машинного перевода на русский язык, так как в оригинале там написано «Train». Обучение модели и анализ данных занимает некоторое время. После окончания анализа можно применять данную модель и для применения можно также использовать поток Power Automate, который запустится по событию получения электронной почты на определенный ящик, в цикле произведем обработку каждого вложения из письма и прогоним файл через только что обученную модель AI Buider по обработке форм. На выходе из обработки мы будем иметь тэги с данными, которые можем использовать далее в виде подстановки для создания записи в таблице базы данных, CRM системе и так далее.
Обработка визитных карточек
Еще один пример модели искусственного интеллекта AI Builder, которая не требует обучения это модель автоматической обработки визитных карточек. Довольно простой пример, но о нем тоже стоит рассказать. Данная модель позволяет извлекать в автоматическом режиме данные с загруженной визитки в виде файла или фотографии. По факту эта модель содержит уже настроенную функциональность определения с визитки ФИО, номера телефона, должности и почты.
Применить такую модель довольно просто. Создаем приложение и добавляем в него готовый компонент по считыванию визиток. Также, чуть ниже располагаем несколько текстовых контролов, в которые будем автоматически писать данные со считанной визитки. Создаем в онлайн редакторе визитку. Русский кот Шлёпа смотрится очень аутентично рядом с моим номером телефона. Загружаем фотографию в блок считывания визитки и тут же происходит извлечение данных из файла. Данные раскладываем по соответствующим контролам нашего приложения. Заодно можно прикрутить кнопку для сохранения контакта опять же в какую-нибудь CRM систему. Однако у вас может возникнуть вопрос, а как мы записываем извлеченные данные в контролы? Приложение же само не понимает куда и что ему надо записать.
Всё очень даже несложно, в редакторе создания нашего приложения выбираем нужный контрол, например EmailTextBox и в свойстве Default пишем ссылку на объект считывания визитной карточки. Ставим точку и обращаемся к одному из нескольких предустановленных свойств – Department, Email, Fax, Phone, Name и так далее. Приложение готово.
Обнаружение объектов
Ну и финальный пример модели искусственного интеллекта, которую можно попытаться внедрить в приложение это модель обнаружения и распознавания объектов. Используется данная модель для считывания и определения различных объектов на фотографии или в документе. Из сценариев применения могу выделить допустим проведение инвентаризации на складе или в торговом зале с помощью камеры смартфона, чтение штрихкодов, определение деталей машин и станков на производстве.
Для проверки работы модели мне пришлось наведаться в ближайший магазин и скопировать данные с первых попавшихся ценников, чтобы занести в свою собственную базу. Под покровом ночи, я свистнул данные с трех ценников товаров, которые предоставляют для меня максимальный интерес и создал три строки в своей базе – Свекла вареная, сахар советский и хлопья Ясно солнышко.
Я планировал создать приложение, которое сможет по фотографии ценника извлечь данные штрихкода, сделать запрос к базе данных и вернуть из нее актуальную цену товара, по аналогии как это делают сканеры проверки цены в магазинах.
Итак, создаем приложение и добавляем в него компонент искусственного интеллекта по считыванию объектов. Также размещаем несколько вспомогательных контролов – контрол отображения кода товара, текущая цена из базы и возможность ввести код товара вручную, если штрихкод не читается.
На кнопку «Проверить цены» вешаем функцию, которая обращается к моей таблице «Базовая цена товаров» и возвращает данные о цене продукта по штрихкоду. Сама формула выглядит как показано на экране. Ну и пора проверять. Фотографируем ценник, модель AI Builder определяет, где на ценнике находится штрихкод товара, преобразовывает его в текст, кладет в контрол «Код товара», на который опирается наш запрос. И в контроле «Текущая цена из базы» отображается наша цена, полученная в результате запроса. Осталось подключить приложение к реальной базе товаров и можно будет проверять цены на товары просто фотографируя ценники из приложения. Разве не круто?)
Что же в итоге?
Всё что мы с вами увидели это, разумеется, не разработка в чистом виде. Это скорее настройка и конфигурирование. Однако. Со всеми вышеперечисленными сервисами и редакторами работают абсолютно разные специалисты. Это могут быть специалисты по внедрению, аналитики, тестировщики. Люди, которые не пишут код и возможно даже никогда не открывали Visual Studio или любое другое средство разработки. И может быть никогда не откроют. Но эти люди могут создавать рабочие системы, составляя их из блоков, настраивая условия, правила и сценарии поведения, с помощью возможностей, которые предоставляют различные Low-Code и No Code платформы и применять различные модели искусственного интеллекта. Сейчас создавать и модифицировать приложения может практически любой человек, и я считаю, что это интересная тенденция. На этом я завершаю цикл статей по теме Microsoft AI Builder и дальше мы с вами познакомимся с новыми сервисами и новыми возможностями. Спасибо что дочитали до конца, всем хорошего дня!