Мы рекомендуем применять подход "красной команды" к вашему приложению для проверки его устойчивости к враждебным входам. Тестируйте ваш продукт на широком диапазоне входных данных и поведений пользователей, как репрезентативные, так и отражающие попытки кого-то "сломать" ваше приложение. Склоняется ли оно от темы? Может ли кто-то легко перенаправить функцию через введение команды, например, "игнорируй предыдущие указания и делай это вместо них"?
Где возможно, мы рекомендуем включать проверку результатов человеком, прежде чем они будут использованы на практике. Это особенно критично в областях с высокими ставками и для генерации кода. Человек должен быть осведомлен о ограничениях системы и иметь доступ ко всей необходимой информации для проверки результатов (например, если приложение суммирует заметки, человек должен иметь легкий доступ к оригинальным заметкам для обратной связи).
“Prompt-engineering” может помочь ограничить тему и тон текста вывода. Это снижает шанс производства нежелательного содержимого, даже если пользователь пытается его создать. Предоставление дополнительного контекста модели (например, путем предъявления нескольких качественных примеров желаемого поведения перед новым вводом) может сделать проще направление выводов модели в желаемом направлении.
Пользователи, как правило, должны зарегистрироваться и выполнить вход, чтобы получить доступ к вашему сервису. Привязка этого сервиса к существующему аккаунту, например, учетной записи Gmail, LinkedIn или Facebook может помочь, хотя может не подходить для всех сценариев использования. Требование кредитной карты или удостоверения личности дополнительно снижает риск.
Ограничение количества текста, которое пользователь может ввести в prompt, помогает избежать внедрения prompt. Ограничение количества выходных токенов помогает снизить вероятность неправильного использования.
Сужение диапазонов ввода или вывода, особенно из надежных источников, снижает возможность неправильного использования в приложении.
Разрешение пользовательских вводов через проверенные выпадающие поля (например, список фильмов на Википедии) может быть более безопасным, чем разрешение ввода открытого текста.
Возвращение выводов из проверенного набора материалов на сервере, где это возможно, может быть более безопасным, чем возвращение нового сгенерированного контента (например, направление запроса клиента к наиболее подходящей существующей статье поддержки клиентов, а не попытка ответить на запрос с нуля).
Пользователи, как правило, должны иметь легкодоступный метод для сообщения о неправильной функциональности или других проблемах поведения приложения (указанный адрес электронной почты, метод отправки заявки и т. д.). Этот метод должен контролироваться человеком и реагировать на него соответствующим образом.
От галлюцинаций с неверной информацией до оскорбительных выводов, предвзятости и многого другого, языковые модели могут не подходить для каждого сценария использования без значительных модификаций. Рассмотрите, подходит ли модель для вашей цели, и оцените производительность API на широком спектре потенциальных вводов, чтобы определить случаи, когда производительность API может снизиться. Учитывайте вашу клиентскую базу и диапазон вводов, которые они будут использовать, и убедитесь, что их ожидания соответствуют действительности.
Отправка ID конечных пользователей в ваших запросах может быть полезным инструментом для помощи OpenAI в мониторинге и обнаружении злоупотреблений. Это позволяет OpenAI предоставлять вашей команде более конкретные отзывы в случае обнаружения нарушений политики в вашем приложении.
ID должны быть строкой, которая уникально идентифицирует каждого пользователя. Мы рекомендуем использовать хэширование их имени пользователя или адреса электронной почты, чтобы избежать отправки нам любой идентифицирующей информации. Если вы предлагаете предварительный просмотр вашего продукта неавторизованным пользователям, вы можете отправить вместо этого идентификатор сессии.
Вы можете включать ID конечных пользователей в ваши запросы к API через параметр user
следующим образом:
1curl https://api.openai.com/v1/completions \
2 -H "Content-Type: application/json" \
3 -H "Authorization: Bearer $OPENAI_API_KEY" \
4 -d '{
5 "model": "gpt-3.5-turbo-instruct",
6 "prompt": "This is a test",
7 "max_tokens": 5,
8 "user": "user123456"
9}'