Действия на Google 1000 * SDK? - PullRequest
0 голосов
/ 10 марта 2020

Я разработал облачный сервис для умных домашних устройств, основанный на python, но, пытаясь интегрировать его с действиями в Google, их библиотека для python называется «Библиотека Google Assistant для Python устарела с 28 июня» , 2019, вместо этого используйте Службу Google Assistant. "

Я перешел на страницу службы помощника Google, где написано, что python - это" Вы не можете запускать коммерческие устройства, которые интегрируются с SDK Google Assistant. Это доступно только для экспериментального и некоммерческого использования. "

Почему это так? это значит, что он все еще в бета-версии для них? я не должен беспокоиться о python? я действительно хотел бы придерживаться python, так как потратил немало времени на его разработку.

1 Ответ

3 голосов
/ 10 марта 2020

Я думаю, вы смешиваете несколько разных, но связанных вещей, некоторые из которых имеют похожие или частично совпадающие названия. Чтобы попытаться прояснить ситуацию:

Google Assistant SDK

Google Assistant SDK и Google Assistant gRP C позволяют создавать устройство, которое работает как Google Home. Поэтому люди будут напрямую взаимодействовать с вашим устройством и использовать его для управления помощником.

  • Для этого есть библиотеки python, поскольку python используется многими любителями на своих устройствах.
  • Раньше был более полнофункциональный SDK (для python), но, похоже, он больше не поддерживается.
  • Даже при ограниченной поддержке это в основном для любителей. Похоже, что большинство устройств, созданных для потребителей, используют другие платформы, которые требуют от вас прямого партнерства с Google.

Действия в Google

Это широкий термин, описывающий способы, которыми вы можете сделать что-то, что люди будут использовать через Google Assistant , с помощью таких устройств, как их интеллектуальные колонки или телефон.

Это может быть грубо разбито на пару различных подходов, некоторые из которых пересекаются:

Обычно, когда люди говорят о действиях в Google, они говорят об одном из первые два элемента, и часто путают Action SDK и Dialogflow.

Ни один из них специально не поддерживает и не запрещает python.

Действия умного дома * 104 8 *

Действия «Умного дома» специально созданы для работы с набором устройств и признаков , для которых Google создал диалоги.

Там Есть ряд важных отличий от действий Smart Home:

  • Вам не нужно точно понимать, что может сказать пользователь. Это определяется устройствами и особенностями, которые вы поддерживаете. Google разработал словарь и отправляет вам весьма определенные команды, а не широкие разговоры.
  • Пользователям не нужно специально вызывать ваш продукт по имени. Они настраивают соединение с вашим продуктом через приложение настройки Google Home, а затем могут более широко обращаться к вашим устройствам.

Ваш сервер может быть написан на любом языке, на котором вы будете sh - Google отправит ваши зарегистрированные Конечная точка HTTPS JSON с командами , и ожидает, что вы ответите также с JSON. Для этого не существует специальной библиотеки c python, но в основном она не нужна. Самое сложное в том, что вам нужно будет поддерживать OAuth для связывания аккаунтов , но это более серьезная проблема, чем то, какой язык вы используете, и распространяется на всю вашу платформу.

Умный дом Действия также могут поддерживать Local Home SDK , который позволяет выполнять команды на многих устройствах напрямую, без необходимости go на вашем сервере для обработки. Это должно быть написано либо на TypeScript, либо на JavaScript, поэтому не поддерживает python.

. Если вы создаете устройство для умного дома, вы должны использовать Smart Home Actions, а не чем что-либо еще. Единственная причина, по которой вы можете этого не хотеть, - если у вас тип устройства, который , поэтому отличается от поддерживаемых в настоящее время устройств, вам необходимо выполнить диалоговое действие с Dialogflow и / или Action SDK.

Dialogflow

Dialogflow - это продукт от Google Cloud, который предоставляет систему обработки естественного языка для ряда различных конфигураций и интеграций.

Один из способов его использования (и единственный, который я здесь обсуждаю) - это обработка и выполнение разговоров через Google Assistant:

  • Пользователи вызывают ваше Действие через Ассистента, обычно произнося что-то вроде «Эй, Google, поговори с Шекспировским Оскорблением»
  • Этот вызов и каждый последующий шаг в разговоре преобразуется из речи в текст Помощник, а затем отправляется в вашу конфигурацию в Dialogflow
  • Dialogflow определяет, какой Intent соответствует этому пользовательскому вводу
  • Если настроенное Intent настроено для этого затем он перенаправит запрос и дополнительную информацию в веб-крючок выполнения , который вы написали и работает на сервере, которым вы управляете где-то
  • Это выполнение может затем обработать ввод, определить ответ и отправьте его обратно в Dialogflow, который отправит его обратно помощнику, который отправит его пользователю

Это выполнение может быть написано практически на любом языке программирования, включая python , Единственные требования:

  1. Он может работать на общедоступном HTTPS-сервере
  2. Он может принимать JSON в формате запроса на выполнение диалогового потока и возвращать JSON в формате ответа Dialogflow + Action на выполнение .

Нет специальной библиотеки c от Google, которая поддерживает эти форматы JSON, но они довольно просты, если Вы хотите реализовать это самостоятельно. Сообщество также работало с python библиотеками, но я не знаю достаточно о них, чтобы посоветовать, какие из них лучше сейчас или какие работают с текущим протоколом.

Action SDK

Иногда в документации это называется Conversation API или SDK , хотя обычно в наши дни его называют Action SDK.

Это похоже к тому, как работает Dialogflow (фактически Dialogflow использует его), но отличается тем, что не существует системы NLP, которая могла бы определить намерение пользователя по их речи:

  • Пользователи по-прежнему вызывают действие с помощью такой фразы, как «Эй, Google, поговори с Шекспировским оскорблением»
  • Этот вызов и каждый последующий шаг преобразуется из речи в текст помощником
  • Однако разница в том, что этот текст отправляется напрямую. на ваш веб-крюк вместе с некоторыми другими метаданными в формате запроса на разговор JSON
  • Вы можете отправить его в НЛП Система / NLU, чтобы понять, что сделал пользователь.
    • Вы можете подумать, что можете сделать это с помощью регулярных выражений. Ты не можешь Но есть много других хороших библиотек NLP / NLU, которые работают с python.
  • Ваш webhook отправит ответ, используя JSON, который помощник будет отправлено пользователю.

Опять же, нет c поддерживаемой Google библиотеки python, чтобы справиться с этим, но могут быть разработанные сообществом библиотеки, которые могут это сделать.

Если у вас нет веских причин для использования более сырого Action SDK (например, существующих компонентов, которые уже используют существующую систему NLP / NLU), вам, вероятно, следует использовать Dialogflow.

...