Förstå resurser för att skapa en modell för förståelse av konversationsspråk
Om du vill använda tjänsten Language Understanding för att utveckla en NLP-lösning måste du skapa en språkresurs i Azure. Resursen kommer att användas för att både redigera din modell och bearbeta förutsägelsebegäranden från klientprogram.
Dricks
I den här modulens labb beskrivs hur du skapar en modell för förståelse av konversationsspråk. Mer fokuserade moduler om anpassad textklassificering och anpassad namngiven entitetsigenkänning finns i modulerna för anpassade lösningar i utbildningsvägen Utveckla naturliga språklösningar .
Skapa din modell
För funktioner som kräver en modell för förutsägelse måste du skapa, träna och distribuera modellen innan du använder den för att göra en förutsägelse. Den här byggnaden och utbildningen lär Azure AI Language-tjänsten vad du ska leta efter.
Först måste du skapa din Azure AI Language-resurs i Azure-portalen. Sedan:
- Sök efter Azure AI-tjänster.
- Leta upp och välj Språktjänst.
- Välj Skapa under Språktjänst.
- Fyll i nödvändig information, välj den region som är närmast dig geografiskt (för bästa prestanda) och ge den ett unikt namn.
När resursen har skapats behöver du en nyckel och slutpunkten. Du hittar det till vänster under Nycklar och slutpunkten på resursöversiktssidan.
Använda Language Studio
Om du vill ha en mer visuell metod för att skapa, träna och distribuera din modell kan du använda Language Studio för att uppnå vart och ett av dessa steg. På huvudsidan kan du välja att skapa ett projekt för förståelse av konversationsspråk. När projektet har skapats går du igenom samma process som ovan för att skapa, träna och distribuera din modell.
Labbet i den här modulen går igenom hur du skapar din modell med Hjälp av Language Studio. Om du vill veta mer kan du läsa Language Studio-snabbstarten
Använda REST API
Ett sätt att skapa din modell är via REST-API:et. Mönstret skulle vara att skapa projektet, importera data, träna, distribuera och sedan använda din modell.
Dessa uppgifter utförs asynkront. Du måste skicka en begäran till lämplig URI för varje steg och sedan skicka en annan begäran för att få status för jobbet.
Om du till exempel vill distribuera en modell för ett projekt för att förstå konversationsspråk skickar du distributionsjobbet och kontrollerar sedan distributionsjobbets status.
Autentisering
För varje anrop till din Azure AI Language-resurs autentiserar du begäran genom att ange följande rubrik.
Tangent | Värde |
---|---|
Ocp-Apim-Subscription-Key |
Nyckeln till din resurs |
Begärandedistribution
Skicka en POST-begäran till följande slutpunkt.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Platshållare | Värde | Exempel |
---|---|---|
{ENDPOINT} |
Slutpunkten för din Azure AI Language-resurs | https://<your-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Namnet på projektet. Det här värdet är skiftlägeskänsligt | myProject |
{DEPLOYMENT-NAME} |
Namnet på distributionen. Det här värdet är skiftlägeskänsligt | staging |
{API-VERSION} |
Den version av API:et som du anropar | 2022-05-01 |
Inkludera följande body
med din begäran.
{
"trainedModelLabel": "{MODEL-NAME}",
}
Platshållare | Värde |
---|---|
{MODEL-NAME} |
Modellnamnet som ska tilldelas distributionen. Det här värdet är skiftlägeskänsligt. |
Om du skickar din begäran får du ett 202
svar med svarshuvudet operation-location
. Det här huvudet har en URL som du kan begära status med, formaterad så här:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Hämta distributionsstatus
Skicka en GET-begäran till URL:en från svarshuvudet ovan. Värdena fylls redan i baserat på den första distributionsbegäran.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Platshållare | Värde |
---|---|
{ENDPOINT} |
Slutpunkten för att autentisera din API-begäran |
{PROJECT-NAME} |
Namnet på projektet (skiftlägeskänsligt) |
{DEPLOYMENT-NAME} |
Namnet på distributionen (skiftlägeskänslig) |
{JOB-ID} |
ID:t för att hitta modellens träningsstatus finns i huvudvärdet som beskrivs ovan i distributionsbegäran |
{API-VERSION} |
Den version av API:et som du anropar |
Svarstexten innehåller information om distributionsstatus. Fältet status
har värdet lyckades när distributionen är klar.
{
"jobId":"{JOB-ID}",
"createdDateTime":"String",
"lastUpdatedDateTime":"String",
"expirationDateTime":"String",
"status":"running"
}
En fullständig genomgång av varje steg med exempelbegäranden finns i snabbstarten för konversationstolkning.
Fråga din modell
Om du vill fråga din modell om en förutsägelse kan du använda SDK:er i C# eller Python eller använda REST-API:et.
Fråga med SDK:er
Om du vill köra frågor mot din modell med hjälp av ett SDK måste du först skapa klienten. När du har din klient använder du den för att anropa lämplig slutpunkt.
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]
Andra språkfunktioner, till exempel förståelse av konversationsspråk, kräver att begäran skapas och skickas på olika sätt.
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
}
}
)
Fråga med hjälp av REST-API:et
Om du vill köra frågor mot din modell med HJÄLP av REST skapar du en POST-begäran till lämplig URL med rätt brödtext angiven. För inbyggda funktioner som språkidentifiering eller attitydanalys frågar analyze-text
du slutpunkten.
Dricks
Kom ihåg att varje begäran måste autentiseras Ocp-Apim-Subscription-Key
med din Azure AI Language-resursnyckel i rubriken
{ENDPOINT}/language/:analyze-text?api-version={API-VERSION}
Platshållare | Värde |
---|---|
{ENDPOINT} |
Slutpunkten för att autentisera din API-begäran |
{API-VERSION} |
Den version av API:et som du anropar |
I brödtexten i begäran måste du ange parametern kind
, som talar om för tjänsten vilken typ av språktolkning du begär.
Om du till exempel vill identifiera språket skulle JSON-brödtexten se ut ungefär så här.
{
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id":"1",
"text": "This is a document written in English."
}
]
}
}
Andra språkfunktioner, till exempel förståelse av konversationsspråk, kräver att begäran dirigeras till en annan slutpunkt. Till exempel skickas begäran om förståelse av konversationsspråk till följande.
{ENDPOINT}/language/:analyze-conversations?api-version={API-VERSION}
Platshållare | Värde |
---|---|
{ENDPOINT} |
Slutpunkten för att autentisera din API-begäran |
{API-VERSION} |
Den version av API:et som du anropar |
Den begäran skulle innehålla en JSON-brödtext som liknar följande.
{
"kind": "Conversation",
"analysisInput": {
"conversationItem": {
"id": "1",
"participantId": "1",
"text": "Sample text"
}
},
"parameters": {
"projectName": "{PROJECT-NAME}",
"deploymentName": "{DEPLOYMENT-NAME}",
"stringIndexType": "TextElement_V8"
}
}
Platshållare | Värde |
---|---|
{PROJECT-NAME} |
Namnet på projektet där du skapade din modell |
{DEPLOYMENT-NAME} |
Namnet på distributionen |
Exempelsvar
Frågesvaret från en SDK returneras i objektet som returneras, vilket varierar beroende på funktionen (till exempel i response.key_phrases
eller response.Value
). REST-API:et returnerar JSON som liknar följande.
{
"kind": "KeyPhraseExtractionResults",
"results": {
"documents": [{
"id": "1",
"keyPhrases": ["modern medical office", "Dr. Smith", "great staff"],
"warnings": []
}],
"errors": [],
"modelVersion": "{VERSION}"
}
}
För andra modeller som förståelse av konversationsspråk skulle ett exempelsvar på din fråga likna följande.
{
"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
}
]
}
}
}
SDK:erna för både Python och C# returnerar JSON som liknar REST-svaret.
Fullständig dokumentation om funktioner, inklusive exempel och guider, finns på dokumentationssidorna för Dokumentation om Azure AI Language .