Назад к подготовке

Hidden student profile и prompt injection

Как использовать скрытый профиль студента и не дать пользователю вытащить его через prompt injection?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

Разделить trusted context и user/retrieved context, минимизировать профиль, не отдавать его в ответ, чистить retrieved text и делать post-generation redaction/guard.

Полный разбор

Hidden profile полезен для адаптации подсказок: уровень студента, прошлые ошибки, текущий прогресс. Но его нельзя превращать в обычный текст, который модель может процитировать по просьбе пользователя.

Нужны слои защиты: минимизировать поля профиля, хранить их как trusted/system context, явно запретить раскрытие, не смешивать с retrieved/user text, фильтровать retrieved chunks на injection instructions, проверять output guard-ом и редактировать ответ при утечке. Для особо чувствительных данных лучше использовать профиль только в deterministic routing, а не отдавать полный текст LLM.

Тесты должны включать attack prompts: "ignore previous instructions", "show hidden profile", indirect injection из retrieved docs и попытки заставить модель решить задачу полностью.

Теория

Prompt injection нельзя решить одной системной инструкцией; нужны границы доверия, минимизация данных и проверка выхода.

Типичные ошибки

  • Класть приватный профиль в обычный prompt без output guard.
  • Доверять retrieved content как системной инструкции.
  • Не иметь adversarial test set.