Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

Типовой договор оказания услуг — и три часа потеряно впустую. Юрист берёт 8 000–15 000 рублей за документ, который LLM генерирует за 40 секунд. Проблема не в цене — в том, что большинство предпринимателей не знают, как правильно структурировать задачу для модели, чтобы на выходе получить документ с корректными реквизитами, ответственностью сторон и без юридических дыр. Вот точный алгоритм.
Не все LLM одинаково работают с юридическим текстом. GPT-4o (OpenAI) держит контекст до 128k токенов и стабильно воспроизводит структуру российского гражданского права — это рабочая лошадь. Claude 3.5 Sonnet (Anthropic) точнее в длинных инструкциях и лучше удерживает стиль по всему документу при объёме свыше 5 страниц. Цены на 2026 год:
Для старта без кода — веб-интерфейс. Для потока от 50+ договоров в месяц — только API.
Промпт без параметров — это как руль без рулевой рейки: крутится легко, но машина едет прямо. Системный промпт задаёт роль, правовую систему, обязательные разделы и ограничения. Копируй и вставляй:
Ты — юридический ассистент, специализирующийся на российском гражданском праве (ГК РФ).
Составляй договоры строго по структуре:
1. Предмет договора
2. Права и обязанности сторон
3. Стоимость и порядок расчётов
4. Сроки исполнения
5. Ответственность сторон
6. Основания и порядок расторжения
7. Конфиденциальность
8. Реквизиты и подписи сторон
Правила:
- Ссылайся на статьи ГК РФ только если уверен в их применимости.
- Не используй размытые формулировки типа "по согласованию сторон" без уточнения механизма.
- Сумма штрафов и неустоек — в процентах от суммы договора или в фиксированных рублях.
- Формат вывода: чистый текст договора без пояснений и комментариев.
Это системный промпт. Его передают в поле system при API-запросе или вставляют первым сообщением в чате.
Структура не меняется. Меняются данные. Именно поэтому шаблонизируй входные данные через JSON-объект — это исключает ошибки копипасты и позволяет автоматически генерировать сотни договоров через скрипт.
{
"contract_type": "Договор оказания услуг",
"party_a": {
"name": "ИП Сидоров Алексей Владимирович",
"inn": "771234567890",
"address": "г. Москва, ул. Ленина, д. 5, кв. 12"
},
"party_b": {
"name": "ООО «Технологии Будущего»",
"inn": "7701234567",
"address": "г. Москва, Пресненская наб., д. 6, стр. 2"
},
"subject": "Разработка и настройка CRM-системы на базе Bitrix24",
"amount": 180000,
"currency": "RUB",
"deadline_days": 30,
"penalty_rate": "0.1% от суммы договора за каждый день просрочки",
"governing_law": "РФ",
"dispute_resolution": "Арбитражный суд г. Москвы"
}
Этот JSON передаётся в user-сообщение вместе с командой: «Составь договор на основе данных ниже строго по системным инструкциям.» Итого — два сообщения. Никаких диалогов.
Никакой магии.
import openai, json
client = openai.OpenAI(api_key="YOUR_API_KEY")
system_prompt = """[вставь системный промпт из Шага 1]"""
contract_data = {
"contract_type": "Договор оказания услуг",
"party_a": {"name": "ИП Сидоров А.В.", "inn": "771234567890"},
"party_b": {"name": "ООО «Технологии Будущего»", "inn": "7701234567"},
"subject": "Разработка CRM на базе Bitrix24",
"amount": 180000,
"deadline_days": 30,
"penalty_rate": "0.1% за каждый день просрочки"
}
response = client.chat.completions.create(
model="gpt-4o",
temperature=0.2,
max_tokens=4096,
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": f"Составь договор по данным: {json.dumps(contract_data, ensure_ascii=False)}"}
]
)
print(response.choices[0].message.content)
Параметр temperature=0.2 — критичен. При значениях выше 0.5 модель начинает «творить»: появляются несуществующие статьи ГК, размытые формулировки, галлюцинированные реквизиты. Юридический текст требует детерминизма.
LLM не заменяет проверку. Она сокращает время с трёх часов до пяти минут. Чек-лист для ручного прогона:
Стоимость одной генерации по описанной схеме при среднем объёме договора в 1 500 output-токенов — $0.015 через GPT-4o API. Это 1,35 рубля по курсу 2026 года. За 100 договоров в месяц — 135 рублей суммарно.
Юридический текст — это не творческое эссе. Каждое слово в договоре купли-продажи несёт правовую нагрузку, и модель с temperature: 1.2 превратит условия оплаты в поэзию. Промпт без параметров — это как руль без рулевой рейки: крутится легко, но машина едет прямо в сторону «по усмотрению сторон» там, где должна стоять конкретная цифра. Разберём по слоям: системная инструкция, пользовательский промпт, параметры семплинга — каждый уровень влияет на итог независимо.
Для юридической генерации действует жёсткое правило: чем детерминированнее — тем лучше. Вот рабочие значения на 2026 год для трёх платформ:
temperature: 0.2, top_p: 0.85, frequency_penalty: 0.1. При temperature выше 0.4 модель начинает «импровизировать» формулировки ответственности.temperature: 0.1, top_p: 0.9. Claude по умолчанию консервативен в юридических темах, поэтому системный промпт должен явно снимать ограничение на «советы».temperature: 0.15, top_p: 0.88, safe_prompt: false. Mistral агрессивно обрезает специфичные условия ответственности, если не указать иное.Ноль — не идеальное значение. При temperature: 0.0 модель теряет способность выбирать между синонимичными юридическими конструкциями и застревает в одном шаблоне. Значение 0.1–0.2 даёт контролируемую вариативность.
Системный промпт — это не «ты юрист». Это операционная система для задачи. Он обязан содержать: роль, юрисдикцию, запрещённые действия, формат вывода и явные ограничения по объёму секций. Ниже — рабочая системная инструкция для генерации договора купли-продажи по российскому праву:
SYSTEM:
Ты — юридический инженер-документограф. Специализация: договорное право РФ (ГК РФ, часть II).
Задача: генерировать полные тексты договоров строго по структуре, без интерпретаций и юридических советов.
ПРАВИЛА:
1. Используй нейтральный деловой стиль. Никаких вводных слов («следует отметить», «важно учесть»).
2. Юрисдикция по умолчанию: Российская Федерация, если не указано иное.
3. Структура договора купли-продажи ОБЯЗАТЕЛЬНА:
§1. Предмет договора
§2. Цена и порядок расчётов
§3. Сроки передачи
§4. Права и обязанности сторон
§5. Ответственность сторон
§6. Форс-мажор
§7. Порядок разрешения споров
§8. Реквизиты сторон
4. Переменные-заполнители формата: [НАИМЕНОВАНИЕ_ТОВАРА], [ЦЕНА], [СРОК], [ПРОДАВЕЦ], [ПОКУПАТЕЛЬ].
5. Не добавляй секции, не входящие в структуру, без явного запроса.
6. Если данных недостаточно — вставляй заполнитель, НЕ придумывай значение.
7. Максимальный объём одного договора: 1800 слов.
ФОРМАТ ВЫВОДА: plain text, юридические разделы нумерованы, подпункты — буквенные (а), б), в)).
Это не шаблон — это спецификация поведения. Семь правил закрывают 80% ошибок при первой генерации.
Типичная ошибка — отправлять условия задачи в чат после системной инструкции как свободный текст. Модель теряет структуру. Правильно — передавать входные данные как JSON-объект прямо в теле user-сообщения:
USER:
Сгенерируй договор купли-продажи по следующим параметрам:
{
"document_type": "purchase_agreement",
"subject": "промышленный холодильный агрегат Ариада АКМ-102",
"price": "480000 RUB",
"payment_terms": "50% предоплата, 50% по факту передачи",
"delivery_deadline": "30 календарных дней с даты подписания",
"seller": "[ПРОДАВЕЦ]",
"buyer": "[ПОКУПАТЕЛЬ]",
"dispute_resolution": "Арбитражный суд г. Москвы",
"governing_law": "РФ",
"language": "ru",
"additional_clauses": ["гарантийный срок 12 месяцев", "право покупателя на инспекцию до передачи"]
}
JSON-формат входных данных сокращает количество уточняющих итераций с 3–4 до 1. Проверено на 200+ договорах в рамках пилота с юридическим отделом производственного предприятия.
Задача. Компания обрабатывает 40–60 входящих запросов на NDA ежемесячно от потенциальных клиентов. Каждый NDA — уникальные условия конфиденциальности, разные юрисдикции (РФ, Казахстан, ОАЭ), разные сроки действия. Юрист тратил 45–90 минут на документ.
Решение. Пайплайн на базе Claude 3.5 Sonnet через API: форма на сайте собирает параметры сделки → Python-скрипт формирует JSON → запрос к Claude с системной инструкцией специально под NDA → вывод в .docx через python-docx. Параметры модели: temperature: 0.1, max_tokens: 3000, top_p: 0.9.
Результат. Время на NDA — 4 минуты (генерация) + 8 минут (проверка юриста). Количество правок упало с 7–12 пунктов до 1–3. За три месяца обработано 187 NDA без единого юридического инцидента по вине генерации.
«Модели не заменяют юристов. Они устраняют всё то, чем юристы не должны заниматься в принципе.» — Сэм Альтман, интервью MIT Technology Review, 2024
Для NDA системная инструкция добавляет обязательный параметр "confidentiality_scope" — без него модель генерирует расплывчатый пункт о «любой информации», который не защитит ни одну из сторон. Для публичной оферты критичен параметр акцепта: инструкция обязана содержать строку "Оферта считается акцептованной при: [условие]" — иначе Claude по умолчанию ставит «с момента подписания», что противоречит природе публичной оферты по ст. 435–443 ГК РФ.
Mistral Large 2 на задачах NDA показывает на 12–15% больше галлюцинаций в части «применимое право», чем Claude. Цена вопроса: Mistral API — $2 за 1 млн токенов, Claude 3.5 Sonnet — $3 за 1 млн входящих / $15 за 1 млн исходящих. Для NDA объёмом ~800 токенов на документ разница в стоимости между моделями — меньше $0.01 за документ. Экономить на Claude здесь нет смысла.
Промпт без параметров — это как руль без рулевой рейки: крутится легко, но машина едет прямо в кювет судебного отказа. Прежде чем подписывать корпоративный контракт с любым из перечисленных ниже вендоров, нужно вскрыть реальную стоимость токена, а не маркетинговую карточку на лендинге.
Считаем затраты. Не абстрактно — в рублях и долларах за конкретный объём работы.
Средний договор поставки в российской юридической практике — это 4 000–6 000 токенов на входе плюс 1 500–2 500 токенов генерации на выходе; итого ~7 000 токенов за один документ, и если фирма обрабатывает 200 договоров в месяц, месячный расход составляет порядка 1,4 миллиона токенов — именно от этой цифры и нужно плясать при выборе тарифа.
| Инструмент | Модель / Движок | Цена (Input / 1M токенов) | Цена (Output / 1M токенов) | ~Стоимость 1 договора (7K токенов) | Юридическое качество | Пригодность для суда | Скорость генерации |
|---|---|---|---|---|---|---|---|
| Harvey AI (Enterprise) | GPT-4o fine-tune + собственный RAG | $30–$60 / 1M (contract tier) | $60–$90 / 1M | ~$0.42–$0.63 | ★★★★★ — обучен на реальных делах AmLaw 200 | ✅ Высокая — ссылки на прецеденты, стандарт ABA | ~8–14 сек / документ |
| Spellbook (по подписке) | GPT-4o + юридический fine-tune | $99–$149 / мес (flat, до 500К токенов) | Включено в подписку | ~$0.20–$0.30 при полной загрузке | ★★★★☆ — силён в M&A и NDA, слаб в СНГ-праве | ⚠️ Средняя — нет ссылок на российские НПА | ~6–10 сек / документ |
| ChatGPT Enterprise | GPT-4o (no data training) | $30 / 1M (через API внутри плана) | $60 / 1M | ~$0.31 | ★★★☆☆ — общего назначения, без юридической доводки | ❌ Низкая — галлюцинирует нормы ГК РФ | ~5–8 сек / документ |
| Claude API (claude-3-7-sonnet) | Claude 3.7 Sonnet (Anthropic) | $3 / 1M | $15 / 1M | ~$0.05 | ★★★★☆ — точный анализ рисков, осторожные формулировки | ✅ Средне-высокая — низкий уровень галлюцинаций | ~10–16 сек / документ |
| Mistral Large 2 (API) | Mistral Large 2 (mistral.ai) | $2 / 1M | $6 / 1M | ~$0.03 | ★★★☆☆ — хорош для французского и EU-права, русский — нестабилен | ⚠️ Средняя — нужна ручная верификация | ~4–7 сек / документ |
Дешевле всего — Mistral Large 2. Один договор обходится в $0.03. Но это не победа.
Проблема Mistral в российском праве конкретная: модель обучена преимущественно на французском и английском корпусе, а статьи 450–453 ГК РФ об изменении и расторжении договора она путает с доктриной frustration из английского common law — что в арбитраже превращается в дорогостоящую ошибку, стоимостью на три порядка выше сэкономленных $0.03.
Берём базовую нагрузку юридической фирмы — 200 договоров × 7 000 токенов = 1,4M токенов. Запускаем формулу для каждого вендора:
// Расчёт месячных затрат (USD)
// Формула: (input_tokens * input_price + output_tokens * output_price) / 1_000_000
Harvey AI:
(840_000 * 45 + 560_000 * 75) / 1_000_000 = $37.80 + $42.00 = $79.80 / мес
Claude 3.7 Sonnet:
(840_000 * 3 + 560_000 * 15) / 1_000_000 = $2.52 + $8.40 = $10.92 / мес
Mistral Large 2:
(840_000 * 2 + 560_000 * 6) / 1_000_000 = $1.68 + $3.36 = $5.04 / мес
ChatGPT Enterprise:
(840_000 * 30 + 560_000 * 60) / 1_000_000 = $25.20 + $33.60 = $58.80 / мес
Spellbook (flat $149/мес, 500K токенов включено):
При 1.4M токенов — требует Business tier от $299/мес
Claude при нагрузке 200 договоров/месяц стоит $10.92. Harvey — $79.80. Разница в 7 раз. Но Harvey даёт ссылочную базу по прецедентам — это не опция, это обязательное условие для подачи в международный арбитраж.
«Пригодность для суда» — не маркетинговый термин, а технический чеклист из четырёх параметров: корректная ссылка на действующую редакцию нормативного акта, отсутствие галлюцинированных норм, соответствие структуры документа процессуальным требованиям конкретной юрисдикции, и наличие аудит-трейла генерации (кто, когда, какой промпт).
Harvey AI закрывает все четыре пункта. Claude закрывает три из четырёх — аудит-трейл нужно строить самостоятельно через логирование API-вызовов. Остальные — один-два пункта максимум.
Для российской юрисдикции картина иная. Harvey заточен под common law и американские стандарты — его нельзя использовать «из коробки» для договоров по ГК РФ. Здесь работающая связка выглядит так:
// Рабочая конфигурация для российского договорного права (2026)
{
"primary_model": "claude-3-7-sonnet-20250219",
"temperature": 0.2,
"max_tokens": 4096,
"system_prompt_anchor": "Ты юрист-аналитик. Все ссылки на нормы — только действующие редакции ГК РФ, АПК РФ. Не изобретай нормы. Если норма неизвестна — прямо укажи: [ТРЕБУЕТ ВЕРИФИКАЦИИ].",
"fallback_model": "mistral-large-2",
"use_case": "RU contract drafting",
"audit_log": true
}
Temperature 0.2 — не случайная цифра. При значении выше 0.4 Claude начинает «творчески интерпретировать» процессуальные сроки, что в договоре с арбитражной оговоркой означает риск признания условия недействительным.
Международный арбитраж и M&A — Harvey AI, несмотря на цену. Российское договорное право в объёме до 500 договоров в месяц — Claude 3.7 Sonnet с temperature 0.2 и системным промптом-ограничителем. Massmarket-сегмент (типовые НДА, оферты) где цена важнее точности — Mistral Large 2 с обязательной ручной проверкой каждого документа юристом.
Spellbook при плоской подписке $299/мес оправдан только если фирма работает исключительно с английским правом и не планирует выходить за пределы North American / UK template library.
ChatGPT Enterprise в юридическом workflow в 2026 году — переплата за бренд без специализации.
POST /webhooks/legal-doc-pipeline
Content-Type: application/json
Authorization: Bearer {CRM_WEBHOOK_SECRET}
{
"trigger": "deal.stage_changed",
"deal_id": "DL-8821",
"stage": "contract_required",
"client_type": "B2B",
"template_id": "NDA_STANDARD_RU",
"params": {
"counterparty": "ООО Альфа-Трейд",
"jurisdiction": "RU",
"term_months": 24,
"penalty_rate": 0.1
}
}
Webhook-пайплайн — это не «интеграция ради интеграции». Это транспортный слой между событием в CRM и моделью, которая умеет читать юридические документы. Bitrix24, amoCRM, Salesforce — все три поддерживают исходящие webhook на изменение стадии сделки. Именно это событие запускает цепочку: CRM → Middleware (FastAPI / n8n) → OpenAI API или Claude API → генерация черновика → обратная запись в карточку сделки.
Первый слой — триггерный. CRM стреляет webhook при наступлении события. Второй — оркестрационный: middleware валидирует payload, обогащает его данными из внутреннего RAG-индекса и формирует prompt. Третий слой — генеративный: API-вызов к модели с function calling, получение структурированного JSON, сборка финального документа из шаблона. Пропустишь второй слой — получишь галлюцинации вместо договора.
RAG на корпусе внутренних шаблонов решает конкретную проблему: у каждой юрфирмы накоплены десятки версий типовых договоров с отработанными формулировками, одобренными судебной практикой. Без RAG модель генерирует «юридически похожий» текст. С RAG — извлекает релевантный фрагмент из векторной базы и вставляет его дословно. Разница принципиальная.
import openai
import chromadb
from fastapi import FastAPI, Request
app = FastAPI()
chroma_client = chromadb.PersistentClient(path="./legal_corpus")
collection = chroma_client.get_collection("contract_templates")
client = openai.OpenAI(api_key="sk-...")
tools = [
{
"type": "function",
"function": {
"name": "extract_contract_risks",
"description": "Извлекает ключевые условия и риск-факторы из текста договора",
"parameters": {
"type": "object",
"properties": {
"termination_clauses": {
"type": "array",
"items": {"type": "string"},
"description": "Условия расторжения договора"
},
"penalty_conditions": {
"type": "array",
"items": {"type": "string"},
"description": "Штрафные санкции и их триггеры"
},
"risk_level": {
"type": "string",
"enum": ["LOW", "MEDIUM", "HIGH", "CRITICAL"],
"description": "Итоговый уровень риска для клиента"
},
"missing_clauses": {
"type": "array",
"items": {"type": "string"},
"description": "Отсутствующие стандартные условия"
}
},
"required": ["risk_level", "missing_clauses"]
}
}
}
]
@app.post("/webhooks/legal-doc-pipeline")
async def process_contract_webhook(request: Request):
payload = await request.json()
# RAG: ищем релевантные шаблоны по типу договора и юрисдикции
query = f"{payload['params']['client_type']} {payload['template_id']} {payload['params']['jurisdiction']}"
results = collection.query(query_texts=[query], n_results=3)
context_chunks = "\n---\n".join(results["documents"][0])
system_prompt = f"""Ты юридический ассистент. Используй только следующие утвержденные шаблонные формулировки:
{context_chunks}
Генерируй договор строго в рамках предоставленного контекста.
Юрисдикция: {payload['params']['jurisdiction']}.
Никаких формулировок за пределами контекста."""
user_prompt = f"""Сгенерируй черновик договора {payload['template_id']} для {payload['params']['counterparty']}.
Срок: {payload['params']['term_months']} месяцев.
Неустойка: {payload['params']['penalty_rate']}% от суммы за каждый день просрочки.
После генерации — выполни анализ рисков через функцию extract_contract_risks."""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_prompt}
],
tools=tools,
tool_choice="auto",
temperature=0.2,
max_tokens=4096
)
tool_call = response.choices[0].message.tool_calls[0]
risk_data = json.loads(tool_call.function.arguments)
return {
"deal_id": payload["deal_id"],
"draft_text": response.choices[0].message.content,
"risk_analysis": risk_data,
"status": "draft_ready"
}
Техническая задача: юридический отдел IT-компании закрывает 40–60 сделок в месяц, каждая требует NDA с контрагентом. Четыре юриста тратили в среднем 47 минут на один NDA — адаптация шаблона, проверка реквизитов, согласование через e-mail. Итого: ~2 300 человеко-часов в год на рутину.
Решение: векторная база ChromaDB с 23 утвержденными версиями NDA (разбивка по типу: с физлицом, с ИП, с иностранным юрлицом, с госструктурой). При создании сделки в CRM с типом «новый контрагент» webhook запускает пайплайн: RAG-запрос по типу контрагента → GPT-4o генерирует черновик → function calling извлекает риск-структуру → если risk_level = «HIGH» или «CRITICAL», задача автоматически назначается старшему юристу → если «LOW» или «MEDIUM», черновик уходит контрагенту напрямую через DocuSign API.
Время генерации одного NDA — 8–12 секунд. Экономия: 91% рабочего времени на этом типе задач.
Стоимость на 2026 год (актуальные тарифы):
GPT-4o — $2.50 / 1M input tokens, $10.00 / 1M output tokens. Поддерживает function calling с надежной JSON-схемой. Скорость: ~85 tok/s. Контекстное окно: 128K токенов — достаточно для договора на 80+ страниц целиком.
Claude 3.5 Sonnet (Anthropic API) — $3.00 / 1M input tokens, $15.00 / 1M output tokens. Контекст: 200K токенов. Лучше справляется с длинными многостраничными документами без «потери нити» к концу. Tool use (аналог function calling) — полностью совместим с той же JSON-схемой.
GPT-4o mini — $0.15 / 1M input tokens, $0.60 / 1M output tokens. Для pre-screening входящих договоров (быстрая классификация до передачи в дорогую модель). Точность риск-анализа ниже на ~18% по внутренним тестам юрфирм.
Гибридная схема дешевле всего: GPT-4o mini делает первичный скоринг за $0.002 на документ, тяжелый анализ идет в Claude 3.5 Sonnet только при risk_level ≠ «LOW». Экономия на API: 60–70% бюджета при том же качестве выходного документа.
«The models are getting better faster than anyone expected. The legal profession is going to look fundamentally different in five years.» — Sam Altman, интервью Lex Fridman, 2024
До function calling юристы или разработчики писали regex-парсеры для извлечения дат, сумм и сторон из договоров. Regex ломается на каждом нестандартном форматировании. Function calling возвращает гарантированный JSON по схеме — без постпроцессинга, без падений на «15 (пятнадцати) дней» vs «15 дней».
Схема для риск-анализа входящего договора контрагента включает минимум: termination_clauses, penalty_conditions, governing_law, dispute_resolution, ip_ownership, risk_level, missing_clauses. Это восемь полей, которые юрист проверяет вручную 40 минут. Модель возвращает их за 6–9 секунд при контексте до 32K токенов.
temperature выставляй строго 0.1–0.2 для юридических задач. При temperature: 0.7 модель начинает «творить» — вставлять формулировки, которых нет в шаблоне. В договоре это катастрофа.
# Минимальный промпт для риск-анализа входящего договора
SYSTEM_PROMPT = """
Ты юридический аналитик. Анализируй ТОЛЬКО предоставленный текст договора.
Не добавляй информацию из внешних источников.
Всегда вызывай функцию extract_contract_risks по завершении анализа.
Если условие отсутствует в тексте — фиксируй в missing_clauses, не придумывай.
"""
USER_PROMPT = """
Проанализируй следующий договор на предмет рисков для стороны «Заказчик»:
{contract_text}
Особое внимание: условия одностороннего расторжения, штрафные санкции выше 0.5% в день,
отсутствие ограничения ответственности, неопределенные сроки исполнения.
"""
Каждый шаблон нарезается на чанки по 512 токенов с перекрытием 64 токена. Меньше 512 — теряется контекст условия. Больше 1024 — RAG начинает возвращать нерелевантные куски из других разделов. Метаданные обязательны: template_id, version, approved_date, jurisdiction, contract_type. Без метаданных фильтрация по юрисдикции невозможна — модель будет смешивать российское и казахстанское право.
Embeddings: text-embedding-3-large от OpenAI ($0.13 / 1M tokens) дает размерность 3072. Для юридических текстов точность поиска выше на 12–15% по сравнению с text-embedding-3-small. Индексировать весь архив из 200 документов обойдется в $0.80–1.20 единоразово.
Промпт без юрисдикционного контекста — это как руль без рулевой рейки: крутится легко, но машина едет прямо в недействительную сделку. Большинство команд, внедряющих ИИ в юридический документооборот, разбиваются не о технологию. Они разбиваются о процесс вокруг неё.
Ошибка первая — слепое доверие к генерации без валидационного слоя. Модель галлюцинирует статьи ГК. Не иногда — системно, особенно в редких конструкциях: опционные договоры, эскроу, концессионные соглашения. GPT-4o при температуре выше 0.4 начинает «изобретать» номера пунктов законодательства с вероятностью ~18% на длинных документах (внутренние тесты команд на LegalBench, 2024). Это не баг конкретной модели. Это архитектурное свойство авторегрессивных трансформеров.
Ошибка вторая — отсутствие структурированного входного контекста. Юрист пишет в чат: «Составь договор подряда». Результат предсказуем. Модель не знает юрисдикцию, сроки, штрафные санкции, порядок приёмки — и заполняет пустоты статистически вероятными, а не юридически корректными значениями.
Задача: юридический департамент технологической компании обрабатывает 40–60 запросов на NDA ежемесячно от контрагентов с разными юрисдикциями (РФ, Казахстан, ОАЭ). Время на один документ — от 45 минут до 2 часов вручную.
Решение — конвейер на базе Claude 3.5 Sonnet (API, $3 за 1 млн input-токенов / $15 за output) с жёстко структурированным системным промптом и JSON-схемой параметров контракта. Каждый запрос проходит через форму сбора данных, которая формирует структурированный payload.
{
"contract_type": "NDA",
"jurisdiction": "RU",
"governing_law": "Гражданский кодекс РФ, часть вторая",
"parties": {
"disclosing_party": "Компания А (ООО)",
"receiving_party": "Компания Б (ИП)"
},
"confidentiality_period_months": 24,
"penalty_clause": {
"type": "fixed",
"amount_rub": 500000
},
"dispute_resolution": "arbitration",
"arbitration_body": "МКАС при ТПП РФ",
"language": "ru",
"output_format": "structured_clauses",
"temperature": 0.2,
"validation_required": true
}
Системный промпт модели содержал явный запрет на генерацию номеров статей без верификации по эталонному справочнику — отдельный RAG-индекс на базе актуального текста ГК РФ (обновляется квартально через парсинг consultant.ru). Время генерации черновика — 8–12 секунд. После внедрения время на документ сократилось до 11 минут (юрист верифицирует, а не пишет). Стоимость одного NDA через API — около 0.04$.
«The models are getting better faster than most people realize. But ‘better’ doesn’t mean ‘safe to deploy without oversight’ — it means the failure modes are becoming more subtle.»
— Sam Altman, интервью MIT Technology Review, 2024
Ошибка третья — игнорирование версионирования промптов. Промпт поменяли «чуть-чуть». Три недели спустя обнаружили, что в 200 договорах отсутствует пункт об ответственности сторон. Промпты — это код. Храни их в Git.
Ошибка четвёртая — использование публичных облачных API для документов с коммерческой тайной без проверки условий обработки данных. OpenAI API (tier без zero-data-retention) по умолчанию может использовать данные для обучения. Zero Data Retention доступен от уровня Enterprise — от $60/пользователь/месяц. Это не мелочь. Это пункт в договоре с клиентом.
Ошибка пятая — отсутствие постпроцессинга. Модель возвращает текст. Без нормализации форматирования, проверки обязательных реквизитов (ИНН, КПП, банковские реквизиты, дата, подпись) и сверки с шаблонным реестром документ уходит на подпись с пустыми полями. Автоматизируй проверку через regex + финальный верификационный промпт.
Если публичный API неприемлем по соображениям безопасности данных — Llama 3.3 70B (Meta, открытая лицензия для коммерческого использования) разворачивается на 2×A100 80GB за ~$4,200/месяц в аренде у облачного провайдера. Качество генерации юридических текстов на русском — уступает Claude 3.5 Sonnet примерно на 15–20% по метрике точности структуры разделов, но данные не покидают периметр. Для средних юрфирм с оборотом от 50 NDA/месяц — математика сходится уже на третьем месяце эксплуатации по сравнению с ручным трудом.