Grundlegendes zu Ressourcen zum Erstellen eines Conversational Language Understanding-Modells
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:
- Suchen Sie nach Azure KI-Dienste.
- Suchen Sie nach Sprachdienst und wählen Sie es aus.
- Wählen Sie die Option Erstellen unter dem Sprachdienst aus.
- 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.
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.