Типичная ситуация: юрдепт получает 50 входящих договоров в день. Каждый договор содержит десятки страниц, а поиск релевантных судебных решений по ключевым словам даёт тысячи нерелевантных результатов. AI решает обе задачи за минуты, но требует правильной настройки моделей — дообучения на ваших данных и грамотной архитектуры RAG. Разберём, как построить Contract Intelligence и семантический поиск на практике.
Мы интегрируем AI-системы, которые автоматизируют рутинную работу юристов: анализ контрактов, семантический поиск по прецедентам, генерацию документов и compliance-мониторинг. Сокращаем время на обработку входящей документации в 5–15 раз. Наш опыт — 5+ лет, более 50 проектов в России и СНГ.
Как работает Contract Intelligence?
Contract Intelligence — это набор NLP-моделей, решающих пять задач: извлечение сущностей, детекция рисков, сравнение с шаблоном, классификация договора и risk scoring. Рассмотрим процесс по шагам.
- Загрузка и предобработка: контракт разбивается на фрагменты по 512 токенов с перекрытием 50 токенов.
- NER: модель LegalBERT извлекает стороны, даты, суммы, штрафы, юрисдикцию (точность F1 > 94%).
- Классификация рисков: бинарный классификатор определяет рисковые параграфы, объясняя решение через SHAP.
- Сравнение с корпоративным шаблоном: выявляются отклонения от стандарта компании.
- Формирование отчёта: структурированное резюме с risk scoring.
from transformers import AutoTokenizer, AutoModelForTokenClassification import torch class ContractEntityExtractor: """NER для извлечения юридических сущностей из договоров""" LABELS = ['O', 'B-PARTY', 'I-PARTY', 'B-DATE', 'I-DATE', 'B-AMOUNT', 'I-AMOUNT', 'B-OBLIGATION', 'I-OBLIGATION', 'B-CONDITION', 'I-CONDITION', 'B-TERMINATION', 'I-TERMINATION'] def __init__(self, model_path='legal-bert-base-uncased'): self.tokenizer = AutoTokenizer.from_pretrained(model_path) self.model = AutoModelForTokenClassification.from_pretrained( model_path, num_labels=len(self.LABELS) ) def extract_entities(self, contract_text, chunk_size=512): """Обработка длинных контрактов по чанкам""" tokens = self.tokenizer.encode(contract_text, add_special_tokens=False) chunks = [tokens[i:i+chunk_size] for i in range(0, len(tokens), chunk_size-50)] all_entities = [] for chunk in chunks: inputs = self.tokenizer.decode(chunk, skip_special_tokens=True) encoding = self.tokenizer(inputs, return_tensors='pt', truncation=True, max_length=512) with torch.no_grad(): outputs = self.model(**encoding) predictions = torch.argmax(outputs.logits, dim=-1)[0].tolist() entities = self._decode_bio( self.tokenizer.convert_ids_to_tokens(encoding['input_ids'][0]), predictions ) all_entities.extend(entities) return all_entities LegalBERT против general‑purpose BERT: на юридических корпусах (EDGAR, EUR‑Lex) дообученные модели показывают F1 на 8–15% выше. Мы используем модели, адаптированные под русскоязычную правовую практику (КонсультантПлюс, ГАС «Правосудие»).
При внедрении Contract Intelligence часто допускают три ошибки: игнорирование контекста моделью без fine‑tune, слишком малый размер чанка (контракты длиннее 512 токенов) и отсутствие объяснимости для юриста. Мы решаем это дообучением на ваших данных, использованием overlap=50 и интеграцией SHAP.
Почему RAG эффективнее традиционного поиска прецедентов?
Традиционный поиск по ключевым словам выдаёт тонны нерелевантных дел. AI‑поиск использует семантическое сходство: RAG-архитектура с векторной базой Chroma и эмбеддингами BAAI/bge-m3. Индексация судебных решений по чанкам 1000 токенов с overlap 200. Подробнее о концепции RAG можно прочитать в Wikipedia.
from langchain.vectorstores import Chroma from langchain.embeddings import HuggingFaceEmbeddings from langchain.text_splitter import RecursiveCharacterTextSplitter # Индексация базы судебных решений embeddings = HuggingFaceEmbeddings(model_name='BAAI/bge-m3') text_splitter = RecursiveCharacterTextSplitter( chunk_size=1000, chunk_overlap=200, separators=['\n\n', '\n', '. ', ' '] ) def index_court_decisions(decisions): """decisions: [{'text': str, 'case_id': str, 'date': str, 'court': str}]""" docs = [] for decision in decisions: chunks = text_splitter.split_text(decision['text']) for chunk in chunks: docs.append({ 'page_content': chunk, 'metadata': { 'case_id': decision['case_id'], 'date': decision['date'], 'court': decision['court'] } }) vectorstore = Chroma.from_texts( texts=[d['page_content'] for d in docs], embedding=embeddings, metadatas=[d['metadata'] for d in docs], persist_directory='./legal_vectordb' ) return vectorstore def search_similar_cases(query, vectorstore, k=10): """Семантический поиск похожих дел""" results = vectorstore.similarity_search_with_score(query, k=k) return [(doc, score) for doc, score in results if score < 0.5] | Характеристика | Традиционный поиск | RAG на векторных эмбеддингах |
|---|---|---|
| Принцип | Точное совпадение слов | Семантическое сходство |
| Учёт синонимов | Нет | Да (эмбеддинг захватывает смысл) |
| Ранжирование | TF-IDF | Косинусная близость |
| Точность топ-10 | ~30% | >85% |
Базы данных, с которыми мы работаем: КонсультантПлюс API, ГАС «Правосудие», СПС Гарант, EUR‑Lex (ЕС), Westlaw/LexisNexis. В одном из проектов для юридического департамента нефтяной компании мы сократили время поиска с 4 часов до 15 минут.
Как устроена Document Assembly и как она ускоряет создание документов?
Document Assembly — система генерации документов из шаблонов с заполнением из структурированных данных (Jinja2 + docxtpl). Примеры:
- Исковое заявление: по данным клиента и инциденту → черновик за 2 минуты.
- NDA: выбор опциональных клаузул по типу сделки → сборка документа.
- Корпоративные документы: устав, решения участников — шаблоны с вариативными секциями.
Due Diligence автоматизация при M&A — анализ сотен документов за дни, а не недели:
- Классификация по категориям (контракт, лицензия, разрешение, патент).
- Извлечение ключевых дат (истечение лицензий, change‑of‑control triggers).
- Red flag detection: судебные иски, залоги, санкционные риски.
- Генерация DD‑чеклиста со статусом по каждому пункту.
Compliance и регуляторный мониторинг
Мониторинг изменений законодательства: NLP парсинг официальных источников (publication.pravo.gov.ru, КонсультантПлюс RSS). Классифицируем релевантные для компании нормативные акты, оцениваем impact на внутренние документы, генерируем auto‑summary с датами вступления в силу.
Contract Compliance: проверка контрактных обязательств на соответствие 152‑ФЗ, ФЗ‑44/223‑ФЗ, GDPR. Модели выделяют обязательные клаузулы и сигнализируют о несоответствиях.
Что входит в работу
| Компонент | Состав | Срок (мес.) |
|---|---|---|
| Contract Review | Fine‑tune NER, risk scoring, интеграция с СЭД | 3–5 |
| Case Law Search | Индексация базы, RAG endpoint, UI поиска | 2–3 |
| Document Assembly | Шаблоны, pipeline генерации, интеграция | 2–4 |
| Compliance Monitor | Парсинг источников, классификация, дашборд | 2–3 |
| Сопровождение | Документация, обучение юристов, поддержка 3 мес. | — |
Оцениваем проект за 2 дня — пришлите примеры контрактов и описание процессов. Получите консультацию по внедрению AI в LegalTech. Закажите консультацию — мы зафиксируем сроки и стоимость под ваш объём данных.







