Grundlegendes zu Ressourcen zum Erstellen eines Conversational Language Understanding-Modells

Abgeschlossen

Um den Language Understanding-Dienst zum Entwickeln einer NLP-Lösung zu verwenden, werden Sie eine Sprachressource in Azure erstellen müssen. Diese Ressource wird sowohl zum Erstellen Ihres Modells als auch zur Verarbeitung von Vorhersageanforderungen von Clientanwendungen verwendet.

Tipp

Das Lab dieses Moduls umfasst das Erstellen eines Modells für Conversational Language Understanding. Weitere gezielte Module für benutzerdefinierte Textklassifizierung und benutzerdefinierte benannte Entitätserkennung finden Sie im Lernpfad Entwickeln von Lösungen für natürliche Sprache.

Erstellen des Modells

Wenn Sie ein Feature haben, das ein Modell für Vorhersagen benötigt, müssen Sie dieses Modell erstellen, trainieren und bereitstellen, bevor Sie es für eine Vorhersage verwenden können. Dieses Erstellen und Trainieren wird dem Azure KI Language-Dienst beibringen, wonach gesucht werden soll.

Zunächst werden Sie Ihre Azure KI Language-Ressource im Azure-Portal erstellen müssen. Führen Sie dann folgende Schritte aus:

  1. Suchen Sie nach Azure KI-Dienste.
  2. Suchen Sie nach Sprachdienst und wählen Sie es aus.
  3. Wählen Sie die Option Erstellen unter dem Sprachdienst aus.
  4. Geben Sie die erforderlichen Daten ein, wählen Sie die Region, die Ihnen geografisch am nächsten liegt (für eine optimale Leistung) und wählen Sie einen eindeutigen Namen.

Nachdem diese Ressource erstellt wurde, benötigen Sie einen Schlüssel und den Endpunkt. Sie können diese auf der linken Seite unter Schlüssel und Endpunkt der Ressourcenübersicht finden.

Verwenden von Language Studio

Für eine visuellere Methode zum Erstellen, Trainieren und Bereitstellen Ihres Modells können Sie Language Studio verwenden, um ebenso jeden dieser Schritte abzuschließen. Auf der Hauptseite können Sie ein Conversational Language Understanding-Projekt erstellen. Nachdem das Projekt erstellt wurde, durchlaufen Sie dann denselben Prozess wie oben, um Ihr Modell zu erstellen, zu trainieren und bereitzustellen.

Screenshot of the Language Studio home page.

Das Lab in diesem Modul führt sie mithilfe von Language Studio durch die zum Erstellen Ihres Modells erforderlichen Schritte. Wenn Sie mehr erfahren möchten, lesen Sie die Schnellstartanleitung für Language Studio

Verwenden der REST-API

Eine Möglichkeit zum Erstellen Ihres Modells ist durch die REST-API. Das Muster wäre es, Ihr Projekt zu erstellen, Daten zu importieren, zu trainieren, bereitzustellen und dann Ihr Modell zu verwenden.

Diese Aufgaben werden asynchron ausgeführt. Sie müssen eine Anforderung an den entsprechenden URI für jeden Schritt übermitteln und dann eine weitere Anforderung senden, um den Status dieses Auftrags abzurufen.

Wenn Sie beispielsweise ein Modell für ein Conversational Language Understanding bereitstellen möchten, würden Sie den Bereitstellungsauftrag senden und dann den Status des Bereitstellungsauftrags prüfen.

Authentication

Für jeden Aufruf Ihrer Azure KI Language-Ressource authentifizieren Sie die Anforderung, indem Sie den folgenden Header bereitstellen.

Schlüssel Wert
Ocp-Apim-Subscription-Key Der Schlüssel für Ihre Ressource

Bereitstellung anfordern

Senden Sie eine POST-Anforderung an den folgenden Endpunkt.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Platzhalter Wert Beispiel
{ENDPOINT} Der Endpunkt für Ihre Azure KI Language-Ressource https://<your-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Der Name für Ihr Projekt. Bei diesem Wert ist die Groß-/Kleinschreibung zu beachten myProject
{DEPLOYMENT-NAME} Der Name für Ihre Bereitstellung. Bei diesem Wert ist die Groß-/Kleinschreibung zu beachten staging
{API-VERSION} Die Version der von Ihnen aufgerufenen API 2022-05-01

Schließen Sie die folgende body in Ihre Anforderung ein.

{
  "trainedModelLabel": "{MODEL-NAME}",
}
Platzhalter Wert
{MODEL-NAME} Der Modellname, der Ihrer Bereitstellung zugewiesen wird. Bei diesem Wert wird die Groß-/Kleinschreibung beachtet.

Bei der erfolgreichen Übermittlung Ihrer Anforderung erhalten Sie eine 202 Antwort, mit einem Antwortheader von operation-location. Dieser Header verfügt über eine URL, mit welcher der Status angefordert werden soll, wie folgt formatiert:

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}

Abrufen des Bereitstellungsstatus

Senden Sie eine GET-Anforderung an die URL aus dem oben genannten Antwortheader. Die Werte werden bereits basierend auf der anfänglichen Bereitstellungsanforderung ausgefüllt.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Platzhalter Wert
{ENDPOINT} Der Endpunkt für die Authentifizierung Ihrer API-Anforderung
{PROJECT-NAME} Der Name Ihres Projekts (beim Wert wird die Groß- und Kleinschreibung beachtet)
{DEPLOYMENT-NAME} Der Name für Ihre Bereitstellung (beim Wert wird die Groß- und Kleinschreibung beachtet)
{JOB-ID} Die ID zum Suchen des Trainingsstatus Ihres Modells finden Sie im Headerwert, der oben in der Bereitstellungsanforderung beschrieben ist
{API-VERSION} Die Version der von Ihnen aufgerufenen API

Der Antworttext gibt die Bereitstellungsstatusdetails an. Das status Feld hat den Wert erfolgreich, wenn die Bereitstellung abgeschlossen ist.

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"String",
    "lastUpdatedDateTime":"String",
    "expirationDateTime":"String",
    "status":"running"
}

Eine vollständige exemplarische Vorgehensweise für jeden Schritt mit Beispielanforderungen finden Sie im Schnellstart zu Conversational Language Understanding .

Abfragen Ihres Modells

Um Ihr Modell für eine Vorhersage abzufragen, können Sie SDKs in C# oder Python oder die REST-API verwenden.

Abfragen mithilfe von SDKs

Um Ihr Modell mit einem SDK abzufragen, müssen Sie zuerst Ihren Client erstellen. Sobald Sie Ihren Client haben, verwenden Sie ihn, um den entsprechenden Endpunkt aufzurufen.

var languageClient = new TextAnalyticsClient(endpoint, credentials);
var response = languageClient.ExtractKeyPhrases(document);
language_client = TextAnalyticsClient(
            endpoint=endpoint, 
            credential=credentials)
response = language_client.extract_key_phrases(documents = documents)[0]

Für andere Sprachfeatures, z. B. das Conversational Language Understanding, muss die Anforderung anders erstellt und gesendet werden.

var data = new
{
    analysisInput = new
    {
        conversationItem = new
        {
            text = userText,
            id = "1",
            participantId = "1",
        }
    },
    parameters = new
    {
        projectName,
        deploymentName,
        // Use Utf16CodeUnit for strings in .NET.
        stringIndexType = "Utf16CodeUnit",
    },
    kind = "Conversation",
};
Response response = await client.AnalyzeConversationAsync(RequestContent.Create(data));
result = client.analyze_conversation(
    task={
        "kind": "Conversation",
        "analysisInput": {
            "conversationItem": {
                "participantId": "1",
                "id": "1",
                "modality": "text",
                "language": "en",
                "text": query
            },
            "isLoggingEnabled": False
        },
        "parameters": {
            "projectName": cls_project,
            "deploymentName": deployment_slot,
            "verbose": True
        }
    }
)

Abfragen mit der REST-API

Um Ihr Modell mit REST abzufragen, erstellen Sie eine POST-Anforderung an die entsprechende URL mit dem angegebenen entsprechenden Textkörper. Für integrierte Features wie Spracherkennung oder Stimmungsanalyse werden Sie den analyze-text Endpunkt abfragen.

Tipp

Denken Sie daran, dass jede Anforderung mit Ihrem Azure KI Language-Ressourcenschlüssel im Ocp-Apim-Subscription-Key-Header authentifiziert werden muss

{ENDPOINT}/language/:analyze-text?api-version={API-VERSION}
Platzhalter Wert
{ENDPOINT} Der Endpunkt für die Authentifizierung Ihrer API-Anforderung
{API-VERSION} Die Version der von Ihnen aufgerufenen API

Im Textkörper dieser Anforderung müssen Sie den kind Parameter angeben, der dem Dienst angibt, welche Art von Language Understanding Sie anfordern.

Wenn Sie z. B. die Sprache erkennen möchten, würde der JSON-Textkörper etwa wie folgt aussehen.

{
    "kind": "LanguageDetection",
    "parameters": {
        "modelVersion": "latest"
    },
    "analysisInput":{
        "documents":[
            {
                "id":"1",
                "text": "This is a document written in English."
            }
        ]
    }
}

Andere Sprachfeatures, z. B. das Conversational Language Understanding, erfordern die Weiterleitung der Anforderung an einen anderen Endpunkt. Conversational Language Understanding würde beispielsweise an folgenden gesendet.

{ENDPOINT}/language/:analyze-conversations?api-version={API-VERSION}
Platzhalter Wert
{ENDPOINT} Der Endpunkt für die Authentifizierung Ihrer API-Anforderung
{API-VERSION} Die Version der von Ihnen aufgerufenen API

Diese Anforderung würde einen JSON-Textkörper enthalten, der dem folgenden ähnelt.

{
  "kind": "Conversation",
  "analysisInput": {
    "conversationItem": {
      "id": "1",
      "participantId": "1",
      "text": "Sample text"
    }
  },
  "parameters": {
    "projectName": "{PROJECT-NAME}",
    "deploymentName": "{DEPLOYMENT-NAME}",
    "stringIndexType": "TextElement_V8"
  }
}
Platzhalter Wert
{PROJECT-NAME} Der Name des Projekts, in dem Sie Ihr Modell erstellt haben
{DEPLOYMENT-NAME} Der Name Ihrer Bereitstellung

Beispielantwort

Die Antwort auf die Abfrage eines SDKs besteht aus dem zurückgegebenen Objekt, das je nach Funktion variiert (z. B. in response.key_phrases oder response.Value). Die REST-API gibt JSON zurück, ähnlich der folgenden Antwort.

{
    "kind": "KeyPhraseExtractionResults",
    "results": {
        "documents": [{
            "id": "1",
            "keyPhrases": ["modern medical office", "Dr. Smith", "great staff"],
            "warnings": []
        }],
        "errors": [],
        "modelVersion": "{VERSION}"
    }
}

Bei anderen Modellen wie Conversational Language Understanding wäre eine Beispielantwort auf Ihre Abfrage ähnlich der folgenden.

{
  "kind": "ConversationResult",
  "result": {
    "query": "String",
    "prediction": {
      "topIntent": "intent1",
      "projectKind": "Conversation",
      "intents": [
        {
          "category": "intent1",
          "confidenceScore": 1
        },
        {
          "category": "intent2",
          "confidenceScore": 0
        }
      ],
      "entities": [
        {
          "category": "entity1",
          "text": "text",
          "offset": 7,
          "length": 4,
          "confidenceScore": 1
        }
      ]
    }
  }
}

Die SDKs für Python und C# geben JSON zurück, was der REST-Antwort sehr ähnlich ist.

Eine vollständige Dokumentation zu den Features, sowie Beispiele und Anleitungen finden Sie auf den Dokumentationsseiten von Azure KI Language.