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


Краткое руководство. Защищенное обнаружение материалов для кода (предварительная версия)

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

Внимание

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

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

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

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

Необходимые компоненты

  • подписка 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 Строка

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

Имя. Обязательное? Описание Тип
code Обязательное поле Это необработанный код для проверки. Другие символы, отличные от 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 в выходных данных определяются здесь:

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

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

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