Каковы требования к параметру «Идентификатор клиента» в конечной точке диалога IBM Watson Dialog Service? [Блюмикс]

Чтобы начать диалог в WDS, конечная точка /conversation вызывается с client_id (целым числом), как описано в документация IBM

Однако, похоже, есть еще одно ограничение/требование к client_id. Если я передам client_id как 100000, это будет успешно; но если я пройду 400000, он выйдет из строя с {"code":400, "error": "The client_id specified is invalid. It does not exist."}

$ curl -i --data "client_id=190000" -X POST "http://.../v1/dialogs/40df25ae-xxx-yyy-zzz-ca7/conversation"

HTTP/1.1 201 Created
X-Backside-Transport: OK OK,OK OK

vs

$ curl -i --data "client_id=400000" -X POST "http://.../v1/dialogs/40df25ae-xxx-yyy-zzz-ca7/conversation"

HTTP/1.1 400 Bad Request
X-Backside-Transport: FAIL FAIL,FAIL FAIL
...
...
{"code":400, "error": "The client_id specified is invalid. It does not exist."}

Кажется, это недавняя проблема. Я пользуюсь сервисом и только недавно начал видеть эти ошибки.

Какие-то недавние изменения? И если да, то документально ли это?


person andkamau    schedule 05.12.2015    source источник


Ответы (2)


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

Вы можете проверить это, запустив:

curl -i -X POST "http://.../v1/dialogs/40df25ae-xxx-yyy-zzz-ca7/conversation"

больше чем единожды.

person German Attanasio    schedule 20.12.2015
comment
Да, я знаю, что это необязательный параметр. В моем случае я предпочитаю пройти его. У меня вопрос, есть ли какие-то требования/ограничения (помимо того, что это должно быть целое число). - person andkamau; 21.12.2015
comment
оставьте его пустым, потому что вы передаете его только тогда, когда создали его ранее. Таким образом, номер, который вы отправляете, должен быть создан службой, а не вами. Вы можете создать номер, как я предлагаю в своем ответе - person German Attanasio; 21.12.2015
comment
Только что протестировано. Это работает только в том случае, если вы передаете параметр client_id со значением пустым; но не работает, если вы вообще не передаете client_id (согласно вашему примеру). Так что это действительно обязательный параметр. Вводящая в заблуждение документация? Или я что-то упускаю? - person andkamau; 21.12.2015
comment
если вы не отправите client_id, это сработает. Я только что проверил. - person German Attanasio; 22.12.2015
comment
Поделитесь рабочим запросом. Мой, как указано в вопросе - person andkamau; 23.12.2015

Немецкий правильный. В вашем первоначальном вызове вы не должны проходить через client_id. Все, что вы должны передать, это dialog_id. Вы получите в ответе новый client_id, новый разговор_id и текстовый ответ, который будет вашим первым элементом вывода. В дальнейшем вы должны передать client_id, чтобы продолжить использование профиля пользователя, который ранее был связан с client_id, поэтому каждый раз, когда этот пользователь общается в чате, вы должны передавать один и тот же client_id, если хотите запомнить их.

Вы будете передавать один и тот же chat_id для всего сеанса, но сгенерируете новый (не передавая его) для последующих бесед с тем же пользователем.

person Mitch    schedule 06.01.2016