Freigeben über


Schnellstart: Geschützte Materialerkennung für Code (Vorschau)

Das Feature „Geschütztes Material für Code“ bietet eine umfassende Lösung zum Identifizieren von KI-Ausgaben, die Code aus vorhandenen GitHub-Repositorys entsprechen. Diese Funktion ermöglicht die sichere Verwendung von Codegenerierungsmodellen in einer Weise, die die Transparenz für Endbenutzer und Endbenutzerinnen verbessert und die Einhaltung von Organisationsrichtlinien fördert.

Achtung

Der Codescanner/Indexer des Inhaltssicherheitsdiensts ist nur bis zum 6. November 2021 aktuell. Code, der nach diesem Datum zu GitHub hinzugefügt wurde, wird nicht erkannt. Verwenden Sie Ihren eigenen Ermessensspielraum, wenn Sie geschütztes Material für Code verwenden, um aktuelle Codetexte zu erkennen.

Im Anschluss finden Sie die wichtigsten Ziele der geschützten Materialerkennung für KI-generierten Code:

  • Erkennung und Verhinderung der Anzeige von geschütztem Code, der von KI-Modellen generiert wird
  • Management von Risiken im Zusammenhang mit KI-generierten Code in Organisationen
  • Gewährleistung, dass KI-generierter Code den gesetzlichen, ethischen und organisatorischen Richtlinienstandards entspricht

Weitere Informationen zur geschützten Materialerkennung finden Sie auf der Seite Konzept „Geschützte Materialerkennung“. Informationen zu API-Eingabegrenzwerten finden Sie im Abschnitt Eingabeanforderungen der Übersicht.

Voraussetzungen

  • Azure-Abonnement: Kostenloses Azure-Konto
  • Sobald Sie über ein Azure-Abonnement verfügen, können Sie im Azure-Portal eine Content Safety-Ressource erstellen, um Ihren Schlüssel und Endpunkt abzurufen. Geben Sie einen eindeutigen Namen für Ihre Ressource ein, wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region (weitere Informationen unter Regionale Verfügbarkeit) und einen unterstützten Tarif aus. Wählen Sie dann Erstellen aus.
    • Die Bereitstellung der Ressource dauert einige Minuten. Wählen Sie im Anschluss Zu Ressource wechseln aus. Wählen Sie im linken Bereich unter Ressourcenverwaltung die Option Abonnementschlüssel und Endpunkt aus. Der Endpunkt und einer der Schlüssel werden verwendet, um APIs aufzurufen.
  • cURL muss installiert sein.

Analysieren von Code für die geschützte Materialerkennung

Im folgenden Abschnitt wird eine Beispielanforderung mit cURL erläutert. Fügen Sie den nachstehenden Befehl in einen Text-Editor ein, und nehmen Sie folgende Änderungen vor:

  1. Ersetzen Sie <endpoint> durch die Endpunkt-URL, die Ihrer Ressource zugeordnet ist.
  2. Ersetzen Sie <your_subscription_key> durch einen der Schlüssel Ihrer Ressource.
  3. Ersetzen Sie optional das Feld "code" im Text durch Ihren eigenen Code für die Analyse.

    Tipp

    Informationen zu Einschränkungen für die maximale Codelänge finden Sie unter Eingabeanforderungen. Die Erkennung von geschütztem Material ist für LLM-Vervollständigungen gedacht, nicht für Benutzeraufforderungen.

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

Folgende Felder müssen in der URL enthalten sein:

Name Erforderlich? Beschreibung type
API-Version Erforderlich Die zu überprüfende API-Version. Aktuelle Version: api-version=2024-09-15-preview. Beispiel: <endpoint>/contentsafety/text:detectProtectedMaterialForCode?api-version=2024-09-15-preview String

Die Parameter im Anforderungstext sind in der folgenden Tabelle definiert:

Name Erforderlich? Beschreibung type
code Erforderlich Der unformatierte Code, der überprüft werden soll. Andere Nicht-ASCII-Zeichen können enthalten sein. String

Sehen Sie sich den folgenden Beispielwert für das Feld "code" an:

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

Öffnen Sie ein Eingabeaufforderungsfenster, und führen Sie den cURL-Befehl aus.

Interpretieren der API-Antwort

Die Ergebnisse der Risikoerkennung von geschützten Materialien sollten als JSON-Daten in der Konsolenausgabe angezeigt werden. Beispiel:

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

Die JSON-Felder in der Ausgabe werden hier definiert:

Name Description Typ
protectedMaterialAnalysis Analyseergebnisse mit Details zu erkanntem geschütztem Code. Objekt
detected Gibt an, ob geschütztes Material aus GitHub-Repositorys erkannt wurde. Boolean
codeCitations Liste mit Zitaten, in denen der geschützte Code gefunden wurde. Array
codeCitations.license Der Lizenztyp, der dem erkannten Code zugeordnet ist. String
codeCitations.sourceUrls Eine Liste der URLs aus GitHub-Repositorys, in denen der geschützte Code erkannt wurde. Array aus Zeichenfolgen

Bereinigen von Ressourcen

Wenn Sie ein Azure KI Services-Abonnement bereinigen und entfernen möchten, können Sie die Ressource oder die Ressourcengruppe löschen. Wenn Sie die Ressourcengruppe löschen, werden auch alle anderen Ressourcen gelöscht, die ihr zugeordnet sind.