🎯 Основные изменения: Backend: - ✅ Добавлен SSE endpoint для real-time событий (/api/v1/events/{task_id}) - ✅ Redis Pub/Sub для публикации/подписки на события OCR/Vision - ✅ Удален aioboto3 из requirements.txt (конфликт зависимостей) - ✅ Добавлен OCR worker (deprecated, логика перенесена в n8n) Frontend (React): - ✅ Автогенерация claim_id и session_id - ✅ Клиентская конвертация файлов в PDF (JPG/PNG/HEIC/WEBP) - ✅ Сжатие изображений до 2MB перед конвертацией - ✅ SSE подписка на события OCR/Vision в Step1Policy - ✅ Валидация документов (полис vs неподходящий контент) - ✅ Real-time прогресс загрузки и обработки файлов - ✅ Интеграция с n8n webhooks для проверки полиса и загрузки файлов n8n Workflows: - ✅ Проверка полиса в MySQL + запись в PostgreSQL - ✅ Загрузка файлов в S3 + OCR + Vision AI - ✅ Публикация событий в Redis через backend API - ✅ Валидация документов (распознавание полисов ERV) Документация: - 📝 N8N_INTEGRATION.md - интеграция с n8n - 📝 N8N_SQL_QUERIES.md - SQL запросы для workflows - 📝 N8N_PDF_COMPRESS.md - сжатие PDF - 📝 N8N_STIRLING_COMPRESS.md - интеграция Stirling-PDF Утилиты: - 🔧 monitor_redis.py/sh - мониторинг Redis Pub/Sub - 🔧 test_redis_events.sh - тестирование событий - 🔧 pdfConverter.ts - клиентская конвертация в PDF Архитектура: React → n8n webhooks (sync) → MySQL/PostgreSQL/S3 → n8n workflows (async) → OCR/Vision → Redis Pub/Sub → SSE → React
46 lines
1.3 KiB
JSON
46 lines
1.3 KiB
JSON
{
|
|
"name": "erv-insurance-platform-frontend",
|
|
"private": true,
|
|
"version": "1.0.0",
|
|
"description": "ERV Insurance Claims Platform - Frontend",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc && vite build",
|
|
"preview": "vite preview",
|
|
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
"type-check": "tsc --noEmit",
|
|
"start": "serve -s dist -l 3000"
|
|
},
|
|
"dependencies": {
|
|
"react": "^18.3.1",
|
|
"react-dom": "^18.3.1",
|
|
"react-router-dom": "^6.26.2",
|
|
"antd": "^5.21.6",
|
|
"@ant-design/icons": "^5.5.1",
|
|
"axios": "^1.7.7",
|
|
"@tanstack/react-query": "^5.59.16",
|
|
"zustand": "^5.0.1",
|
|
"dayjs": "^1.11.13",
|
|
"imask": "^7.6.1",
|
|
"react-dropzone": "^14.3.5",
|
|
"socket.io-client": "^4.8.1",
|
|
"serve": "^14.2.1",
|
|
"jspdf": "^2.5.2",
|
|
"browser-image-compression": "^2.0.2"
|
|
},
|
|
"devDependencies": {
|
|
"@types/react": "^18.3.11",
|
|
"@types/react-dom": "^18.3.1",
|
|
"@vitejs/plugin-react": "^4.3.3",
|
|
"typescript": "^5.6.3",
|
|
"vite": "^5.4.10",
|
|
"eslint": "^9.13.0",
|
|
"@typescript-eslint/eslint-plugin": "^8.11.0",
|
|
"@typescript-eslint/parser": "^8.11.0",
|
|
"eslint-plugin-react-hooks": "^5.0.0",
|
|
"eslint-plugin-react-refresh": "^0.4.13"
|
|
}
|
|
}
|
|
|