# Базовый OCR

«Базовый OCR» подойдёт для случаев, когда вам не нужны структурированные данные из документа, а нужно просто извлечь весь текст. Сервис поможет, когда нужно организовать поиск по большому массиву данных. Например, по книге.

Если вам нужны структурированные данные из документа, воспользуйтесь сервисом «[Извлечение данных](https://doc.dbrain.io/dbrain-official/izvlechenie-dannykh)».

{% hint style="success" %}
Чтобы воспользоваться сервисом, отправьте POST-запрос на URL `https://latest.dbrain.io/basic_ocr`
{% endhint %}

## Параметры запроса к API

{% hint style="success" %}
**Асинхронный запрос**

async — boolean
{% endhint %}

Поведение по умолчанию: `async=false` — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе `async=true`. В таком случае в ответ на запрос сервис вернёт в `response body` параметр `task_id`. Например:

```json
"task_id": "96b8ccc950a70699927036842c624d7c"
```

Используйте этот `task_id`, чтобы получить результаты классификации в методе `result`:

```bash
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
```

Не забудьте указать в параметре `token` ваш ключ лицензии. Рекомендуем запрашивать метод `result` в цикле с периодом 1-2 секунды.

{% hint style="success" %}
**Возврат изображений**

return\_crops — boolean
{% endhint %}

* Поведение по умолчанию: `false` — сервис не возвращает изображения найденных слов
* `true` — сервис возвращает изображения найденных слов

{% hint style="success" %}
**Тегирование запроса**

task\_tags — string array
{% endhint %}

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом. Для использования функции, укажите в параметре `task_tags` удобный вам тег: `task_tags=тэг`

{% hint style="success" %}
**Движок извлечения текста**

**engine — string**
{% endhint %}

* Поведение по умолчанию: `i` — основной движок извлечения текста, работает в локальных версиях сервиса. Мы не рекомендуем менять этот параметр без прямого указания от нашей службы поддержки.
* `g` — второй альтернативный движок извлечения текста, работает только в облачной версии решения.

{% hint style="success" %}
**Рукописный текст**

handwritten — boolean
{% endhint %}

* Поведение по умолчанию: `false` — сервис ожидает документ, в котором содержится только печатный текст
* `true` — сервис ожидает документ, в котором содержатся рукописные символы

{% hint style="success" %}
**Язык извлечения текста**

language — string
{% endhint %}

* Поведение по умолчанию: `rus` — русский язык.
* `eng` — английский язык.
* `any` — смесь русского, английского и других языков.

## Тело запроса к API

{% hint style="success" %}
**Изображение**

image — string ($binary)
{% endhint %}

Обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

{% hint style="info" %}
Перед началом работы с сервисами советуем заглянуть в раздел «[Общая информация о сервисах](https://doc.dbrain.io/dbrain-official/obshaya-informaciya-o-servisakh)». В нём перечислили форматы файлов, которые поддерживают сервисы, описали общие для всех сервисов параметры API и расшифровали коды ошибок.
{% endhint %}

## В ответе на запрос API:

* `task_id` — string, идентификатор запроса, формат: 32 символа, 16-ричная строка
* `error` — string, текстовое описание ошибки
* `task_tags` — array\[string], теги, если они переданы в параметре task\_tags
* `success` — boolean, статус выполнения запроса
* `status_code` — integer, дублирует [код состояния HTTP](https://doc.dbrain.io/dbrain-official/obshaya-informaciya-o-servisakh#http-kody-otveta-na-zapros)
* `result` — массив, содержит смысловую часть ответа
  * `pages` — массив, содержит страницы документа
    * `text` — массив, содержит весь найденный на странице текст
      * `text` — весь текст на странице
      * `confidence` — уровень уверенности алгоритма в корректности извлечения всего текста в блоке. Считается как усреднённый уровень уверенности по словам
      * `coords` — координаты текста на документе по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
    * `blocks` — массив, который содержит найденные на странице блоки текста — например абзацы
      * `block` — текст блока
      * `confidence` — уровень уверенности алгоритма в корректности извлечения всего текста в блоке, считается как усреднённый уровень уверенности по словам
      * `coords` — координаты блока на странице по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
    * `words` — массив, содержит найденные на странице слова
      * `word` — текст слова
      * `confidence` — уровень уверенности алгоритма в корректности извлечения текста слова
      * `coords` — координаты слова на странице по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
      * `image` — [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64 — изображение слова. Возвращается, если в запросе передать `return_crops=true`
    * `letters` — массив, который содержит найденные на странице буквы
      * `letter` — текст буквы
      * `confidence` — уровень уверенности алгоритма в корректности извлечения текста буквы
  * `input_images` — [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64 — оригинальное изображение. Возвращается, если в запросе передать `return_crops=true`
