google 的 python SDK 上的操作?
Actions on google's python SDK?
我开发了一个基于 python 的智能家居设备云服务,但在尝试将其与 google 上的操作集成时,他们的 python 库是 "Google Assistant Library for Python is deprecated as of June 28th, 2019, Use the Google Assistant Service instead."
我去了google助手服务页面,它说python是"You can't launch commercial devices that integrate with the Google Assistant SDK. It's available for experimental and non-commercial uses only."
为什么会这样?这是否意味着它仍处于测试阶段?我不应该理会 python 吗?我真的很想坚持使用 python,因为我花了很多时间开发它。
我认为您混淆了一些不同但相关的事物,其中一些具有相似或重叠的名称。尝试清理问题:
Google 助手 SDK
Google Assistant SDK 和 Google Assistant gRPC 服务使您能够构建一个像 Google 家一样工作的设备。因此人们会直接与您的设备交互并使用它来控制 Google 助理。
- 有 python 个库,因为 python 被许多爱好者在他们的设备上使用。
- 曾经有一个功能更全的 SDK(针对 python),但现在似乎不再支持了。
- 即使支持有限,这也主要针对业余爱好者。听起来大多数为消费者制造的设备都在使用其他平台,这些平台需要您直接与 Google 合作。
在 Google
上的操作
这是一个宽泛的术语,描述了您可以通过智能扬声器或 phone.
等设备制作人们会使用的东西的方法 through the Google Assistant
它可以非常粗略地分为几种不同的方法,其中一些是重叠的:
- 使用 Action SDK 的对话体验 and/or Dialogflow
- 智能家居操作
- Content Actions 通过网络标记 and/or 模板
- Mobile integration
通常当人们在 Google 上谈论 Actions 时,他们谈论的是前两项之一,并且经常混淆 Action SDK 和 Dialogflow。
None 其中特别支持,也不禁止,python.
智能家居操作
Smart Home Actions are specifically built to work with the set of devices and traits Google 已经建立了对话体验。
Smart Home Actions 有许多重要的区别:
- 您无需准确计算用户可以说的内容。这取决于您支持的设备和特性。 Google 已经建立了词汇表并向您发送非常离散定义的命令,而不是广泛的对话。
- 用户不需要通过名称专门调用您的产品。他们通过 Google 家庭设置应用程序配置与您的产品的连接,然后可以更通用地处理您的设备。
您的服务器可以用您希望的任何语言编写 - Google 将发送您注册的 HTTPS 端点 JSON with the commands, and expects you to reply with JSON as well. There is no specific python library for this - but mostly there doesn't need to be. The most difficult part is that you will need to support OAuth for account linking,但这比您使用的语言更重要整个平台。
Smart Home Actions 还可以支持 Local Home SDK,它允许命令直接在许多设备上执行,而无需转到您的服务器进行处理。此 必须 以 TypeScript 或 JavaScript 编写,因此不支持 python.
如果您正在构建智能家居设备,您应该使用智能家居操作而不是其他任何东西。您可能不想这样做的唯一原因是,如果您的设备类型 so 与当前支持的设备不同,您需要使用 Dialogflow and/or 进行对话操作动作 SDK。
Dialogflow
Dialogflow 是来自 Google Cloud 的产品,它为许多不同的配置和集成提供自然语言处理系统。
使用它的一种方法(也是我在这里讨论的唯一方法)是 process and fulfill conversations 通过 Google 助理:
- 用户通过智能助理调用您的 Action,通常是说 "Hey Google, talk to Shakespearean Insult"
- 此调用以及之后对话中的每一步,都由 Google 助理从语音转换为文本,然后发送到您在 Dialogflow
中的配置
- Dialogflow 确定哪个 Intent 匹配此用户输入
- 如果匹配的 Intent 配置为这样做,它将请求和附加信息转发到您编写的 Fulfillment webhook,即 运行ning 在您控制的某处服务器上
- 此 fulfillment 然后可以处理输入,确定回复,并将其发送回 Dialogflow,Dialogflow 将其发送回 Assistant,Assistant 将其发送给用户
此实现几乎可以用您想要的任何编程语言编写,包括 python。唯一的要求是
- 它可以 运行 在可公开访问的 HTTPS 服务器上
- 它可以在 Dialogflow fulfillment request format and return JSON in the Dialogflow+Action fulfillment response format.
中接受 JSON
Google 中没有特定的库支持这些 JSON 格式,但如果您想自己实现它们,它们相当简单。社区还开发了 python 个库,但我对它们的了解还不够多,无法建议哪些是目前最好的,哪些可以使用当前协议。
动作SDK
有时在文档中将其称为 Conversation API or SDK,尽管现在他们通常将其称为 Action SDK。
这类似于 Dialogflow 的工作方式(事实上,Dialogflow 使用它),但不同的是没有 NLP 系统可以从他们的语音中确定用户的意图:
- 用户仍然使用 "Hey Google, talk to Shakespearean Insult"
等短语调用操作
- 此调用以及之后的每一步,都由智能助理从语音转换为文本
- 但是,不同之处在于此文本与 conversation request format JSON
中的一些其他元数据一起直接发送到您的 webhook
- 您可以将其发送到 NLP/NLU 系统以了解用户的操作。
- 您可能认为可以使用正则表达式来做到这一点。你不能。但是还有许多其他好的 NLP/NLU 库可以与 python.
一起使用
- 您的 webhook 将 send a response using JSON 助手将发送给用户。
同样,没有特定的 Google 支持 python 库来处理这个问题,但可能有社区开发的库可以这样做。
除非您有充分的理由使用更原始的 Action SDK(例如已经在使用现有 NLP/NLU 系统的现有组件),否则您应该使用 Dialogflow。
我开发了一个基于 python 的智能家居设备云服务,但在尝试将其与 google 上的操作集成时,他们的 python 库是 "Google Assistant Library for Python is deprecated as of June 28th, 2019, Use the Google Assistant Service instead."
我去了google助手服务页面,它说python是"You can't launch commercial devices that integrate with the Google Assistant SDK. It's available for experimental and non-commercial uses only."
为什么会这样?这是否意味着它仍处于测试阶段?我不应该理会 python 吗?我真的很想坚持使用 python,因为我花了很多时间开发它。
我认为您混淆了一些不同但相关的事物,其中一些具有相似或重叠的名称。尝试清理问题:
Google 助手 SDK
Google Assistant SDK 和 Google Assistant gRPC 服务使您能够构建一个像 Google 家一样工作的设备。因此人们会直接与您的设备交互并使用它来控制 Google 助理。
- 有 python 个库,因为 python 被许多爱好者在他们的设备上使用。
- 曾经有一个功能更全的 SDK(针对 python),但现在似乎不再支持了。
- 即使支持有限,这也主要针对业余爱好者。听起来大多数为消费者制造的设备都在使用其他平台,这些平台需要您直接与 Google 合作。
在 Google
上的操作这是一个宽泛的术语,描述了您可以通过智能扬声器或 phone.
等设备制作人们会使用的东西的方法 through the Google Assistant它可以非常粗略地分为几种不同的方法,其中一些是重叠的:
- 使用 Action SDK 的对话体验 and/or Dialogflow
- 智能家居操作
- Content Actions 通过网络标记 and/or 模板
- Mobile integration
通常当人们在 Google 上谈论 Actions 时,他们谈论的是前两项之一,并且经常混淆 Action SDK 和 Dialogflow。
None 其中特别支持,也不禁止,python.
智能家居操作
Smart Home Actions are specifically built to work with the set of devices and traits Google 已经建立了对话体验。
Smart Home Actions 有许多重要的区别:
- 您无需准确计算用户可以说的内容。这取决于您支持的设备和特性。 Google 已经建立了词汇表并向您发送非常离散定义的命令,而不是广泛的对话。
- 用户不需要通过名称专门调用您的产品。他们通过 Google 家庭设置应用程序配置与您的产品的连接,然后可以更通用地处理您的设备。
您的服务器可以用您希望的任何语言编写 - Google 将发送您注册的 HTTPS 端点 JSON with the commands, and expects you to reply with JSON as well. There is no specific python library for this - but mostly there doesn't need to be. The most difficult part is that you will need to support OAuth for account linking,但这比您使用的语言更重要整个平台。
Smart Home Actions 还可以支持 Local Home SDK,它允许命令直接在许多设备上执行,而无需转到您的服务器进行处理。此 必须 以 TypeScript 或 JavaScript 编写,因此不支持 python.
如果您正在构建智能家居设备,您应该使用智能家居操作而不是其他任何东西。您可能不想这样做的唯一原因是,如果您的设备类型 so 与当前支持的设备不同,您需要使用 Dialogflow and/or 进行对话操作动作 SDK。
Dialogflow
Dialogflow 是来自 Google Cloud 的产品,它为许多不同的配置和集成提供自然语言处理系统。
使用它的一种方法(也是我在这里讨论的唯一方法)是 process and fulfill conversations 通过 Google 助理:
- 用户通过智能助理调用您的 Action,通常是说 "Hey Google, talk to Shakespearean Insult"
- 此调用以及之后对话中的每一步,都由 Google 助理从语音转换为文本,然后发送到您在 Dialogflow 中的配置
- Dialogflow 确定哪个 Intent 匹配此用户输入
- 如果匹配的 Intent 配置为这样做,它将请求和附加信息转发到您编写的 Fulfillment webhook,即 运行ning 在您控制的某处服务器上
- 此 fulfillment 然后可以处理输入,确定回复,并将其发送回 Dialogflow,Dialogflow 将其发送回 Assistant,Assistant 将其发送给用户
此实现几乎可以用您想要的任何编程语言编写,包括 python。唯一的要求是
- 它可以 运行 在可公开访问的 HTTPS 服务器上
- 它可以在 Dialogflow fulfillment request format and return JSON in the Dialogflow+Action fulfillment response format. 中接受 JSON
Google 中没有特定的库支持这些 JSON 格式,但如果您想自己实现它们,它们相当简单。社区还开发了 python 个库,但我对它们的了解还不够多,无法建议哪些是目前最好的,哪些可以使用当前协议。
动作SDK
有时在文档中将其称为 Conversation API or SDK,尽管现在他们通常将其称为 Action SDK。
这类似于 Dialogflow 的工作方式(事实上,Dialogflow 使用它),但不同的是没有 NLP 系统可以从他们的语音中确定用户的意图:
- 用户仍然使用 "Hey Google, talk to Shakespearean Insult" 等短语调用操作
- 此调用以及之后的每一步,都由智能助理从语音转换为文本
- 但是,不同之处在于此文本与 conversation request format JSON 中的一些其他元数据一起直接发送到您的 webhook
- 您可以将其发送到 NLP/NLU 系统以了解用户的操作。
- 您可能认为可以使用正则表达式来做到这一点。你不能。但是还有许多其他好的 NLP/NLU 库可以与 python. 一起使用
- 您的 webhook 将 send a response using JSON 助手将发送给用户。
同样,没有特定的 Google 支持 python 库来处理这个问题,但可能有社区开发的库可以这样做。
除非您有充分的理由使用更原始的 Action SDK(例如已经在使用现有 NLP/NLU 系统的现有组件),否则您应该使用 Dialogflow。