【问题标题】:How to make Watson Conversation Api Invoke a web Application Url when User Enters an Input?当用户输入输入时,如何使 Watson Conversation Api 调用 Web 应用程序 URL?
【发布时间】:2017-03-08 21:45:18
【问题描述】:

我有一个 spring mvc 应用程序,我想让我的用户调用一个机器人,并且基于用户输入的机器人应该访问一个 url 并根据响应提供一个答案。我如何在 Java 中实现这一点?

【问题讨论】:

    标签: java ibm-cloud bots ibm-watson watson-conversation


    【解决方案1】:

    没有直接的方法可以做到这一点。但是,Watson Conversation 确实提供了一种机制来处理此类请求。 您需要告诉调用 Java 应用需要调用一个 url。

    这是通过使用两个功能来完成的: 上下文请求 跳过用户输入

    request 是一个特殊的上下文变量,它具有参数、名称和结果。 它用于告诉调用应用它应该基于此变量执行一些操作。

    设置skip_user_input 是可选的。在许多情况下,您可能希望在应用程序中执行一些业务逻辑,然后通过result 提供其结果。将 skip_user_input 设置为 true,将告诉 Watson Conversation 不要等待用户的输入。因此,您在下一个节点上的条件应该基于result 中的内容。

    {
      "output": {},
      "context": {
        "request": {
          "args": {
            "url_to_invoke": "your_url"
          },
          "name": "Call_A_URL",
          "result": "context.response"
        },
        "skip_user_input": true
      }
    }
    

    【讨论】:

    • 要完成上述操作,您需要点击 Watson Response -> Advanced
    • 如何通过电话调用 Watson 对话
    • @briantaurostack7 你能详细说明一下吗?您可以在 Watson Conversation 旁边使用 Watson STT 和 TTS。我建议你为此打开一个不同的问题。
    • @Dudi 我的应用程序是否应该在上下文中查找“skip_user_input”并决定立即调用对话服务?或者会话服务本身是否继续到下一个节点,在这种情况下我不明白请求是如何执行的......
    • 您的应用需要处理请求,它通常会更新一些上下文变量。对话将在下一次 api 调用中自动跳过输入。正如它在 api 调用中看到的 skip_user
    【解决方案2】:

    借助 IBM 云功能,现在可以使用此功能。 link 有实现的细节。

    【讨论】:

      猜你喜欢
      • 2018-07-21
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 2021-11-19
      • 1970-01-01
      • 2013-12-20
      相关资源
      最近更新 更多