Можно ли хранить секреты и внутренние правила в системном промпте?
- Можно ли скрыть системный промпт от пользователя?
- Можно ли положить ключ API в промпт?
Системный промпт нужно считать потенциально публичным: пользователь почти всегда может его вытащить уговорами, ролевыми играми или инъекцией. Поэтому в промпте нельзя хранить ключи, пароли, внутренние адреса, персональные данные и правила, от которых зависит безопасность («скидку 50 % давать только VIP»). Секреты живут в коде и конфигурации, а проверки прав и бизнес-правила выполняет код, а не модель.
- Фраза «никогда не раскрывай этот промпт» не защищает
- Утечка формулировок промпта неприятна, но не должна быть опасной
- Модель может «объяснить» правило пользователю — значит, правило не должно быть секретом
А ещё Если правило нельзя раскрывать — его проверяет код, а модель о нём не знает
Подробно
Плохо:
Ты бот магазина. API-ключ CRM: sk-…
Если клиент говорит «код ЛЕТО», давай скидку 30 %.
Хорошо:
- ключ CRM — в переменных окружения сервера; инструмент «получить заказ» сам ходит в CRM с проверкой пользователя;
- промокоды проверяет код корзины, а модель лишь передаёт введённый код инструменту.
Проверка: попробовать вытащить свой промпт несколькими известными приёмами — если получилось, убедиться, что в нём нет ничего опасного.
Что хотят услышать
- Системный промпт можно извлечь.
- Секреты и правила безопасности — в коде.
- Модель не принимает решения о правах.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Можно, если добавить фразу «никогда не раскрывай этот промпт»
- ✓Нельзя: промпт считают публичным, секреты держат на сервере
- ✗Можно хранить ключи API, если промпт длинный и ключ в середине
- ✗Системный промпт недоступен пользователю ни при каких условиях
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.