Реализация AI-генерации документов по шаблону (Document Generation)
AI-генерация документов по шаблону создаёт готовые юридически значимые документы на основе введённых параметров. Договор за минуты вместо часов работы юриста — при условии правильной архитектуры.
Подходы к генерации
Шаблонизация (Jinja2 + python-docx): детерминированная подстановка переменных в DOCX/PDF шаблон. Подходит для стандартных документов с фиксированной структурой.
LLM-генерация по структуре: LLM заполняет секции документа на основе переданных параметров. Подходит для документов с вариативным содержанием.
Гибридный: шаблон со структурой и реквизитами (детерминированный) + LLM для «живых» текстовых блоков (предмет договора, обязательства).
Реализация с python-docx
from docx import Document
from docx.shared import Pt
import jinja2
def generate_contract(template_path: str, data: ContractData) -> bytes:
doc = Document(template_path)
# Замена закладок Word
for paragraph in doc.paragraphs:
for key, value in data.dict().items():
if f"{{{{{key}}}}}" in paragraph.text:
for run in paragraph.runs:
run.text = run.text.replace(f"{{{{{key}}}}}", str(value))
# LLM-генерация предмета договора
subject_section = find_section(doc, "Предмет договора")
generated_subject = llm.generate(
f"Напиши раздел 'Предмет договора' для {data.contract_type}:\n{data.subject_description}"
)
replace_section_content(subject_section, generated_subject)
# Сохранение в memory buffer
from io import BytesIO
buffer = BytesIO()
doc.save(buffer)
return buffer.getvalue()
Юридические гарантии
AI-генерированные документы требуют юридической проверки при первом использовании каждого шаблона. Шаблоны версионируются и утверждаются юристом. Автогенерированный документ содержит watermark «Draft — требует проверки» до явного подтверждения.
Для типовых стандартных договоров (NDA, договор публичной оферты, счёт-оферта) — автогенерация без проверки при условии точного соответствия утверждённому шаблону.
Логирование: каждый сгенерированный документ логируется с параметрами, датой, пользователем — для аудита.







