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 :
- Remplacez
<endpoint>
par l’URL de point de terminaison associée à votre ressource. - Remplacez
<your_subscription_key>
par l’une des clés qui viennent avec votre ressource. - 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.
Contenu connexe
- concept de détection de matériel protégé
- Configurez des filtres pour chaque catégorie et testez des jeux de données en utilisant Content Safety Studio, puis exportez le code et déployez-le.