Platform API
API верхнего уровня для подключения к платформе, настройки каналов, пользователей, получения списка диалогов по каналам отправки запроса к группе Баз Знаний.
API Рассылок
Knowledge base CRUD API (design-time).
CRUD API служит для создания Баз Знаний, наполения их документами и публикации.
Жизненный цикл БЗ:
Создание. БЗ имеет имя, настройки языка, режима дообучения и 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}
Для удобства все PUT JSON вызовы работают как REST JSON PATCH - то есть можно передать только те поля, значения которых необходимо обновить (нет нужды передавать полное состояние)
REST JSON CRUD API: https://app.swaggerhub.com/apis-docs/denis_kiselev/autofaq_crud_api/1.0
Квоты
100 запросов в минуту
100000 запросов в день
Knowledge base QNA API (run-time).
QNA API служит для запросов к опубликованной базе знаний (БЗ) и сбора обратной связи.
Отправить запрос в данную БЗ: https://autofaq.ai/api_doc#rec56009662
Отправить запрос сразу в несколько БЗ: Пример QNA batch query
Отправить обратную связь: https://autofaq.ai/api_doc#rec56022196
Аутентификация
service_token
- строковый ключ опубликованный БЗ (access token, apikey).
Как узнать service_token
для доступа опубликованной БЗ можно получить зная user_token
запросом 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
используется для QNA API query.
Пример
service_token
передается в теле запроса JSON POST query.
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 и в документации https://autofaq.ai/api_doc#rec56009662
Квоты
Квоты на доступ к одной опубликованной БЗ (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)