Перейти к основному содержанию
Если ваш агент обрабатывает данные клиентов, два места, где PII утекает, — это промпты, которые вы отправляете вышестояще, и логи, которые вы храните. Этот рецепт настраивает PII-безопасное логирование от начала до конца: правило маски PII скрабит запрос до модели, сырой совпавший контент по умолчанию остаётся вне вашей ленты совпадений, а срок хранения request-логов ограничен, так что ничто не задерживается. Всё ниже — конфигурация рабочего пространства в консоли — ваше приложение продолжает вызывать /v1/chat/completions без изменений.
Каждый шаг конфигурации защищён ролью. Создание guardrail требует Developer+; изменение срока хранения или резидентности комплаенса требует Admin рабочего пространства. Чтение ленты Matches открыто любому Member.

1. Конвейер PII-безопасного логирования в три приёма

PII-безопасный конвейер — это три независимых контроля, каждый из которых — переключатель, который вы щёлкаете один раз для всего рабочего пространства:

Маскируйте на краю

Правило guardrail pii редактирует email-адреса, SSN, карты и прочее в типизированные теги до того, как вышестоящая модель вообще увидит запрос.

Не логируйте сырой контент

Переключатель guardrail Log raw content выключен по умолчанию, так что лента совпадений записывает, что правило сработало, никогда совпавшую подстроку.

Ограничьте срок хранения

Срок хранения request-логов по умолчанию 30 дней и серверно ограничен жёстким максимумом в 180 дней — недолговечный по дизайну.
Остаток этой страницы связывает все три вместе одним конкретным примером.

2. Маскируйте PII до того, как его увидит модель

Создайте guardrail с единственным правилом pii на стадии input и действием mask. На действии mask каждое совпадение заменяется типизированным тегом — email становится [EMAIL], SSN становится [SSN] — так что вышестоящая модель получает санированный запрос, а не оригинал.
{
  "type": "pii",
  "stage": "input",
  "action": "mask",
  "entities": ["email", "phone", "ssn", "credit_card", "ip"]
}
В консоли: Guardrails → New guardrail, добавьте правило выше (или начните с пресета PII Shield под категорией PII), затем сохраните. Привяжите его к API-ключу через выпадающий список ключа Guardrail или задайте как default рабочего пространства, чтобы каждый ключ его унаследовал.
Хотите одни сущности замаскировать, а другие отклонить целиком? Одно правило может нести пер-сущностные переопределения — маскировать email/phone, но block на ssn/credit_card — через entity_actions. См. Guardrails для полного набора PII-сущностей, кастомных regex-сущностей и синтаксиса пер-сущностного переопределения.
Отправьте запрос с этим ключом, и email редактируется на лету:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "Draft a reply to jane@acme.com about her SSN 123-45-6789"}
    ]
  }'
Модель видит Draft a reply to [EMAIL] about her SSN [SSN]. Оригинальные значения никогда не покидают шлюз.
Маскирование на стадии input — это то, на что опирается PII-безопасный конвейер: оно скрабит запрос до вышестоящего вызова. Маскирование на стадии output работает и на непотоковых, и на потоковых ответах (поток переписывает каждый чанк на месте), так что вы можете также редактировать PII, который выдаёт модель.

3. Держите сырой контент вне ваших логов

Каждое сработавшее правило записывает совпадение — его тип, действие, стадию и строку детали. Хранит ли совпадение также совпавшую подстроку (сам email-адрес, сам SSN), регулируется переключателем guardrail Log raw content, который выключен по умолчанию — консервативная по приватности позиция.
С выключенным Log raw content лента Matches показывает, что правило pii замаскировало email на стадии input, но никогда сам адрес. Это в точности то, что вам нужно для PII-безопасного конвейера: полная аудируемость того, что сработало, ноль сохранённого PII. Оставьте его выключенным в production; включайте per-guardrail только для краткосрочного разбора. Переключатель не ретроактивен.
Читайте ленту в Guardrails → Matches (GET /api/guardrail/match, Member). Группируйте и фильтруйте по guardrail, типу правила и действию, чтобы видеть ваш темп маскирования, никогда не выводя реальное значение. Пометка совпадения ложным срабатыванием — действие Admin (POST /api/guardrail/match/:id/mark-fp).

4. Ограничьте, как долго живут request-логи

Захват request-log — это opt-in функция отладки, и когда она включена, срок хранения ограничен:
НастройкаЗначениеПоведение
Срок хранения по умолчанию30 днейПрименяется, когда не задано пер-рабочее-пространство значение.
Жёсткий максимум180 днейЛюбое большее значение серверно ограничивается вниз.
Вы не можете превысить потолок в 180 дней — он применяется во время записи, а не предложение. В сочетании с маскированием из §2, даже захваченные логи содержат санированный текст, и они устаревают по фиксированным часам.
Относитесь к захваченным request-логам как к рычагу отладки, а не хранилищу данных. Включайте захват во время инцидента, держите окно хранения узким и полагайтесь на ленту Matches (которая никогда не содержит сырой PII, когда Log raw content выключен) для наблюдаемости в установившемся режиме.

5. Право на стирание и резидентность

Ещё два контроля завершают комплаентный конвейер:
Самоудаление пользователя входит в окно 30-дневной отсрочки, после которого PII скрабится, а каскадная очистка удаляет request-логи, совпадения guardrail и события firewall этого пользователя вместе — так что ни один артефакт не переживёт запрос на стирание.
Задайте регион, к которому привязаны артефакты отчётов вашего комплаенса (us, eu, uk, ap, cn, global), через PUT /api/compliance/residency (Admin). Межрегиональные чтения отчёта отклоняются. Это привязывает регион артефакта отчёта — это не гео-привязка данных инференса.

6. Проверьте до выкатки

Докажите, что маскирование делает то, что вы ожидаете, до того, как от него зависит какой-либо трафик:
1

Запустите правило в песочнице

Откройте вкладку Test в редакторе guardrail, вставьте образец текста с реалистичным email и SSN, выберите стадию input и запустите. Песочница возвращает вердикт и отрендеренный текст ([EMAIL], [SSN]) без вышестоящего вызова или какой-либо траты квоты.
2

Eval против корпуса

Вкладка Eval запускает политику над встроенными или кастомными JSONL-корпусами, так что вы можете измерить темп поимки и ложные срабатывания до запуска в production.
3

Убедитесь, что лента остаётся чистой

Отправьте один реальный запрос, затем откройте Matches и убедитесь, что запись показывает сработавшее правило без совпавшей подстроки — доказательство того, что Log raw content выключен.

Связанное

Справочник Guardrails

Полный набор PII-сущностей, кастомные сущности, пер-сущностные переопределения и лента Matches.

Защитите RAG-конвейер

Контроли grounding и PII для агентов с дополнением через извлечение.

Доказательства SOC 2

Превратите активность guardrail и firewall в подписанные отчёты аудита.

Эксфильтрация данных

Модель угроз за удержанием PII вне провода и вне логов.