Partilhar via


Guia de início rápido: deteção de material protegido para código (visualização)

O recurso Material protegido para código fornece uma solução abrangente para identificar saídas de IA que correspondem ao código de repositórios GitHub existentes. Esse recurso permite que os modelos de geração de código sejam usados com confiança, de forma a aumentar a transparência para os usuários finais e promover a conformidade com as políticas organizacionais.

Atenção

O scanner/indexador de código do serviço de segurança de conteúdo só está atualizado até 6 de novembro de 2021. O código que foi adicionado ao GitHub após essa data não será detetado. Use seu próprio critério ao usar o Material Protegido para Código para detetar corpos de código recentes.

Os principais objetivos do recurso Protected Material Detection for Code para código gerado por IA são:

  • Para detetar e impedir a exibição de código protegido gerado por modelos de IA.
  • Para permitir que as organizações gerenciem os riscos associados ao código gerado por IA.
  • Para garantir que o código gerado por IA esteja em conformidade com os padrões legais, éticos e de política organizacional.

Para obter mais informações sobre a deteção de material protegido, consulte a página Conceito de deteção de material protegido. Para limites de entrada da API, consulte a seção Requisitos de entrada da Visão geral.

Pré-requisitos

  • Uma assinatura do Azure - Crie uma gratuitamente
  • Depois de ter sua assinatura do Azure, crie um recurso de Segurança de Conteúdo no portal do Azure para obter sua chave e ponto de extremidade. Introduza um nome exclusivo para o seu recurso, selecione a sua subscrição e selecione um grupo de recursos, uma região suportada (consulte Disponibilidade da região) e um escalão de preços suportado. Depois, selecione Criar.
    • O recurso leva alguns minutos para ser implantado. Depois que terminar, selecione ir para recurso. No painel esquerdo, em Gerenciamento de Recursos, selecione Chave de Assinatura e Ponto de Extremidade. O ponto de extremidade e qualquer uma das chaves são usados para chamar APIs.
  • cURL instalado

Analise o código para deteção de material protegido

A seção a seguir percorre uma solicitação de exemplo com cURL. Cole o comando abaixo em um editor de texto e faça as seguintes alterações.

  1. Substitua <endpoint> pela URL do ponto de extremidade associada ao seu recurso.
  2. Substitua <your_subscription_key> por uma das chaves que acompanham o recurso.
  3. Opcionalmente, substitua o "code" campo no corpo pelo seu próprio código que você gostaria de analisar.

    Gorjeta

    Consulte Requisitos de entrada para limitações máximas de comprimento de código. A deteção de material protegido destina-se a ser executada em finalizações LLM, não em prompts do usuário.

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()"
}'

Os campos abaixo devem ser incluídos no url:

Nome Necessário? Description Type
Versão da API Necessário Esta é a versão da API a ser verificada. A versão atual é: api-version=2024-09-15-preview. Exemplo: <endpoint>/contentsafety/text:detectProtectedMaterialForCode?api-version=2024-09-15-preview String

Os parâmetros no corpo da solicitação são definidos nesta tabela:

Nome Necessário? Description Type
code Necessário Este é o código bruto a ser verificado. Outros caracteres não-ascii podem ser incluídos. String

Consulte o seguinte valor de exemplo para o "code" campo:

{
    "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()"
}

Abra uma janela de prompt de comando e execute o comando cURL.

Interpretar a resposta da API

Você deve ver os resultados da deteção de material protegido exibidos como dados JSON na saída do console. Por exemplo:

{
    "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"
                ]
            }
        ]
    }
}

Os campos JSON na saída são definidos aqui:

Nome Descrição Type
protectedMaterialAnalysis Resultados da análise contendo detalhes sobre o código protegido detetado. Object
detetada Indica se o material protegido dos repositórios do GitHub foi detetado. Boolean
códigoCitações Lista de citações onde o código protegido foi encontrado. Matriz
codeCitations.license O tipo de licença associado ao código detetado. String
codeCitations.sourceUrls Uma lista de URLs de repositórios do GitHub onde o código protegido foi detetado. Matriz de cadeias de caracteres

Clean up resources (Limpar recursos)

Se quiser limpar e remover uma assinatura de serviços do Azure AI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.