Szybki start: wykrywanie materiałów chronionych dla kodu (wersja zapoznawcza)
Funkcja Chroniony materiał dla kodu udostępnia kompleksowe rozwiązanie do identyfikowania danych wyjściowych sztucznej inteligencji pasujących do kodu z istniejących repozytoriów GitHub. Ta funkcja umożliwia korzystanie z modeli generowania kodu w sposób, który zwiększa przejrzystość dla użytkowników końcowych i promuje zgodność z zasadami organizacji.
Uwaga
Skaner/indeksator kodu usługi bezpieczeństwa zawartości jest obecny tylko do 6 listopada 2021 r. Kod dodany do usługi GitHub po tej dacie nie zostanie wykryty. Użyj własnego uznania w przypadku używania materiałów chronionych dla kodu do wykrywania ostatnich treści kodu.
Kluczowe cele funkcji wykrywania materiałów chronionych dla kodu dla kodu generowanego przez sztuczną inteligencję to:
- Aby wykryć i zapobiec wyświetlaniu chronionego kodu generowanego przez modele sztucznej inteligencji.
- Aby umożliwić organizacjom zarządzanie ryzykiem skojarzonym z kodem generowanym przez sztuczną inteligencję.
- Aby upewnić się, że kod generowany przez sztuczną inteligencję jest zgodny ze standardami prawnymi, etycznymi i organizacyjnymi.
Aby uzyskać więcej informacji na temat wykrywania chronionych materiałów, zobacz stronę Pojęcia dotyczące wykrywania chronionych materiałów. Aby uzyskać informacje o limitach danych wejściowych interfejsu API, zobacz sekcję Wymagania dotyczące danych wejściowych w sekcji Przegląd.
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Po utworzeniu subskrypcji platformy Azure utwórz zasób Bezpieczeństwo zawartości w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Wprowadź unikatową nazwę zasobu, wybierz subskrypcję i wybierz grupę zasobów, obsługiwany region (zobacz Dostępność regionu) i obsługiwaną warstwę cenową. Następnie wybierz Utwórz.
- Wdrożenie zasobu trwa kilka minut. Po zakończeniu wybierz pozycję Przejdź do zasobu. W okienku po lewej stronie w obszarze Zarządzanie zasobami wybierz pozycję Klucz subskrypcji i punkt końcowy. Punkt końcowy i jeden z kluczy są używane do wywoływania interfejsów API.
- Zainstalowano bibliotekę cURL
Analizowanie kodu na potrzeby wykrywania chronionych materiałów
W poniższej sekcji przedstawiono przykładowe żądanie z biblioteką cURL. Wklej poniższe polecenie do edytora tekstów i wprowadź następujące zmiany.
- Zastąp ciąg
<endpoint>
adresem URL punktu końcowego skojarzonym z zasobem. - Zastąp
<your_subscription_key>
element jednym z kluczy, które są dostarczane z zasobem. - Opcjonalnie zastąp
"code"
pole w treści własnym kodem, który chcesz przeanalizować.Napiwek
Zobacz Wymagania dotyczące danych wejściowych, aby uzyskać informacje o maksymalnych ograniczeniach długości kodu. Wykrywanie materiałów chronionych ma być uruchamiane po zakończeniu llM, a nie na monitach użytkownika.
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()"
}'
Poniższe pola muszą być uwzględnione w adresie URL:
Nazwisko | Wymagany? | opis | Type |
---|---|---|---|
Wersja interfejsu API | Wymagania | Jest to wersja interfejsu API do sprawdzenia. Bieżąca wersja to: api-version=2024-09-15-preview. Przykład: <endpoint>/contentsafety/text:detectProtectedMaterialForCode?api-version=2024-09-15-preview |
String |
Parametry w treści żądania są zdefiniowane w tej tabeli:
Nazwisko | Wymagany? | opis | Type |
---|---|---|---|
kod | Wymagania | Jest to kod pierwotny do sprawdzenia. Można uwzględnić inne znaki inne niż ascii. | String |
Zobacz następującą przykładową wartość "code"
pola:
{
"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()"
}
Otwórz okno wiersza polecenia i uruchom polecenie cURL.
Interpretowanie odpowiedzi interfejsu API
Powinny zostać wyświetlone wyniki wykrywania chronionych materiałów jako dane JSON w danych wyjściowych konsoli. Na przykład:
{
"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"
]
}
]
}
}
Pola JSON w danych wyjściowych są zdefiniowane tutaj:
Nazwa/nazwisko | opis | Type |
---|---|---|
protectedMaterialAnalysis | Wyniki analizy zawierające szczegółowe informacje o wykrytym chronionym kodzie. | Objekt |
Wykryte | Wskazuje, czy wykryto materiał chroniony z repozytoriów GitHub. | Wartość logiczna |
codeCitations | Lista cytatów, w których znaleziono chroniony kod. | Tablica |
codeCitations.license | Typ licencji skojarzony z wykrytym kodem. | String |
codeCitations.sourceUrls | Lista adresów URL z repozytoriów GitHub, w których wykryto chroniony kod. | Tablica ciągów |
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć subskrypcję usług Azure AI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Powiązana zawartość
- Pojęcia dotyczące wykrywania chronionych materiałów
- Skonfiguruj filtry dla każdej kategorii i przetestuj zestawy danych przy użyciu programu Content Safety Studio, wyeksportuj kod i wdróż.