Я думаю, вы смешиваете несколько разных, но связанных вещей, некоторые из которых имеют похожие или частично совпадающие названия. Чтобы попытаться прояснить ситуацию:
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 , Единственные требования:
- Он может работать на общедоступном HTTPS-сервере
- Он может принимать 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.