Посетите https://www.mikenikles.com, чтобы увидеть мои последние сообщения в блоге.
17 апреля 2018 года общедоступна версия 2 API Dialogflow. Это ознаменовало завершение фазы бета-тестирования, которая началась еще в ноябре 2017 года.
Наш API V2 теперь служит API по умолчанию для всех новых агентов Dialogflow, и все обновления новых функций будут выпущены только для API V2.
Я помню, как читал вышеизложенное в сообщении в блоге, говоря себе, что нужно обновить своего бота Google Assistant Я должен тебе, чтобы узнать о новом API. В прошлые выходные я сделал именно это, и в этом сообщении в блоге объясняется мой подход.
Целевая аудитория
Основное внимание в этом посте уделяется миграции с существующего проекта Dialogflow, который использует v1 API, на новый API v2.
Если вы новичок в Dialogflow, я рекомендую начать с https://dialogflow.com/docs/getting-started/basics, он содержит необходимые шаги для создания проекта Dialogflow. Вам не нужно читать оставшуюся часть этой статьи, так как v2 теперь является версией API по умолчанию.
API V1
Изначально я начал с проекта Действия в Google, что означает, что структура каталогов моего проекта выглядела так:
.firebaserc functions ├── index.js └── package.json
Файл index.js
содержал логику выполнения для моего бота, подобную следующей:
// index.js const App = require("actions-on-google").DialogflowApp; const welcome = app => { app.ask('Welcome! How can I help you today?'); } exports.iOweYou = functions.https.onRequest((request, response) => { const app = new App({ request, response }); // Create the action map let actionMap = new Map(); actionMap.set('input.welcome', welcome); // ... custom actions added here app.handleRequest(actionMap); });
В качестве визуализации настройка API v1 выглядела так:
Руководство по миграции
Если вы находитесь в аналогичной ситуации и хотите перейти на версию 2, я настоятельно рекомендую прочитать официальное руководство по миграции на странице https://dialogflow.com/docs/reference/v1-v2-migration-guide.
У моего бота нет интеграции со Slack, Skype или какой-либо другой интеграцией, которую поддерживает Dialogflow. Все, что мне нужно было перенести, - это конечная точка выполнения. Специально для этого варианта использования есть глава в руководстве по миграции, в которой перечислены необходимые шаги. Если у вашего бота включена интеграция, см. Подробности в официальном руководстве по миграции.
Таким образом, для миграции конечной точки выполнения необходимо создать нового агента, импортировать агент v1 (так что вам не нужно создавать намерения, сущности и т. Д. С нуля), включить v2 на новом агенте, обновить код выполнения, протестировать все, запустить в производство.
В агенте тестирования версии 2 URL-адрес веб-перехватчика выполнения должен указывать на новую конечную точку, которую мы собираемся перейти на версию 2. Откройте Dialogflow, выберите свой тестовый агент v2 и нажмите «Выполнение» в навигации. В поле URL веб-перехватчика добавьте V2
к уже заполненному URL.
К настоящему времени у нас есть агент v2, который мы можем использовать для тестирования, который указывает на конечную точку выполнения v2. Чего не хватает? Фактический v2 конечной точки выполнения. Начнем с диаграммы:
В основном файле index.js
экспортируются две функции. Один - это исходный iOweYou
, обслуживающий производственный трафик, а другой - это iOweYouV2
версия, которая используется новым агентом тестирования, который мы обновили до Dialogflow API v2.
Чтобы все было организовано, я предлагаю вам извлечь код v1 в отдельный index-v1.js
файл и создать index-v2.js
файл для нового кода.
Бета-версия библиотеки выполнения диалогового потока
В рамках этой миграции я решил воспользоваться этой новой библиотекой выполнения Node.js. Вы можете узнать больше об этом и увидеть примеры на https://github.com/dialogflow/dialogflow-fulfillment-nodejs.
Хотя бот «I Owe You» в настоящее время поддерживает только Google Assistant, использование библиотеки выполнения - отличная отправная точка для интеграции с 8 чат-платформами и голосовыми платформами в будущем.
API V2
Когда index-v2.js
будет готов и хорошо протестирован, пора перенести рабочий трафик на новый API. Учитывая разделение кода выполнения v1 и v2 в отдельных файлах, миграция производственного трафика на v2 проста. На следующей схеме показано, что требуется:
Эти шаги включают:
- Убедитесь, что экспортированное свойство
iOweYou
загружает индексный файл-v2
. - В Dialogflow откройте свой рабочий агент и переключитесь на API v2.
- На этом этапе производственный бот работает на Dialogflow API v2. Я предлагаю вам запустить его в таком виде на некоторое время, следить за журналами и, если что-то пойдет не так, вернитесь к шагам 1 и 2 выше, чтобы выполнить откат. вернемся к реализации v1.
- Если вы удовлетворены и не увидите ошибок или прерываний в разговоре, можно безопасно очистить код и удалить файл
index-v1.js
. На этом этапе вы также можете удалить свой тестовый агент в Dialogflow.
Просто, не правда ли?
Если у вас есть какие-либо вопросы или предложения, оставьте комментарий, и я свяжусь с вами.