Какой идентификатор клиента используется для удаления журналов из рабочей области Watson Assistant? - PullRequest
0 голосов
/ 10 января 2019

В рабочей области 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:

удаляет все данные, связанные с указанным идентификатором клиента. Метод не действует, если с идентификатором клиента не связаны никакие данные.

Где я могу найти идентификатор клиента?

1 Ответ

0 голосов
/ 10 января 2019

Как указано здесь в документации , вы должны установить заголовок в ваших / POST-запросах / message, который связывает это сообщение с отправленным идентификатором клиента.

Пример:

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'

Вы должны создать и установить идентификатор клиента, который может быть идентификатором пользователя, идентификатором сеанса UUID или другим уникальным идентификатором для пользователя вашего бота.

Если вы отправляете сообщения без идентификатора клиента, это не похоже на то, что их можно удалить.

Если вы используете пользовательскую аналитику, как описано здесь , тогда я бы порекомендовал установить для user_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) => {
...
...