Объекты
ChatEventError
Ошибка после начала потока. Поток заканчивается без done, и вопрос не сохраняется в журнал. Когда экземпляр сервера останавливается для обновления (code = server_restart, retry: true), ответ помечается отменённым и заново не формируется, поэтому тот же запрос можно отправить ещё раз без изменений.
Поля
type"error"обязательноmessagestringобязательноretrybooleantrue— ответ не завершился по вине сервера (экземпляр остановился для обновления,code=server_restart), и запрос можно повторить без изменений. Для других кодов отсутствует.answer_idstringID объекта ответа, если ответ уже создан.
detailsobjectПодробности. Для
sources_inaccessibleиout_of_scope:hidden(число недоступных источников),can_request(доступ можно запросить черезPOST /v1/access-requestsсanswer_id),reason(то же, что поле события), а дляout_of_scopeещё иcollections(списокCollectionRef, где ответ есть). Дляassistant.unavailable, когда ассистент занят (причинаrate_limited):retry_after— пауза перед повтором в секундах, как в429 answers.engine_busyдо начала потока. Прежнего кода ошибки вdetailsнет.Поля
hiddenintegercan_requestbooleanreasonstringcollectionsarray of CollectionRefretry_afterinteger
reasonstringКод причины для сообщения на языке интерфейса (расширяемый, произвольная строка). Коды ошибок ассистента:
timeout,rate_limited,upstream_unavailable,license_blocked,license_restricted,forbidden,canceled,internal,bad_request,conflict,not_found,too_large,unprocessable,not_implemented,server_restart. Коды Sursa:engine_unavailable(ассистент недоступен),engine_closed(поток ассистента закрылся без результата),sources_inaccessible,server_restart(экземпляр Sursa остановился для обновления),sources_unavailable(скрыт из-за удалённых или архивных источников),out_of_scope(источники есть только вне выбранной коллекции),superseded(вместе сcanceled: ответ заменён повтором с тем жеrequest_id) иawaiting_classification(скрыт, потому что документ ещё обрабатывается: его категория доступа ещё не определена, ответ станет доступен после классификации, а запросить доступ нельзя, поэтомуcan_request=false). Показывайте сообщение по коду. Для незнакомого кода показывайте общее сообщение поcode;message— только запасной вариант для клиентов без переводов, и его язык не гарантирован.