共用方式為


快速入門:程式碼的受(版權)保護素材偵測 (預覽)

程式碼的受保護素材功能提供完整的解決方案,以識別符合現有 GitHub 存放庫程式碼的 AI 輸出。 這項功能允許放心地使用程式碼產生模型,以增強終端使用者的透明度,並提升組織原則的合規性。

警告

內容安全服務的程式碼掃描器/索引子僅適用於 2021 年 11 月 6 日。 將不會偵測到在此日期之後新增至 GitHub 的程式碼。 使用 Protected Material for Code 來偵測最近的程式碼主體時,請自行判斷。

AI 產生的程式碼的程式碼的受(版權)保護素材偵測功能的主要目標是:

  • 偵測並防止顯示 AI 模型所產生的受保護程式碼。
  • 讓組織能夠管理與 AI 產生的程式碼相關聯的風險。
  • 為了確保 AI 產生的程式碼符合法律、道德和組織政策標準。

如需關於受(版權)保護素材偵測的詳細資訊,請參閱受(版權)保護素材偵測概念頁面。 如需 API 輸入限制,請參閱概觀的輸入要求一節。

必要條件

  • Azure 訂用帳戶 - 建立免費帳戶
  • 擁有 Azure 訂用帳戶之後,在 Azure 入口網站中建立 Content Safety 資源,以取得您的金鑰和端點。 輸入您資源的唯一名稱,選取您的訂用帳戶,然後選取資源群組、支援的區域 (參閱區域可用性) 以及支援的定價層。 然後選取建立
    • 部署資源需要幾分鐘的時間。 完成後,選取 [移至資源]。 在左側窗格中,於 [資源管理] 下選取 [訂用帳戶金鑰和端點]。 端點和其中一個金鑰是用以呼叫 API。
  • 已安裝 cURL

受(版權)保護素材偵測的分析程式碼

下一節會逐步解說 cURL 的範例要求。 將下列命令貼上至文字編輯器,並進行下列變更。

  1. <endpoint> 取代為與資源相關聯的端點 URL。
  2. <your_subscription_key> 取代為資源自帶的金鑰之一。
  3. 或者,將本文中的 "code" 欄位取代為您要分析的程式碼。

    提示

    如需程式碼長度上限的資訊,請參閱輸入需求。 受(版權)保護素材偵測是要在 LLM 完成時執行,而不是使用者提示。

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

下欄欄位必須包含在 URL 中:

名稱 是必要的嗎? 描述 類型
API 版本 必要 這是要檢查的 API 版本。 目前的版本為:api-version=2024-09-15-preview。 範例: <endpoint>/contentsafety/text:detectProtectedMaterialForCode?api-version=2024-09-15-preview String

要求本文中的參數在此表中定義:

名稱 是必要的嗎? 描述 類型
code 必要 這是要檢查的原始程式碼。 可以包含其他非 ascii 字元。 String

請參閱下列 "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()"
}

開啟命令提示字元視窗並執行 cURL 命令。

解譯 API 回應

您應該會在主控台輸出中看到顯示為 JSON 資料的受(版權)保護素材結果。 例如:

{
    "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 欄位定義如下:

名稱 描述 類型
protectedMaterialAnalysis 包含所偵測受保護程式碼詳細資料的分析結果。 Object
detected 指出是否偵測到來自 GitHub 存放庫的受(版權)保護素材。 布林值
codeCitations 找到受保護程式碼的引文清單。 陣列
codeCitations.license 與偵測到的程式碼相關聯的授權類型。 String
codeCitations.sourceUrls 從偵測到受保護程式碼的 GitHub 存放庫 URL 清單。 字串的陣列

清除資源

如果您想要清除和移除 Azure AI 服務訂用帳戶,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。