Snabbstart: Skyddad materialidentifiering för kod (förhandsversion)
Funktionen Skyddat material för kod ger en omfattande lösning för att identifiera AI-utdata som matchar kod från befintliga GitHub-lagringsplatser. Med den här funktionen kan kodgenereringsmodeller användas säkert, på ett sätt som förbättrar transparensen för slutanvändarna och främjar efterlevnaden av organisationens principer.
Varning
Innehållssäkerhetstjänstens kodskanner/indexerare är endast aktuell till och med den 6 november 2021. Kod som lades till i GitHub efter det här datumet identifieras inte. Använd ditt eget omdöme när du använder skyddat material för kod för att identifiera de senaste kodkropparna.
Huvudmålen för funktionen Skyddad materialidentifiering för kod för AI-genererad kod är:
- För att identifiera och förhindra visning av skyddad kod som genereras av AI-modeller.
- Så här gör du det möjligt för organisationer att hantera risker som är associerade med AI-genererad kod.
- För att säkerställa att AI-genererad kod uppfyller juridiska, etiska och organisatoriska policystandarder.
Mer information om identifiering av skyddat material finns på sidan koncept för skydd av materialidentifiering. För API-indatabegränsningar, se avsnittet Indatakrav i översikten.
Förutsättningar
- En Azure-prenumeration – Skapa en kostnadsfritt
- När du har din Azure-prenumeration skapar du en Content Safety-resurs i Azure Portal för att hämta din nyckel och slutpunkt. Ange ett unikt namn för resursen, välj din prenumeration och välj en resursgrupp, region som stöds (se Regiontillgänglighet) och prisnivå som stöds. Välj sedan Skapa.
- Det tar några minuter att distribuera resursen. När den är klar väljer du Gå till resurs. I den vänstra rutan under Resurshantering väljer du Prenumerationsnyckel och Slutpunkt. Slutpunkten och någon av nycklarna används för att anropa API:er.
- cURL installerat
Analysera kod för identifiering av skyddat material
I följande avsnitt går vi igenom en exempelbegäran med cURL. Klistra in kommandot nedan i en textredigerare och gör följande ändringar.
- Ersätt
<endpoint>
med slutpunkts-URL:en som är associerad med resursen. - Ersätt
<your_subscription_key>
med en av nycklarna som medföljer resursen. - Du kan också ersätta fältet
"code"
i brödtexten med din egen kod som du vill analysera.Dricks
Se Indatakrav för maximala begränsningar för kodlängd. Skyddad materialidentifiering är avsedd att köras vid LLM-slutföranden, inte användaruppmaningar.
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()"
}'
Fälten nedan måste inkluderas i URL:en:
Name | Obligatoriskt? | beskrivning | Typ |
---|---|---|---|
API-version | Obligatoriskt | Det här är DEN API-version som ska kontrolleras. Den aktuella versionen är: api-version=2024-09-15-preview. Exempel: <endpoint>/contentsafety/text:detectProtectedMaterialForCode?api-version=2024-09-15-preview |
String |
Parametrarna i begärandetexten definieras i den här tabellen:
Name | Obligatoriskt? | beskrivning | Typ |
---|---|---|---|
kod | Obligatoriskt | Det här är den råkod som ska kontrolleras. Andra tecken som inte är ascii-tecken kan inkluderas. | String |
Se följande exempelvärde för fältet "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()"
}
Öppna ett kommandotolksfönster och kör kommandot cURL.
Tolka API-svaret
Du bör se resultaten för identifiering av skyddat material som visas som JSON-data i konsolens utdata. Till exempel:
{
"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-fälten i utdata definieras här:
Name | beskrivning | Typ |
---|---|---|
protectedMaterialAnalysis | Analysresultat som innehåller information om identifierad skyddad kod. | Objekt |
Upptäckt | Anger om skyddat material från GitHub-lagringsplatser har identifierats. | Booleskt |
codeCitations | Lista över citat där den skyddade koden hittades. | Matris |
codeCitations.license | Den licenstyp som är associerad med den identifierade koden. | String |
codeCitations.sourceUrls | En lista över URL:er från GitHub-lagringsplatser där den skyddade koden identifierades. | Matris med strängar |
Rensa resurser
Om du vill rensa och ta bort en Azure AI-tjänstprenumeration kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.
Relaterat innehåll
- Begrepp för skyddad materialidentifiering
- Konfigurera filter för varje kategori och testa datauppsättningar med hjälp av Content Safety Studio, exportera koden och distribuera.