Пошаговое руководство по созданию первого (голосового) бота с помощью Microsoft Power Virtual Agent
21 апреля 2023 г.Пошаговое руководство — Power Virtual Agent за один день
Power Virtual Agent является членом Microsoft Power Platform.
* Power Virtual Agents (PVA) — это гибкие чат-боты с искусственным интеллектом (ИИ). * PVA использует управляемый графический интерфейс без кода, поэтому вы можете быстро создавать своих виртуальных агентов и надежных чат-ботов, не требуя навыков разработки или специалистов по данным. * Вы можете использовать сотни готовых соединителей (через Power Automate) для подключения PVA к вашим повседневным товарам и услугам. * С помощью PVA вы можете отслеживать и постоянно улучшать производительность чат-бота с помощью информации, основанной на искусственном интеллекте и данных, представленной на простой для понимания приборной панели. * С помощью PVA вы можете интегрировать существующие боты и навыки или интегрировать ботов PVA в качестве навыков в существующий бот.
Об этом руководстве
Это руководство является моим "Power Virtual Agent in a Day" – скриптом практических упражнений и хорошей отправной точкой для изучения PVA. Представьте, что вы не только предоставляете своим клиентам текстовый чат-бот на своем веб-сайте, но с помощью этого руководства вы можете обслуживать их по своей телефонной линии до того, как они доберутся до вашего агента контакт-центра. Вы можете дать им ответы на их вопросы, не заставляя их ждать бесплатного агента контакт-центра. Вы можете сделать для них больше с меньшими затратами.
https://twitter.com/satyanadella/status/1580252407472488448?embedable=true р>
Содержание
- Введите себя в курс дела
- Создайте своего первого чат-бота
- Подготовьте основы
- Добавить несколько тем QnA
- Добавить замену IVR с условиями и пользовательскими объектами
- Необязательно: отправьте адаптивную карточку в канал Microsoft Teams
- Необязательно: интегрируйте бота в веб-сайт.
- Настройте своего бота в Audiocodes Voice.AI
- Необязательно: система обратной связи AI Builder с анализом настроений.
- Дальнейшие шаги: основы управления жизненным циклом приложений
- Начните с CI/CD и экспортируйте решение в репозиторий GitHub
- Дальнейшие шаги: основы аналитики
- Объекты
Приведите себя в порядок
Прежде чем начать работу с Power Virtual Agent, убедитесь, что выполнены предварительные условия. Использование пробной подписки или плана сообщества — отличное начало.
* Пробная версия Power Virtual Agent
или
- План разработчика Power Platform (предоставляет вам дополнительные среды и доступ ко всей платформе Power Platform)
- План разработчика Power Virtual Agent
Используйте GitHub для управления жизненным циклом приложений и AudioCodes Voice.AI Connect Cloud для дайте вашему боту голос; рассмотрите возможность использования Voice AI Connect Enterprise для производства.
Создайте своего первого чат-бота
Запустите холст редактирования Power Virtual Agents и создайте своего первого чат-бота.
Сделайте своего первого бота немного чище и подготовьте основы
Microsoft установила некоторые темы и сущности по умолчанию; так как мы хотим начать с нуля, мы удалим некоторые из них.
Удалить «Урок 3»
Затем мы переходим к теме «Приветствия» и меняем поток, изменяя первое сообщение.
Имейте в виду, что вы хотите использовать бота на телефоне — это означает отсутствие графики, смайликов, ссылок и только короткие предложения.
Затем нам нужно создать новую тему «Подтвержденный успех» с названием «Успех».
Can I help with anything else?
С ответами:
Yes
No
Эта вновь созданная тема заменит последний узел «Подтвержденный успех» в теме «Конец беседы». Поскольку «Подтвержденный успех» не подходит для голосовых ботов, так как используется графический элемент обратной связи.
Затем создайте новую тему «transfer_agent_pva». Эта тема инициирует перевод звонка с бота на человека. Есть несколько способов сделать это.
Здесь мы будем работать со сторонним решением «Voice AI Connect» от AudioCodes.
Voice AI Connect доступен в двух вариантах:
- Облачное решение для тестирования и разработки. Это то, что мы используем в этом мастер-классе. Вы можете использовать свой SIP Trunk & Телефонные номера или купите номера в AudioCodes.
* Корпоративное решение, вы можете разместить себя в Azure и использовать своего оператора связи или в качестве полностью управляемого решения с телефонными номерами. Вы можете попросить меня достать внутренности.
Please hold the line; you will be connected to a human.
{
"activityParams": {
"transferTarget": "tel:+49000000000"
}
}
Наконец, измените тему «Эскалация», чтобы использовать только что созданную тему «transfer_agent_pva» в качестве конечного узла.
Благодаря этим изменениям наш бот теперь имеет приличные начальные и конечные последовательности и может выступать в качестве помощника по телефону.
Добавить несколько тем QnA
Чтобы дать вам представление о том, как создавать темы для стандартных вопросов, мы изменили «Урок 1» и «Урок 2». Изменение экономит часть работы, так как вам не нужно начинать с пустого потока.
Стандартный диалог QnA (простой)
Предположим, мы хотим ответить по телефону на вопросы о часах работы.
Открываем «Урок 1» и переименовываем его в «Часы работы»
Мы модифицируем оба узла сообщений, чтобы отразить это.
I'm happy to help with our daily open hours.
The Munich and Stuttgart hours are:
Mon-Fri: 9am to 6pm, Saturday: 10am to 4pm, Sunday: Closed
The Frankfurt hours are: Mon-Fri:
9am to 6pm, Saturday: 10am to 4pm., Sunday: Closed
Стандартный диалог QnA (расширенный — с переменной)
Предположим, мы хотим ответить по телефону на вопросы о местонахождении нашего магазина.
Мы переименовываем «Урок 2» в «StoreLocation» и заменяем параметры на
Which location are you interested in? We are in Frankfurt, Stuttgart or Munich.
Stuttgart
Frankfurt
Munich
и изменить ответ в каждом условии (узел сообщения)
Our <variable.pva_StoreLocation> store located in Street Number, Postcode Stuttgart
Our <variable.pva_StoreLocation> store located in Street Number, Postcode Frankfurt
Our <variable.pva_StoreLocation> store located in Street Number, Postcode Munich
Добавить замену IVR (система интерактивного голосового ответа) с условиями и пользовательскими объектами
Добавляя пользовательскую запись, мы делаем диалог более естественным. Звонящий может попросить, чтобы его перевели на человека, и может указать цель в качестве ответа на запрос бота о деталях или перейти напрямую, запросив конкретную цель.
Создать пользовательский объект
Создайте три элемента с тремя синонимами в каждом.
<цитата>Цель передачи 1
Товар
human resources
с синонимами
personnel
workforce management
administration of human resources
Перенести цель 2
Товар
sales
с синонимами
sales department
shop
store
Цель передачи 3
Товар
support
с синонимами
technical helpline
service department
help
Создайте AI Attendant как новую тему
Переименуйте «Урок 4» в «IVRReplacement»
Please connect me to sales
I want to speak with sales
I want to talk to sales
Please connect me to supporr
I want to speak with support
I want to talk to support
Please connect me to human resources
I want to speak with human resources
I want to talk to human resources
В качестве коммутатора используем созданную кастомную сущность «IVRTargets»; если нет идентифицируемой цели, мы направляемся к стандартной точке эскалации для людей «Эскалация» с перенаправлением на «transfer_agent_pva».
{
"activityParams": {
"transferTarget": "tel:+49000000000"
}
}
Необязательно: отправьте адаптивную карточку в канал Microsoft Teams
С помощью адаптивной карты, например, в Microsoft Teams Channel, вы можете дать агентам-людям возможность ускорить их ответ звонящему и сделать взаимодействие с звонящим персональным.
Добавьте вопросы в тему «IVRReplacement», например, запросите причину перевода и номер клиента.
Ответ пользователя будет сохранен в каждой переменной, которую мы используем в качестве входных данных для нашего потока автоматизации питания.
Сам процесс прост.
Пример адаптивной карты может выглядеть так, вам нужно отредактировать части в «<>».
{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.4",
"body": [
{
"type": "TextBlock",
"text": "Incoming Call",
"wrap": true,
"style": "heading"
},
{
"type": "FactSet",
"facts": [
{
"title": "Customer Number",
"value": "<your variable customer number>"
},
{
"title": "Call Reason",
"value": "<your variable reason>"
}
]
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "Open CRM",
"url": "<your link to your crm systems record matching customer number>"
}
]
}
Полученное сообщение будет выглядеть, как на картинке ниже. Помните, что нельзя запускать потоки в продуктивной среде с учетной записью пользователя; всегда используйте учетные записи субъектов-служб.
Необязательно: интегрируйте бота в веб-сайт
Чтобы интегрировать бота в свой веб-сайт, рекомендуется использовать компонент веб-чата Microsoft bot framework. . Поскольку Microsoft создала компонент ботов «Azure Bot Service», мы должны немного изменить код интеграции, чтобы он работал с Power Virtual Agent.
Чтобы использовать компонент, вам необходимо извлечь идентификатор бота из холста редактирования мощного виртуального агента и интегрировать его в источник.
var BOT_ID = "#{botidtoken}#";
var theURL = "https://powerva.microsoft.com/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID;
вы можете найти идентификатор в разделе «Настройки/Каналы/Пользовательский веб-сайт» (красная часть между «/bots/new_bot_» и «/webchat»)
Рабочий пример можно найти на GitHub. Пример предварительно заполнен параметрами конфигурации; см. подробные сведения о параметрах конфигурации в defaultStyleOptions.ts. файл в репозитории компонента веб-чата Microsoft.
Настройте своего бота в AudioCodes Voice.AI
Зарегистрируйтесь в «Voice.Ai Connect Cloud» и получите номер телефона или настройте свою SIP-магистраль, следуя документация.
Дадим боту голос. Получите секрет вашего веб-канала (в PVA: Настройки/Безопасность/Безопасность веб-канала)
и перейдите в интерфейс конфигурации Voice.AI.
Конфигурация бота
Добавить бота
Настроить маршрутизацию
Рисунок 30. Настройка маршрутизации "входящий"
Необязательно: Система обратной связи AI Builder с анализом настроений
предварительные требования
Если вы работаете в пробной среде, вам будет предложено подать заявку на пробную версию AI Builder во время создания потока. Это не связано с затратами.
С Power Virtual Agents варианты использования безграничны и основаны на требованиях, и мы можем продолжать раздвигать границы его возможностей. Интегрируя Power Virtual Agents с Power Automate и AI Builder, мы можем значительно расширить горизонты его использования. Здесь мы увидим, как использовать конструктор ИИ и использовать анализ настроений для анализа текстовой обратной связи от пользователя.
Создайте новую тему "Отзывы
и добавьте 2 узла,
Welcome to our Feedback System.
How was your experience with this virtual assistant?
Следующие шаги: основы управления жизненным циклом приложений
Как сделать Virtual Power Agent более безопасным
Наше решение не должно запускаться под учетной записью пользователя. Этот принцип является передовой практикой для мощной платформы и позволяет ИТ-отделу контролировать виртуальные агенты и управлять ими. Это основа для управления жизненным циклом приложений.
Создайте учетную запись субъекта-службы
Чтобы создать учетную запись субъекта-службы, нам нужно настроить регистрацию приложения в Azure Active Directory.
На портале Azure выберите «Azure Active Directory» на левой панели, выберите «Регистрация приложений» и нажмите «Новая регистрация».
На странице "Зарегистрировать приложение" введите регистрационную информацию вашего приложения:
* В разделе «Имя» введите значимое имя приложения, например «Ботплатформа». * Выберите опцию «Учетные записи в любом организационном каталоге» в разделе «Поддерживаемые типы учетных записей». * Нажмите «Зарегистрироваться», чтобы создать приложение
При создании регистрации приложения запишите и сохраните «Идентификатор каталога (клиента)» и «Идентификатор приложения (клиента)» приложения.
На панели навигации страницы «Обзор» выберите «Разрешения API».
* Выберите «+ Добавить разрешение» и на вкладке «API Microsoft» выберите «Dynamics CRM». * В форме «Запросить разрешения API» выберите «Делегированные разрешения», отметьте «user_impersonation», а затем выберите «Добавить разрешения». * Вернувшись в форму «Запросить разрешения API», выберите «Служба времени выполнения PowerApps», выберите «Делегированные разрешения», отметьте «user_impersonation», а затем снова выберите «Добавить разрешения». * В третий раз в форме «Запросить разрешения API» выберите «API, которые использует моя организация». Найдите «PowerApps-Advisor» с помощью поля поиска и выберите «PowerApps-Advisor» в списке результатов. Выберите «Делегированные разрешения», отметьте права «Анализ.Все», а затем в последний раз выберите «Добавить разрешения».
Далее приступайте к созданию секрета клиента. На панели навигации выберите «Сертификаты и сертификаты». секреты»:
- Под пунктом "Секреты клиента" выберите "+ Новый секрет клиента".
- В форме введите описание и выберите «Добавить». Запишите секретную строку; вы не сможете снова просмотреть секрет после того, как покинете форму.
Создать пользователя приложения
Для развертывания решений в рамках конвейера CI/CD "пользователю приложения" необходим доступ к среде. «Пользователь приложения» представляет собой нелицензированного пользователя, который прошел проверку подлинности с помощью регистрации приложения, выполненной на предыдущих шагах.
* Перейдите в свою среду в Центре администрирования Power Platform. * Перейдите в "Настройки" > "Пользователи + разрешения" > «Пользователь приложения». * Выберите «+ новый пользователь приложения». В правой части экрана откроется панель. * Выберите «+ Добавить приложение». Отображается список всех регистраций приложений в вашем клиенте Azure AD. Перейдите к выбору имени приложения из списка зарегистрированных приложений. * В разделе «Бизнес-подразделение» в раскрывающемся списке выберите свою среду в качестве бизнес-подразделения. * В разделе «Роли безопасности» выберите «Системный администратор», а затем выберите «Создать». Это позволит субъекту-службе получить доступ к среде.
С помощью «Регистрация приложения» и «Пользователь приложения» мы можем использовать «Действия GitHub» для управления нашими средами. Да, среды, поскольку нам нужно несколько, чтобы работать безопасно и профессионально. Зарегистрируйте этого пользователя приложения во всех средах, которые вы развертываете (разработка, подготовка, тестирование и производство).
Создать решение
Решение — это своего рода «контейнер приложения». В этой «коробке» вы найдете все, что связано с вашим проектом. В решении вы найдете всех своих ботов, потоки, ссылки на коннекторы и другие материалы, созданные разработчиком.
* Перейдите на https://make.powerapps.com и войдите, используя свои учетные данные. Щелкните раскрывающийся список выбора среды в заголовке и выберите среду разработки. * Щелкните область «Решения» в левой навигационной панели и нажмите кнопку «Новое решение», чтобы создать новое решение. * В появившейся боковой панели введите имя приложения и нажмите «Добавить издателя». * На панели нового решения выберите только что созданного издателя и нажмите «Создать», чтобы создать новое неуправляемое решение в среде. * В списке решений выберите только что созданное решение и нажмите кнопку «Редактировать». * Ваше новое решение будет пустым, и вам нужно добавить в него компоненты. Нажмите «+ Добавить существующий» и выберите все элементы, относящиеся к вашей платформе бота.
Начните с CI/CD и экспортируйте решение в репозиторий GitHub
Действия GitHub могут экспортировать среду вашего бота (как неуправляемое решение) из среды разработки в репозиторий GitHub.
Создайте новый секрет для аутентификации субъекта-службы
- Перейдите в свой репозиторий и нажмите "Настройки", затем разверните "Секреты" и нажмите "Действия".
- На странице "Секреты" назовите секрет "POWERPLATFORMSPN". Используйте секрет клиента из регистрации приложения, созданной в Azure Active Directory, и введите его в поле «Значение», а затем выберите «Добавить секрет». Секрет клиента будет указан в файлах YML, используемых в ваших действиях на Github.
Создайте действие GitHub для экспорта решения
Замените имя решения в примере на имя вашего решения.
name: export-and-branch-solution-universal
# Export solution from DEV environment
# unpack it and prepare, commit and push a git branch with the changes
on:
workflow_dispatch:
inputs:
# Change this value
solution_name:
description: 'name of the solution to worked on from Power Platform'
required: true
default: DemoEnvironment
#Do Not change these values
solution_exported_folder:
description: 'folder name for staging the exported solution *do not change*'
required: true
default: out/exported/
solution_folder:
description: 'staging the unpacked solution folder before check-in *do not change*'
required: true
default: out/solutions/
solution_target_folder:
description: 'folder name to be created and checked in *do not change*'
required: true
default: solutions/
DEV_ENVIRONMENT_URL:
description: 'Development environment url.'
type: string
required: true
CLIENT_ID:
description: 'Client ID.'
type: string
required: true
TENANT_ID:
description: 'Tenant ID'
type: string
required: true
jobs:
export-from-dev:
runs-on: windows-latest
# or you can say runs-on: ubuntu-latest
env:
RUNNER_DEBUG: 1
steps:
- uses: actions/checkout@v2
with:
lfs: true
- name: who-am-i action
uses: microsoft/powerplatform-actions/who-am-i@0.4.0
with:
environment-url: ${{inputs.DEV_ENVIRONMENT_URL}}
app-id: ${{inputs.CLIENT_ID}}
client-secret: ${{ secrets.PowerPlatformSPN }}
tenant-id: ${{inputs.TENANT_ID}}
- name: export-solution action
uses: microsoft/powerplatform-actions/export-solution@0.4.0
with:
environment-url: ${{inputs.DEV_ENVIRONMENT_URL}}
app-id: ${{inputs.CLIENT_ID}}
client-secret: ${{ secrets.PowerPlatformSPN }}
tenant-id: ${{inputs.TENANT_ID}}
solution-name: ${{ github.event.inputs.solution_name }}
solution-output-file: ${{ github.event.inputs.solution_exported_folder}}/${{ github.event.inputs.solution_name }}.zip
- name: unpack-solution action
uses: microsoft/powerplatform-actions/unpack-solution@0.4.0
with:
solution-file: ${{ github.event.inputs.solution_exported_folder}}/${{ github.event.inputs.solution_name }}.zip
solution-folder: ${{ github.event.inputs.solution_folder}}/${{ github.event.inputs.solution_name }}
solution-type: 'Unmanaged'
overwrite-files: true
- name: branch-solution, prepare it for a PullRequest
uses: microsoft/powerplatform-actions/branch-solution@v0
with:
solution-folder: ${{ github.event.inputs.solution_folder}}/${{ github.event.inputs.solution_name }}
solution-target-folder: ${{ github.event.inputs.solution_target_folder}}/${{ github.event.inputs.solution_name }}
repo-token: ${{ secrets.GITHUB_TOKEN }}
allow-empty-commit: true
Используйте действие Github
Действие запускается вручную — событие: workflow_dispatch. Перейдите в «Действия», выберите рабочий процесс в меню слева, нажмите «Запустить рабочий процесс», параметры менять не нужно, а затем нажмите зеленую кнопку «Запустить рабочий процесс».
Проверьте импорт
и создайте запрос на слияние в основную ветку. Если вы впервые используете эту функцию, вы можете переименовать импортированное решение в «основное». Если это первый + x раз, создайте запрос на слияние в основную ветку.
Что дальше
Создайте дополнительные действия, чтобы экспортировать решение как управляемое решение в тестовую среду. Создайте дополнительные действия для развертывания решения в производственной среде после выпуска.
Ссылка на мой репозиторий GitHub — ALM для PVA
Дальнейшие шаги: основы Google Analytics
Тематический список ссылок
- Ключевые концепции — понимание ключевых концепций
- Анализ производительности и использования ботов – просмотр общей аналитики для ваших ботов< /li>
- Анализ удовлетворенности клиентов: определение общих тенденций в удовлетворенности клиентов и выявление отстающих показателей удовлетворенности.
- Анализ использования темы – узнайте, насколько успешно работают отдельные темы. работаю над решением проблем
- Анализ информации о сеансе —Просмотр и отслеживание хода сеансов, включая аналитику из тем. срабатывает во время сеанса
- Анализ сведений о выставленных счетах за сеансы – понимание того, как выставляются счета за сеансы, исходя из их использование
Активы
Загрузите копию бота из этой статьи в качестве решения с GitHub.
:::информация Также опубликовано здесь
:::
Оригинал