Проект представляет собой локальный сервис для автоматического распознавания текста маркировки с изображений металлических изделий и отправки данных на удаленный сервер (Node.js) для дальнейшей обработки в системе 1С.
Проектный сервер на Node JS. Создано для Node JS v22.18.0 или новее
- Откройте установочный файл
server/run-windows.bat - При первом запуске скорее всего выдаст ошибку подключения к базе данных.
- Откройте конфигурацию сервера
server/data/config.jsonи измените параметры доступа к базе данных - Повторно запустите файл
server/run-windows.bat
- Установите зависимости:
npm installили просто
npm i- Запустите программу
node index.js- При первом запуске скорее всего выдаст ошибку подключения к базе данных.
- Откройте конфигурацию сервера
server/data/config.jsonи измените параметры доступа к базе данных - Повторно запустите программу
Запустить сервер в режиме разработки с автоматической перезагрузкой при изменении файлов:
npm run devлибо в простом режиме
node index.jsПосле сборки создается минифицированный файл server/dist/build.js, запуск которого идентичен запуску основного приложения, но осуществляется внутри server/dist:
node build.jsСервер будет доступен по адресу: http://localhost:5000/api/
После первого запуска любой версии создается директория data, а в ней файл data/config.json:
{
"database": {
"host": "", // Адрес СУБД
"port": "", // Порт СУБД
"name": "", // Название базы данных
"user": "", // Пользователь, через которого будет доступ к БД
"password": "" // Пароль пользователя
},
"app": {
"port": 5000 // Порт приложения
},
"encryption": {
"salt": "", // Соль для пароля
"JWT_pass_code": "", // Сид генерации JWT токена
"JWT_duration": 24 // Продолжительность жизни токена в часах
}
}server/
├── controllers/* # Обработчики
├── data/ # Настройки приложения
├── database/
│ ├── database.js # Подключение к базе данных
│ └── models.js # Модели данных
│
├── dist/ # Место сохранения минифицированной версии
├── error/ # Обработка ошибок
├── middleware/* # Все используемые middleware
├── modules/* # Все вспомогательные модули приложения
├── routes/
│ ├── router.js # Главный роутер
│ └── ... # Маршруты
│
├── index.js # Точка входа
├── package.json
└── package-lock.json
Многие маршруты и WebSocket соединение защищены от неправомерных подключений при помощи JWT и API токенов.
Вся авторизация проходит в заголовках HTTP запросов.
Защищенные маршруты REST API и рукопожатие WebSocket соединения:
authorization: 'Bearer JWT_TOKEN'
npm run dev- запуск сервера в режиме разработкиnpm run build- сборка минифицированной версииnpm i- загрузка недостающих зависимостей
- Требуется Python не ниже версии 3.11
- Остальные зависимости прописаны в
client/requirements.txt
- Откройте установочный файл
client/run-windows.batи дождитесь запуска
- Создайте файл
.envв папке client/ - Настройте переменные окружения в файле
.env:
SERVER_URL=http://127.0.0.1
PORT=5000
- Создайте виртуальное окружение
python -m venv venv- Активируйте виртуальное окружение
.\venv\Scripts\activate или
source ./venv/bin/Activate- Установите зависимости
pip install -r requirements.txt- Запустите программу
python main.pyМетаданные расположения иконки и названия произведенного файла находятся в /client/build_meta.env
Сборка только через скрипты:
- windows:
client/build-windows.bat - linux:
client/create_bin_linux.sh(на linux иконка игнорируется)
Готовый файл будет находится по пути client/dist/
Настройки приложения хранятся в файле client/.env:
SERVER_URL=http://localhost // Адрес серверного приложения
PORT=5000 // Порт серверного приложения
client/
├── Components # Компоненты
├── Pages # Страницы
├── controller # Коммуникация между питоном(бэк) и фронтом
└── resources # Иконки, шрифты, задники
- Требуется Python версии 3.13
- Остальные зависимости прописаны в
neural/requirements.txt - Видеокарта NVIDIA (опционально, для ускорения Paddle)
- Откройте установочный файл
neural/run-windows.batи дождитесь запуска
- Создайте виртуальное окружение
py -3.13 -m venv .venv - Активируйте виртуальное окружение
.\venv\Scripts\activate или
source ./venv/bin/Activate- Установите зависимости
pip install -r requirements.txtУбедитесь, что ваш Node.js сервер запущен и доступен по порту из server/data/config.json
Запуск осуществляется из корня проекта, папки neural/:
python src/server.pyВ консоли появится запрос на авторизацию:
========================================
Требуется авторизация
========================================
Введите логин:
Введите пароль:- Запустите клиент для нейросети
neural-client/run-windows.bat - В настройках введите адрес подключения к нейросети:
localhost:5001 - Нажмите кнопку отправить
- В консоли выведется результат обработки
- В клиенте отобразится соответсвующее окно
neural/
├── src/
│ ├── main.py # Ядро и связка пайплайна
│ ├── server.py # Точка входа: FastAPI сервер и REST API эндпоинты
│ ├── pipeline.py # Оркестратор компьютерного зрения (YOLO + OCR)
│ ├── detectors.py # Класс-обертка для детекции рамок (YOLOv8)
│ ├── recognizers.py # Класс-обертка для чтения текста (PaddleOCR)
│ ├── parser.py # Регулярные выражения (SN и Batch)
│ ├── api_client.py # Сетевой клиент (Обмен с Node.js)
│ ├── models.py # Структуры данных
│ ├── utils.py # Визуализация результатов
│ ├── config_manager.py # Генератор файла config.json
│ └── logger_config.py # Настройка Loguru, перехват и фильтрация логов
│
├── data/ # Системные данные сервиса
│ ├── config.json # Конфигурация портов, порогов и параметров сетей
│ └── auth.dat # Ключ авторизации
│
├── runs/ # Локальные веса обученных моделей
│ └── detect/
│
├── extensions/ # Вспомогательные утилиты разработки/отладки
│
├── .env # Системный файл
├── requirements.txt # Python-зависимости
└── run-windows.bat # Скрипт автоматического создания venv и запуска server.py
Скрипт авторизуется на сервере (/api/user/login), получает JWT токен и отправляет данные в формате form-data на /api/service/scan
Поля отправки:
image: Файл изображения.serial_number: Серийный номер (извлекается регулярным выражениемSN-...).batch_number: Номер партии (извлекается регулярным выражениемB-...).
