Глава 4: Создание чат-ботов с использованием шаблонов
Существует несколько инструментов, которые могут помочь быстро создать агента; это похоже на компоненты шаблонов. Есть готовые агенты, которые вы можете включить (предварительно созданные агенты); есть возможность включить small talk, чтобы разрешить непринужденный разговор. И возможно импортировать часто задаваемые вопросы из (частного) CSV или общедоступного веб-сайта с помощью функции базы знаний. Эта глава охватит все это.
Создание предварительно созданных агентов
Предварительно созданный агент обычно состоит из примеров намерений с настроенными параметрами и сущностями. Он будет настроен для различных языков, что делает его очень интересным. Он не будет содержать логику выполнения веб-перехватчика, так как для этого требуется Cloud Function или бэкэнд. Но он может быть полезен для быстрого старта проекта с некоторыми примерами на разных языках!
Как вы можете видеть на Рисунке 4-1, когда вы щелкаете Предварительно созданные агенты в меню Dialogflow ES, вы получите обзор всех предварительно созданных агентов. Это как маркетплейс! Доступно более 40 предварительно созданных агентов на выбор. Есть предварительно созданные агенты, такие как Конвертер валют, Банковское дело, Доставка еды, Авиабилеты и так далее.
Рисунок 4-1. Обзор всех предварительно созданных агентов
Когда вы щелкаете по предварительно созданному агенту, вы можете запросить детали, которые покажут примеры намерений во всплывающем окне (Рисунок 4-2).
Рисунок 4-2. Пример предварительно созданного агента
Наведите курсор на предварительно созданного агента, которого вы хотите использовать, и нажмите Импорт.
Выберите создание нового проекта Dialogflow и нажмите OK.
Примечание: Вы не можете добавлять предварительно созданных агентов к существующим агентам Dialogflow. Если вам нужны эти намерения, вы можете экспортировать/импортировать намерения с экрана Настройки.
Как только агент будет импортирован, вам может потребоваться перейти на экран Настройки, чтобы добавить сервисный аккаунт к проекту. Вам будет предложено, если это необходимо.
Как только ваш агент будет импортирован, у вас будет новый агент, добавленный к вашим проектам Dialogflow, и вы сможете уточнять и добавлять новые намерения поверх того, что уже есть.
Включение модулей Small Talk
Small Talk — отличное дополнение к вашим собственным намерениям, хотя они работают немного иначе, чем ручные намерения. С намерениями вы можете предоставлять обучающие фразы, что означает, что вы можете обучить своего чат-бота отвечать на вопросы, даже если они заданы по-другому. Small Talk и коннекторы базы знаний FAQ (см. далее в этой главе) не предоставляют вам возможности предоставлять обучающие фразы. Они используют Понимание естественного языка из Dialogflow, чтобы понять, что было спрошено. Обычно это работает хорошо; например, предложение small talk «Ты смешной» также будет отвечено, когда вы скажете: «Ха-ха, ты уморительный». Но когда вы спросите «Ты существуешь?», он не даст вам ответа на «Ты реальный?».
Даже когда вы не предоставляете ответы на странице настройки Small Talk, он будет использовать готовые ответы. Настройка в основном означает, что вы переопределяете стандартные ответы Dialogflow small talk.
Внимание: Хотя очень приятно создать человекоподобный разговор в чат-боте в дополнение к вашим собственным намерениям, вам нужно быть осторожным с конкретными фразами small talk, например, фразами подтверждения, такими как «Да», «Нет» и «Отмена». Они могут отвечать типа «Хорошо!», но они не выполняют код из коробки и не продолжают разговор. Они устанавливают действие POST, такое как smalltalk.confirmation.yes, поэтому вам нужно слушать в вашем коде выполнения или веб-перехватчике эти намерения.
Люди часто отвечают «Да» или «Нет» на вопрос, хотя ответ не ожидал Да или Нет. Ответ small talk, скорее всего, не то, что ожидает пользователь. В этом случае очень важно, чтобы каждое намерение, предоставляющее уточняющие вопросы или контексты, также предоставляло правильный резервный вариант.
На момент написания этой статьи small talk поддерживается только для английского (en), русского (ru), французского (fr) и итальянского (it), и он не будет работать для мега-агентов.
Примечание: На основе политики Actions on Google, включение Small Talk во всей его полноте приведет к отклонению вашего действия.
Чтобы включить small talk для вашего агента Dialogflow, вы можете щелкнуть пункт меню: Small Talk. На странице настроек Small Talk вы найдете переключатель для включения/выключения. Это включит все темы small talk.
Рисунок 4-3. Включение модуля small talk
Щелкните одну из тем, которую вы хотите изменить текст ответа. Например, щелкните Об агенте; это раскроет вопрос, который должен быть сопоставлен с высказыванием пользователя, и пары текстовых ответов. (См. Рисунок 4-3.)
Нажмите Сохранить.
Создание базы знаний FAQ
База знаний представляет собой коллекцию документов знаний, которые вы предоставляете Dialogflow ES. Документ знаний может быть FAQ или текстовым блоком.
Коннекторы знаний дополняют определенные намерения. Обычно агент, использующий коннекторы знаний, также использует определенные намерения. Коннекторы знаний предлагают меньшую точность ответа и контроль, чем намерения, похожие на Small Talk. Они используют Понимание естественного языка из Dialogflow, чтобы понять, что было спрошено. Обычно это работает хорошо, но иногда, особенно когда вы задаете вопросы очень по-другому, он не найдет ответа. Вы должны определить свои намерения для обработки сложных запросов пользователей и позволить коннекторам знаний обрабатывать простые запросы.
Сначала щелкните шестеренку рядом с заголовком агента, чтобы открыть экран Настройки.
Прокрутите вниз до Бета-функции и переключите переключатель: Включить бета-функции и API. (См. Рисунок 4-4.) Нажмите Сохранить.
Рисунок 4-4. Чтобы использовать коннектор базы знаний, вам нужно будет включить бета-функции и API на экране Настройки ➤ Общие
Щелкните меню Знания.
В верхней строке вы можете нажать кнопку Создать базу знаний, чтобы начать добавлять свою первую базу знаний (Рисунок 4-5).
Рисунок 4-5. Создание базы знаний
Дайте базе знаний имя, например, Video Games FAQs, и нажмите Сохранить.
База знаний может содержать несколько документов. Щелкните ссылку Создать первый (Рисунок 4-6).
Рисунок 4-6. Создание документов знаний
Во всплывающем окне (Рисунок 4-7) вы можете добавить следующую информацию:
- Вы можете дать документу имя, например, Internal VideoGames FAQs или Public VideoGame FAQs from IGN.com.
- Вы можете выбрать тип знаний:
- FAQ: Вопрос с ответом
- Обширные ответы на вопросы (Extensive Question Answering): Позвольте Dialogflow понять вопрос на основе статьи/текстового блока
- Тип MIME
- text/html: Если вы хотите импортировать часто задаваемые вопросы с общедоступного веб-сайта.
- text/csv (CSV-файлы): Это может быть экспорт базы данных.
- В качестве источника данных вы можете выбрать один из следующих вариантов:
- Файл в Cloud Storage: Предназначен для частных CSV-файлов (безопасных), хранящихся в Google Cloud Storage.
- URL: URL-адрес общедоступного веб-сайта для импорта часто задаваемых вопросов.
- Загрузить файл с компьютера: Для загрузки частного CSV-файла с вашего диска.
- Есть флажок Включить автоматическую перезагрузку, который позволяет Dialogflow автоматически перезагружать часто задаваемые вопросы с общедоступного веб-сайта, чтобы гарантировать, что вы получаете новые или измененные часто задаваемые вопросы.
Рисунок 4-7. Всплывающее окно настроек документа
Когда вы нажмете кнопку Создать, Dialogflow начнет сканировать/импортировать пары Вопрос-Ответ. Когда это будет сделано, вы увидите документ в обзоре документов базы знаний. (См. Рисунок 4-8.) В этом представлении можно удалить или добавить больше документов.
Рисунок 4-8. Обзор документов знаний
На данный момент вы еще не закончили. Вам нужно будет указать Dialogflow, какой ответ он должен вернуть. Щелкните ссылку Добавить ответ. Он уже предварительно заполнит ответ для вас, $Knowledge.Answer[1], что означает первый ответ с наивысшим уровнем уверенности (Рисунок 4-9).
Но вы можете захотеть точно настроить ответы для различных интеграций каналов (например, чтобы вернуть ответ в Google Assistant в виде карточки). И вы можете захотеть закончить вопросом, чтобы продолжить/направить разговор. Затем нажмите Сохранить.
Рисунок 4-9. Точная настройка ответов документа базы знаний
По умолчанию база знаний настроена с текстовым ответом по умолчанию, заполненным лучшим совпадающим ответом знаний: $Knowledge.Answer[1]. Но ответы знаний могут содержать несколько ответов, и вы можете ссылаться на эти ответы в своих настроенных ответах. Индекс для $Knowledge.Question и $Knowledge.Answer начинается с 1, поэтому увеличивайте этот индекс при добавлении дополнительных ответов.
При определении ответов следует учитывать следующие моменты:
- Если количество определенных ответов больше, чем количество N совпадений ответов коннектора знаний, будет возвращено только N ответов.
- Учитывая, что точность может быть ниже, чем при сопоставлении явно определенных намерений, мы рекомендуем по возможности возвращать три или более ответа вашим пользователям.
Как только вы будете готовы с импортом всех Вопросов и Ответов, вы можете протестировать коннектор знаний в симуляторе Dialogflow (Рисунок 4-10).
Рисунок 4-10. Тестирование базы знаний в симуляторе
Dialogflow Trial и Enterprise Essentials допускают максимальный общий размер документа 10 МБ, 1000 запросов в месяц и 100 запросов в день.
Когда вы выберете уровень Dialogflow Enterprise Plus, все это будет неограниченно.
Вернувшись на страницу базы знаний (когда вы щелкнете Знания в меню Dialogflow), вы заметите ползунок настройки (Рисунок 4-11). Когда выражение конечного пользователя также соответствует намерению, вы можете указать, насколько сильно вы предпочитаете результаты базы знаний. Отрегулируйте ползунок от слабее (предпочтение отдается намерению) до сильнее (предпочтение отдается знаниям).
Рисунок 4-11. Настройка слабости базы знаний
Лучшие практики
Для достижения наилучших результатов вот пара лучших практик.
В общем:
- CSV-файлы должны использовать запятые в качестве разделителей.
- Оценка уверенности настроек ML не калибруется между часто задаваемыми вопросами и статьями базы знаний, поэтому, если вы используете как часто задаваемые вопросы, так и статьи базы знаний, лучший результат не всегда может быть самым высоким.
- Dialogflow удаляет HTML-теги из контента при создании ответов. Из-за этого лучше избегать HTML-тегов и по возможности использовать обычный текст.
- Ответы Google Assistant имеют ограничение в 640 символов на один пузырек чата, поэтому длинные ответы усекаются при интеграции с Google Assistant.
- Максимальный размер документа составляет 50 МБ.
- При использовании файлов Cloud Storage вы должны использовать либо общедоступные URI, либо частные URI, к которым имеет доступ ваша учетная запись пользователя или сервисный аккаунт.
Примечание: В прошлом я видел несколько сбоев моих общедоступных баз знаний FAQ с (моих собственных) веб-страниц. Путем обратного инжиниринга реализации Google я выяснил, что общедоступный веб-сайт FAQ должен разрешать роботам Google. Вы должны добавить общедоступный веб-сайт FAQ в поисковую систему Google через Google Search Console и убедиться, что он был проиндексирован поисковым индексатором, чтобы он существовал в поисковом индексе. Поэтому веб-сайты, такие как https://pages.github.com, не будут работать.
Специфично для FAQ:
- Ваш CSV-файл должен содержать вопросы в первом столбце и ответы во втором. Кроме того, он не должен содержать заголовка.
- По возможности используйте CSV, так как CSV разбирается наиболее точно.
- Общедоступный HTML-контент с одной парой Вопрос-Ответ не поддерживается.
- Количество пар Вопрос-Ответ в одном документе не должно превышать 2000.
- Дублирующиеся вопросы с разными ответами не поддерживаются.
- По возможности используйте допустимую разметку HTML5 для Вопросов и Ответов и основывайте ее на нотации schema.org FAQPage.
Специфично для Extractive QA:
- Контент с плотным текстом работает лучше всего. Избегайте контента с множеством отдельных абзацев предложений.
- Таблицы и списки не поддерживаются.
- Количество абзацев в одном документе не должно превышать 2000.
- Если статья длинная (> 1000 слов), попробуйте разбить ее на несколько меньших статей. Если статья охватывает несколько вопросов, ее можно разбить на более короткие статьи, охватывающие отдельные вопросы. Если статья охватывает только один вопрос, сосредоточьте статью на описании вопроса и сделайте решение вопроса коротким.
- В идеале следует предоставлять только основной контент статьи (описание вопроса и решение). Дополнительный контент, такой как имя автора, история изменений, связанные ссылки и реклама, не важен.
Примечание: Extractive QA на момент написания является экспериментальным. Он основан на аналогичных технологиях, которые были опробованы и протестированы в Google в таких продуктах, как Поиск и Assistant.
Преобразование вопросов базы знаний в намерения
Возможно преобразовать вопрос базы знаний в намерение, что позволит вам предоставить больше обучающих фраз. Когда вы щелкнете ссылку Просмотреть детали в обзоре документов базы знаний, вы увидите все импортированные Вопросы и Ответы.
Рисунок 4-12. Обзор всех импортированных часто задаваемых вопросов
С этого экрана вы можете отключить отдельные вопросы. Также возможно вручную перезагрузить вопросы и ответы. Это также место, где вы можете выбрать отдельный вопрос и преобразовать его в реальное намерение. (См. Рисунок 4-12.)
Резюме
Эта глава предоставила вам всю информацию о создании агентов Dialogflow из шаблонов и баз знаний, чтобы быстро создать агента Dialogflow без создания намерений. Эта глава рассматривает следующие задачи:
- Вы хотите создать быстрого агента Dialogflow, импортированного из шаблонного решения Dialogflow, чтобы использовать его в качестве основы с помощью предварительно созданных агентов.
- Вы хотите включить непринужденный разговор в своем агенте Dialogflow с помощью small talk.
- Вы хотите добавить дополнительные часто задаваемые вопросы к своему агенту Dialogflow, импортировав частный CSV или импортировав часто задаваемые вопросы с общедоступного веб-сайта с помощью коннектора базы знаний.
Дополнительные материалы
- Документация Dialogflow по предварительно созданным агентам
https://cloud.google.com/dialogflow/es/docs/agents-prebuilt - Документация Dialogflow по Small Talk
https://cloud.google.com/dialogflow/es/docs/agents-small-talk - Документация Dialogflow по базам знаний
https://cloud.google.com/dialogflow/es/docs/how/knowledge-bases - Инструмент Google Webmasters
https://www.google.com/intl/en/webmasters
Другие статьи по этой теме:
- Практическое руководство по созданию агентов ИИ
- Выявление и масштабирование сценариев использования ИИ
- Агенты ИИ