API
API для переписки и управления сервисами AutoFAQ
API позволяет:
от имени пользователя вести переписку с сервисом AutoFAQ, включая переписку с ботом и операторами сервиса
создавать рассылки пользователям
управлять настройками сервиса
Knowledge base CRUD API для управления базами знаний /core-api/crud/
CRUD API служит для создания Баз Знаний, наполнения их документами и публикации (design-time).
Для удобства все PUT JSON вызовы работают как REST JSON PATCH - то есть можно передать только те поля, значения которых необходимо обновить (нет нужды передавать полное состояние)
Жизненный цикл БЗ:
Создание. БЗ имеет имя, настройки языка, режима дообучения и apikey service_token для доступа к опубликованному сервису QNA.
Наполнение документами. Документ - это (вопрос, ответ, опционально формулировки вопроса, файловые атачи)
Публикация. Опубликованная БЗ предоставляет сервис ответов на вопросы (см QNA API ниже)
Редактирование контента, модерация и прием рекоммендаций документов и формулировок.
Удаление БЗ
Аутентификация
user_token
- строковый ключ пользователя (access token, apikey) можно узнать в UI получить в разделе "Настройки” -> “Параметры прямого подключения к базам знаний через API"
При вызове API метода токен может быть передан несколькими способами:
Предпочтительный: 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 запросов в день
Knowledge base QNA API /core-api/query/
QNA API служит для запросов на классификацию в опубликованной базе знаний и отправке обратной связи для дообучения базы знаний (run-time).
API позволяет
отправить запрос на классификацию текста по одной базе знаний
отправить пакетный запрос на классификацию по нескольким базам знаний сразу
отправить информацию для дообучения базы знаний (расширению обучающей выборки существующих записей или созданию новых записей)
Аутентификация
Каждая опубликованная БЗ имеет собственный ключ доступа к QNA API - service_token
- строковый ключ (access token, apikey)
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
Ключ service_token
можно получить из UI на странице настроек БЗ либо из CRUD API запросом CRUD API GET /core-api/crud/api/v1/services/{service_id}
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 во вложении выше на этой странице .
Пример добавления документа с формулировками:
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)