【问题标题】:Send parameters to Cortana Skill向 Cortana Skill 发送参数
【发布时间】:2018-10-04 04:57:39
【问题描述】:

我创建了一个聊天机器人,Cortana 将其用作一项技能,它工作得很好,但是,我目前正在从一个 blob 存储文件中读取一些参数,我想让它更加动态;有没有办法在初始化来自 Cortana 的技能时发送参数?我在这里读到:

Get the user's profile and contextual information

Cortana 可以读取用户信息,例如姓名、电子邮件、本地化等,但我还没有看到任何输入自定义值的方法,一旦在 init 上收到消息,我就可以读取这些值。

感谢您的帮助,谢谢!

【问题讨论】:

    标签: azure botframework chatbot cortana cortana-skills-kit


    【解决方案1】:

    不要忘记 Cortana 是会话式的(RESTful,并且大部分是无状态的)。问问自己什么配置是对话的一部分,什么是服务的一部分。如果存在从用户发送的配置,那么使用所描述的三个上下文之一将其存储在会话中是有意义的:用户数据、对话数据或私人对话数据。这都是机器人框架:manage state data

    您可以通过多种方式辨别 Cortana 是否已配置。如果您尚未将属性存储在 userData 上,则假设您未配置并更改您的对话流程。如果你想在你被调用的时候检查,你总是可以这样做if( session.message.entities[0].name === 'Microsoft.Launch' ) { ... }

    在我的一项技能中,我只是这样做...if(! session.userData.bookName ) { session.beginDialog('openBook'); return; } 其中openBook 设置名称。

    如果这是与服务相关的,那么您可以将配置移动到您喜欢的位置。将其保留在 Azure 存储中可能仍需要重新启动服务以使用更改(除非您不断轮询。)相反,您可以将配置数据放在系统属性(环境变量)中,或者在您的 web.config 中或在容器上。例如,

      <configuration>
          <appSettings>
            <!-- update these with your BotId, Microsoft App Id and your Microsoft App Password-->
            <add key="BotId" value="YourBotId" />
            <add key="MicrosoftAppId" value="" />
            <add key="MicrosoftAppPassword" value="" /> ...
    

    您可以将 IIS 设置为监视配置文件中的更改以自动重启。

    希望这会有所帮助。

    【讨论】:

    • 嗯,这个机器人实际上是通过 HTML 和 Cortana 作为一项技能使用的。当通过 HTML 访问机器人时,我正在传递身份验证值以连接到自定义服务以通过 DirectLine 将信息发送回用户。我想知道是否有一种方法可以让用户在 Cortana 中设置这些值,以便在调用我的技能后读取它们。我试图避免对这些值进行硬编码。如果我在您的回复中遗漏了任何内容,我深表歉意。
    • 如果您在机器人上设置了表存储,那么无论通道如何,任何 userData 变量都将可见。如前所述,如果您想通过 Cortana 配置这些变量,为什么不使用自适应卡生成表单以选择配置...或深层链接到将参数填充到共享存储中的某些网络表单。
    • 有没有办法(没有天蓝色存储)将这些自定义参数设置为 Cortana 中的用户信息,以便我可以从那里读取?我想避免每次都要求用户输入相同的值。最后,自适应卡似乎是最好的选择。
    • 备用存储是一个新问题。它也不是 Cortana 特定的。将旧问题标记为已回答,然后开始新问题。当我看到它时,我会回答这个问题:-)
    • 此外,自适应卡片是填写表格的好方法。但是如果你想预先填充表单,你仍然需要将它的状态保存在某个地方(即 userData)。对于 Cortana,您仍然需要一种语音方式来设置该状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多