Smart Docs — это высокотехнологичная микросервисная система для автоматического анализа, аннотирования и структурирования корпоративных документов (договоров, актов, отчетов, таблиц) с использованием изолированной локальной нейросети.
Главное бизнес-преимущество платформы — 100% конфиденциальность данных. Нейросеть развернута внутри закрытого Docker-контейнера в локальной сети компании. Ни один байт коммерческой информации или персональных данных сотрудников не отправляется в интернет.
- Автоматический разбор таблиц: Интеграция с библиотекой
pandasпозволяет мгновенно считывать структуру файлов.csv, определять количество строк, колонок и типы данных. - Интеллектуальная суммаризация: Локальная языковая модель Qwen 2.5 выступает в роли корпоративного юриста — анализирует текст документа, выделяет предмет сделки, ключевых контрагентов и подсвечивает скрытые юридические риски.
- Асинхронный фоновый бэкенд: Тяжелые файлы обрабатываются в фоновом режиме через очереди
Redis, не замедляя и не блокируя реактивный интерфейс пользователя. - Система безопасности уровня Enterprise: Полноценное управление профилями сотрудников, строгая валидация входящих офисных форматов и защита от спама (Rate Limiting).
- Интерфейс Mobile-First: Адаптивный, чистый дизайн на базе Tailwind v4, оптимизированный для работы как на десктопах, так и на экранах смартфонов.
Проект построен на базе распределенной микросервисной архитектуры в Docker:
- Frontend: PHP 8.4, Laravel 13, Livewire 4 (Полностраничные компоненты Volt), Alpine.js, Tailwind v4 CSS.
- Backend ИИ-воркер: Python 3.11, Pandas (анализ данных), MySQL Connector.
- Брокер очередей: Redis 7 (Хранение фоновых задач в JSON-формате).
- ИИ-Движок: Ollama + Языковая модель Qwen 2.5 (1.5B параметров, оптимизированная под CPU).
- База данных: MySQL 8.0.
- Веб-сервер: Nginx.
- Пользователь загружает документ на Дашборде (
Livewire 4). - Laravel сохраняет файл, делает запись в MySQL и мгновенно пушит задачу в
Redis(ProcessDocument Job). - Фоновый воркер
Pythonперехватывает JSON-задачу из Redis, считывает физический файл через общий Docker-том (Shared Volume) и отправляет текст в ИИ-контейнерOllama. - Модель
Qwen 2.5генерирует краткую сводку на русском языке, Python записывает ответ напрямую вMySQLи переводит статус вcompleted. - Пользователь нажимает «Обновить статус», и Livewire реактивно перерисовывает таблицу, выводя готовый результат.
Перед началом установки убедитесь, что на вашей хост-машине развернуты следующие инструменты:
- Docker Desktop — скачайте и установите с официального сайта. Программа должна быть запущена (иконка кита в панели задач должна гореть зелёным).
- Система контроля версий Git:
- Windows: Установите Git для Windows (в комплекте идет терминал Git Bash). Также рекомендуется использовать среду WSL2 (Ubuntu).
- Ubuntu / Debian Linux: Выполните в консоли:
sudo apt update && sudo apt install git docker-compose -y - macOS: Установите через терминал:
xcode-select --install
- Любой современный браузер (Google Chrome, Яндекс.Браузер, Mozilla Firefox, Microsoft Edge, Safari) для работы с интерфейсом.
Откройте ваш терминал (Git Bash, WSL2 или стандартную консоль Linux/Mac) и скачайте исходный код проекта на свой компьютер:
git clone https://github.com/Laracoper/my-microservices-app.git
cd my-microservices-appПо соображениям безопасности секретные ключи и пароли к базам данных не хранятся в интернете. Нам нужно активировать два файла конфигурации из шаблонов.
1. Создание КОРНЕВОГО файла настроек Docker (в папке my-microservices-app):
cp .env.example .env2. Создание файла настроек веб-приложения Laravel (в папке src/laravel-app/):
cp src/laravel-app/.env.example src/laravel-app/.envЗапустите сборку и подъем всех микросервисов в фоновом режиме:
docker-compose up -d --buildDocker автоматически прочитает корневой .env, настроит права пользователей, скачает веб-сервера, базы данных, настроит зеркала репозиториев (Aliyun) и поднимет Nginx на порту 8087.
Установка PHP и JS библиотек запускается напрямую внутри изолированной среды. Чтобы защитить сборку от сетевых обрывов и бесконечных таймаутов, Composer принудительно переводится в режим Git-исходников, а лимит ожидания операций сокращается до 34 секунд (вместо дефолтных 5 минут):
# 1. Защищаем Composer от сетевых таймаутов при медленной связи
docker exec -it micro_laravel composer config preferred-install source
# 2. Сокращаем время ожидания зависших операций жестко до 34 секунд!
docker exec -it micro_laravel composer config process-timeout 34
# 3. Скачиваем PHP зависимости с отображением живой полосы прогресса
docker exec -it micro_laravel composer install
# 4. Устанавливаем и компилируем фронтенд-пакеты Tailwind v4 намертво для релиза
docker exec -it micro_laravel npm install
docker exec -it micro_laravel npm run buildПоскольку при первом старте контейнеры веб-сервера Nginx и сокетов Reverb упали из-за отсутствия файлов ядра, а Laravel требует папки кэша шаблонов, мы автоматически инициализируем структуру, запускаем порты, генерируем ключи безопасности и создаем таблицы базы данных:
# 1. Автоматически создаем недостающие папки системного кэша и выставляем права
docker exec -it micro_laravel mkdir -p storage/framework/sessions storage/framework/views storage/framework/cache
docker exec -it micro_laravel chmod -R 777 storage bootstrap/cache
# 2. Перезапускаем веб-сервер Nginx и сокеты Reverb (они войдут в строй за 1 секунду)
docker-compose restart nginx reverb
# 3. Генерируем уникальный секретный ключ безопасности приложения
docker exec -it micro_laravel php artisan key:generate
# 4. Автоматически создаем все таблицы внутри базы данных MySQL
docker exec -it micro_laravel php artisan migrate
# 5. Сбрасываем кэш настроек фреймворка
docker exec -it micro_laravel php artisan optimize:clearПрикажите контейнеру Ollama скачать компактную и умную модель Qwen 2.5, которая будет работать прямо на вашем процессоре (CPU):
docker exec -it micro_ollama ollama run qwen2.5:1.5b ""Модель весит около 900 МБ. Скачивание займет 1–3 минуты. Файлы нейросети надежно сохранятся в локальную папку на вашем жестком диске (Docker Volumes), повторно скачивать её при последующих запусках не потребуется.
Откройте ваш браузер и перейдите по адресу:
👉 http://localhost:8087
- Зарегистрируйте корпоративный аккаунт через кнопку Register.
- Вы попадете на Дашборд. Выберите любой CSV-файл или текстовый документ на компьютере и нажмите «Отправить на анализ ИИ».
- Спустя 15–20 секунд нажмите кнопку «Обновить статус» 🔄. Плашка сменится на зеленую «Готово».
- Кликните прямо по строке этого документа — под ним развернется подробнейший текстовый аналитический отчет по вашему файлу, выполненный локальной нейросети без интернета!
Чтобы освободить оперативную память компьютера, выполните команду:
docker-compose down


