Установка на сервер
Написали инструкцию, чтобы вы смогли развернуть решение Dbrain в собственном закрытом IT-контуре
Функциональность локальной версии
Локальная версия в отличие от облачной имеет ограниченную функциональность.
Поддерживаются:
Извлечение данных из документов:
Россия: паспорт, главный разворот, печатный образец —
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
Требования к аппаратной части
Сценарии использования:
Мы не гарантируем работоспособность сервиса на архитектурах, выпущенных до 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. Но работоспособность на таких слабых конфигурациях не гарантируется.
Требования к окружению:
Современная операционная система на базе Linux (выпуска 2018 года или новее)
Система менеджмента контейнеров Docker
docker-compose
Для использования мощностей видеокарт нужны:
nvidia-docker
Драйвера Nvidia последней доступной версии
CUDA версии не ниже 11.1
Доступ в интернет для проверки лицензии:
Адрес: https://license.ml.dbrain.io/check/v2
IP: динамический
Порт: 443
Протокол: TCP
Запрос: POST
Запуск локальной версии Dbrain
Создайте файл с названием docker-compose.yml
Скопируйте конфигурацию ниже и вставьте его в docker-compose.yml:
version: "3.7"
# Сначала логинимся докером в наш реджистри:
# 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: "***"  # Поменяйте на своё значение
    FACE_API_URL: ""
    FACE_API_USERNAME: ""
    FACE_API_PASSWORD: ""
    
  depends_on:
    - tasque
    - 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:v4.52.0
    command: [ api ]
  specs:
    <<: *service
    image: registry.dbrain.io/docr/specs:v4.52.0
    command: [ specs ]
  agent:
    <<: *service
    image: registry.dbrain.io/docr/agent:v4.52.0
    command: [ agent ]
  files:
    image: registry.dbrain.io/docr/files:v4.52.0
    sysctls:
      net.core.somaxconn: 4096
#    volumes:
#      - "./data/files:/files"
    restart: always
    logging: *logging
  db:
    image: registry.dbrain.io/docr/db:v4.52.0
    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 +"$(( ($PIPELINE_TIMEOUT+$COMPLETED_TASK_TTL_SECONDS) / 60 ))" -type f -print0 | xargs -0 -n 100 -P 4 rm -f; echo cleaning done ; sleep 60 ; done"
#    restart: always
#    logging: *logging
  demo:
    image: registry.dbrain.io/docr/demo:v4.52.0
    restart: always
    logging: *logging
  lb:
    image: registry.dbrain.io/docr/lb:v4.52.0
    restart: always
    ports:
      - 8080:80  # Поменяйте на своё значение, например, 8090:80
    logging: *logging
  tasque:
    image: registry.dbrain.io/docr/tasque:v4.52.0
#    volumes:
#      - "./data/logs:/logs"
    restart: always
    logging: *loggingЗамените
***в строкеLICENSE_TOKEN: "***"на ваш токен. Если у вас нет токена, напишите нам в телеграм или на [email protected].Если на вашем сервере доступна видеокарта, допишите в раздел environment файла строку
ALLOW_GPU: trueЕсли вы используете прокси для доступа к сервису лицензий, укажите его в параметре
LICENSE_TOKENраздела environmentСохраните изменения в файле docker-compose.yml
Залогиньтесь через докер для доступа в наш репозиторий. Для этого выполните команду:
docker login registry.dbrain.io/docrВведите логин
r@b@t$docr+docrи парольp2JDaaFKIDEoddf8mho7Проверьте, что сервис лицензий доступен. Для этого выполните команду:
curl https://license.ml.dbrain.io/check/v2Если ответ 405 — всё хорошо. В противном случае вам нужно открыть нашему сервису доступ до этого адреса.
Запустите сервис следующей командой:
docker compose upПодождите, когда сервис полностью развернётся. В логах появится надпись вида
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
Last updated
