快速入門:程式碼的受(版權)保護素材偵測 (預覽)
程式碼的受保護素材功能提供完整的解決方案,以識別符合現有 GitHub 存放庫程式碼的 AI 輸出。 這項功能允許放心地使用程式碼產生模型,以增強終端使用者的透明度,並提升組織原則的合規性。
警告
內容安全服務的程式碼掃描器/索引子僅適用於 2021 年 11 月 6 日。 將不會偵測到在此日期之後新增至 GitHub 的程式碼。 使用 Protected Material for Code 來偵測最近的程式碼主體時,請自行判斷。
AI 產生的程式碼的程式碼的受(版權)保護素材偵測功能的主要目標是:
- 偵測並防止顯示 AI 模型所產生的受保護程式碼。
- 讓組織能夠管理與 AI 產生的程式碼相關聯的風險。
- 為了確保 AI 產生的程式碼符合法律、道德和組織政策標準。
如需關於受(版權)保護素材偵測的詳細資訊,請參閱受(版權)保護素材偵測概念頁面。 如需 API 輸入限制,請參閱概觀的輸入要求一節。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 擁有 Azure 訂用帳戶之後,在 Azure 入口網站中建立 Content Safety 資源,以取得您的金鑰和端點。 輸入您資源的唯一名稱,選取您的訂用帳戶,然後選取資源群組、支援的區域 (參閱區域可用性) 以及支援的定價層。 然後選取建立。
- 部署資源需要幾分鐘的時間。 完成後,選取 [移至資源]。 在左側窗格中,於 [資源管理] 下選取 [訂用帳戶金鑰和端點]。 端點和其中一個金鑰是用以呼叫 API。
- 已安裝 cURL
受(版權)保護素材偵測的分析程式碼
下一節會逐步解說 cURL 的範例要求。 將下列命令貼上至文字編輯器,並進行下列變更。
- 將
<endpoint>
取代為與資源相關聯的端點 URL。 - 將
<your_subscription_key>
取代為資源自帶的金鑰之一。 - 或者,將本文中的
"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 服務訂用帳戶,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
相關內容
- 受(版權)保護素材偵測概念
- 使用 Content Safety Studio 設定每個類別和測試資料集的篩選,匯出程式碼並部署。