Megosztás a következőn keresztül:


Blokklista használata az Azure OpenAI-val

Az Azure OpenAI-ban elérhető konfigurálható tartalomszűrők elegendőek a legtöbb con sátormód ration-igényhez. Előfordulhat azonban, hogy a használati esetre jellemző kifejezéseket kell szűrnie. Ehhez egyéni tiltólistákat használhat.

Előfeltételek

  • Azure-előfizetés. Hozzon létre egyet ingyen.
  • Miután megkapta az Azure-előfizetését, hozzon létre egy Azure OpenAI-erőforrást az Azure Portalon a jogkivonat, a kulcs és a végpont lekéréséhez. Adja meg az erőforrás egyedi nevét, válassza ki az alkalmazásűrlapon megadott előfizetést, válasszon egy erőforráscsoportot, egy támogatott régiót és egy támogatott tarifacsomagot. Válassza a Létrehozás parancsot.
    • Az erőforrás üzembe helyezése néhány percet vesz igénybe. A befejezés után válassza az Erőforrás megnyitása lehetőséget. A bal oldali panel Erőforrás-kezelés területén válassza az Előfizetési kulcsot és a Végpontot. A végpont és a kulcsok bármelyike az API-k meghívására szolgál.
  • Telepített Azure CLI
  • telepített cURL

Blokklisták használata

Az Azure OpenAI API-val blokklistákat hozhat létre. Az alábbi lépések segítenek az első lépésekben.

A jogkivonat lekérése

Először le kell szereznie egy jogkivonatot a blokklisták létrehozásához, szerkesztéséhez és törléséhez szükséges API-k eléréséhez. Ezt a jogkivonatot a következő Azure CLI-paranccsal szerezheti be:

az account get-access-token 

Blokklista létrehozása vagy módosítása

Másolja az alábbi cURL parancsot egy szövegszerkesztőbe, és végezze el a következő módosításokat:

  1. Cserélje le a(z) {subscriptionId} elemet az előfizetés-azonosítóra.
  2. Cserélje le a(z) {resourceGroupName} nevet az erőforráscsoport nevére.
  3. Cserélje le a(z) {accountName} nevet az erőforrás nevére.
  4. Cserélje le a(z) {raiBlocklistName} elemet (az URL-címben) a lista egyéni nevére. Engedélyezett karakterek: 0-9, A-Z, a-z, - . _ ~.
  5. Cserélje le a(z) {token} elemet a fenti "A jogkivonat lekérése" lépésben kapott jogkivonatra.
  6. Igény szerint cserélje le a "leírás" mező értékét egy egyéni leírásra.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}?api-version=2024-04-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{ 
    "properties": { 
        "description": "This is a prompt blocklist"  
    } 
}' 

A válaszkódnak létre kell hoznia 201 egy új listát, vagy 200 (egy meglévő listát kell frissítenie).

Tiltólista alkalmazása tartalomszűrőre

Ha még nem hozott létre tartalomszűrőt, ezt az Azure AI Foundryben teheti meg. Lásd: Tartalomszűrés.

Ha befejezési blokklistát szeretne alkalmazni egy tartalomszűrőre, használja a következő cURL-parancsot:

  1. Cserélje le a(z) {subscriptionId} elemet az alazonosítóra.
  2. Cserélje le a(z) {resourceGroupName} nevet az erőforráscsoport nevére.
  3. Cserélje le a(z) {accountName} nevet az erőforrás nevére.
  4. Cserélje le a(z) {raiPolicyName} elemet a tartalomszűrő nevére
  5. Cserélje le a(z) {token} elemet a fenti "A jogkivonat lekérése" lépésben kapott jogkivonatra.
  6. Ha azt szeretné, hogy "promptBlocklists" a "completionBlocklists" tiltólista az AI-modell befejezése helyett a felhasználói kérésekre vonatkozzon, tetszés szerint módosítsa a címet.
  7. Cserélje le "raiBlocklistName" a törzsben a lista egyéni nevére. Engedélyezett karakterek: 0-9, A-Z, a-z, - . _ ~.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiPolicies/{raiPolicyName}?api-version=2024-04-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{ 
    "properties": { 
        "basePolicyName": "Microsoft.Default", 
        "completionBlocklists": [{ 
            "blocklistName": "raiBlocklistName", 
            "blocking": true 
        }], 
        "contentFilters": [ ] 
    } 
}' 

BlockItems hozzáadása a listához

Feljegyzés

Egy listában legfeljebb 10 000 kifejezés engedélyezett.

Másolja az alábbi cURL parancsot egy szövegszerkesztőbe, és végezze el a következő módosításokat:

  1. Cserélje le a(z) {subscriptionId} elemet az alazonosítóra.
  2. Cserélje le a(z) {resourceGroupName} nevet az erőforráscsoport nevére.
  3. Cserélje le a(z) {accountName} nevet az erőforrás nevére.
  4. Cserélje le a(z) {raiBlocklistName} elemet (az URL-címben) a lista egyéni nevére. Engedélyezett karakterek: 0-9, A-Z, a-z, - . _ ~.
  5. Cserélje le a(z) {raiBlocklistItemName} elemet a listaelem egyéni nevére.
  6. Cserélje le a(z) {token} elemet a fenti "A jogkivonat lekérése" lépésben kapott jogkivonatra.
  7. Cserélje le a "blocking pattern" mező értékét a blokklistához hozzáadni kívánt elemre. A blokkelem maximális hossza 1000 karakter. Azt is megadhatja, hogy a minta regex vagy pontos egyezés-e.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}/raiBlocklistItems/{raiBlocklistItemName}?api-version=2024-04-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{  
    "properties": {  
        "pattern": "blocking pattern",  
        "isRegex": false  
    }  
}' 

Feljegyzés

Egy új kifejezés hozzáadása a blokklistához körülbelül 5 percet vehet igénybe. Kérjük, 5 perc után tesztelje.

A válaszkódnak a következőnek kell lennie 200: .

{ 
  "name": "raiBlocklistItemName", 
  "id": "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.CognitiveServices/accounts/accountName/raiBlocklists/raiBlocklistName/raiBlocklistItems/raiBlocklistItemName", 
  "properties": { 
    "pattern": "blocking pattern", 
    "isRegex": false 
  } 
} 

Szöveg elemzése blokklistával

Most tesztelheti a blokklistát tartalmazó üzembe helyezést. Az Azure OpenAI-végpontok meghívásával kapcsolatos utasításokért tekintse meg a rövid útmutatót.

Az alábbi példában egy GPT-35-Turbo telepítés blokklistával blokkolja a kérést. A válasz hibát 400 ad vissza.

{ 
    "error": { 
        "message": "The response was filtered due to the prompt triggering Azure OpenAI’s content management policy. Please modify your prompt and retry. To learn more about our content filtering policies please read our documentation: https://go.microsoft.com/fwlink/?linkid=2198766", 
        "type": null, 
        "param": "prompt", 
        "code": "content_filter", 
        "status": 400, 
        "innererror": { 
            "code": "ResponsibleAIPolicyViolation", 
            "content_filter_result": { 
                "custom_blocklists": [ 
                    { 
                        "filtered": true, 
                        "id": "raiBlocklistName" 
                    } 
                ], 
                "hate": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "self_harm": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "sexual": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "violence": { 
                    "filtered": false, 
                    "severity": "safe" 
                } 
            } 
        } 
    } 
} 

Ha maga a befejezés le van tiltva, a válasz visszatér 200, mivel a befejezés csak akkor fejeződik be, ha a tiltólista tartalma megfelel. A széljegyzetek azt mutatják, hogy egy tiltólistaelem megfelelt.

{ 
    "id": "chatcmpl-85NkyY0AkeBMunOjyxivQSiTaxGAl", 
    "object": "chat.completion", 
    "created": 1696293652, 
    "model": "gpt-35-turbo", 
    "prompt_filter_results": [ 
        { 
            "prompt_index": 0, 
            "content_filter_results": { 
                "hate": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "self_harm": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "sexual": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "violence": { 
                    "filtered": false, 
                    "severity": "safe" 
                } 
            } 
        } 
    ], 
    "choices": [ 
        { 
            "index": 0, 
            "finish_reason": "content_filter", 
            "message": { 
                "role": "assistant" 
            }, 
            "content_filter_results": { 
                "custom_blocklists": [ 
                    { 
                        "filtered": true, 
                        "id": "myBlocklistName" 
                    } 
                ], 
                "hate": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "self_harm": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "sexual": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "violence": { 
                    "filtered": false, 
                    "severity": "safe" 
                } 
            } 
        } 
    ], 
    "usage": { 
        "completion_tokens": 75, 
        "prompt_tokens": 27, 
        "total_tokens": 102 
    } 
}