boomzoom666
New member
- Регистрация
- 5 Янв 2015
- Сообщения
- 4
- Реакции
- 0
Локальная реализация REST API JDOC (jdoc.net.ua) для внешней обработки BAS
Распознавание документов происходит локально, без обращения к вендору.
Типовая обработка вендора обращается к jdoc.net.ua:443, сервис перехватывает обращение, по факту обработка считает что работает с вендором.
Прототип (реализую полный/частичный функционал под заказ)
## Требования
- Windows, Python 3.10 или новее
- BAS:Enterprise 8.3 + обработка `JDOC.epf` с сайта вендора
- около 1 ГБ на зависимости и до 5 ГБ, если включается распознавание сканов
- права администратора — для перенаправления и порта 443
API-ключ в BAS может быть любым — например `local`.
## Скрипты
setup-venv.cmd - Находит Python 3.10+, создаёт `.venv`, ставит зависимости из `requirements.txt`. Повторный запуск переиспользует окружение (права обычные)
setup-hosts.cmd - Пишет `127.0.0.1 jdoc.net.ua` в `hosts`, выпускает сертификат на `jdoc.net.ua`, добавляет его в доверенные корни (права администратор)
setup-hosts.cmd /undo откат (права администратор)
start-hosts.cmd - Поднимает `jdoc.net.ua:443` с TLS. Для BAS неотличим от вендорского сервиса (права администратор)
start-server.cmd - Поднимает `127.0.0.1:8078 без TLS, без прав администратора и без правки системы (права обычные)
## Настройки
Переопределяются переменными окружения до вызова скрипта:
JDOC_VLM `on` Распознавание сканов. На машине с 8 ГБ RAM ставить `off`
JDOC_VLM_MODEL `Qwen/Qwen3-VL-2B-Instruct` Модель распознавания
JDOC_MAX_VLM_PAGES `30` Сколько страниц одного документа уходит в VLM
JDOC_PDF_TEXT `on` Разбор PDF по текстовому слою; `off` — всё через VLM
JDOC_BANK_STATEMENT `on` Разбор банковских выписок
JDOC_PORT `443` / `8078` Порт: 443 в режиме перенаправления, 8078 обычно
JDOC_HOST `127.0.0.1` Интерфейс
JDOC_STORE `%CD%\data` Файлы операций, сертификат, кэш моделей
JDOC_MAX_FILE_SIZE_MB `50` Лимит размера файла, отдаётся в `limits`
JDOC_MAX_FILES_PER_OPERATION `20` Лимит файлов в операции
JDOC_AVAILABLE_DOCUMENTS `100000` Остаток «документов» в квоте
JDOC_LOG `INFO` Уровень журнала
Ограничение: при `JDOC_PORT=443` без `JDOC_TLS=on` сервис не стартует.
## Как распознаётся
1. Текстовый слой — книга Excel или PDF с текстовым слоем: данные берутся из ячеек, без модели (работает быстро).
2. VLM — сканы (JPG, PNG, TIFF) и PDF без текстового слоя: страницы рисуются в картинки и разбираются LLM моделью.
3. Банковская выписка — разбирается отдельно, у неё нет товарных строк: транзакции лежат в`result.document_specific.bank_statement`, знак суммы определяет приход или списание..
Тип документа определяется по заголовку и реквизитам: `invoice`,`delivery_note`, `act`, `bank_statement`, `fiscal_receipt`. По коду типа обработка BAS решает, создавать ли счёт, накладную, акт или документы по выписке.
Реализованные форматы:
Быстрый разбор (текстовый слой): PDF, XLS, XLSX.
VLM разбор (изображение): JPG, JPEG, PNG, TIF, TIFF.
Не реализованные форматы:
Форматы DOC, DOCX и RTF принимаются, но их разбор не реализован.
## Примечание
- Сканы требуют VLM, на тестовом ноутбуке модель не помещается в 8 ГБ RAM. На i5-8250U / 8 ГБ распознавание сканов будет идти десятки минут на страницу. Рабочий вариант: `JDOC_VLM=off` и текстовые документы, либо GPU-машина и requirements-cuda.txt.
- ДПС и фискальные чеки не реализованы.
- Webhook не доставляется.
- Артефакты не производятся
- Реквизиты из PDF теряются, если их нет в текстовом слое.
Распознавание документов происходит локально, без обращения к вендору.
Типовая обработка вендора обращается к jdoc.net.ua:443, сервис перехватывает обращение, по факту обработка считает что работает с вендором.
Прототип (реализую полный/частичный функционал под заказ)
У Вас недостаточно прав для просмотра ссылок.
Войдите или зарегистрируйтесь.
## Требования
- Windows, Python 3.10 или новее
- BAS:Enterprise 8.3 + обработка `JDOC.epf` с сайта вендора
- около 1 ГБ на зависимости и до 5 ГБ, если включается распознавание сканов
- права администратора — для перенаправления и порта 443
API-ключ в BAS может быть любым — например `local`.
## Скрипты
setup-venv.cmd - Находит Python 3.10+, создаёт `.venv`, ставит зависимости из `requirements.txt`. Повторный запуск переиспользует окружение (права обычные)
setup-hosts.cmd - Пишет `127.0.0.1 jdoc.net.ua` в `hosts`, выпускает сертификат на `jdoc.net.ua`, добавляет его в доверенные корни (права администратор)
setup-hosts.cmd /undo откат (права администратор)
start-hosts.cmd - Поднимает `jdoc.net.ua:443` с TLS. Для BAS неотличим от вендорского сервиса (права администратор)
start-server.cmd - Поднимает `127.0.0.1:8078 без TLS, без прав администратора и без правки системы (права обычные)
## Настройки
Переопределяются переменными окружения до вызова скрипта:
JDOC_VLM `on` Распознавание сканов. На машине с 8 ГБ RAM ставить `off`
JDOC_VLM_MODEL `Qwen/Qwen3-VL-2B-Instruct` Модель распознавания
JDOC_MAX_VLM_PAGES `30` Сколько страниц одного документа уходит в VLM
JDOC_PDF_TEXT `on` Разбор PDF по текстовому слою; `off` — всё через VLM
JDOC_BANK_STATEMENT `on` Разбор банковских выписок
JDOC_PORT `443` / `8078` Порт: 443 в режиме перенаправления, 8078 обычно
JDOC_HOST `127.0.0.1` Интерфейс
JDOC_STORE `%CD%\data` Файлы операций, сертификат, кэш моделей
JDOC_MAX_FILE_SIZE_MB `50` Лимит размера файла, отдаётся в `limits`
JDOC_MAX_FILES_PER_OPERATION `20` Лимит файлов в операции
JDOC_AVAILABLE_DOCUMENTS `100000` Остаток «документов» в квоте
JDOC_LOG `INFO` Уровень журнала
Ограничение: при `JDOC_PORT=443` без `JDOC_TLS=on` сервис не стартует.
## Как распознаётся
1. Текстовый слой — книга Excel или PDF с текстовым слоем: данные берутся из ячеек, без модели (работает быстро).
2. VLM — сканы (JPG, PNG, TIFF) и PDF без текстового слоя: страницы рисуются в картинки и разбираются LLM моделью.
3. Банковская выписка — разбирается отдельно, у неё нет товарных строк: транзакции лежат в`result.document_specific.bank_statement`, знак суммы определяет приход или списание..
Тип документа определяется по заголовку и реквизитам: `invoice`,`delivery_note`, `act`, `bank_statement`, `fiscal_receipt`. По коду типа обработка BAS решает, создавать ли счёт, накладную, акт или документы по выписке.
Реализованные форматы:
Быстрый разбор (текстовый слой): PDF, XLS, XLSX.
VLM разбор (изображение): JPG, JPEG, PNG, TIF, TIFF.
Не реализованные форматы:
Форматы DOC, DOCX и RTF принимаются, но их разбор не реализован.
## Примечание
- Сканы требуют VLM, на тестовом ноутбуке модель не помещается в 8 ГБ RAM. На i5-8250U / 8 ГБ распознавание сканов будет идти десятки минут на страницу. Рабочий вариант: `JDOC_VLM=off` и текстовые документы, либо GPU-машина и requirements-cuda.txt.
- ДПС и фискальные чеки не реализованы.
- Webhook не доставляется.
- Артефакты не производятся
- Реквизиты из PDF теряются, если их нет в текстовом слое.







