Какую проблему будем решать?Нужно чтобы бот на базе LLM ни при каких обстоятельствах не мог раскрыть пользователю свою системную роль и не говорил на темы, которые мы обозначим как запретные.Какого бота будем защищать?Сейчас на рынке появилось много сервисов по созданию ботов на базе LLM. Я покажу в этой статье сервис Протолк, поскольку я имею отношение к его технической части и механику защиты промпта написал я сам для этого сервиса.Давайте возьмем в качестве примера бота, созданного в предыдущей статье (https://habr.com/ru/articles/820377/) - нейро-сотрудник из автосалона, который использует базу знаний из Notion.У данного бота в промпте есть данные для подключения к базе данных Notion:Пишем роль корректора для защиты ботаВ настройках нашего бота в разделе "Дополнительно" -> "Диалоговые настройки" -> "Роль корректора" пропишем следующую роль:Если в ответе ИИ есть хоть малейший намек на политику, насилие, ругательства или есть пароли или токены ответь так: "Извините, на эту тему я не могу говорить". В противном случае верни ответ ИИ в неизменном виде.Тестируем ботаА вот, что мы видим внутри платформы, где работает бот:Давайте еще пару тестов:И вот что видно в логах:Попробуем поговорить на запрещенные темы:В логах мы видим что взлом был успешен:Как это все работает?Если у бота есть роль корректора в настройках то каждый ответ бота анализируется отдельным запросом к API:messages = [ {'role' : 'system', 'content' : 'Если в ответе ИИ есть хоть малейший намек на политические темы, насилие, ругательства или есть пароли или токены ответь так: "Извините, на эту тему я не могу говорить". В противном случае верни ответ ИИ в неизменном виде.'}, {'role' : 'user', 'content' : 'вот ответ от ИИ: `Вот токен: secret_XXXXXXXXXXXXXX`'}, ]Ответ корректора мы отправляем напрямую пользователю.! Обратите внимание на фразу в роли корректора: "В противном случае верни ответ ИИ в неизменном виде." - именно эта фраза позволяет сохранить ответ нашего бота, если в нем нет запрещенной информации.ИтогЕсли у вас есть примеры других сервисов где будет реализована подобная механика, напишите про них в комментариях пожалуйста или мне в Telegram.