在改进部分(watsonplatform.net/eu-de/WA_INSTANCE_ID/workspaces/WA_WORKSPACE_ID/improve/userdata)的WA工作区中,我可以看到用户与我们的聊天机器人进行的所有对话。
我想尝试使用删除标记的数据 API 删除这些 - https://cloud.ibm.com/apidocs/assistant?curl=#delete-labeled-data
接口调用:
删除与指定客户 ID 关联的所有数据。方法 如果没有数据与客户 ID 关联,则不起作用。
在哪里可以找到客户 ID?
如文档中所述,您必须在/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、UUID 会话 ID 或某个其他唯一标识符。
如果您在没有客户 ID 的情况下发送消息,则看起来无法删除这些消息。
如果您使用此处所述的用户分析,那么我建议将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) => {
...