From 3801bc4949a92809717a4b485765bbb705ac3f1a Mon Sep 17 00:00:00 2001 From: Fedor Date: Sun, 30 Nov 2025 11:30:36 +0300 Subject: [PATCH] =?UTF-8?q?feat(backend):=20=D0=BA=D1=8D=D1=88=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20form=5Fdraft=20=D0=B2=20?= =?UTF-8?q?check-ocr-status?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлена проверка наличия черновика в БД перед запуском RAG - Если documents_hash совпадает — возвращаем черновик из кэша - Если черновика нет или он устарел — запускаем RAG workflow - Добавлен параметр force_refresh для принудительного обновления - Импортирован db сервис для работы с PostgreSQL --- ..._заявление_потребителя_Селдушев____стр.pdf | Bin 0 -> 97134 bytes ticket_form/backend/app/api/documents.py | 117 +++++++++++++++++- .../SESSION_LOG_2025-11-29_RAG_WORKFLOW.md | 1 + ticket_form/docs/n8n_nodes/README_SETUP.md | 1 + .../docs/n8n_nodes/check_all_ready.json | 1 + .../docs/n8n_nodes/publish_docs_ready.json | 1 + .../docs/n8n_nodes/redis_incr_ready.json | 1 + .../docs/n8n_nodes/update_ocr_error.json | 1 + .../docs/n8n_nodes/update_ocr_status.json | 1 + 9 files changed, 119 insertions(+), 5 deletions(-) create mode 100644 storage/2025/November/week5/399466_1_заявление_потребителя_Селдушев____стр.pdf diff --git a/storage/2025/November/week5/399466_1_заявление_потребителя_Селдушев____стр.pdf b/storage/2025/November/week5/399466_1_заявление_потребителя_Селдушев____стр.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8f62f23ceae40e50533fb436df40f4b5bc9a0663 GIT binary patch literal 97134 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 z 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 str: + """Вычисляет hash от списка document_id для проверки актуальности черновика""" + sorted_ids = sorted([d for d in doc_ids if d]) + hash_input = ','.join(sorted_ids) + # Используем простой hash как в n8n (djb2) + hash_val = 5381 + for char in hash_input: + hash_val = ((hash_val << 5) + hash_val) + ord(char) + return format(abs(hash_val) & 0xFFFFFFFF, 'x').zfill(8) + + @router.post("/check-ocr-status") async def check_ocr_status(request: Request): """ Проверка статуса OCR обработки документов. Вызывается при нажатии "Продолжить" после загрузки документов. - Пушит запрос в Redis канал clpr:check:ocr_status, который слушает n8n workflow. - n8n проверяет статус всех документов и публикует результат в ocr_events:{session_id}. + + Логика: + 1. Проверяем наличие form_draft в payload + 2. Если черновик есть и documents_hash совпадает — возвращаем его + 3. Если черновика нет или он устарел — запускаем RAG workflow """ try: body = await request.json() claim_id = body.get("claim_id") session_id = body.get("session_id") + force_refresh = body.get("force_refresh", False) # Принудительное обновление if not claim_id or not session_id: raise HTTPException( @@ -637,10 +654,98 @@ async def check_ocr_status(request: Request): extra={ "claim_id": claim_id, "session_id": session_id, + "force_refresh": force_refresh, }, ) - # Публикуем запрос в Redis для n8n workflow + # ===================================================== + # ШАГ 1: Проверяем наличие черновика в БД + # ===================================================== + if not force_refresh: + try: + # Получаем form_draft и список документов + claim_data = await db.fetch_one(""" + SELECT + c.payload->'form_draft' AS form_draft, + ( + SELECT array_agg(cd.id::text ORDER BY cd.id) + FROM clpr_claim_documents cd + WHERE cd.claim_id::uuid = c.id + ) AS document_ids + FROM clpr_claims c + WHERE c.id = $1::uuid + """, claim_id) + + if claim_data and claim_data.get('form_draft'): + form_draft = claim_data['form_draft'] + # Если form_draft — строка, парсим JSON + if isinstance(form_draft, str): + form_draft = json.loads(form_draft) + + saved_hash = form_draft.get('documents_hash', '') + document_ids = claim_data.get('document_ids') or [] + current_hash = compute_documents_hash(document_ids) + + logger.info( + "📋 Draft check", + extra={ + "saved_hash": saved_hash, + "current_hash": current_hash, + "docs_count": len(document_ids), + }, + ) + + # ✅ Черновик актуален — возвращаем его! + if saved_hash == current_hash: + logger.info( + "✅ Using cached form_draft", + extra={ + "claim_id": claim_id, + "hash": saved_hash, + }, + ) + + # Публикуем событие что данные готовы + event_data = { + "event_type": "form_draft_ready", + "status": "ready", + "message": "Черновик формы готов", + "claim_id": claim_id, + "session_id": session_id, + "form_draft": form_draft, + "from_cache": True, + "timestamp": datetime.utcnow().isoformat(), + } + + await redis_service.publish( + f"ocr_events:{session_id}", + json.dumps(event_data, ensure_ascii=False) + ) + + return { + "success": True, + "status": "ready", + "message": "Черновик формы готов (из кэша)", + "from_cache": True, + "form_draft": form_draft, + "listen_channel": f"ocr_events:{session_id}", + } + else: + logger.info( + "🔄 Draft outdated, running RAG", + extra={ + "reason": "documents_hash mismatch", + "saved_hash": saved_hash, + "current_hash": current_hash, + }, + ) + + except Exception as e: + logger.warning(f"⚠️ Draft check failed: {e}, proceeding with RAG") + + # ===================================================== + # ШАГ 2: Черновика нет или устарел — запускаем RAG + # ===================================================== event_data = { "claim_id": claim_id, "session_token": session_id, @@ -655,7 +760,7 @@ async def check_ocr_status(request: Request): ) logger.info( - "✅ OCR status check published", + "✅ OCR status check published (running RAG)", extra={ "channel": channel, "subscribers": subscribers, @@ -665,7 +770,9 @@ async def check_ocr_status(request: Request): return { "success": True, - "message": "Запрос на проверку OCR статуса отправлен", + "status": "processing", + "message": "Запрос на обработку документов отправлен", + "from_cache": False, "channel": channel, "listen_channel": f"ocr_events:{session_id}", } diff --git a/ticket_form/docs/SESSION_LOG_2025-11-29_RAG_WORKFLOW.md b/ticket_form/docs/SESSION_LOG_2025-11-29_RAG_WORKFLOW.md index 056ea3f4..0f7bb15c 100644 --- a/ticket_form/docs/SESSION_LOG_2025-11-29_RAG_WORKFLOW.md +++ b/ticket_form/docs/SESSION_LOG_2025-11-29_RAG_WORKFLOW.md @@ -431,3 +431,4 @@ return [ - `ticket_form/docs/SQL_CLAIMSAVE_FINAL_FIXED_NEW_FLOW_WITH_UPLOADED_FIXED.sql` — SQL для сохранения документов - `ticket_form/frontend/src/components/form/generateConfirmationFormHTML.ts` — шаблон формы заявления + diff --git a/ticket_form/docs/n8n_nodes/README_SETUP.md b/ticket_form/docs/n8n_nodes/README_SETUP.md index 4a109c09..3c28841a 100644 --- a/ticket_form/docs/n8n_nodes/README_SETUP.md +++ b/ticket_form/docs/n8n_nodes/README_SETUP.md @@ -97,3 +97,4 @@ check_all_ready (FALSE) → (конец) + diff --git a/ticket_form/docs/n8n_nodes/check_all_ready.json b/ticket_form/docs/n8n_nodes/check_all_ready.json index 15104925..c7e1dd5c 100644 --- a/ticket_form/docs/n8n_nodes/check_all_ready.json +++ b/ticket_form/docs/n8n_nodes/check_all_ready.json @@ -30,3 +30,4 @@ + diff --git a/ticket_form/docs/n8n_nodes/publish_docs_ready.json b/ticket_form/docs/n8n_nodes/publish_docs_ready.json index a0949262..914dc44e 100644 --- a/ticket_form/docs/n8n_nodes/publish_docs_ready.json +++ b/ticket_form/docs/n8n_nodes/publish_docs_ready.json @@ -18,3 +18,4 @@ + diff --git a/ticket_form/docs/n8n_nodes/redis_incr_ready.json b/ticket_form/docs/n8n_nodes/redis_incr_ready.json index 39747e7b..e473a53f 100644 --- a/ticket_form/docs/n8n_nodes/redis_incr_ready.json +++ b/ticket_form/docs/n8n_nodes/redis_incr_ready.json @@ -17,3 +17,4 @@ + diff --git a/ticket_form/docs/n8n_nodes/update_ocr_error.json b/ticket_form/docs/n8n_nodes/update_ocr_error.json index c862f8a7..55927f69 100644 --- a/ticket_form/docs/n8n_nodes/update_ocr_error.json +++ b/ticket_form/docs/n8n_nodes/update_ocr_error.json @@ -19,3 +19,4 @@ + diff --git a/ticket_form/docs/n8n_nodes/update_ocr_status.json b/ticket_form/docs/n8n_nodes/update_ocr_status.json index 1d8fdead..5a5f7154 100644 --- a/ticket_form/docs/n8n_nodes/update_ocr_status.json +++ b/ticket_form/docs/n8n_nodes/update_ocr_status.json @@ -18,3 +18,4 @@ +