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".