Dbrain
Ask or search…
K

Установка на сервер

Написали инструкцию, чтобы вы смогли развернуть решение Dbrain в собственном закрытом IT-контуре
Dbrain — серверное решение. Если хотите его протестировать, воспользуйтесь веб-демо. Мы не используем долговременные хранилища данных. Все входящие файлы передаются на сервер по защищённому протоколу, обрабатываются в оперативной памяти и удаляются сразу после возврата результатов пользователю. В тестовых целях пригодится паспорт России из Википедии

Функциональность локальной версии

Локальная версия в отличие от облачной имеет ограниченную функциональность.
Поддерживаются:
    • Россия: паспорт, главный разворот, печатный образец — passport_main
    • Россия: паспорт, главный разворот, рукописный образец — passport_main_handwritten
    • Россия: паспорт, место жительства, печатный штамп — passport_registration
    • Россия: паспорт, место жительства, рукописный штамп — passport_registration_handwritten
    • Россия: паспорт, место жительства, штамп о снятии с регистрации — passport_registration_deregistered
    • Россия: Водительское удостоверение, лицевая сторона — driver_license_2011_front
    • Россия: Водительское удостоверение, обратная сторона, образец 2011 года — driver_license_2011_back
    • Россия: Водительское удостоверение, обратная сторона, образец 2014 года — driver_license_2014_back
    • Россия: СТС, лицевая сторона — vehicle_registration_certificate_front
    • Россия: СТС, лицевая сторона — vehicle_registration_certificate_back
    • Россия: СНИЛС образца 1996 года — snils_front
    • Россия: СНИЛС образца 2003 года — insurance_plastic
    • Россия: СНИЛС образца 2019 года — adi_reg
    • Россия: ИНН физлица — inn_person
    • Россия: свидетельство о рождении — birth_certificate
    • Россия: свидетельство о браке — marriage_certificate
    • Россия: ПТС, лицевая сторона — pts_front
    • Россия: ПТС, обратная сторона — pts_back
    • Банковская карта — bank_card

Требования к аппаратной части

Сценарии использования:

Оценили скорость распознавания на изображениях этих документов в формате JPEG:
  • Паспорт РФ — главный разворот
  • Паспорт РФ — прописка с печатными и рукописными штампами
  • Водительское удостоверение — лицевая сторона
  • Водительское удостоверение — обратная сторона 2011 и 2014 годов
  • СТС — лицевая и обратная стороны
  • СНИЛС — образец 1996 года
Мы не гарантируем работоспособность сервиса на архитектурах, выпущенных до 2011 года. Рекомендуем использовать процессоры не старше Sandy Bridge у Intel и Bulldozer у AMD

1. Минимальный

  • Обработка одного документа: 10 секунд
  • Обработка комплекта из 100 документов: 100 секунд (1 RPS)
  • Виртуальная машина
  • Процессор: 16 ядер, 2.0 GHz, ориентир: Intel Skylake Xeon E3 v5
  • Оперативная память: 24 Gb

2. Дешёвый

  • Обработка одного документа: 5 секунд
  • Обработка комплекта из 100 документов: 66 секунд (1.5 RPS)
  • Виртуальная машина
  • Видеокарта: Nvidia Tesla T4
  • Процессор: 20 ядер, 2.0 GHz, ориентир: Intel Skylake Xeon E3 v5
  • Оперативная память: 32 Gb

3. Стандартный

  • Обработка одного документа: 3 секунды
  • Обработка комплекта из 100 документов: 50 секунд (2 RPS)
  • Физический сервер
  • Видеокарта: Nvidia Tesla T4
  • Процессор: 16 ядер, 3.2-3.9 GHz, ориентир: AMD EPYC 7343
  • Оперативная память: 64 Gb
  • SSD 512 Gb

4. Корпоративный

  • Обработка одного документа: 3 секунды
  • Обработка комплекта из 100 документов: 15 секунд (6.5 RPS)
Балансировщик (2 сервера):
  • Процессор: 2 ядра
  • Оперативная память: 2 Gb
База данных (PostgreSQL, 2 сервера):
  • Процессор: 8 ядер
  • Оперативная память: 64 Gb
  • Накопитель: 512 Gb NVMe (допустимо использование SSD)
Сервисы (2 сервера):
  • Видеокарта (x3): Nvidia Tesla T4
  • Процессор (x2): 24 ядра, 3.2-4.0 GHz, ориентир: AMD EPYC 74F3
  • Оперативная память: 256 Gb
  • Накопитель: 512 Gb SSD
Выше перечислены аппаратные требования для продуктивной эксплуатации. Dbrain запускается и на слабых конфигурациях. Например, на ноутбуке Core i5-8250U 1.6 GHz / 8 Gb ОЗУ / 250 Gb SSD. Но работоспособность на таких слабых конфигурациях не гарантируется.

Требования к окружению:

  1. 1.
    Операционная система Ubuntu версии 18.04+
  2. 2.
    Система менеджмента контейнеров Docker
  3. 3.
    docker-compose
  4. 4.
    Для использования мощностей видеокарт нужны:
    1. 1.
      nvidia-docker
    2. 2.
      Драйвера Nvidia последней доступной версии
    3. 3.
      CUDA версии не ниже 11.1
  5. 5.
    Доступ в интернет для проверки лицензии:
    • Адрес: https://license.ml.dbrain.io/check/v2
    • IP: динамический
    • Порт: 443
    • Протокол: TCP
    • Запрос: POST

Запуск локальной версии Dbrain

  1. 1.
    Создайте файл с названием docker-compose.yml
  2. 2.
    Скопируйте конфигурацию ниже и вставьте его в docker-compose.yml:
version: "3.7"
# Версия 4.7.0
# Сначала логинимся докером в наш реджистри:
# docker login registry.dbrain.io/docr
# login: r@b@t$docr+docr
# secret: p2JDaaFKIDEoddf8mho7
# Во всех сервисах закомментирован раздел volumes.
# Нужно самостоятельно решить куда монтировать,
# т.к. это зависит от вашего оркестратора.
# Для тестов - можно просто оставить закомментированными.
x-service: &service
volumes:
- "./data/files:/files"
# - "./data/logs:/logs"
environment:
LOGURU_LEVEL: "INFO"
LOGURU_COLORIZE: "YES"
LICENSE_TOKEN: "***" # Поменяйте на своё значение
depends_on:
- tasque
- redis
- db
- files
tmpfs:
- /tmp
restart: always
logging: &logging
driver: "json-file"
options:
max-file: "10"
max-size: "100m"
services:
api:
<<: *service
image: registry.dbrain.io/docr/api:fdc70be7
ports:
- 8080:80 # Поменяйте на своё значение, например, 8090:80
command: [ api ]
specs:
<<: *service
image: registry.dbrain.io/docr/specs:fdc70be7
command: [ specs ]
agent:
<<: *service
image: registry.dbrain.io/docr/agent:fdc70be7
command: [ agent ]
redis:
image: redis:7.0.7-alpine3.17
restart: always
logging:
driver: none
files:
image: registry.dbrain.io/docr/files:fdc70be7
sysctls:
net.core.somaxconn: 4096
# volumes:
# - "./data/files:/files"
restart: always
logging: *logging
db:
image: registry.dbrain.io/docr/db:fdc70be7
user: root
# volumes:
# - "./data/postgres:/var/lib/postgresql/data"
environment:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
healthcheck:
test: pg_isready -U postgres -h 127.0.0.1
interval: 5s
restart: always
logging: *logging
# Это сервис очистки старых данных по уже отработавшим задачам.
# Он закомментирован, т.к. вы можете захотеть иначе очищать старые файлы.
# Для теста - можно просто оставить закомментированным.
# cleaner:
# image: alpine
# volumes:
# - "./data/files:/files"
# command: sh -c "while true ; do find /files -mmin +${FILE_TTL:-60} -type f -exec rm -fv {} \; ; echo cleaning done ; sleep 60 ; done"
# restart: always
# logging: *logging
tasque:
image: registry.dbrain.io/docr/tasque:fdc70be7
# volumes:
# - "./data/logs:/logs"
restart: always
logging: *logging
  1. 3.
    Замените *** в строке LICENSE_TOKEN: "***" на ваш токен. Если у вас нет токена, напишите нам в телеграм или на [email protected].
  2. 4.
    Если на вашем сервере доступна видеокарта, допишите в раздел environment файла строку ALLOW_GPU: true
  3. 5.
    Если вы используете прокси для доступа к сервису лицензий, укажите его в параметре LICENSE_TOKEN раздела environment
  4. 6.
    Сохраните изменения в файле docker-compose.yml
  5. 7.
    Залогиньтесь через докер для доступа в наш репозиторий. Для этого выполните команду:
docker login registry.dbrain.io/docr
  1. 8.
    Введите логин r@b@t$docr+docr и пароль p2JDaaFKIDEoddf8mho7
  2. 9.
    Проверьте, что сервис лицензий доступен. Для этого выполните команду:
curl https://license.ml.dbrain.io/check/v2
  1. 10.
    Если ответ 405 — всё хорошо. В противном случае вам нужно открыть нашему сервису доступ до этого адреса.
  2. 11.
    Запустите сервис следующей командой:
docker compose up
  1. 12.
    Подождите, когда сервис полностью развернётся. В логах появится надпись вида INFO: Uvicorn running on http://0.0.0.0:80
Сервис развёрнут локально. Теперь вы можете обращаться к нему по API. Примеры корректных запросов можно получить в свагере, он доступен по адресу localhost:8080/docs
Сервис обращается к Dadata.ru, чтобы повысить точность выдаваемых адресов.
Если у вас ограничен доступ в Интернет, внесите в белый список адрес https://suggestions.dadata.ru. Если такой возможности нет, отключите обращение к Dadata.ru. Для этого в запросе к методуrecognize передавайте параметр normalization_fias=false

Локально доступные методы:

  • Классификация документов: /pipelines/run/classify
  • Проверка документов на признаки подделки: /pipelines/run/fraud
  • Базовый OCR: /pipelines/run/fulltext
  • Извлечение данных из документов: /pipelines/run/recognize
Ничего не получилось, и вы хотите рассказать, что эта инструкция никуда не годится? Пишите нам в телеграм или на [email protected], мы оперативно поможем
Last modified 20d ago