【问题标题】:Watson assistant error "Http response code is [401]"Watson 助手错误“Http 响应代码为 [401]”
【发布时间】:2019-09-25 05:48:41
【问题描述】:

我在 IBM 中创建了一个非常简单的云函数,我尝试通过 Watson 助手调用它。当我调用它时,会出现错误“Direct CloudFunctions call was not successful. Http response code is [401]”。

下面是我正在使用的代码。 “prodname”取自用户并发送到函数以获取答案。当我调用它时,该功能工作正常。我从https://cloud.ibm.com/openwhisk/learn/api-key 获得ID 和密码。

{
  "context": {

    "credentials": {
      "user": "userID",
      "password": "password"
    }
  },
  "output": {
    "text": {
      "values": [
        "$answer"
      ]
    }
  },
  "actions": [
    {
      "name": "arllambi%2540gmail.com_Only/Watson/MovieBot",
      "type": "cloud_function",
      "parameters": {
        "prodname": "$prodname"
      },
      "result_variable": "answer",
      "credentials": "$credentials"
    }
  ]
}

是不是凭证有问题?

提前感谢您的帮助。

******重新编辑******

根据 data_henrik 的建议,我提供了更多信息。我调用的函数如下,一个很简单的回显函数:

function main(msg){
return {answer: "You said " +msg.prodname};
}

我将 cloud_function 更改为 web_action,web_action 通过邮递员可以正常工作:

{
  "output": {
    "text": {
      "values": [
        "$answer"
      ]
    }
  },
  "actions": [
    {
      "name": "arllambi@gmail.com_Only/Watson/MovieBot.json",
      "type": "web_action",
      "parameters": {
        "prodname": "<?input.text?>"
      },
      "result_variable": "context.answer"
    }
  ]
}

我现在收到的消息是“直接 CloudFunctions 调用不成功。Http 响应代码是 [404]”。助手也会回答“with {“cloud_functions_call_error”:“请求的资源不存在。”}

阿德里亚

【问题讨论】:

  • 您使用的是 api_key 还是用户/密码?查看 Cloud Functions 日志了解详细信息。
  • 嗨,感谢您的快速回答!我正在使用来自cloud.ibm.com/openwhisk/learn/api-key 的用户/密码数据。 clound 函数日志不显示任何内容:激活 ID:702e4121f77347d2ae4121f77387d27d 结果:{“answer”:“You said terminator”} 日志:[]
  • 分享有关您正在调用的代码和操作名称的更多详细信息。为什么不使用 api_key 而不是用户/密码?
  • 为了练习,你能不能把动作启用为网络动作,然后这样调用它?
  • 感谢反馈,以上已更新。

标签: ibm-cloud ibm-watson watson-assistant ibm-cloud-functions


【解决方案1】:

您好@data_henrik,感谢您的帮助。我确实看到了@并在编辑的代码中更正了它,给出了同样的问题。但我想通了:助理被部署在华盛顿......我把它搬到了伦敦,现在它可以工作了。再次感谢您的帮助,并对我的新手错误感到抱歉...

【讨论】:

    【解决方案2】:

    我的猜测是您的操作名称中的 org 部分是错误的。尝试将任何“@”替换为“%40”。否则,Watson 会将其解释为其他内容。接下来,更新对话节点后,等待几秒钟以使更改生效。

    我刚刚对部署的 Web 操作进行了尝试,可能会导致 401 和 404。

    "name": "arllambi%40gmail.com_Only/Watson/MovieBot.json"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 2014-11-13
      • 2012-01-30
      • 2023-03-19
      • 1970-01-01
      • 2014-10-29
      相关资源
      最近更新 更多