
Оглавление:
- Шаг 1. Задайте разрешения для своей учетной записи Google
- Шаг 2. Создайте свое действие
- Шаг 3: вызов действия
- Шаг 4. Добавьте свое первое действие
- Шаг 5: Обучение фраз для вашего намерения
- Шаг 6: Сущности
- Шаг 7: действие и параметры
- Шаг 8: Выполнение
- Шаг 9: Приветственное намерение
- Шаг 10: ваш веб-сервис Python
- Шаг 11: проверьте свое действие
- Шаг 12: отпустите свое действие
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05



Увидев потенциал Google Assistant, представленного в Google I / O 18, а также Volvo Cars в их информационно-развлекательной системе, я не мог не попробовать его. Я повторно использовал один из моих старых проектов, VasttraPi, и связал его с Google Assistant. Если вы хотите узнать больше о проекте, я буду рад, если вы посмотрите соответствующую статью в моем блоге: Пользовательские действия для Google Assistant.
В этом руководстве мы рассмотрим шаги, необходимые для запуска вашего собственного действия Google Assistant Action, которое будет связываться с вашим сервером и разговаривать с вами, перечисляя предстоящие отправления. Имейте в виду, что мы не собираемся использовать SDK, поскольку мы запускаем его полностью в Google Assistant, а не на нашем собственном устройстве. В целом, все будет просто. Ваше действие можно будет использовать на устройствах, поддерживающих Google Assistant, таких как телефоны, планшеты, домашние помощники и носимые устройства, и вы даже можете поделиться им, как если бы вы делали это с приложением в Play Store!
Одним из основных преимуществ создания чего-то подобного по сравнению с использованием таких сервисов, как IFTTT, является то, что вы можете создавать собственные ответы на своем сервере, которые будут считываться Google Assistant. В IFTTT связь, насколько я понимаю, односторонняя.
Будут рассмотрены следующие темы:
- Создание вашего первого проекта Action
- Создание собственного намерения
- Создание вашей настраиваемой сущности
- Настройка веб-перехватчика для выполнения вашего действия
- Настройка простого REST-сервера, написанного на Python с Flask, который будет предоставлять ответы или «выполнение»
- Тестирование вашего проекта Action
- Выпуск вашего проекта Action
Здесь вы не найдете много деталей или теории о различных функциях и концепциях Google Assistant. Если они вам интересны, я настоятельно рекомендую вам следовать официальному руководству или посмотреть это видео.
Шаг 1. Задайте разрешения для своей учетной записи Google
Прежде чем мы начнем, мы должны убедиться, что у Google Assistant есть соответствующие разрешения.
- Перейти к элементам управления активностью
-
Убедитесь, что включены следующие параметры:
- История приложений и веб-поиска
- Информация об устройстве
- Голосовая и аудиозапись
Шаг 2. Создайте свое действие


- Перейдите в Консоль действий и нажмите «Добавить / импортировать проект».
- Назовем этот проект Действия "планировщиком локального трафика".
- Щелкните на «Создать проект».
- На следующей странице не выбирайте категорию и нажмите «Пропустить».
- Теперь вы должны быть на главной странице консоли действий.
Шаг 3: вызов действия


Определите, как вы хотите, чтобы Google Assistant начал свое действие.
- В разделе «Быстрая настройка» нажмите «Решить, как будет запускаться ваше действие».
- Назовите его «Мой местный планировщик трафика» и нажмите «Сохранить».
-
Нажмите на запрос «ОБНОВИТЬ ПРИЗЫВЫ ОБРАЗЦА», который появляется после нажатия кнопки «Сохранить».
Вы также можете найти эту опцию в разделе «Информация о каталоге»
- Добавьте «Спросите моего местного планировщика трафика» в качестве нового вызова и нажмите «Сохранить».
Шаг 4. Добавьте свое первое действие


- Щелкните «Действия» на левой панели.
- Щелкните «ДОБАВИТЬ ПЕРВОЕ ДЕЙСТВИЕ».
- Выберите «Особое намерение», а затем нажмите «Построить».
- Вы попадете на страницу Dialogflow, где вы реализуете основную логику.
Шаг 5: Обучение фраз для вашего намерения

- Выберите свой часовой пояс и нажмите «Создать».
- На следующей странице оставьте существующие намерения и нажмите «СОЗДАТЬ НАМЕРЕНИЕ».
- Дайте намерению разумное название, то есть «отклонения».
- Зайдите в «Учебные фразы» и нажмите «Добавить тренировочные фразы».
-
Используйте следующие фразы, чтобы обучить вашу модель, чтобы она могла интерпретировать то, что вы ей говорите:
- Я сейчас дома
- Пока я дома
- Я сейчас в нашей квартире
- я сижу дома
- Сейчас я нахожусь рядом с работой
- я на работе
- Я в офисе
- Работа
- Дом
Шаг 6: Сущности


Теперь, когда вы указали, что более или менее ожидается в качестве входных данных, нам нужно определить, какие части входных данных представляют интерес для нашей бизнес-логики, чтобы их можно было извлечь и выделить на нашем сервере. В нашем случае мы хотим знать, находится ли пользователь дома или на работе, чтобы мы могли ответить отправлением с определенной станции. Посмотрим, как это сделать.
- Если вы дважды щелкните одно или несколько слов в обучающих фразах, вы получите список предопределенных сущностей. Подробнее о каждой из них можно прочитать здесь. В целом, наиболее подходящим будет @ sys.location, однако я думаю, что лучше и проще всего будет, если мы создадим нашу собственную сущность, которую мы должны назвать @ current-location.
- Нажмите на опцию «Сущности» слева.
- Щелкните «СОЗДАТЬ ОБЪЕКТ».
-
Задайте имя "current-location" и определите два ссылочных значения вместе с их синонимами:
-
дом
дом, дом, квартира, детская кроватка
-
Работа
работа, офис, аптив, код мины (смеется шучу)
-
- Нажмите «Сохранить». Для дополнительного эффекта вы также можете нажать «Разрешить автоматическое расширение», чтобы дать Google Ассистенту дополнительные возможности попытаться сопоставить больше синонимов с вашими справочными значениями.
Шаг 7: действие и параметры




Пора придать смысл ключевым словам в ваших обучающих фразах.
- Нажмите «Намерения», а затем перейдите к своему собственному намерению, то есть «отклонениям», если вы следовали моим предложениям по имени.
- Прокрутите вниз до «Обучающие фразы».
- Дважды щелкните слова, обозначающие ваше текущее местоположение, и выберите во всплывающем окне тег @ current-location.
- Прокрутите вниз до «Действия и параметры», нажмите «Управление».
- Если все было сделано правильно, вы увидите, что ваша новая сущность указана там.
- Установите флажок «Обязательно», после чего появится новый столбец «Запросы». Подсказки - это то, что пользователь должен услышать, если не было предоставлено ничего, что соответствует ожиданиям.
- Нажмите «Определить подсказки» и вставьте что-то вроде «Я не понял ваше местоположение. Где вы сейчас находитесь?».
Шаг 8: Выполнение



Пришло время подключить ваш веб-сервис к Google Assistant Action. Ваш хук будет вызван, когда сработает это конкретное намерение, и должен привести к выполнению этого действия. Перед этим мы также хотим установить наше намерение завершить действие после его выполнения.
- Перейдите в «Ответы» и нажмите «ДОБАВИТЬ ОТВЕТ».
- Не добавляйте никаких ответов, просто включите «Установить это намерение как конец разговора».
- Прокрутите вниз до «Выполнение», нажмите «РАЗРЕШИТЬ ИСПОЛНЕНИЕ» и затем включите «Разрешить вызов веб-перехватчика для этого намерения».
- Нажмите «Сохранить», а затем перейдите к опции «Выполнение» слева.
-
Включите опцию «Webhook» и вставьте URL-адрес, который «прослушивается» вашим веб-сервером.
Всякий раз, когда срабатывает намерение, оно отправляет на ваш веб-сайт запрос POST с телом запроса, содержащим объект JSON с текущим местоположением пользователя
- Щелкните Сохранить.
- Теперь мы готовы создать наш веб-сервис, но перед этим давайте убедимся, что наше действие приветствует нас должным образом.
Шаг 9: Приветственное намерение


Чтобы настроить взаимодействие с пользователем, мы должны создавать для нас соответствующее приветствие всякий раз, когда мы запускаем свое действие.
- Перейдите в «Намерения», а затем нажмите «Приветственное намерение по умолчанию».
- Прокрутите вниз до «Ответов», удалите существующие и вставьте то, что вы хотите, чтобы ваше действие приветствовало вас после того, как оно будет инициировано.
- Щелкните "Сохранить".
Шаг 10: ваш веб-сервис Python

Давайте сделаем быстрый и грязный Python-сервер с помощью Flask. Для этого шага нет скриншотов, но он должен быть довольно простым.
- Откройте новую вкладку и создайте учетную запись на pythonanywhere.com.
- Подтвердите Ваш электронный адрес.
- Настройте свое веб-приложение, щелкнув «Открыть веб-вкладку».
- Нажмите «Добавить новое веб-приложение» и выберите «Flask» в качестве веб-платформы Python.
- Выберите Python 3.6 и нажмите «Далее».
- Выберите путь, по которому должен находиться ваш «flask_app.py». Я поместил его прямо в свою домашнюю папку как «/home/your-username/flask_app.py».
- Вернитесь на главную страницу, щелкнув логотип Python в верхнем левом углу.
- В разделе файлов нажмите «flask_app.py», чтобы начать его редактирование.
- Когда откроется веб-текстовый редактор, вставьте следующий код и нажмите «Сохранить». Общая идея заключается в том, что в зависимости от проанализированного JSON, поступающего от Google Asssistant, наш сервер выполнит действие (например, чтение или запись) и сообщит об этом в качестве ответа. / выполнение, которое следует прочитать пользователю.
- Снова нажмите «Открыть веб-вкладку», а затем зеленую «кнопку перезагрузки».
- К настоящему времени у вас должен быть собственный веб-сервер Python, работающий по адресу «https://your-username.pythonanywhere.com/departures».
Шаг 11: проверьте свое действие




Хорошо, к настоящему моменту вы почти закончили. Давайте сейчас протестируем весь стек и запустим этот пример «Hello world»!
- Щелкните «Интеграции» на левой боковой панели.
- Нажмите «Настройки интеграции» под опцией Google Assistant.
- В разделе «Неявный вызов» добавьте название вашего намерения, то есть «отправления», чтобы его можно было активировать напрямую, сказав что-то вроде «Привет, Google, поговори с моим местным планировщиком дорожного движения об отправлениях из дома».
- Включите «Автоматический просмотр» изменений.
- Нажмите «Тест», чтобы открыть новую страницу.
- Типа «Поговорите с моим местным планировщиком дорожного движения».
- Должно быть вызвано ваше действие, которое должно приветствовать вас одним из ранее установленных ответов с приветственным намерением.
- Затем введите «Я на работе». Необходимо связаться с вашим сервером Python, и Google Assistant прочитает ответ.
Круто, не правда ли? А теперь представьте, что вы можете делать, взаимодействуя с датчиками, исполнительными механизмами и другими API-интерфейсами через Google Assistant.
Шаг 12: отпустите свое действие



После того, как вы закончите тестирование своего Действия и оно находится в хорошем состоянии, пора поделиться любовью со всем миром или, если это не имеет смысла, со своими друзьями и семьей.
- Вернитесь в консоль Действия и выберите действие локального планировщика трафика.
- В разделе «Подготовьтесь к развертыванию» нажмите «Введите информацию, необходимую для внесения вашего действия в каталог действий».
- Введите краткое описание, более подробное описание, небольшой логотип, ваши контактные данные, ссылку на политику конфиденциальности (если вы не собираетесь делиться ею публично, просто разместите ссылку на свой веб-сайт или что-то в этом роде) и категорию.
- Прокрутите вверх и нажмите «Сохранить».
- Нажмите на опцию «Освободить» на левой боковой панели.
- Здесь вы можете выбрать, в каком состоянии находится ваше действие. Если вы не хотите слышать ответ «Давайте получим тестовую версию My local traffic planner», вам необходимо сделать полноценный публичный релиз. Однако это требует проверки Google и не будет рассматриваться в этом руководстве. Вместо этого вы все равно можете поделиться этим с 20 людьми, выбрав альфа-версию и добавив их в качестве альфа-тестеров.
- Добавьте любых альфа-тестеров, отправив им ссылку или добавив их электронные письма.
- Нажмите «ОТПРАВИТЬ НА АЛЬФУ», установите флажки, нажмите «ОТПРАВИТЬ», и все готово!
Теперь ваше действие доступно для вас и ваших друзей. Повеселись!
Если вас интересует код, который я использовал, взгляните на проект на GitHub.
Рекомендуемые:
Создание адаптера Bluetooth, часть 2 (создание совместимого динамика): 16 шагов

Создание адаптера Bluetooth, часть 2 (Создание совместимого динамика): в этой инструкции я покажу вам, как использовать мой адаптер Bluetooth, чтобы сделать старый динамик совместимым с Bluetooth. * Если вы не читали мое первое руководство по " Изготовлению адаптер Bluetooth " Я предлагаю вам сделать это, прежде чем продолжить.C
Создание машины для точечной сварки из трансформатора для микроволновой печи: 7 шагов (с иллюстрациями)

Создание машины для точечной сварки из трансформатора для микроволновой печи: в этом проекте я делаю самодельную машину для точечной сварки, которая будет использоваться для сборки аккумуляторных блоков с литий-ионными элементами 18650. У меня также есть профессиональный точечный сварщик, модель Sunkko 737G, который стоит около 100 долларов, но я с радостью могу сказать, что мой самодельный сварщик
Создание маленьких роботов: создание роботов Micro-Sumo на один кубический дюйм и меньше: 5 шагов (с изображениями)

Создание маленьких роботов: создание роботов Micro-Sumo на один кубический дюйм и меньше: вот некоторые подробности о создании крошечных роботов и схем. В этом руководстве также будут рассмотрены некоторые основные советы и методы, которые могут быть полезны при создании роботов любого размера. Для меня одна из самых сложных задач в электронике - это увидеть, насколько малы
Как делать потрясающие снимки быстрых действий: 5 шагов

Как сделать потрясающие снимки быстрого действия: в основном я собираюсь показать вам, как получить потрясающую картину того, что происходит в мгновение ока. В качестве примера я использую лопание воздушного шара с водой. Заинтересованы? читать дальше
Создание светодиодного стилуса для сенсорного экрана и поверхности для письма, реагирующей на УФ-излучение: 5 шагов

Создание светодиодного сенсорного пера и поверхности для письма, реагирующей на ультрафиолетовые лучи: Создайте светодиодное перо, чувствительное к сенсорному переключению! В этом руководстве используются детали, которые, вероятно, лежат у большинства любителей дома, для изготовления ручки, излучающей свет от светодиода. Я использовал ультрафиолетовый светодиод для «фантомной записи»; можно покрыть белую поверхность