Google的python SDK上的操作?

问题描述 投票:0回答:1

我开发了基于python的智能家居设备云服务,但是在尝试将其与Google上的操作集成时,他们的python库是“自2019年6月28日起,不再支持Python的Google Assistant库,请使用Google Assistant改为服务。“

我转到google助手服务页面,它说python是“您无法启动与Google助手SDK集成的商业设备。它仅可用于实验和非商业用途。”

为什么会这样?这是否意味着它们仍处于测试阶段?我应该不打扰python吗?我真的很想坚持使用python,因为我花了很多时间在上面进行开发。

python actions-on-google
1个回答
3
投票
我认为您正在混淆一些不同但相关的事物,其中一些具有相似或重叠的名称。要尝试清除问题:

Google Assistant SDK

Google Assistant SDK和Google Assistant gRPC服务使您能够构建类似于Google Home的设备。因此人们可以直接与您的设备互动,并使用它来控制助手。

    存在python库,因为许多爱好者在其设备上使用python。
  • 过去曾经有一个功能更全的SDK(用于python),但是似乎不再受支持。
  • 即使支持有限,这主要是针对业余爱好者的。听起来大多数为消费者生产的设备正在使用其他平台,这些平台需要您直接与Google合作。
  • Google上的操作

  • 这是一个宽泛的术语,描述了您可以通过诸如智能扬声器或电话之类的设备来制作人们将要使用的through the Google Assistant的方式。

    它可以大致分为两种不同的方法,其中有些重叠:

  • [通常,当人们谈论Google上的Actions时,他们谈论的是前两个项目之一,并且常常使Action SDK和Dialogflow混淆。

    这些都不是专门支持,也不是禁止python。

    智能家庭操作

  • [Smart Home Actions是专门为与Google建立了会话体验的devices and traits集一起使用而设计的。

    关于智能家居操作,有许多重要的区别:

      您无需确切说明用户可以说些什么。这取决于您支持的设备和特征。 Google建立了词汇表,并向您发送了非常离散定义的命令,而不是广泛的对话。
    • 用户无需按名称专门调用您的产品。他们通过Google Home设置应用配置与您产品的连接,然后可以更通用地访问您的设备。
  • 您的服务器可以用您希望的任何语言编写-Google会发送您已注册的HTTPS端点JSON with the commands,并希望您也以JSON进行回复。没有为此专用的python库-但大多数情况下并不需要。最困难的部分是您将需要支持OAuth for account linking,但这是一个比您使用的语言以及整个平台都使用的语言更大的问题。

    Smart Home Actions还可以支持Local Home SDK,它允许直接在许多设备上执行命令,而不必去服务器进行处理。此

    必须用TypeScript或JavaScript编写,因此不支持python。

    如果要构建智能家居设备,则应该使用智能家居操作,而不要使用其他任何产品。您可能不想要的唯一原因是,如果设备类型与当前支持的设备

    so

    不同,则需要使用Dialogflow和/或Action SDK进行对话操作。

    Dialogflow

  • Dialogflow是Google Cloud的产品,它为许多不同的配置和集成提供了自然语言处理系统。

    使用它的一种方法(也是我在这里讨论的唯一方法)是通过Google助手

    处理和完成对话:

      用户通常通过说出“嘿Google,与莎士比亚侮辱交谈”之类的内容,通过助手来调用您的操作
    • 此调用以及随后的对话的每一步,都将由助手从语音转换为文本,然后在Dialogflow中发送到您的配置中>
    • Dialogflow确定哪个Intent与该用户输入匹配
    • 如果将匹配的Intent配置为这样做,它将把请求和其他信息转发到您编写的Fulfillment webhook,该C0在您控制的服务器上运行]]
    • 然后,此实现可以处理输入,确定答复,并将其发送回Dialogflow,后者将其发送回Assistant,后者将其发送给用户
    • 此实现几乎可以用您想要的任何编程语言(包括python)编写。唯一的要求是
      它可以在可公开访问的HTTPS服务器上运行
    1. 它可以在Dialogflow fulfillment request format中接受JSON,并在Dialogflow+Action fulfillment response format中返回JSON。
    2. Google没有提供支持这些JSON格式的特定库,但是如果您想自己实现,则非常简单。社区还开发了python库,但是我对它们的了解还不够,无法建议哪些是当前最好的,或者哪些可以与当前协议一起使用。
    3. Action SDK

    有时在文档中将其称为Conversation API or SDK,尽管如今他们通常将其称为Action SDK。

    这类似于Dialogflow的工作方式(实际上Dialogflow使用它),但不同之处在于,没有NLP系统可以根据其语音确定用户的意图:

      用户仍然使用诸如“嘿Google,与莎士比亚侮辱交谈”之类的短语来调用该动作
    • 此调用及其后的每一步都由助手从语音转换为文本
    • 但是,区别在于,此文本以及conversation request format JSON中的一些其他元数据都直接发送到您的Webhook。>
    • 您可以将其发送到NLP / NLU系统,以了解用户的操作。
      • 您可能认为您可以使用正则表达式来做到这一点。你不能但是,还有许多其他可以使用python的优秀NLP / NLU库。
    • 您的网络挂钩将send a response using JSON,助手将发送给用户。
  • 同样,没有特定的Google支持的python库来处理此问题,但是可能有社区开发的库可以做到这一点。
  • 除非您有充分的理由使用更原始的Action SDK(例如已经在使用现有NLP / NLU系统的现有组件,否则您应该使用Dialogflow。

    © www.soinside.com 2019 - 2024. All rights reserved.