Поделиться через


Быстрый старт: Обнаружение защищенных материалов для кода (предварительная версия)

Функция защищенного материала для кода предоставляет комплексное решение для идентификации выходных данных ИИ, соответствующих коду из существующих репозиториев GitHub. Эта функция позволяет уверенно использовать модели создания кода таким образом, чтобы повысить прозрачность конечных пользователей и повысить соответствие политикам организации.

Внимание

Сканер и индексатор кода службы безопасности содержимого актуальны только до 6 апреля 2023 г. Код, добавленный в GitHub после этой даты, не будет обнаружен. Используйте собственное усмотрение при использовании защищённого материала кода для обнаружения последних фрагментов кода.

Основными целями функции обнаружения защищенного материала в коде, созданного ИИ, являются:

  • Обнаружение и предотвращение отображения защищенного кода, созданного моделями ИИ.
  • Чтобы организации могли управлять рисками, связанными с созданным ИИ кодом.
  • Чтобы обеспечить, чтобы код, созданный ИИ, соответствовал юридическим, этическим и организационным политическим стандартам.

Дополнительные сведения о защищенном обнаружении материалов см. на странице концепции обнаружения защищенных материалов. Сведения о ограничениях ввода API см. в разделе "Требования к входным данным" в разделе "Обзор".

Предварительные условия

Настройка

Чтобы воспользоваться страницей Попробуйте Безопасность содержимого, выполните следующие действия:

  1. Перейдите в Azure AI Foundry и перейдите к проекту или центру. Затем выберите вкладку "Guardrails + элементы управления" на левой панели навигации и выберите вкладку "Попробовать".
  2. На странице "Попробовать" можно поэкспериментировать с различными функциями Guardrails и возможностями управления, например, текстом и изображениями, используя настраиваемые пороговые значения для фильтрации неуместного или вредного содержимого.

Снимок экрана: страница пробной версии для Guardrails и элементов управления.

Использование обнаружения защищённых материалов

Эта функция сканирует созданный ИИ текст для известного текстового содержимого (например, текст песни, статьи, рецепты, выбранное веб-содержимое).

  1. Выберите обнаружение защищенного материала для текста или обнаружение защищенного материала для кода.
  2. Выберите пример текста на странице или введите собственные данные для тестирования.
  3. Выберите Запустить тест. Сервис возвращает результат защищенного содержимого.

Дополнительные сведения см. в концептуальном руководстве по защищенным материалам.

Предварительные условия

  • подписка Azure — создайте бесплатную учетную запись.
  • После того как у вас будет подписка Azure, перейдите в портал Azure и создайте там ресурс безопасности содержимого, чтобы получить ваш ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион (см . доступность региона) и поддерживаемую ценовую категорию. Затем выберите Создать.
    • Развертывание ресурса занимает несколько минут. После завершения выберите перейти к ресурсу. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Конечная точка и любой из ключей используются для вызова API.
  • Установлен cURL.

Анализ кода для обнаружения защищенных материалов

В следующем разделе описывается пример запроса с cURL. Вставьте приведенную ниже команду в текстовый редактор и внесите следующие изменения.

  1. Замените <endpoint> на URL-адрес конечной точки, которая связана с вашим ресурсом.
  2. Замените <your_subscription_key> одним из ключей, которые поставляются с вашим ресурсом.
  3. При необходимости замените "code" поле в тексте собственным кодом, который вы хотите проанализировать.

    Совет

    Смотрите требования к входным данным для ограничений на максимальную длину кода. Защищенное обнаружение материалов предназначено для выполнения в завершениях LLM, а не в запросах пользователей.

curl --location --request POST '<endpoint>/contentsafety/text:detectProtectedMaterialForCode?api-version=2024-09-15-preview' \
--header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "code": "python import pygame pygame.init() win = pygame.display.set_mode((500, 500)) pygame.display.set_caption(My Game) x = 50 y = 50 width = 40 height = 60 vel = 5 run = True while run: pygame.time.delay(100) for event in pygame.event.get(): if event.type == pygame.QUIT: run = False keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and x > vel: x -= vel if keys[pygame.K_RIGHT] and x < 500 - width - vel: x += vel if keys[pygame.K_UP] and y > vel: y -= vel if keys[pygame.K_DOWN] and y < 500 - height - vel: y += vel win.fill((0, 0, 0)) pygame.draw.rect(win, (255, 0, 0), (x, y, width, height)) pygame.display.update() pygame.quit()"
}'

Следующие поля должны быть включены в URL-адрес:

Имя. Обязательное? Описание Тип
Версия API Обязательное поле Это проверяемая версия API. Текущая версия: api-version=2024-09-15-preview. Пример: <endpoint>/contentsafety/text:detectProtectedMaterialForCode?api-version=2024-09-15-preview Строка

Параметры в тексте запроса определяются в этой таблице:

Имя. Обязательное? Описание Тип
код Обязательное поле Это необработанный код для проверки. Другие символы, отличные от ascii, могут быть включены. Строка

См. следующий пример значения для "code" поля:

{
    "code": "python import pygame pygame.init() win = pygame.display.set_mode((500, 500)) pygame.display.set_caption(My Game) x = 50 y = 50 width = 40 height = 60 vel = 5 run = True while run: pygame.time.delay(100) for event in pygame.event.get(): if event.type == pygame.QUIT: run = False keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and x > vel: x -= vel if keys[pygame.K_RIGHT] and x < 500 - width - vel: x += vel if keys[pygame.K_UP] and y > vel: y -= vel if keys[pygame.K_DOWN] and y < 500 - height - vel: y += vel win.fill((0, 0, 0)) pygame.draw.rect(win, (255, 0, 0), (x, y, width, height)) pygame.display.update() pygame.quit()"
}

Откройте окно командной строки и выполните команду cURL.

Интерпретация ответа API

Результаты обнаружения защищенных материалов отображаются в виде данных JSON в выходных данных консоли. Например:

{
    "protectedMaterialAnalysis": {
        "detected": true,
        "codeCitations": [
            {
                "license": "NOASSERTION",
                "sourceUrls": [
                    "https://github.com/kolejny-projekt-z-kck/game-/tree/f134099ce970da951bac9baac83c7885e991c676/ganeee.py",
                    "https://github.com/Felipe-Velasco/Modulo-Pygame/tree/11490c44a951812dc0c6424b68b1e14fc5cc4c0b/pygame%20basics.py",
                    "https://github.com/bwootton/firstgame/tree/70d722a6b1ccb79bfa56d9cc69932051848c44bf/jump.py",
                    "https://github.com/Jason017/Pygame-Learning-Module/tree/17cd69f169d3759e00816ed4a3795dd6db7e157f/pygameModule02.py",
                    "https://github.com/Coders-Brothers/pygame-tutorial/tree/1b481f5687cdda7c0765089780ef451af6e175cd/lesson-2.py"
                ]
            }
        ]
    }
}

Поля JSON в выходных данных определяются здесь:

Имя. Описание Тип
анализ защищенных материалов Результаты анализа, содержащие сведения об обнаружении защищенного кода. Объект
Обнаружены Указывает, обнаружен ли защищенный материал из репозиториев GitHub. Логический
codeCitations Список ссылок, в которых найден защищенный код. Массив
codeCitations.license Тип лицензии, связанный с обнаруженным кодом. Строка
codeCitations.sourceUrls Список URL-адресов из репозиториев GitHub, в которых обнаружен защищенный код. Массив строк

Очистка ресурсов

Если вы хотите очистить и удалить подписку на службы искусственного интеллекта Azure, можно удалить ресурс или группу ресурсов. При удалении группы ресурсов также удаляются все связанные с ней ресурсы.