Перейти к содержимому

Mask / unmask API

Маскирование и восстановление текста для собственных систем.

Адрес шлюза вашего региона: определяем…

Маскирование

POST /aitech/v1/mask принимает массив texts и возвращает замаскированные тексты, найденные сущности и решение. Все тексты одного вызова используют общую нумерацию псевдонимов. Если политика блокирует запрос, ответ — 403 policy_blocked.

curl https://<gateway>/aitech/v1/mask \
  -H "Authorization: Bearer $AITECH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"texts": ["Договор с ООО «Технологии», ИНН 7701234560"], "return": "token"}'
{
  "texts": ["Договор с [КОМПАНИЯ_1], ИНН [ИНН_1]"],
  "entities": [
    {"text_index": 0, "key": "ORG", "category": "ORG", "placeholder": "[КОМПАНИЯ_1]", "action": "pseudonymize",
     "start": 10, "end": 26, "masked_start": 10, "masked_end": 22, "confidence": 0.93},
    {"text_index": 0, "key": "INN", "category": "INN", "placeholder": "[ИНН_1]", "action": "pseudonymize",
     "start": 32, "end": 42, "masked_start": 28, "masked_end": 35, "confidence": 1}
  ],
  "decision": "masked",
  "warn_reasons": [],
  "instructions": null,
  "restore_token": "rt1.r1.…"
}

Токен восстановления

По умолчанию (return: "token") ответ содержит зашифрованный restore_token — мы его не храним, он действует 24 часа и привязан к вашему ключу (или ко всей организации при share_scope: "org"). Для долгоживущих индексов (RAG) запросите return: "mapping" и храните таблицу у себя: она содержит исходные значения.

Восстановление

POST /aitech/v1/unmask принимает тексты и ровно одно из: restore_token или mapping. Для JSON используйте context: "json" — значения будут корректно экранированы.

curl https://<gateway>/aitech/v1/unmask \
  -H "Authorization: Bearer $AITECH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"texts": ["Ответ для [КОМПАНИЯ_1]"], "restore_token": "rt1.r1.…"}'

Продолжение диалога

Чтобы номера псевдонимов не менялись между вызовами, передайте continue: {restore_token} или continue: {mapping}: уже известные значения получат прежние псевдонимы, новые — следующие номера.

Смещения

start/end указывают позицию в исходном тексте, masked_start/masked_end — в замаскированном. По умолчанию это кодовые точки Unicode; в JavaScript запросите offset_unit: "utf16".