
# Динамическое сопоставление договорных пунктов с ИИ для опросников по безопасности

## Почему сопоставление договорных пунктов важно

Опросники по безопасности являются контрольными точками сделок B2B SaaS. Типичный опросник содержит вопросы, например:

* *«Шифруете ли вы данные в состоянии покоя? Укажите ссылку на пункт из вашего Соглашения об услугах.»*  
* *«Каково время вашего реагирования на инциденты? Укажите соответствующее положение в вашем Дополнении по обработке данных.»*  

Традиционный ручной подход имеет три критических недостатка:

1. **Затрата времени** — команды по безопасности тратят часы на поиск нужного абзаца.  
2. **Человеческие ошибки** — неверная ссылка на пункт может привести к пробелам в соответствии или провалам аудитов.  
3. **Устаревшие ссылки** — договоры меняются; старые номера пунктов становятся неактуальными, однако ответы в опросниках остаются неизменными.  

Движок **Dynamic Contractual Clause Mapping (DCCM)** решает все три проблемы, превращая хранилища договоров в поисковый, самоподдерживаемый граф знаний, который генерирует ответы в реальном времени с помощью ИИ.

---

## Основная архитектура двигателя DCCM

Ниже представлена обзорная схема конвейера DCCM. Диаграмма использует синтаксис **Mermaid** для иллюстрации потока данных и точек принятия решений.

```mermaid
stateDiagram-v2
    [*] --> IngestContracts: "Document Ingestion"
    IngestContracts --> ExtractText: "OCR & Text Extraction"
    ExtractText --> Chunkify: "Semantic Chunking"
    Chunkify --> EmbedChunks: "Vector Embedding (RAG)"
    EmbedChunks --> BuildKG: "Knowledge Graph Construction"
    BuildKG --> UpdateLedger: "Attribution Ledger Entry"
    UpdateLedger --> [*]

    state AIResponder {
        ReceiveQuestion --> RetrieveRelevantChunks: "Vector Search"
        RetrieveRelevantChunks --> RAGGenerator: "Retrieval‑Augmented Generation"
        RAGGenerator --> ExplainabilityLayer: "Citation & Confidence Scores"
        ExplainabilityLayer --> ReturnAnswer: "Formatted Answer with Clause Links"
    }

    [*] --> AIResponder
```

### Объяснение ключевых компонентов

| Компонент | Назначение | Технологии |
|-----------|------------|------------|
| **IngestContracts** | Извлечение договоров, дополнений, условий SaaS из облачного хранилища, SharePoint или репозиториев GitOps. | Event‑driven Lambda, S3 triggers |
| **ExtractText** | Преобразование PDF, сканов и файлов Word в чистый текст. | OCR (Tesseract), Apache Tika |
| **Chunkify** | Разделение документов на семантически связные части (обычно 1‑2 абзаца). | Custom NLP splitter based on headings & bullet hierarchy |
| **EmbedChunks** | Кодирование каждой части в плотный вектор для поиска по схожести. | Sentence‑Transformers (all‑MiniLM‑L12‑v2) |
| **BuildKG** | Создание графа свойств, где узлы — пункты, ребра — ссылки, обязательства или связанные стандарты. | Neo4j + GraphQL API |
| **UpdateLedger** | Запись неизменяемого происхождения для каждой добавленной или изменённой части. | Hyperledger Fabric (append‑only ledger) |
| **RetrieveRelevantChunks** | Поиск топ‑k схожих частей для заданного запроса опросника. | FAISS / Milvus vector DB |
| **RAGGenerator** | Комбинация полученного текста с LLM для генерации лаконичного ответа. | OpenAI GPT‑4o / Anthropic Claude‑3.5 |
| **ExplainabilityLayer** | Прикрепление цитат, оценок уверенности и визуального фрагмента пункта. | LangChain Explainability Toolkit |
| **ReturnAnswer** | Возврат ответа в UI Procurize с кликабельными ссылками на пункты. | React front‑end + Markdown rendering |

---

## Генерация с дополнением Retrieval‑Augmented Generation (RAG) и точность договорных пунктов

Обычные LLM могут «галлюцинировать», когда их просят предоставить ссылки на договоры. Привязывая генерацию к *реальным* частям договора, движок DCCM гарантирует фактическую точность:

1. **Встраивание запроса** — текст вопроса из опросника преобразуется в вектор.  
2. **Топ‑k поиск** — FAISS возвращает наиболее похожие части договора (по умолчанию k=5).  
3. **Промпт‑инжиниринг** — полученные фрагменты вставляются в системный промпт, который заставляет LLM явно указывать источник:

```
Вы — помощник по соответствию. Используйте ТОЛЬКО предоставленные выдержки из договора для ответа на вопрос.
Для каждого ответа закончите строкой "Clause: <DocumentID>#<ClauseNumber>".
Если выдержка не содержит достаточно деталей, ответьте "Information not available".
```

4. **Постобработка** — движок разбирает вывод LLM, проверяет, что каждая указанная ссылка существует в графе знаний, и добавляет оценку уверенности (0–100). Если оценка падает ниже настраиваемого порога (например, 70), ответ помечается для проверки человеком.

---

## Объяснимый реестр атрибуций

Аудиторы требуют доказательства *где* был получен каждый ответ. Движок DCCM записывает **криптографически подписанную запись реестра** для каждого события сопоставления:

```json
{
  "question_id": "Q-2025-07-12-001",
  "answer_hash": "sha256:8f3e...",
  "referenced_clause": "SA-2024-08#12.3",
  "vector_similarity": 0.94,
  "llm_confidence": 88,
  "timestamp": "2025-12-01T08:31:45Z",
  "signature": "0xABCD..."
}
```

Этот реестр:

* Обеспечивает неизменяемый журнал аудита.  
* Позволяет выполнять **доказательства с нулевым разглашением**: регулятор может подтвердить наличие ссылки, не раскрывая весь договор.  
* Поддерживает **политики как код** — если пункт объявлен устаревшим, реестр автоматически помечает все зависимые ответы для переоценки.

---

## Адаптация в реальном времени к изменению пунктов

Договоры — живые документы. Когда пункт изменяется, **служба обнаружения изменений** пересчитывает эмбеддинги затронутой части, обновляет граф знаний и повторно генерирует записи реестра для всех ответов, ссылающихся на изменённый пункт. Весь цикл обычно занимает **2–5 секунд**, гарантируя, что UI Procurize всегда отображает актуальный текст договора.

### Пример сценария

*Исходный пункт (Версия 1):*  
> “Data shall be encrypted at rest using AES‑256.”

*Обновлённый пункт (Версия 2):*  
> “Data shall be encrypted at rest using AES‑256 or ChaCha20‑Poly1305, whichever is deemed more appropriate.”

После изменения версии:

1. Эмбеддинг пункта обновляется.  
2. Все ответы, ранее ссылавшиеся на «Пункт 2.1», проходят повторный запуск через RAG‑генератор.  
3. Если обновлённый пункт вводит опцию, оценка уверенности может снизиться, требуя подтверждения от специалиста по безопасности.  
4. Реестр фиксирует **событие дрейфа**, связывая старый и новый идентификаторы пункта.

---

## Количественная оценка преимуществ

| Метрика | До DCCM | После DCCM (30‑дневный пилот) |
|--------|---------|-------------------------------|
| Среднее время ответа на вопрос, связанный с пунктом | 12 мин (ручной поиск) | 18 сек (генерация ИИ) |
| Уровень ошибок человека (неправильные ссылки на пункты) | 4,2 % | 0,3 % |
| Процент ответов, помеченных для повторного рассмотрения после обновления договора | 22 % | 5 % |
| Оценка удовлетворённости аудиторов (1‑10) | 6 | 9 |
| Общее сокращение времени обработки опросников | 35 % | 78 % |

Эти данные показывают, как **единственный ИИ‑движок** может превратить узкое место в конкурентное преимущество.

---

## Чек‑лист внедрения для команд безопасности

1. **Централизация документов** — убедитесь, что все договоры хранятся в машинно‑читаемом репозитории (PDF, DOCX или обычный текст).  
2. **Обогащение метаданными** — пометьте каждый договор тегами `vendor`, `type` (SA, **[DPAs](https://www.dpocentre.com/what-is-a-dpa-and-why-do-you-need-one/), SLA) и `effective_date`.  
3. **Контроль доступа** — предоставьте сервису DCCM права только на чтение; запись допускается только в реестр происхождения.  
4. **Управление политиками** — задайте политику порога уверенности (например, > 80 % автоматическое одобрение).  
5. **Human‑In‑The‑Loop (HITL)** — назначьте проверяющего compliance для обработки ответов с низкой уверенностью.  
6. **Непрерывный мониторинг** — включите оповещения о событиях дрейфа пунктов, превышающих порог риска.  

Следование этому чек‑листу обеспечивает плавный запуск и максимизирует возврат инвестиций.

---

## Дорожная карта развития

| Квартал | Инициатива |
|---------|------------|
| Q1 2026 | **Многоязычное извлечение пунктов** — Использовать многоязычные эмбеддинги для поддержки договоров на французском, немецком и японском. |
| Q2 2026 | **Аудиты с нулевым разглашением (Zero‑Knowledge Proof)** — Позволить регуляторам проверять происхождение пунктов, не раскрывая весь текст договора. |
| Q3 2026 | **Развёртывание Edge‑AI** — Запускать конвейер эмбеддингов на месте для строго регулируемых отраслей (финансы, здравоохранение). |
| Q4 2026 | **Генеративное составление пунктов** — Когда требуется пункт, отсутствующий в договоре, движок предлагает черновой текст в соответствии с отраслевыми стандартами. |

---

## Заключение

Динамическое сопоставление договорных пунктов соединяет юридический текст и требования опросников по безопасности. Совмещая генерацию с дополнением Retrieval‑Augmented Generation, семантический граф знаний, неизменяемый реестр атрибуций и адаптацию к дрейфу пунктов в реальном времени, Procurize позволяет командам безопасности отвечать уверенно, ускорять обработку и удовлетворять аудиторов — всё при автоматическом актуализировании договоров.

Для SaaS‑компаний, стремящихся ускорить заключение корпоративных сделок, движок DCCM уже не «приятное дополнение», а **необходимое конкурентное преимущество**.