Freigeben über


Schnellstart: Benutzerdefinierte Kategorien (Standardmodus) (Vorschau)

In diesem Leitfaden erfahren Sie, wie Sie mithilfe der REST-API für benutzerdefinierte Kategorien (Standard) von Azure KI Inhaltssicherheit eigene Inhaltskategorien für Ihren Anwendungsfall erstellen und Azure KI Inhaltssicherheit so trainieren, dass diese in neuen Textinhalten erkannt werden.

Weitere Informationen zu benutzerdefinierten Kategorien finden Sie auf der Seite Konzept „Benutzerdefinierte Kategorien“. Informationen zu API-Eingabegrenzwerten finden Sie im Abschnitt Eingabeanforderungen der Übersicht.

Wichtig

Dieses Feature ist nur in bestimmten Azure-Regionen verfügbar. Weitere Informationen finden Sie unter Regionale Verfügbarkeit.

Wichtig

Ausreichend Zeit für das Modelltraining einplanen

Die End-to-End-Ausführung des Trainings einer benutzerdefinierten Kategorie kann fünf bis zehn Stunden dauern. Planen Sie Ihre Moderationspipeline entsprechend.

Voraussetzungen

  • Azure-Abonnement: Kostenloses Azure-Konto
  • Sobald Sie über ein Azure-Abonnement verfügen, können Sie im Azure-Portal eine Content Safety-Ressource erstellen, um Ihren Schlüssel und Endpunkt abzurufen. Geben Sie für Ihre Ressource einen eindeutigen Namen ein. Wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region und einen unterstützten Tarif. Klicken Sie anschließend auf Erstellen.
    • Die Bereitstellung der Ressource dauert einige Minuten. Wählen Sie im Anschluss Zu Ressource wechseln aus. Wählen Sie im linken Bereich unter Ressourcenverwaltung die Option Abonnementschlüssel und Endpunkt aus. Kopieren Sie den Endpunkt und einen der Schlüsselwerte an einen temporären Speicherort für die spätere Verwendung.
  • Erstellen Sie außerdem einen Azure Blob Storage-Container, in dem Sie Ihre Trainingsanmerkungsdatei beibehalten.
  • Installation einer der folgenden Optionen:

Vorbereiten Ihrer Trainingsdaten

Zum Trainieren einer benutzerdefinierten Kategorie benötigen Sie Beispieltextdaten, die die Kategorie darstellen, die erkannt werden soll. In diesem Leitfaden können Sie Beispieldaten verwenden. Die bereitgestellte Anmerkungsdatei enthält Textaufforderungen zu Überlebenstipps in Camping- und Wildnissituationen. Das trainierte Modell lernt, diese Art von Inhalt in neuen Textdaten zu erkennen.

Tipp

Tipps zum Erstellen ihres eigenen Datasets finden Sie in der Schrittanleitung.

  1. Laden Sie die Beispieltextdatendatei aus dem GitHub-Repository herunter.
  2. Laden Sie die JSONL-Datei in Ihren Blob-Container ihres Azure Storage-Kontos hoch. Kopieren Sie dann die Blob-URL an einen temporären Speicherort für die spätere Verwendung.

Wichtig

Das Speicherkonto des Benutzers ist als hierarchisches Namespace-Konto eingerichtet, das nicht von benutzerdefinierten Kategorien unterstützt werden kann. Bitte versuchen Sie stattdessen, ein reguläres Speicherkonto zu verwenden. Beispielsweise kann Ihre Blob-URL nicht in zwei Ebenen aufgeteilt werden, wie beispielsweise „example/example1/“, und sollte nur eine Ebene haben. Weitere Informationen finden Sie in der Dokumentation: Hierarchischen Azure Data Lake Storage-Namespace – Azure Storage.

Gewähren des Speicherzugriffs

Als Nächstes müssen Sie Ihrer Content Safety-Ressource Zugriff gewähren, um Daten aus der Azure Storage-Ressource lesen zu können. Aktivieren Sie die systemseitig zugewiesene verwaltete Identität für die Azure KI Inhaltssicherheit-Instanz, und weisen Sie der Identität die Rolle Mitwirkender/Besitzer von Speicherblobdaten zu:

Wichtig

Nur Speicherblobdaten-Mitwirkender oder Speicherblobdaten-Besitzer sind gültige Rollen, um fortzufahren.

  1. Aktivieren Sie die verwaltete Identität für die Azure KI Content Safety-Instanz.

    Screenshot des Azure-Portals mit Aktivierung der verwalteten Identität.

  2. Weisen Sie der verwalteten Identität die Rolle Mitwirkender an/Besitzer von Storage-Blobdaten zu. Alle nachstehend hervorgehobenen Rollen sollten funktionieren.

    Screenshot der Seite „Rollenzuweisung hinzufügen“ im Azure-Portal.

    Screenshot mit im Azure-Portal zugewiesenen Rollen.

    Screenshot der Rolle „Verwaltete Identität“.

Erstellen und Trainieren einer benutzerdefinierten Kategorie

Ersetzen Sie in den folgenden Befehlen <your_api_key>, <your_endpoint> und andere erforderliche Parameter durch Ihre eigenen Werte. Geben Sie dann jeden Befehl in ein Terminalfenster ein, und führen Sie ihn aus.

Erstellen einer neuen Kategorieversion

curl -X PUT "<your_endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-09-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
            \"categoryName\": \"survival-advice\",
            \"definition\": \"text prompts about survival advice in camping/wilderness situations\",
            \"sampleBlobUrl\": \"https://<your-azure-storage-url>/example-container/survival-advice.jsonl\"
        }"

Tipp

Jedes Mal, wenn Sie ihren Kategorienamen, Ihre Definition oder Beispiele ändern, wird eine neue Version erstellt. Sie können die Versionsnummer verwenden, um zu früheren Versionen zurückzukehren. Bitte merken Sie sich diese Versionsnummer, da sie in der URL für den nächsten Schritt erforderlich ist – Training benutzerdefinierter Kategorien.

API-Anforderung

Feld Beschreibung Beispielwert
categoryName Der Name der Kategorie oder des Themas, auf die sich die Anforderung bezieht. Überlebenstipps
definition Eine kurze Beschreibung des Inhaltstyps für die Kategorie. Textprompts zu Überlebenstipps in Camping- und Wildnissituationen
sampleBlobUrl URL für den Zugriff auf eine JSONL-Beispieldatei mit Datenbeispielen für die Kategorie. Verknüpfung

API-Antwort

Feld Beschreibung Beispielwert
categoryName Der Name der Kategorie oder des Themas, auf den sich die Antwort bezieht. Überlebenstipps
definition Eine kurze Beschreibung des Inhaltstyps für die Kategorie. Textprompts zu Überlebenstipps in Camping- und Wildnissituationen
sampleBlobUrl URL für den Zugriff auf eine JSONL-Beispieldatei mit Datenbeispielen für die Kategorie. Verknüpfung
sampleBlobSnapshotUrl Snapshot-URL der JSONL-Beispieldatei, die Zugriff auf eine bestimmte Version der Daten bietet. Snapshot-URL
version Die Versionsnummer der Kategoriedaten. 1
createdTime Zeitstempel, als die Kategoriedaten erstellt wurde. 2024-10-28T22:06:59.4626988Z
status Aktueller Status der Kategoriedatenverarbeitung. Erfolgreich

Starten Sie den Kategoriebuildprozess:

Ersetzen Sie <your_api_key> und <your_endpoint> durch Ihre eigenen Werte, und fügen Sie auch die Versionsnummer in der URL an, die Sie aus dem letzten Schritt erhalten haben. Planen Sie ausreichend Zeit für das Modelltraining ein: Die End-to-End-Ausführung des Trainings einer benutzerdefinierten Kategorie kann fünf bis zehn Stunden dauern. Planen Sie Ihre Moderationspipeline entsprechend. Nachdem Sie die Antwort erhalten haben, speichern Sie die Vorgangs-ID (genannt id) an einem temporären Speicherort. Diese ID ist erforderlich, um den Buildstatus mithilfe der Get-Status-API im nächsten Abschnitt abzurufen.

curl -X POST "<your_endpoint>/contentsafety/text/categories/survival-advice:build?api-version=2024-09-15-preview&version={version}" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

API-Antwort

Feld Beschreibung Beispielwert
operation id Eindeutiger Bezeichner zum Abrufen des Buildstatus b6c69dc1-2338-484e-85a5b-xxxxxxxxxxxx
status Aktueller Status der Anforderung Erfolgreich

Abrufen des Kategoriebuildstatus:

Um den Status abzurufen, verwenden Sie die id aus der vorherigen API-Antwort, und platzieren Sie sie im Pfad der folgenden API.

curl -X GET "<your_endpoint>/contentsafety/text/categories/operations/<id>?api-version=2024-09-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

API-Antwort

Feld Beschreibung Beispielwert
operation id Eindeutiger Bezeichner zum Abrufen des Buildstatus b6c69dc1-2338-484e-855b-xxxxxxxxxxxx
status Aktueller Status der Anforderung Erfolgreich

Analysieren von Text mit einer benutzerdefinierten Kategorie

Führen Sie den folgenden Befehl aus, um Text mit Ihrer benutzerdefinierten Kategorie zu analysieren. Ersetzen Sie <your_api_key> und <your_endpoint> durch Ihre eigenen Werte.

curl -X POST "<your_endpoint>/contentsafety/text:analyzeCustomCategory?api-version=2024-09-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
            \"text\": \"<Example text to analyze>\",
            \"categoryName\": \"survival-advice\", 
            \"version\": 1
        }"

API-Anforderung

Feld Beschreibung
text Der Textinhalt oder die Nachricht, die für die Kategorieerkennung vorgesehen ist
categoryName Der Name der Kategorie, unter der der Text erkannt werden soll
version Versionsnummer der Kategorie

API-Antwort

Feld Beschreibung Beispielwert
customCategoryAnalysis Objekt, das das Analyseergebnis für die Kategorie enthält.
detected Gibt an, ob die angegebene Kategorie erkannt wurde. false

Andere Vorgänge für benutzerdefinierte Kategorien

Denken Sie daran, die unten aufgeführten Platzhalter durch Ihre tatsächlichen Werte für den API-Schlüssel, Endpunkt und bestimmte Inhalte (Kategoriename, Definition usw.) zu ersetzen. Diese Beispiele helfen Ihnen, die benutzerdefinierten Kategorien in Ihrem Konto zu verwalten.

Abrufen einer benutzerdefinierten Kategorie oder einer bestimmten Version davon

Ersetzen Sie die Platzhalter durch Ihre eigenen Werte, und führen Sie den folgenden Befehl in einem Terminalfenster aus:

curl -X GET "<endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-09-15-preview&version=1" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Kategorien nach ihren neuesten Versionen auflisten

Ersetzen Sie die Platzhalter durch Ihre eigenen Werte, und führen Sie den folgenden Befehl in einem Terminalfenster aus:

curl -X GET "<endpoint>/contentsafety/text/categories?api-version=2024-09-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Löschen einer benutzerdefinierten Kategorie oder einer bestimmten Version davon

Ersetzen Sie die Platzhalter durch Ihre eigenen Werte, und führen Sie den folgenden Befehl in einem Terminalfenster aus:

curl -X DELETE "<endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-09-15-preview&version=1" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"