从Watson Assistant工作区删除日志的客户ID是什么?

时间:2019-01-10 10:21:38

标签: ibm-watson watson-conversation

在WA工作区的“改进”部分(watsonplatform.net/eu-de/WA_INSTANCE_ID/workspaces/WA_WORKSPACE_ID/improve/userdata)中,我可以看到用户与聊天机器人进行的所有对话。

我想尝试使用带有删除标签的数据api-https://cloud.ibm.com/apidocs/assistant?curl=#delete-labeled-data

删除它们

api调用:

  

删除与指定客户ID相关联的所有数据。方法   如果没有数据与客户ID关联,则无效。

在哪里可以找到客户ID?

1 个答案:

答案 0 :(得分:2)

此处in the docs中所述,您必须在/ message POST请求上设置标头,该标头将该消息与发送的客户ID相关联。

示例是

curl -X POST -u "apikey:3Df... ...Y7Pc9"
 --header
   'Content-Type: application/json'
   'X-Watson-Metadata: customer_id=abc'
 --data
   '{"input":{"text":"hello"}}'
  'https://gateway-eu-de.watsonplatform.net/assistant/api/v1/workspaces/{workspaceID}/message?version=2018-09-20'

您必须创建并设置客户ID,该ID可以是机器人用户的用户ID,UUID会话ID或其他唯一标识符。

如果您一直在发送没有客户ID的邮件,那么看起来这些邮件无法删除。

如果您按照here的说明使用用户分析,则建议将user_id设置为与客户ID相同的值。

如果使用NodeJS SDK,则在消息调用中的有效载荷中设置标头:

var payload = {
  workspace_id: workspace,
  context: req.body.context || {},
  input: req.body.input || {}
}
payload.headers = {'X-Watson-Metadata': `customer_id=${req.session.id}`}
assistant.message(payload, (err, data) => {
...