| Код | Описание |
|---|---|
200 | Операция успешно завершена |
400 | Плохой запрос |
401 | Не авторизован |
403 | Доступ запрещен - пользователь аутентифицирован, но не имеет прав на операцию |
404 | Не найдено |
409 | Конфликт с текущим состоянием ресурса |
500 | Другие ошибки |
Параметр {culture} отвечает за локализацию API, которая представляет собой код языка в соответствии со стандартом ISO 639-1.
Вызовы некоторых методов возвращают только информационные сообщения. В этом случае код состояния ответа HTTP всегда будет 200, а возвращаемое сообщение будет выглядеть следующим образом:
{
"message": "Операция успешно завершена"
}
где message - это сообщение от системы о результате выполнения какого-либо действия.
Если что-то пойдет не так во время вызова метода или выполнения, код состояния ответа HTTP всегда будет отличаться от 200. В этом случае возвращаемое сообщение будет выглядеть следующим образом:
{
"error": "Операция завершилась неудачей",
"errorCode": 1234
}
где error — это сообщение от системы, содержащее причину ошибки, а errorCode — числовой код, позволяющий клиенту программно различать ошибки. Поле errorCode равно -1 для неклассифицированных ошибок и совпадает с номером ошибки БД для SQL-исключений.
Для всех следующих методов этого API, если код состояния ответа HTTP не равен 200, будет возвращено сообщение об ошибке.
Коды сгруппированы по областям: 1xxx - аутентификация и учетная запись, 2xxx - проверка на заимствования, 3xxx - поисковый индекс, 4xxx - создание B2B-пользователя, 5xxx - права доступа, 6xxx - сервисы.
| Код ошибки | HTTP-статус | Сообщение об ошибке |
|---|---|---|
1000 | 500 | Пользователь не найден |
1001 | 400 | Не указано имя пользователя |
1002 | 400 | Не указан пароль |
1003 | 401 | Проверьте правильность введенных данных |
1004 | 401 | У пользователя нет доступа к API |
1005 | 401 | Учетная запись заблокирована |
2001 | 400 | Некорректное имя файла. Имя файла должно содержать расширение |
2002 | 400 | Файл пуст |
2003 | 400 | Не указано расширение файла |
2005 | 409 | Невозможно получить результат при текущем статусе проверки |
2006 | 404 | Проверка не найдена |
2007 | 500 | Нарушена целостность данных |
2008 | 500 | Не удалось сгенерировать ссылку |
2009 | 500 | Не удалось сгенерировать отчет |
3000 | 500 | У организации нет собственного поискового индекса. Для создания индекса обратитесь в техническую поддержку |
3001 | 400 | URL пуст |
3002 | 409 | Документ с таким URL уже есть в поисковом индексе |
3003 | 400 | Файл пуст |
3004 | 404 | Документа с таким URL нет в поисковом индексе |
4000 | 400 | Некорректные входные данные |
4001 | 400 | Выбранная роль недопустима |
4002 | 400 | Выбранный узел оргструктуры недопустим |
4003 | 400 | Пароль не соответствует политике безопасности |
5000 | 403 | Доступ к этой проверке запрещен |
5001 | 403 | У вас нет роли, необходимой для этого действия |
6000 | 400 | Некорректное имя файла. Имя файла должно содержать расширение |
6001 | 400 | Файл пуст |
6002 | 400 | Не указано расширение файла |
6003 | 400 | Страницы не переданы |
6004 | 400 | Ссылки не переданы |
6005 | 403 | Проверка библиографии не включена в тариф |
6006 | 400 | Слишком много ссылок |
6007 | 500 | Сервис недоступен |
6008 | 404 | Задача не найдена |
6009 | 403 | Определение ИИ не включено в тариф |
POST /{culture}/api/issue-access-token
метод позволяет получить токен для последующей аутентификации и авторизации в системе.
Content-Type: application/json
Запрос:
{
"username": "user@example.com",
"password": "64e09891d828"
}
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"expiration": "2077-01-01T00:00:00Z",
"token": "..."
}
где expiration — срок действия токена, а token — сам токен.
Токен, полученный на первом шаге, должен использоваться во всех перечисленных ниже методах API путем добавления заголовка Authorization со значением Bearer <Token>.
Пример заголовка в HTTP-запросе:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
где eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 это полученный токен.
Если учетная запись заблокирована, токен больше нельзя получить или перевыпустить (ошибка 1005), а выданные ранее токены перестают работать в течение минуты: методы отвечают кодом 401 без тела сообщения. В этом случае запросите новый токен - в ответе будет указана причина.
GET /{culture}/api/refresh-access-token
метод позволяет обновить токен аутентификации и авторизации в системе.
Authorization: Bearer <Token>
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"expiration": "2077-01-01T00:00:00Z",
"token": "..."
}
где expiration — срок действия токена, а token — сам токен.
Для продолжения работы с API необходимо предыдущий токен заменить на новый.
GET /{culture}/api/user-structures
метод получает полную иерархию организационных структур.
Authorization: Bearer <Token>
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"name": null,
"id": 0,
"childNodes": [
{
"name": "...",
"id": 1,
"childNodes": []
}
]
}
GET /{culture}/api/user-folders
метод получает полную иерархию папок пользователя.
Authorization: Bearer <Token>
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"name": null,
"id": 0,
"childNodes": [
{
"name": "...",
"id": 1,
"childNodes": []
}
]
}
POST /{culture}/api/create-b2b-user
метод позволяет аутентифицированному B2B-менеджеру или модератору программно создать и привязать нового пользователя к своей организации. Email пользователя всегда подтверждается автоматически. Если пароль указан, он устанавливается при создании; иначе на email пользователя отправляется ссылка на установку пароля.
Authorization: Bearer <Token> Content-Type: application/json
Этот метод доступен только для пользователей с ролью Manager или Moderator. Если у вызывающего нет одной из этих ролей, метод возвращает HTTP 403.
Запрос:
{
"username": "user@example.com",
"firstName": "Ivan",
"lastName": "Ivanov",
"description": "...",
"role": 3,
"nodeId": 1234,
"password": "P@ssw0rd!",
"dailyLimit": 10,
"subscriptionLimit": 100
}
| Поле | Описание | Обязательно |
|---|---|---|
username | Email пользователя, который создается или привязывается к организации | |
role | Идентификатор роли в организации. Передается как целочисленное значение enum. Допустимые значения: 3 (Преподаватель), 4 (Студент), 6 (Модератор), 7 (Супервизор), 8 (Эксперт) | |
firstName | Имя пользователя | |
lastName | Фамилия пользователя | |
description | Произвольное описание пользователя | |
nodeId | Идентификатор узла организационной структуры. Должен принадлежать дереву структуры менеджера | |
password | Пароль пользователя. Должен содержать не менее 8 символов и проходит проверку серверной политики паролей. Если указан — ссылка на установку пароля не отправляется. Если не указан — ссылка отправляется. Email подтверждается всегда автоматически | |
dailyLimit | Дневной лимит проверок на плагиат | |
subscriptionLimit | Общий лимит проверок на плагиат за период подписки |
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"userId": 1234,
"username": "user@example.com",
"subscriberId": 42,
"isNewUser": true,
"passwordSet": true,
"passwordResetEmailSent": false,
"message": "Пользователь создан и привязан к B2B-организации"
}
| Поле | Описание |
|---|---|
userId | Идентификатор пользователя в системе |
username | Email пользователя |
subscriberId | Идентификатор организации, к которой привязан пользователь |
isNewUser | true — пользователь создан в этом вызове. false — пользователь уже существовал и был привязан к организации |
passwordSet | true — пароль был передан в запросе и установлен пользователю |
passwordResetEmailSent | true — пользователю отправлено письмо со ссылкой на установку пароля |
message | Информационное сообщение о результате |
При ошибке ответ возвращается в стандартном формате API { "error": ..., "errorCode": ... }. Значения errorCode, специфичные для этого метода:
| Код ошибки | HTTP-статус | Сообщение об ошибке |
|---|---|---|
4000 | 400 | Некорректные входные данные |
4001 | 400 | Выбранная роль недопустима |
4002 | 400 | Выбранный узел оргструктуры недопустим |
4003 | 400 | Пароль не соответствует политике безопасности |
5001 | 403 | У вас нет роли, необходимой для этого действия |
6000 | 400 | Некорректное имя файла. Имя файла должно содержать расширение |
6001 | 400 | Файл пуст |
6002 | 400 | Не указано расширение файла |
6003 | 400 | Страницы не переданы |
6004 | 400 | Ссылки не переданы |
6005 | 403 | Проверка библиографии не включена в тариф |
6006 | 400 | Слишком много ссылок |
6007 | 500 | Сервис недоступен |
6008 | 404 | Задача не найдена |
6009 | 403 | Определение ИИ не включено в тариф |
PUT /{culture}/api/add-to-search-index
метод позволяет добавить документ в поисковый индекс, который закреплен за пользователем или его организацией.
Authorization: Bearer <Token> Content-Type: application/json
Запрос:
{
"filename": "example.txt",
"title": "Pacifica`s Braindances",
"author": "Victor Vector, Dakota Smith",
"year": 2024,
"url": "https://example.com/doc/9fe76511d0ee",
"body": "0YHRitC10YjRjCDQttC1INC10YnRkSDRjdGC0LjRhSDQvNGP
0LPQutC40YUg0YTRgNCw0L3RhtGD0LfRgdC60LjRhSDQsdGD0
LvQvtC6LCDQtNCwINCy0YvQv9C10Lkg0YfQsNGO"
}
| Поле | Описание | Обязательно |
|---|---|---|
filename | Имя файла, обязательно с расширением | |
url | URL-адрес документа может быть виртуальным, но уникальным | |
body | Тело файла в формате Base64 | |
title | Название документа | |
author | Авторы документа через запятую | |
year | Год создания документа |
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"message": "Документ добавлен в поисковый индекс"
}
DELETE /{culture}/api/remove-from-search-index
метод позволяет удалить документ из поискового индекса, закрепленного за пользователем или его организацией.
Authorization: Bearer <Token> Content-Type: application/json
Запрос:
{
"url": "https://example.com/doc/9fe76511d0ee"
}
где url - это URL документа в поисковом индексе.
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"message": "Документ удален из поискового индекса"
}
/{culture}/api/remove-from-search-index?refresh=false
/{culture}/api/add-to-search-index?refresh=false
Для массового добавления или удаления документов необходимо использовать вышеперечисленные методы с параметром refresh и установленным значением в false. Чтобы применить изменения после массовых операций, нужно вызвать метод обновления индекса /{culture}/api/refresh-search-index.
GET /{culture}/api/refresh-search-index
метод позволяет обновить поисковый индекс, закрепленный за пользователем или его организацией.
Authorization: Bearer <Token>
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"message": "Поисковый индекс обновлен"
}
GET /{culture}/api/clear-search-index
метод позволяет удалить все документы из поискового индекса, закрепленного за пользователем или его организацией.
Authorization: Bearer <Token>
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"message": "Поисковый индекс очищен"
}
POST /{culture}/api/plagiarism-check
метод позволяет отправить документ на проверку в систему обнаружения заимствований.
Authorization: Bearer <Token> Content-Type: application/json
Запрос:
{
"structureId": 1000,
"folderId": 1,
"filename": "example.txt",
"author": "Anders Helman, Brandon Frost",
"year": 2024,
"body": "0YHRitC10YjRjCDQttC1INC10YnRkSDRjdGC0LjRhSDQvNGP
0LPQutC40YUg0YTRgNCw0L3RhtGD0LfRgdC60LjRhSDQsdGD0
LvQvtC6LCDQtNCwINCy0YvQv9C10Lkg0YfQsNGO",
"disableDuplicateChecking": false
}
| Поле | Описание | Обязательно |
|---|---|---|
structureId | Идентификатор организационной структуры | |
folderId | Идентификатор пользовательской папки | |
filename | Имя файла, обязательно с расширением | |
author | Авторы документа через запятую | |
year | Год создания документа | |
body | Тело файла в формате Base64 | |
disableDuplicateChecking | Отключение проверки на дублирование |
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"id": 1000,
"state": 2
}
где id - это идентификатор проверки, а state - текущее состояние проверки.
При обнаружении дубликата (state = 1) ответ также будет содержать идентификатор исходной проверки:
{
"id": 1001,
"state": 1,
"duplicateOf": 1000
}
где duplicateOf — идентификатор исходной проверки, результаты которой можно получить. Поле duplicateOf присутствует только при state = 1 и отсутствует в остальных случаях.
GET /{culture}/api/plagiarism-check-se/{id}
метод позволяет получить текущее состояние проверки.
Authorization: Bearer <Token>
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"id": 1000,
"state": 2
}
где id - это идентификатор проверки, а state - текущее состояние проверки.
Статус доступен только для проверок, к которым у вас есть доступ, иначе возвращается ошибка 5000.
| Код состояния | Описание |
|---|---|
1 | Дубликат |
2 | В очереди на проверку |
3 | Отменено |
4 | В процессе |
5 | Выполнено |
6 | Ошибка |
GET DELETE /{culture}/api/plagiarism-check-rs/{id}
метод позволяет получить или удалить результат проверки.
Authorization: Bearer <Token>
| Способ | Описание |
|---|---|
DELETE | Удалить результат проверки |
GET | Получить результат проверки |
Если операция успешно выполнена при вызове метода GET, ответное сообщение будет выглядеть следующим образом:
{
"isContainsDeception": false,
"hasAi": true,
"hasForeignAgent": false,
"metrics": {
"originality": 0.0,
"citation": 0.0,
"bibliography": 0.0,
"match": 1.0,
"ai": 0.37
},
"sources": [
{
"metrics": {
"citation": 0.0,
"match": 1.0
},
"url": "https://www.example.org/abcd/1970.00001",
"title": null,
"author": null,
"year": null
},
...
]
}
| Поле | Описание |
|---|---|
isContainsDeception | Указывает на то, что используются технические средства повышения оригинальности |
hasAi | true, если обнаружен текст, сгенерированный ИИ; null, если распознавание ИИ не проводилось |
hasForeignAgent | true, если в тексте найдены иноагенты; false, если не найдены или проверка по реестрам не входила в тариф; null у старых проверок |
metrics | Показатели для документа или отдельного источника |
sources | Источники, из которых были обнаружены заимствования |
| Поле | Описание |
|---|---|
originality | Доля оригинальности |
citation | Доля цитирования |
match | Доля заимствований |
bibliography | Доля библиографии; только у документа. У документа originality, citation, bibliography и match в сумме дают 1, как в веб-интерфейсе |
ai | Доля текста, сгенерированного ИИ, от 0 до 1; только у документа, в сумму с остальными метриками не входит; null, если распознавание ИИ не проводилось |
| Поле | Описание |
|---|---|
url | Адрес ресурса, на котором находится документ или страница |
title | Название |
author | Авторы |
year | Год создания |
Значения по ИИ и иноагентам учитывают правки проверяющего в средстве просмотра отчета; там же - подробности, ссылки на средство просмотра описаны ниже.
Если проверка завершилась неудачей, метод возвращает сообщение об ошибке.
GET /{culture}/api/plagiarism-check-rp/{id}/extended
метод позволяет получить расширенный отчет о проверке в формате PDF.
Authorization: Bearer <Token>
| Параметр | Описание | Обязательно |
|---|---|---|
utc | Смещение UTC в минутах (например, 180 для UTC+3, -300 для UTC-5). Корректирует дату и время в отчете. |
Примеры:
/{culture}/api/plagiarism-check-rp/{id}/extended?utc=300
/{culture}/api/plagiarism-check-rp/{id}/extended?utc=-600
Возвращает файл формата PDF с заголовком HTTP content-type: application/pdf.
GET /{culture}/api/plagiarism-check-rp/{id}/summary
метод позволяет получить краткий отчет о проверке в формате PDF. Если вы хотите включить в отчет оригинальный документ, просто добавьте ?withOriginal=true.
Authorization: Bearer <Token>
| Параметр | Описание | Обязательно |
|---|---|---|
withOriginal | Включить оригинальный документ в отчет | |
utc | Смещение UTC в минутах (например, 180 для UTC+3, -300 для UTC-5). Корректирует дату и время в отчете. |
Примеры:
/{culture}/api/plagiarism-check-rp/{id}/summary?utc=300
/{culture}/api/plagiarism-check-rp/{id}/summary?utc=-600&withOriginal=true
Возвращает файл формата PDF с заголовком HTTP content-type: application/pdf.
GET /{culture}/api/plagiarism-check-rp/{id}/reference
метод позволяет получить справку в формате PDF.
Authorization: Bearer <Token>
| Параметр | Описание | Обязательно |
|---|---|---|
utc | Смещение UTC в минутах (например, 180 для UTC+3, -300 для UTC-5). Корректирует дату и время в отчете. |
Примеры:
/{culture}/api/plagiarism-check-rp/{id}/reference?utc=300
/{culture}/api/plagiarism-check-rp/{id}/reference?utc=-600
Возвращает файл формата PDF с заголовком HTTP content-type: application/pdf.
[editable]GET /{culture}/api/permanent-viewer/{id}
метод возвращает постоянную ссылку для открытия средства просмотра отчета.
Authorization: Bearer <Token>
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"permanent-link": "https://example.com/document/[\d]"
}
где permanent-link - это бессрочная ссылка на средство просмотра отчетов.
[readonly]GET /{culture}/api/one-time-viewer/{id}
метод возвращает одноразовую ссылку для открытия средства просмотра отчета.
Authorization: Bearer <Token>
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"one-time-link": "https://example.com/document/[\d]",
"expires": "2024-03-21T20:17:00.0903957Z"
}
где one-time-link - это одноразовая ссылка на средство просмотра отчета, а expires - дата и время истечения срока действия ссылки
Сервисы ниже - те же, что работают внутри проверки на заимствования, но доступны по отдельности. Проверка библиографии и определение ИИ требуют соответствующих опций тарифа.
POST /{culture}/api/document-text
метод извлекает текст документа постранично. OCR применяется, если включен в тарифе.
Authorization: Bearer <Token> Content-Type: application/json
Запрос:
{
"filename": "example.pdf",
"body": "JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c..."
}
| Поле | Описание | Обязательно |
|---|---|---|
filename | Имя файла, обязательно с расширением | |
body | Тело файла в формате Base64 |
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"pages": [
"...",
"..."
]
}
| Поле | Описание |
|---|---|
pages | Тексты страниц в порядке документа |
POST /{culture}/api/bibliography
метод находит библиографические ссылки в текстах страниц, например полученных методом извлечения текста, и возвращает их тексты в порядке появления.
Authorization: Bearer <Token> Content-Type: application/json
Запрос:
{
"pages": [
"...",
"..."
]
}
| Поле | Описание | Обязательно |
|---|---|---|
pages | Тексты страниц, например из метода извлечения текста |
В случае успешного выполнения ответ будет выглядеть следующим образом:
[
"Smith J. Braindances of Pacifica. 2024. P. 12-19.",
"..."
]
| Поле | Описание |
|---|---|
[i] | Текст ссылки; порядок массива - порядок появления в документе |
POST /{culture}/api/bibliography-check
метод запускает проверку ссылок, например полученных предыдущим методом, и возвращает идентификатор задачи. Проверка занимает время, поэтому результат получается отдельным запросом.
Authorization: Bearer <Token> Content-Type: application/json
Метод требует опцию проверки библиографии в тарифе. Каналы проверки зависят от уровня опции: только реестры либо реестры и веб-поиск.
Запрос:
{
"references": [
"Smith J. Braindances of Pacifica. 2024. P. 12-19.",
"..."
]
}
| Поле | Описание | Обязательно |
|---|---|---|
references | Тексты ссылок, например из метода извлечения библиографии |
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"taskId": "9c1f0f2e-7c1a-4d1e-9b0a-2f1c9d8e7a65"
}
| Поле | Описание |
|---|---|
taskId | Идентификатор задачи для получения результата |
GET /{culture}/api/bibliography-check/{taskId}
метод возвращает состояние задачи проверки и, когда она завершена, вердикты в порядке ссылок.
Authorization: Bearer <Token>
Пока задача выполняется, ответ выглядит так:
{
"status": "processing"
}
Когда задача завершена:
{
"status": "done",
"verdicts": [
{
"status": 1,
"reason": null,
"doi": "10.1000/xyz123",
"sourceUrl": "https://example.com/article/xyz123",
"registries": [
{
"name": "crossref",
"url": "https://api.crossref.org/works/10.1000/xyz123"
}
],
"normalized": "smith j braindances of pacifica 2024",
"fields": {
"doi": 1,
"year": 1,
"title": 1
}
}
]
}
Поля вердикта:
| Поле | Описание |
|---|---|
status | Код вердикта, см. таблицу ниже |
reason | Уточнение для кодов 0, 3, 4, 5: check_failed, typo_suspected, not_found, fabrication_suspected; для остальных null |
doi | DOI из ссылки или найденный на подтвержденном источнике |
sourceUrl | Источник, на котором работа подтверждена веб-поиском |
registries | Записи реестров, подтверждающие работу, каждая с name и url; null, если записей нет |
normalized | Каноническая форма работы для дедупликации между документами |
fields | Коды совпадения реквизитов ссылки по ключам: doi, year, volume, issue, pages, title, journal, authors; null, если проверки не было |
Коды вердикта в status:
| Статус вердикта | Описание |
|---|---|
0 | Сбой проверки |
1 | Источник подтвержден |
2 | Запись без сверки |
3 | Подозрение на опечатку |
4 | Источник не найден |
5 | Подозрение на фабрикацию |
6 | Запись не является ссылкой |
Коды совпадения в fields:
| Код | Описание |
|---|---|
0 | Сверить не с чем |
1 | Совпадает |
2 | Расходится |
3 | В ссылке не было DOI, только для ключа doi |
Опрашивайте результат не чаще раза в несколько секунд. Неизвестный идентификатор задачи, в том числе принадлежащий другому пользователю, дает ошибку 6008.
POST /{culture}/api/ai-check
метод делит тексты страниц на предложения так же, как проверка на заимствования, и возвращает вероятность генерации ИИ для каждого предложения и для непрерывных блоков.
Authorization: Bearer <Token> Content-Type: application/json
Метод требует опцию определения ИИ в тарифе. Тексты короче 128 символов возвращаются без вердиктов.
Запрос:
{
"pages": [
"...",
"..."
]
}
| Поле | Описание | Обязательно |
|---|---|---|
pages | Тексты страниц, например из метода извлечения текста |
В случае успешного выполнения ответ будет выглядеть следующим образом:
{
"sentences": [
{
"id": 0,
"page": 0,
"value": "...",
"length": 96,
"wordCount": 14,
"probability": 0.93,
"isGenerated": true,
"blockId": 0,
"excluded": false
}
],
"blocks": [
{
"id": 0,
"sentenceStartId": 0,
"sentenceEndId": 4,
"fakeProbability": 0.91,
"isGenerated": true,
"tokenCount": 140,
"wordCount": 120,
"excluded": false
}
]
}
Поля предложения, те же, что в результате проверки на заимствования:
| Поле | Описание |
|---|---|
id | Сквозной идентификатор предложения по документу |
page | Номер страницы, с нуля |
value | Текст предложения |
length | Длина в символах |
wordCount | Количество слов |
probability | Вероятность генерации ИИ, от 0 до 1 |
isGenerated | Предложение признано сгенерированным |
blockId | Идентификатор блока, содержащего предложение; null, если блока нет |
excluded | Зарезервировано под исключение по структуре документа; в этом методе всегда false |
Поля блока:
| Поле | Описание |
|---|---|
id | Идентификатор блока |
sentenceStartId | Первое предложение блока |
sentenceEndId | Последнее предложение блока |
fakeProbability | Вероятность генерации ИИ для блока, от 0 до 1 |
isGenerated | Блок признан сгенерированным |
tokenCount | Количество токенов |
wordCount | Количество слов |
excluded | Зарезервировано под исключение по структуре документа; в этом методе всегда false |