Реализация AI-валидации документов на соответствие шаблону
AI-валидация проверяет: содержит ли документ все обязательные разделы и реквизиты, соответствует ли структура установленному шаблону, нет ли противоречий в данных. Используется для входящих документов от контрагентов и для проверки внутренних документов перед подписанием.
Что проверяет система
Структурная валидация: наличие обязательных разделов (предмет договора, цена, ответственность, реквизиты сторон), правильный порядок разделов, наличие подписей и печатей (если скан).
Реквизитная валидация: корректность ИНН/КПП/ОГРН (checksum), соответствие наименования организации ИНН по реестру ФНС, согласованность реквизитов в разных частях документа.
Содержательная валидация: отсутствие явных противоречий («сумма прописью не совпадает с цифрами»), наличие обязательных по законодательству положений (конкретные требования зависят от типа договора).
Реализация
class ValidationResult(BaseModel):
is_valid: bool
errors: list[ValidationError]
warnings: list[str]
completeness_score: float # 0-1
class ValidationError(BaseModel):
type: Literal["missing_section", "invalid_field", "contradiction", "compliance"]
field_or_section: str
description: str
severity: Literal["critical", "major", "minor"]
location: str | None # где в документе найдена ошибка
def validate_contract(text: str, contract_type: str) -> ValidationResult:
checklist = get_checklist(contract_type) # список обязательных элементов
return llm.parse(
build_validation_prompt(text, checklist),
response_format=ValidationResult
)
Настраиваемые правила валидации
Правила валидации хранятся в конфигурации — не захардкожены. Это позволяет бизнесу обновлять требования без участия разработчиков. Формат: JSON/YAML с описанием обязательных полей и правил для каждого типа документа.
Результат валидации: список конкретных ошибок с указанием разделов, severity rating, recommendation для исправления.







