Все рецепты

AI-пайплайн обработки документов: классификация → извлечение → маршрутизация

Любая компания тонет в документах: счета, договоры, заявки, письма. AI умеет их читать — но чтобы это работало надёжно, нужна не одна волшебная кнопка, а конвейер: сначала понять что за документ, потом вытащить нужные данные, потом решить что с ними делать. Разбираем, как собрать такой пайплайн в n8n с Claude API.

НачинающийАвтоматизация20 минClaude API, n8n, Google Sheets
1

Конвейер бьёт универсала — и вот почему

Один промпт "разбери документ и реши что делать" смешивает три задачи: определить тип, вытащить данные, выбрать маршрут. Ошибка на любом этапе — и непонятно, где сломалось. Пайплайн разделяет ответственность: каждый шаг делает одно дело и передаёт дальше. Промежуточный результат можно проверить глазами, ошибку — локализовать за минуту, а отдельный шаг — заменить без переделки остального.
Входящий документ
Классификация
тип известен
Извлечение данных
Валидация
данные полные
Маршрутизация
Хороший признак правильной декомпозиции — промежуточный результат можно распечатать и показать бухгалтеру. Если результат классификации понятен человеку без контекста, вы на верном пути.
2

Классификатор: одно слово — и никаких пояснений

Классификация — фундамент всего пайплайна: от неё зависит, какой промпт для извлечения использовать дальше. Принцип простой: классификатор возвращает строго одно слово из закрытого списка — invoice, contract, request, unknown. Никаких пересказов, никаких обоснований. Это позволяет n8n сделать switch по значению и пойти в нужную ветку без парсинга. Добавьте по одному примеру на каждый тип прямо в промпт — это даёт +20-30% точности бесплатно.

❌ Один промпт на всё

  • Смешивает классификацию и извлечение
  • Нельзя отлаживать по отдельности
  • При ошибке непонятно где сломалось

✅ Пайплайн промптов

  • Классификатор → только тип документа
  • Экстрактор → только поля нужного типа
  • Каждый шаг тестируется отдельно
классификатор → ОДНО слово из списка:
  invoice | contract | request | unknown

правила определения типа:
  invoice: счёт, акт, накладная с суммой
  contract: договор, соглашение, оферта
  request: заявка, обращение, запрос
  unknown: всё остальное

никаких пояснений — только тип → switch по значению
3

Извлечение данных: JSON-схема и честное null

Вы знаете тип документа — теперь нужно вытащить конкретные поля. Для счёта — сумма, дата, поставщик. Для договора — стороны, предмет, срок. Именно поэтому классификация идёт первой: без знания типа нельзя написать точный промпт. Ключ к надёжности — требовать JSON с жёсткой схемой. Не "расскажи мне о счёте", а "верни JSON с полями amount, currency, vendor, due_date". Критически важное правило: если поле не найдено — null, не выдумывать. Модели любят галлюцинировать пропущенные данные, и явная инструкция "null, не придумывай" — единственная защита. В n8n результат JSON сразу доступен как объект: обращаетесь к полям напрямую в следующих нодах, без регулярных выражений и парсинга строк. Это ещё одна причина требовать строгую схему — автоматизация ломается, если формат плавает.
экстрактор для типа "invoice":
  ВХОД: текст документа
  ВЫХОД: { сумма, валюта, поставщик, дата, номер }
  ПРАВИЛО: если поле не найдено → null, не выдумывать

для каждого типа — свой набор полей:
  invoice → сумма, валюта, поставщик, дата
  contract → стороны, предмет, срок
  request → тема, автор, срочность
Попросите модель добавить поле confidence (0-1) для каждого значения. Если confidence < 0.7 — документ идёт на ручную проверку. Дешёвый фильтр для пограничных случаев.
4

Не убирайте человека — уберите скуку

Полная автоматизация с первого дня — верный способ потерять доверие к системе после первой ошибки. Правило: автоматически обрабатывайте то, что AI делает правильно в 95%+ случаев. Всё остальное — на проверку человеку. На старте это будет меньше половины документов, через месяц — большинство. Сигналы для эскалации: низкая уверенность модели, тип unknown, отсутствие критичных полей. Уведомление в Slack или письмо с ссылкой на документ.

Автообработка или эскалация?

Тип документа распознан уверенно (confidence > 0.8)
Все обязательные поля извлечены (не null)
Сумма в ожидаемом диапазоне
Тип — unknown или confidence < 0.8
Критичные поля null (сумма, дата, контрагент)
Первые 2 недели — всё логировать и выборочно проверять
Собирайте все случаи эскалации в отдельный лист Google Sheets. Через две недели посмотрите на паттерны: если 60% эскалаций — один тип документов, значит экстрактор для него нужно доработать.
5

Google Sheets — это не костыль, это MVP

Финальный шаг — положить данные туда, где их увидят. Google Sheets работает идеально как первая точка хранения: ошибки заметны без специальных инструментов, бухгалтер проверяет прямо в браузере. Маршрутизация в n8n — Switch-нода по типу документа: счета на один лист, договоры на другой. Добавьте колонку status (auto / escalated / processed) — через месяц у вас будет реальная статистика для обоснования интеграции с 1С или CRM.
Интеграции (1С, CRM, ERP)
Следующий шаг после MVP
Google Sheets (MVP)
Видно сразу, легко проверить
n8n Switch → маршрут по типу
invoice / contract / request / escalate
Не начинайте с интеграции в боевую систему. Первые две недели Google Sheets даст данные для калибровки промптов. Интегрировать кривой пайплайн в CRM — значит умножить проблемы на весь бизнес.

Результат

Рабочий n8n-пайплайн: входящий документ → классификация Claude → извлечение структурированных данных → автоматическая маршрутизация или эскалация человеку → запись в Google Sheets. Первые документы проходят в течение дня после настройки.