Partager via


Démarrage rapide : Détection de matériel protégé pour le code (préversion)

La fonctionnalité de matériel protégé pour le code fournit une solution complète pour l’identification des sorties IA qui correspondent au code provenant de dépôts GitHub existants. Cette fonctionnalité permet d’utiliser les modèles de génération de code en toute confiance, de manière à améliorer la transparence pour les utilisateurs finaux, et promouvoir la conformité aux directives organisationnelles.

Attention

Le scanneur/indexeur de code du service de sécurité du contenu est uniquement actif jusqu’au 6 novembre 2021. Le code ajouté à GitHub après cette date n’est pas détecté. Utilisez votre propre discrétion lors de l’utilisation de Matériel protégé pour le code pour détecter des corps récents de code.

Les principaux objectifs de la fonctionnalité de la Détection de matériel protégé pour le code généré par l’IA sont les suivants :

  • Détecter et empêcher l’affichage du code protégé généré par des modèles IA.
  • Permettre aux organisations de gérer les risques associés au code généré par l’IA.
  • Garantir que le code généré par l’IA est conforme aux normes juridiques, éthiques et aux stratégies organisationnelles.

Pour plus d’informations sur la détection de matériel protégé, consultez la page de concept de la détection de matériel protégé. Pour connaître les limites d’entrée d’API, consultez la section Configuration requise pour les entrées de la vue d’ensemble.

Prérequis

  • Un abonnement Azure - En créer un gratuitement
  • Une fois que vous avez votre abonnement Azure, créez une ressource Content Safety dans le portail Azure pour obtenir votre clé et votre point de terminaison. Entrez un nom unique pour votre ressource, sélectionnez votre abonnement, puis sélectionnez un groupe de ressources, une région prise en charge (voir disponibilité région) et le niveau tarifaire pris en charge. Sélectionnez ensuite Créer.
    • Le déploiement de la ressource prend quelques minutes. Une fois qu’il est terminé, sélectionnez Accéder à la ressource. Dans le volet gauche, sous Gestion des ressources, sélectionnez Clé et point de terminaison de l’abonnement. Le point de terminaison et l’une des clés sont utilisés pour appeler les API.
  • Installation de cURL

Analyser du code pour la détection de matériel protégé

La section suivante décrit en détail un exemple de requête avec cURL. Collez la commande ci-dessous dans un éditeur de texte et effectuez les modifications suivantes :

  1. Remplacez <endpoint> par l’URL de point de terminaison associée à votre ressource.
  2. Remplacez <your_subscription_key> par l’une des clés qui viennent avec votre ressource.
  3. Si vous le souhaitez, remplacez le champ "code" dans le corps par votre propre code que vous souhaitez analyser.

    Conseil

    Consultez les exigences d’entrée pour connaître les limites de longueur de code maximales. La détection de textes protégés est conçue pour être exécutée sur les complétions LLM, pas sur les invites utilisateur.

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

Les champs ci-dessous doivent être inclus dans l’URL :

Nom Requis ? Description Type
API Version Obligatoire Il s’agit de la version de l’API à vérifier. La version actuelle est : api-version=2024-09-15-preview. Exemple : <endpoint>/contentsafety/text:detectProtectedMaterialForCode?api-version=2024-09-15-preview String

Les paramètres dans le corps de la requête sont définis dans ce tableau :

Nom Requis ? Description Type
code Requis Il s’agit du code brut à vérifier. D’autres caractères non-ascii peuvent être inclus. Chaîne

Consultez l’exemple de valeur suivant pour le champ "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()"
}

Ouvrez une fenêtre d’invite de commandes et exécutez la commande cURL.

Interpréter la réponse de l’API

Vous devriez voir les résultats de la détection de textes protégés sous la forme de données JSON dans la sortie de la console. Par exemple :

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

Les champs JSON dans la sortie sont définis ici :

Nom Description Type
protectedMaterialAnalysis Résultats d’analyse contenant des détails sur le code protégé détecté. Object
détecté Indique si du matériel protégé à partir de dépôts GitHub a été détecté. Boolean
codeCitations Liste des citations où du code protégé a été trouvé. Tableau
codeCitations.license Le type de licence associé au code détecté. Chaîne
codeCitations.sourceUrls Une liste des URL des dépôts GitHub où du code protégé a été détecté. Tableau de chaînes

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer un abonnement Azure AI services, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.