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 bez obav používat modely generování kódu 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. dubna 2023. Kód přidaný do GitHub po tomto datu se nerozpozná. Při použití chráněného materiálu pro kód použijte vlastní uvážení k odhalování nových částí kódu.

Klíčovými cíli funkce Detekce chráněného obsahu pro kód generovaný umělou inteligencí 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

  • Účet Azure. Pokud jej nemáte, můžete si jej zdarma vytvořit.
  • Prostředek Azure AI.
  • Projekt nebo centrum Azure AI Foundry.

Nastavení

Pokud chcete stránku Zabezpečení obsahu vyzkoušet , postupujte takto:

  1. Přejděte na Azure AI Foundry a přejděte do svého projektu nebo centra. Pak v levém navigačním panelu vyberte kartu Guardrails + controls a vyberte kartu Vyzkoušet .
  2. Na stránce Vyzkoušet můžete experimentovat s různými funkcemi mantinely a ovládacími prvky, jako je text a obsah obrázku, pomocí upravitelných prahových hodnot pro filtrování nevhodného nebo škodlivého obsahu.

Poznámka:

Popisky a navigace se můžou v různých aktualizacích portálu lišit. Pokud Guardrails + controls nevidíte, podívejte se na možnost Vyzkoušet funkci Bezpečnost obsahu ve vašem projektu.

Snímek obrazovky se stránkou Vyzkoušet pro ovládací prvky Guardrails &

Použití detekce chráněných materiálů

Tato funkce prohledá výstupy generované AI pro známý chráněný text (například texty skladby, články, recepty, vybraný webový obsah) nebo chráněný obsah kódu.

  1. Vyberte Detekci chráněných materiálů pro text k naskenování textu, nebo vyberte Detekci chráněných materiálů pro kód k naskenování kódu.
  2. Vložte text nebo kód pro testování. Nejlepších výsledků dosáhnete, když otestujete dokončení modelu LLM místo uživatelských výzev.
  3. Vyberte Spustit test. Služba vrátí výsledek chráněného obsahu.

Další informace najdete v koncepční příručce k chráněnému materiálu.

Požadavky

  • Předplatné Azure – Kreate si ho zdarma
  • Jakmile budete mít předplatné Azure, vytvořte prostředek Content Safety na portálu Azure pro získání klíče a koncového bodu. 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.
  • cURL je nainstalován

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 zdroje.
  3. Volitelně můžete pole v těle nahradit "code" vlastním kódem, který chcete analyzovat.

    Návod

    Viz Požadavky na vstupy pro omezení maximální délky kódu. Detekce chráněných materiálů má být spuštěna na generovaných výstupech LLM, nikoli na dotazech od 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()"
}'

Do adresy URL musí být zahrnuta následující pole:

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 Řetězec

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. Řetězec

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
analýza chráněného materiálu Výsledky analýzy obsahující podrobnosti o zjištěném chráněném kódu Objekt
zjištěný Označuje, zda byl zjištěn chráněný materiál z GitHub úložišť. logický
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. Řetězec
codeCitations.sourceUrls Seznam adres URL z GitHub úložišť, kde byl zjištěn chráněný kód. Pole řetězců

Řešení problémů

  • 401/403: Ověřte, že používáte platný klíč pro stejný prostředek jako koncový bod.
  • Funkce není k dispozici: Ověřte, že je prostředek v podporované oblasti pro chráněný materiál (kód).
  • Neplatná délka vstupu: Ujistěte se, code že řetězec splňuje minimální délku a zůstává pod maximální (viz požadavky na vstup).

Vyčištění zdrojů

Pokud chcete vyčistit a odebrat předplatné Služby 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é.