View file | ||
---|---|---|
|
View file | ||
---|---|---|
|
View file | ||
---|---|---|
|
View file | ||
---|---|---|
|
Table of Contents |
---|
API для переписки и управления сервисами AutoFAQ
...
от имени пользователя вести переписку с сервисом AutoFAQ, включая переписку с ботом и операторами сервиса
создавать рассылки пользователям
управлять настройками сервиса
...
KB CRUD API для управления
...
Базами Знаний /core-api/crud/
CRUD API служит для создания Баз Знаний, наполнения их документами и публикации (design-time).
...
Создание. БЗ имеет имя, настройки языка, режима дообучения и apikey service_token для доступа к опубликованному сервису QNA.
Наполнение документами. Документ - это (вопрос, ответ, опционально формулировки вопроса, файловые атачи)
Публикация. Опубликованная БЗ предоставляет сервис ответов на вопросы (см QNA API ниже)
Редактирование контента, модерация и прием рекоммендаций документов и формулировок.
Удаление БЗ
Аутентификация
Возможны 2 варианта аутентификации
jwt cookie полученная при авторизации в UI на странице
/login
либо через API вызов/api/ext/v2/login
user_token
- строковый ключ пользователя (access token, apikey) можно узнать
...
у администратора.
При использовании user_token
может быть передан несколькими способами:
Предпочтительный: Standard Basic Auth HTTP header -
Authorization: Bearer {user_token}
Альтернативный: Private HTTP header
AUTOFAQ-User-Token: {user_token}
Для отладки: Через URL query query parameter -
user_token={user_token}
Квоты
100 запросов в минуту
100000 запросов в день
...
Коды ошибок
Code Block |
---|
response http code - 400
response content type - json
response json.error === 'invalid_excel'
response json.message === "Неизвестный формат файла"
Текст ошибки пользователю: "Некорректный XLS файл"
response http code - 400
response content type - json
response json.error === 'invalid_excel'
response json.message === "Файл должен содержать обязательные колонки 'наименование','ответ' и 'вопрос 1'"
Текст ошибки пользователю: "Файл должен содержать обязательные колонки 'наименование','ответ' и 'вопрос 1'"
response http code - 400
response content type - json
response json.error === 'similar_paraphrase'
Текст ошибки пользователю: `Схожая формулировка "${json.similar_paraphrase}" (${json.similar_paraphrase_id}) уже существует в документе ${json.similar_document_id} БЗ ${json.similar_service_id}`
response http code - 400
response content type - json
response json.error === 'similar_document'
Текст ошибки пользователю: `Схожий документ уже существует ${json.similar_document_id} в БЗ ${json.similar_service_id} (формулировка "${json.similar_paraphrase}" (${json.similar_paraphrase_id}))`
response http code - 400
response content type - json
response json.error === 'invalid_parameter'
response json.message === "invalid snapshot format - not zipfile"
Текст ошибки пользователю: "Неизвестный формат файла"
response http code - 400
response content type - json
response json.error === 'invalid_parameter'
Текст ошибки пользователю: "Некорректный запрос API БЗ"
response http code - 404
response content type - json
response json.error === 'not_found'
Текст ошибки пользователю: "Ресурс не найден"
response http code - 403
response content type - json
response json.error === 'forbidden'
Текст ошибки пользователю: "Недостаточно прав для доступа: (`json.message`)"
response http code - 413
response content type - pain text
текст содержит "Request Entity Too Large"
Текст ошибки пользователю: "Размер файла превышает максимально допустимое значение"
(Превышен Лимит на уровне nginx-router)
response http code - 500
response content type - json
response json.message содержит текст "Request Entity Too Large"
Текст ошибки пользователю: "Размер файла превышает максимально допустимое значение"
(Превышен Лимит на уровне backend API БЗ)
response http code - 403
response content type - json
response json.error === 'services_quota_exceeded'
Текст ошибки пользователю: `Превышена квота на количество БЗ`
response http code - 403
response content type - json
response json.error === 'documents_quota_exceeded'
Текст ошибки пользователю: `Превышена квота на количество документов в БЗ`
response http code - 403
response content type - json
response json.error === 'paraphrases_quota_exceeded'
Текст ошибки пользователю: `Превышена квота на количество формулировок в документах БЗ`
response http code - 403
response content type - json
response json.error === 'resource_quota_exceeded'
Текст ошибки пользователю: `Превышена квота на ресурсы БЗ (${json.message})`
response http code - 403
response content type - json
response json.error === 'requests_quota_exceeded'
Текст ошибки пользователю: `Превышена квота на частоту обращений в API БЗ (${json.message})`
response http code - 500
response content type - json
response json.error === 'internal_error'
Текст ошибки пользователю: 'Внутренняя ошибка'
(Unhandled exception at backend)
|
Пример ошибок при добавлении/обновлении документов и формулировок
HTTP 400
Response JSON schema:
Code Block |
---|
{
"error": {"type": "string","enum": ["paraphrases_quota_exceeded", "similar_paraphrase", "similar_document"]},
"message": {"type": "string"},
"similar_service_id": {"type": "integer"},
"similar_document_id": {"type": "integer"},
"similar_paraphrase_id": {"type": "integer"},
"similar_paraphrase": {"type": "string"}
} |
error
similar_paraphrase - в этом документе уже существует похожая формулировка
similar_document - в другом документе уже существует похожая формулировка
paraphrases_quota_exceeded - превышено ограничение на количество формулировок в документе
similar_paraphrase_id
- ID схожей/конфликтующей формулировкиsimilar_document_id
- ID документа содержащегоsimilar_paraphrase_id
similar_service_id
- ID БЗ сожержащей документ сsimilar_paraphrase_id
message
- текст ошибки на английском языкеsimilar_paraphrase
- текст схожей/конфликтующей формулировки (из similar_service_id/similar_document_id/similar_paraphrase_id)
KB QNA API /core-api/query/
QNA API служит для запросов на классификацию в опубликованной базе знаний и отправке обратной связи для дообучения базы знаний (run-time).
...
Каждая опубликованная БЗ имеет собственный ключ доступа к QNA API - service_token
- строковый ключ (access token, apikey)
Ключ service_token
можно получить из UI на странице настроек БЗ либо из CRUD API запросом CRUD API GET /core-api/crud/api/v1/services/{service_id}
service_token
передается в теле запроса вместе с запрашиваемой БЗ service_id
:
...
Подробнее примеры использования см вызовы методов /query и /click во вложении в демо скипте test_winnie_pooh.py
Пример использования batch query API
Ключ service_token
можно получить из UI на странице настроек БЗ либо из CRUD API запросом CRUD API GET /core-api/crud/api/v1/services/{service_id}
Code Block |
---|
curl -H "AUTOFAQ-User-Token: {user_token}" https://chat.autofaq.ai/core-api/crud/api/v1/services/{service_id} |
Квоты
Квоты на доступ к одной опубликованной БЗ (service_token
):
900 запросов в минуту
200000 запросов в день
Примеры
Тривиальный пример жизненного цикла см скрипт test_winnie_pooh.py во вложении выше на этой странице .
...
Code Block |
---|
CRUDAPI_URL=https://api.autofaq.ai/api/v1 USER_TOKEN=9d9d68ee3cc14c4d997f7ca076ed14ac \ python3 tutorial_crud_paraphrase.py |
Коды ошибок при добавлении/обновлении документов и формулировок
HTTP 400, 403, 401
JSON response:
Code Block |
---|
{
"error": {"type": "string","enum": ["paraphrases_quota_exceeded", "similar_paraphrase", "similar_document"]},
"message": {"type": "string"},"similar_service_id": {"type": "integer"},
"similar_document_id": {"type": "integer"},
"similar_paraphrase_id": {"type": "integer"},"similar_paraphrase": {"type": "string"}
} |
Описание error:
paraphrases_quota_exceeded - превышено ограничение на количество формулировок в документе
similar_paraphrase - в этом документе уже существует похожая формулировка
similar_document - в другом документе уже существует похожая формулировка
...