Sdílet prostřednictvím


Rychlý start: Detekce chráněných materiálů pro kód (Preview)

Funkce Chráněný materiál pro kód poskytuje komplexní řešení pro identifikaci výstupů AI, které odpovídají kódu z existujících úložišť GitHub. Tato funkce umožňuje použití modelů generování kódu s jistotou způsobem, který zvyšuje transparentnost koncovým uživatelům a podporuje dodržování zásad organizace.

Upozornění

Skener kódu/indexer služby content safety je aktuální pouze do 6. listopadu 2021. Kód, který byl přidán do GitHubu po tomto datu, se nerozpozná. Při použití chráněného materiálu pro kód použijte vlastní uvážení k detekci nedávných těl kódu.

Klíčovými cíli funkce Detekce chráněných materiálů pro funkci kódu generovaného AI jsou:

  • Detekce a zabránění zobrazení chráněného kódu generovaného modely AI
  • Aby organizace mohly spravovat rizika spojená s kódem vygenerovaným AI.
  • Aby byl kód vygenerovaný pomocí umělé inteligence v souladu s právními, etickými a organizačními standardy zásad.

Další informace o detekci chráněných materiálů najdete na stránce s konceptem detekce chráněných materiálů. Informace o limitech vstupu rozhraní API najdete v části Požadavky na vstup v části Přehled.

Požadavky

  • Předplatné Azure – Vytvoření předplatného zdarma
  • Jakmile budete mít předplatné Azure, vytvořte na webu Azure Portal prostředek zabezpečení obsahu, abyste získali svůj klíč a koncový bod. Zadejte jedinečný název vašeho prostředku, vyberte své předplatné a vyberte skupinu prostředků, podporovanou oblast (viz Dostupnost oblastí) a podporovanou cenovou úroveň. Pak vyberte Vytvořit.
    • Nasazení prostředku trvá několik minut. Po dokončení vyberte přejít k prostředku. V levém podokně v části Správa prostředků vyberte Klíč předplatného a koncový bod. Koncový bod a jeden z klíčů se používají k volání rozhraní API.
  • Nainstalovaný cURL

Analýza kódu pro detekci chráněných materiálů

Následující část vás provede ukázkovým požadavkem s cURL. Vložte následující příkaz do textového editoru a proveďte následující změny.

  1. Nahraďte <endpoint> adresou URL koncového bodu přidruženou k vašemu prostředku.
  2. Nahraďte <your_subscription_key> jedním z klíčů, které jsou součástí vašeho prostředku.
  3. Volitelně můžete pole v těle nahradit "code" vlastním kódem, který chcete analyzovat.

    Tip

    Viz Požadavky na vstup pro maximální omezení délky kódu. Detekce chráněných materiálů je určená ke spuštění při dokončování LLM, nikoli při zobrazování výzev uživatelů.

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

Následující pole musí být zahrnuta v adrese URL:

Název Povinný? Popis Typ
Verze rozhraní API Požaduje se Toto je verze rozhraní API, která se má zkontrolovat. Aktuální verze je: api-version=2024-09-15-preview. Příklad: <endpoint>/contentsafety/text:detectProtectedMaterialForCode?api-version=2024-09-15-preview String

Parametry v textu požadavku jsou definovány v této tabulce:

Název Povinný? Popis Typ
kód Požaduje se Toto je nezpracovaný kód, který se má zkontrolovat. Můžete zahrnout i jiné znaky, které nejsou ascii. String

Podívejte se na následující ukázkovou hodnotu "code" pole:

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

Otevřete okno příkazového řádku a spusťte příkaz cURL.

Interpretace odpovědi rozhraní API

Ve výstupu konzoly by se měly zobrazit výsledky detekce chráněných materiálů jako data JSON. Příklad:

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

Pole JSON ve výstupu jsou definována tady:

Název Popis Typ
protectedMaterialAnalysis Výsledky analýzy obsahující podrobnosti o zjištěném chráněném kódu Objekt
zjištěný Označuje, jestli byl zjištěn chráněný materiál z úložišť GitHubu. Logická hodnota
codeCitations Seznam citací, ve kterých byl chráněný kód nalezen. Pole
codeCitations.license Typ licence přidružený k zjištěnému kódu. String
codeCitations.sourceUrls Seznam adres URL z úložišť GitHubu, kde byl zjištěn chráněný kód. Pole řetězců

Vyčištění prostředků

Pokud chcete vyčistit a odebrat předplatné služeb Azure AI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.