Avvio rapido: rilevamento di materiale protetto per il codice (anteprima)
La funzionalità Materiale protetto per codice offre una soluzione completa per identificare gli output dell'IA che corrispondono al codice di repository GitHub esistenti. Questa funzionalità consente di usare i modelli di generazione del codice in modo sicuro, migliorando la trasparenza per gli utenti finali e favorendo la conformità ai criteri dell'organizzazione.
Attenzione
Lo scanner/indicizzatore del servizio di sicurezza del contenuto è aggiornato solo al 6 novembre 2021. Il codice aggiunto a GitHub dopo questa data non verrà rilevato. Usare la propria discrezione quando si usa Materiale protetto per il codice per rilevare i corpi di codice recenti.
Gli obiettivi principali della funzionalità di rilevamento del materiale protetto per il codice generato dall'intelligenza artificiale sono:
- Per rilevare e impedire la visualizzazione di codice protetto generato dai modelli di intelligenza artificiale.
- Per consentire alle organizzazioni di gestire i rischi associati al codice generato dall'intelligenza artificiale.
- Per garantire che il codice generato dall'intelligenza artificiale sia conforme agli standard legali, etici e dei criteri dell'organizzazione.
Per altre informazioni sul rilevamento dei materiali protetti, vedere la Pagina di concetto di rilevamento del materiale protetto. Per i limiti di input dell'API, vedere la sezione Requisiti di input della panoramica.
Prerequisiti
- Una sottoscrizione di Azure: creare un account gratuitamente
- Dopo aver creato la sottoscrizione di Azure, Creare una risorsa di Sicurezza dei contenuti nel portale di Azure per ottenere la chiave e l'endpoint. Immettere un nome univoco per la risorsa, selezionare la sottoscrizione, quindi selezionare un gruppo di risorse, un'area supportata (vedere Disponibilità di aree) e un piano tariffario supportato. Selezionare Crea.
- La distribuzione della risorsa richiede alcuni minuti. Al termine, selezionare Vai alla risorsa. Nel riquadro a sinistra, in Gestione risorse selezionare Chiave di sottoscrizione ed endpoint. L'endpoint e una delle chiavi vengono usati per chiamare le API.
- cURL installato
Analizzare il codice per il rilevamento del materiale protetto
La sezione seguente illustra una richiesta di esempio con cURL. Incollare il comando qui di seguito in un editor di testo e apportare le modifiche seguenti.
- Sostituire
<endpoint>
con l'URL dell'endpoint associato alla risorsa. - Sostituire
<your_subscription_key>
con una delle chiavi fornite con la risorsa. - Facoltativamente, sostituire il campo
"code"
nel corpo con il codice che si desidera analizzare.Suggerimento
Vedere Requisiti di input per le limitazioni massime della lunghezza del codice. Il rilevamento del materiale protetto deve essere eseguito sui completamenti LLM, non sulle richieste degli utenti.
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()"
}'
I campi seguenti devono essere inclusi nell'URL:
Nome | Obbligatorio? | Descrizione | Tipo |
---|---|---|---|
Versione dell'API | Richiesto | La versione dell'API da controllare. La versione corrente è: api-version=2024-09-15-preview. Esempio: <endpoint>/contentsafety/text:detectProtectedMaterialForCode?api-version=2024-09-15-preview |
String |
I parametri nel corpo della richiesta sono definiti in questa tabella:
Nome | Obbligatorio? | Descrizione | Tipo |
---|---|---|---|
code | Richiesto | Si tratta del codice non elaborato da controllare. È possibile includere altri caratteri non ascii. | String |
Vedere il valore di esempio seguente per il campo "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()"
}
Aprire una finestra del prompt dei comandi ed eseguire il comando cURL.
Interpretare la risposta dell'API
I risultati del rilevamento di materiale protetto verranno visualizzati come dati JSON nell'output della console. Ad esempio:
{
"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"
]
}
]
}
}
I campi JSON nell'output sono definiti di seguito:
Nome | Descrizione | Tipo |
---|---|---|
protectedMaterialAnalysis | Risultati dell'analisi contenenti informazioni dettagliate sul codice protetto rilevato. | Object |
detected | Indica se è stato rilevato materiale protetto dai repository GitHub. | Booleano |
codeCitations | Elenco di citazioni in cui è stato trovato il codice protetto. | Array |
codeCitations.license | Tipo di licenza associato al codice rilevato. | String |
codeCitations.sourceUrls | Elenco di URL dai repository GitHub in cui è stato rilevato il codice protetto. | Matrice di stringhe |
Pulire le risorse
Se si vuole pulire e rimuovere una sottoscrizione a Servizi di Azure AI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.
Contenuto correlato
- Concetti di rilevamento di materiale protetto
- Configurare i filtri per ogni categoria e test sui set di dati usando Studio di Sicurezza dei contenuti, esportare il codice e distribuire.