Files
crm.clientright.ru/ticket_form/docs/n8n_nodes/README_SETUP.md
Fedor 985ee23810 feat(n8n): RAG workflow для извлечения данных из документов
- Обновлён Code1: нормализация данных из give_data1 с поддержкой payload.applicant, ai_analysis, wizard_plan
- Обновлён Code6: генерация промптов для RAG (user, project, offenders)
- Добавлена документация по настройке n8n нод для OCR статуса
- Добавлен эндпоинт check-ocr-status в documents.py
- Добавлен лог сессии с полным описанием workflow

Workflow itX62h38faB51y9J успешно извлекает:
- Данные пользователя (ФИО, контакты, адрес)
- Данные проекта (сумма, предмет, даты договора)
- Несколько контрагентов с разными ролями (seller, service_provider)
2025-11-29 19:29:14 +03:00

2.8 KiB

Настройка OCR Status Tracking в n8n

Шаги для добавления нод в workflow fnSo3FTTbQcMjwt3

1. Открой workflow в n8n

https://n8n.clientright.pro/workflow/fnSo3FTTbQcMjwt3

2. Добавь ноды в следующем порядке:

Нода 1: update_ocr_status (PostgreSQL)

Расположение: После Postgres PGVector Store1 Позиция: [3850, 1664]

SQL запрос:

UPDATE clpr_claim_documents
SET 
  ocr_status = 'ready',
  ocr_processed_at = NOW()
WHERE id = '{{ $('files').item.json.claim_document_id }}'::uuid
RETURNING 
  id AS doc_id,
  claim_id,
  ocr_status,
  (SELECT COUNT(*) FROM clpr_claim_documents WHERE claim_id = clpr_claim_documents.claim_id) AS total_docs,
  (SELECT COUNT(*) FROM clpr_claim_documents WHERE claim_id = clpr_claim_documents.claim_id AND ocr_status = 'ready') AS ready_docs;

Credentials: timeweb_bd (Postgres account 2)


Нода 2: redis_incr_ready (Redis)

Расположение: После update_ocr_status Позиция: [4100, 1664]

Параметры:

  • Operation: incr
  • Key: claim:ocr:ready:{{ $json.claim_id }}

Credentials: Redis account


Нода 3: check_all_ready (IF)

Расположение: После redis_incr_ready Позиция: [4350, 1664]

Условие:

{{ $('update_ocr_status').item.json.total_docs }} == {{ $('update_ocr_status').item.json.ready_docs }}

Нода 4: publish_docs_ready (Redis)

Расположение: TRUE выход из check_all_ready Позиция: [4600, 1550]

Параметры:

  • Operation: publish
  • Channel: clpr:claim:docs_ready
  • Message:
{{ JSON.stringify({ 
  claim_id: $('update_ocr_status').item.json.claim_id, 
  total_docs: $('update_ocr_status').item.json.total_docs, 
  ready_docs: $('update_ocr_status').item.json.ready_docs, 
  timestamp: new Date().toISOString() 
}) }}

Credentials: Redis account


3. Соединения (Connections)

Postgres PGVector Store1 → update_ocr_status
update_ocr_status → redis_incr_ready  
redis_incr_ready → check_all_ready
check_all_ready (TRUE) → publish_docs_ready
check_all_ready (FALSE) → (конец)

4. Сохрани и активируй workflow


Проверка

После добавления нод, при обработке документа:

  1. Статус в clpr_claim_documents.ocr_status будет меняться на 'ready'
  2. Счётчик в Redis claim:ocr:ready:{claim_id} будет инкрементиться
  3. Когда все документы готовы, событие clpr:claim:docs_ready будет опубликовано в Redis