API для переписки и управления сервисами AutoFAQ
API позволяет:
от имени пользователя вести переписку с сервисом AutoFAQ, включая переписку с ботом и операторами сервиса
создавать рассылки пользователям
управлять настройками сервиса
KB CRUD API для управления Базами Знаний /core-api/crud/
CRUD API служит для создания Баз Знаний, наполнения их документами и публикации (design-time).
Для удобства все PUT JSON вызовы работают как REST JSON PATCH - то есть можно передать только те поля, значения которых необходимо обновить (нет нужды передавать полное состояние)
Жизненный цикл БЗ:
Создание. БЗ имеет имя, настройки языка, режима дообучения и apikey service_token для доступа к опубликованному сервису QNA.
Наполнение документами. Документ - это (вопрос, ответ, опционально формулировки вопроса, файловые атачи)
Публикация. Опубликованная БЗ предоставляет сервис ответов на вопросы (см QNA API ниже)
Редактирование контента, модерация и прием рекоммендаций документов и формулировок.
Удаление БЗ
Аутентификация
Возможны 2 варианта аутентификации
user_token
- строковый ключ пользователя (access token, apikey) можно узнать у администратора.jwt cookie полученная при авторизации в UI на странице
/login
либо через API вызов/api/ext/v2/login
При использовании user_token
может быть передан несколькими способами:
Предпочтительный: Standard Basic Auth HTTP header -
Authorization: Bearer {user_token}
Альтернативный: Private HTTP header
AUTOFAQ-User-Token: {user_token}
KB QNA API /core-api/query/
QNA API служит для запросов на классификацию в опубликованной базе знаний и отправке обратной связи для дообучения базы знаний (run-time).
API позволяет
отправить запрос на классификацию текста по одной базе знаний
отправить пакетный запрос на классификацию по нескольким базам знаний сразу
отправить информацию для дообучения базы знаний (расширению обучающей выборки существующих записей или созданию новых записей)
Аутентификация
Каждая опубликованная БЗ имеет собственный ключ доступа к 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
:
curl -v -H "Content-Type: application/json" -XPOST https://chat.autofaq.ai/core-api/query/api/v1/query -d ' {"query": "привет, сколько стоит", "top_k": 3, "service_id": 107742, "service_token": "{service_token}"} '
Подробнее примеры использования см вызовы методов /query и /click во вложении в демо скипте test_winnie_pooh.py
Пример использования batch query API
Примеры
Тривиальный пример жизненного цикла см скрипт test_winnie_pooh.py во вложении выше на этой странице .
Пример добавления документа с формулировками:
CRUDAPI_URL=https://api.autofaq.ai/api/v1 USER_TOKEN=9d9d68ee3cc14c4d997f7ca076ed14ac \ python3 tutorial_crud_paraphrase.py
Коды ошибок при добавлении/обновлении документов и формулировок
HTTP 400, 403, 401
JSON response:
{ "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 - в другом документе уже существует похожая формулировка
similar_paraphrase - текст конфликтующей формулировки (из similar_service_id/similar_document_id/similar_paraphrase_id)