#API
#Структура запроса
Использование API предполагает отправку POST–запросов с набором JSON–параметров по адресу https://neuro-semantic.ru/[адрес запроса]
, где[адрес запроса]
указывается в описании нужного запроса.
#Структура ответа
В качестве ответа на любой запрос по корректному адресу возвращается JSON–структура данных с ответом.
Структура ответа всегда однообразна и содержит следующие атрибуты:
поле | описание |
---|---|
status | Числовой код результата выполнения операции.0 в случае отсутствия ошибок, либо код ошибки. |
error | Короткое описание ошибки, если она произошла. |
data | JSON–структура с данными ответа, если они есть. |
#Алгоритм проведения расчета
Анализ текстов с помощью API выполняется в 2 шага:
- создание запроса;
- получение результатов запроса по идентификатору.
#Пользователь
#Информация о балансе
Возвращает остаток средств на балансе пользователя.
Адрес:/api/user/balance
Параметры:
поле | описание |
---|---|
secret | Обязательный. Секретный ключ пользователя. |
Структура данных ответа в полеdata
:
поле | описание |
---|---|
user_balance | Баланс аккаунта пользователя. |
#История баланса
Возвращает историю списаний и пополнений баланса пользователя.
Адрес:/api/user/balance/history
Параметры:
поле | описание |
---|---|
secret | Обязательный. Секретный ключ пользователя. |
Структура данных ответа в полеdata
:
поле | описание |
---|---|
[...] | Массив объектов с историей пополнений и списаний. |
Структура объекта в массиве данных истории баланса пользователя:
поле | описание |
---|---|
date_complete | Дата и время операции. |
descr | Описание типа операции. |
value | Сумма операции. |
#История запросов
Возвращает историю запросов к сервису.
Адрес:/api/history/get
Параметры:
поле | описание |
---|---|
secret | Обязательный. Секретный ключ пользователя. |
Структура данных ответа в полеdata
:
поле | описание |
---|---|
[...] | Массив с историей запросов пользователя. |
Структура объекта в массиве данных истории запросов пользователя:
поле | описание |
---|---|
calc_quality | Качество определения. |
calc_type | Тип расчета.classify — классификация по теме,sentiment — анализ тональности,emcol — анализ эмоционального окраса. |
date_complete | UTC дата и время окончания расчета запроса в формате “ГГГГ.ММ.ДД ЧЧ:ММ:СС”. |
date_create | UTC дата и время поступления запроса в формате “ГГГГ.ММ.ДД ЧЧ:ММ:СС”. |
request_ip | IP–адрес источника запроса. |
texts_amount | Количество текстов распознанных для анализа. |
texts_processed | Количество проанализированных текстов. |
transaction_id | Уникальный идентификатор запроса. |
transaction_price | Стоимость запроса. |
transaction_status | Статус транзакции: 10 — в очереди, 20 — рассчитывается, 30 — рассчитан. |
#Расчет
#Получение результата
Получение данных о созданном ранее расчете.
Адрес:/api/transaction/get
Параметры:
поле | описание |
---|---|
transaction_id | Обязательный. Идентификатор запроса. |
secret | Обязательный. Секретный ключ пользователя. |
Структура данных ответа в полеdata
: объект сJSON–структурой данных о транзакции.
#Создание транзакции
Адрес:/api/transaction/create
В случае расчета ММК обязательным параметром при создании транзакции является тема по которой производится классификация. Тема должна быть передана в видеJSON–структуры. Подобное необходимо для сохранения возможности восстановить объект анализа в случае изменения или удаления темы.
Для получения JSON–структур всех тем пользователя можно воспользоваться запросомполучения списка тем.
Параметры:
поле | описание |
---|---|
calc_type | Обязательный. Тип расчета:classify — ММК,sentiment — тональность,emcol — эмоциональный окрас,wordfreq — частотность слов |
theme_id | Идентификатор темы для анализа. Обязателен в случае расчета ММК. |
request_data | JSON–структура с даннымитемыили числом словосочетаний для анализа частотности слов. |
secret | Обязательный. Секретный ключ пользователя. |
texts | Обязательный. Тексты для анализа. |
texts_splitter | Опциональный. Символ-разделитель текстов. |
Структура данных ответа в полеdata
: объект сJSON–структурой данных о транзакции.
#Типы расчета
#Получение данных о типах запросов
Получение списка типов запросов со всеми вариантами их названий и стоимостями.
Адрес:/api/calc_types/get
Входные параметры отсутствуют.
Структура данных ответа в полеdata
содержитJSON–объект с данными о типах запросов.
#Сущности
#Обновление сущностей темы
Позволяет добавить, обновить или удалить сущности выбранной темы.
Адрес:/api/entities/update
Параметры:
поле | описание |
---|---|
entities | Опциональный. Массив сJSON–объектами сущностей. |
secret | Обязательный. Секретный ключ пользователя. |
theme_id | Обязательный. Идентификатор темы, которой принадлежат редактируемые сущности. |
Структура данных ответа в полеdata
отсутствует.
#Темы
#Создание
Адрес:/api/themes/create
Параметры:
поле | описание |
---|---|
descr | Опциональный. Описание сущности. |
directory_id | Обязательный. Идентификатор каталога, в котором находится тема.id корневого каталога равен 0. |
entities | Опциональный. Массив с JSON–структурами сущностей. |
secret | Обязательный. Секретный ключ пользователя. |
theme_id | Обязательный. Идентификатор темы для редактирования. |
title | Обязательный. Название сущности. |
Структура данных ответа в полеdata
содержитJSON–объект с данными темы.
#Редактирование
Позволяет отредактировать название и описание темы, а также ее сущности.
Адрес:/api/themes/update
Параметры:
поле | описание |
---|---|
descr | Опциональный. Описание сущности. |
entities | Опциональный. Массив с JSON–структурами сущностей. |
secret | Обязательный. Секретный ключ пользователя. |
theme_id | Обязательный. Идентификатор темы для редактирования. |
title | Обязательный. Название сущности. |
Структура данных ответа в полеdata
отсутствует.
#Список
Возвращает список тем пользователя.
Адрес:/api/themes/get
Параметры:
поле | описание |
---|---|
secret | Обязательный. Секретный ключ пользователя. Для получения системных тем, необходимо передать значение -1. |
with_system | Опциональный. Булевый флаг загрузки системных сущностей. Если указан, то системные темы будут добавлены к темам пользователя. |
Структура данных ответа в полеdata
содержит массивJSON–объектов с данными темы.
#Удаление
Адрес:/api/themes/delete
Параметры:
поле | описание |
---|---|
secret | Обязательный. Секретный ключ пользователя. |
theme_id | Обязательный. Идентификатор темы для удаления. |
Структура данных ответа в полеdata
отсутствует.
#Каталоги
#Создание
Адрес:/api/directory/create
Параметры:
поле | описание |
---|---|
secret | Обязательный. Секретный ключ пользователя. |
root_id | Обязательный. Идентификатор каталога, в котором находится каталог. |
title | Обязательный. Название каталога. |
Структура данных ответа в полеdata
отсутствует.
#Редактирование
Позволяет изменить название каталога.
Адрес:/api/directory/update
Параметры:
поле | описание |
---|---|
secret | Обязательный. Секретный ключ пользователя. |
dir_id | Обязательный. Идентификатор каталога. |
new_title | Обязательный. Новое название каталога. |
Структура данных ответа в полеdata
отсутствует.
#Список
Возвращает список каталогов и тем, содержащихся в каталоге.
Адрес:/api/directory/get
Параметры:
поле | описание |
---|---|
secret | Обязательный. Секретный ключ пользователя. |
id | Опциональный. Идентификатор каталога. Если не указан, значение будет равно идентификатору корневого каталога — 0. |
recursive | Опциональный. Булевый флаг загрузки содержимого каталога. Если указан, то содержимое будет браться из заданного каталога, иначе — из корневого. |
with_system | Опциональный. Булевый флаг загрузки системных сущностей. Если указан, то системные темы будут добавлены к темам пользователя. |
Структура данных ответа в полеdata
содержит массив JSON–объектов сданными каталоговиданными тем.
#Удаление
Адрес:/api/directory/delete
Параметры:
поле | описание |
---|---|
secret | Обязательный. Секретный ключ пользователя. |
dir_id | Обязательный. Идентификатор каталога. |
Структура данных ответа в полеdata
отсутствует.
#JSON–структуры данных
#Результаты расчета
Представляет собойJSON–объект темы,объекты сущностейкоторой содержат дополнительные поля:
texts
— тексты, соотнесенные с сущностью;texts_amount
— количество текстов, соотнесенных с сущностью;texts_percent
— количество текстов, соотнесенных с сущностью, выраженное в процентах от общего количества текстов в расчете.
Кроме этого набор сущностей темы, по которой производился расчет, дополняется сущностьюНе распознано
, которой сопоставляются все тексты, которые не удалось классифицировать. Объект сущностиНе распознано
обладает теми же атрибутами, что и обычные сущности.
#Содержимое каталога
поле | описание |
---|---|
directory_id | Идентификатор каталога. Идентификатор корневого каталога равен 0. |
title | Название каталога. |
user_uuid | Идентификатор пользователя владельца каталога. |
root_id | Идентификатор каталога, в котором находится каталог. |
#Сущность
поле | описание |
---|---|
associations | Слова–ассоциации, слова строгого соответствия и стоп–слова для сущности. |
descr | Опциональное описание сущности. |
texts | Появляется при наличии результатов. Массив с текстами, отнесенными к сущности. |
texts_amount | Появляется при наличии результатов. Количество текстов, отнесенных к сущности. |
texts_percent | Появляется при наличии результатов. Процентное количество текстов, отнесенных к сущности, от общего количества текстов распознанных для классификации. |
title | Название сущности. |
#Тема
поле | описание |
---|---|
descr | Описание темы. |
entities | Массивобъектов сущностейтемы. |
theme_id | Идентификатор темы в базе данных сервиса. |
title | Название темы. |
user_uuid | Идентификатор пользователя владельца темы. В случае значенияnull тема является системной. |
#Тип запроса
поле | описание |
---|---|
calc_type | Тип расчета.classify — классификация по теме,sentiment — анализ тональности,emcol — анализ эмоционального окраса. |
short_name | Аббревиатура типа расчета.ММК — классификация по теме,ТО — анализ тональности,ЭО — анализ эмоционального окраса. |
long_name | Полное название типа расчета. |
price | Стоимость анализа 1 текста длиной до 2.000.000 символов. классификация по теме — 1.0 ₽, анализ тональности — 0.5 ₽,анализ эмоционального окраса - — 0.5 ₽. |
#Транзакция
поле | описание |
---|---|
calc_quality | Качество определения для запроса. |
calc_type | Тип расчета.classify — классификация по теме,sentiment — анализ тональности,emcol — анализ эмоционального окраса. |
date_create | UTC дата и время поступления запроса. |
date_complete | UTC дата и время окончания расчета запроса. |
is_paid | Флаг оплаты транзакции. |
transaction_id | Уникальный идентификатор транзакции. |
request_data | JSON–структура с даннымитемыили числом словосочетаний для анализа частотности слов. |
request_ip | IP–адрес источника запроса. |
request_raw | Исходный вариант текста для анализа. |
result_data | JSON–структура с результатами расчета. |
result_entities | Массив сущностей, содержащий корневую сущность для расчета и сущность “Не распознано”. |
texts_amount | Общее количество текстов, переданных на обработку. |
texts_processed | Количество проанализированных текстов. |
texts_splitter | Символ–разделитель текстов. |
transaction_price | Стоимость транзакции. |
transaction_status | Статус транзакции: 10 — в очереди, 20 — рассчитывается, 30 — рассчитан. |
transaction_title | Опциональное название запроса. |
#Коды ошибок
код | расшифровка | описание |
---|---|---|
2 | Ошибка сервера | При обработке запроса произошла ошибка на стороне сервера. |
1001 | Пользователь не авторизован | Неверно указан секретный ключ пользователя. |
2001 | Невалидные данные | Некорректные данные в запросе. |
2100 | Отрицательный баланс | Баланс пользователя меньше нуля. |
2200 | Превышен лимит длины текста для анализа | Суммарная длина общего текста запроса превышает установленный лимит. |