Informatie over resources voor het bouwen van een model voor het begrijpen van gesprekstalen
Als u de Language Understanding-service wilt gebruiken om een NLP-oplossing te ontwikkelen, moet u een Taalresource maken in Azure. Deze resource wordt gebruikt voor het ontwerpen van uw model en het verwerken van voorspellingsaanvragen van clienttoepassingen.
Fooi
Het lab van deze module bevat informatie over het bouwen van een model voor het begrijpen van gesprekstalen. Zie de aangepaste oplossingsmodules in het leertraject Oplossingen voor natuurlijke taal ontwikkelen voor meer gerichte modules over aangepaste tekstclassificatie en aangepaste entiteitsherkenning.
Uw model bouwen
Voor functies waarvoor een model voor voorspelling is vereist, moet u dat model bouwen, trainen en implementeren voordat u dit model gebruikt om een voorspelling te doen. In dit gebouw en de training leert u de Azure AI Language-service waar u naar moet zoeken.
Eerst moet u uw Azure AI Language-resource maken in Azure Portal. Daarna kunt u het volgende doen:
- Zoek naar Azure AI-services.
- Taalservice zoeken en selecteren.
- Selecteer Maken onder taalservice.
- Vul de benodigde gegevens in, kies de regio die het dichtst bij u ligt (voor de beste prestaties) en geef deze een unieke naam.
Zodra deze resource is gemaakt, hebt u een sleutel en het eindpunt nodig. U vindt dat aan de linkerkant onder Sleutels en Eindpunt van de overzichtspagina van de resource.
Language Studio gebruiken
Voor een meer visuele methode voor het bouwen, trainen en implementeren van uw model kunt u Language Studio gebruiken om elk van deze stappen te bereiken. Op de hoofdpagina kunt u ervoor kiezen om een Conversational Language Understanding-project te maken. Zodra het project is gemaakt, doorloopt u hetzelfde proces als hierboven om uw model te bouwen, te trainen en te implementeren.
Het lab in deze module begeleidt het gebruik van Language Studio om uw model te bouwen. Als u meer wilt weten, raadpleegt u de quickstart van Language Studio
REST-API gebruiken
Een manier om uw model te bouwen, is via de REST API. Het patroon is om uw project te maken, gegevens te importeren, te trainen, te implementeren en vervolgens uw model te gebruiken.
Deze taken worden asynchroon uitgevoerd; U moet voor elke stap een aanvraag indienen bij de juiste URI en vervolgens een andere aanvraag verzenden om de status van die taak op te halen.
Als u bijvoorbeeld een model wilt implementeren voor een gesprekstaalkennisproject, dient u de implementatietaak in en controleert u vervolgens de status van de implementatietaak.
Verificatie
Voor elke aanroep naar uw Azure AI Language-resource verifieert u de aanvraag door de volgende header op te geven.
Sleutel | Waarde |
---|---|
Ocp-Apim-Subscription-Key |
De sleutel voor uw resource |
Implementatie aanvragen
Dien een POST-aanvraag in bij het volgende eindpunt.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Tijdelijke aanduiding | Waarde | Voorbeeld |
---|---|---|
{ENDPOINT} |
Het eindpunt van uw Azure AI Language-resource | https://<your-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
De naam voor uw project. Deze waarde is hoofdlettergevoelig | myProject |
{DEPLOYMENT-NAME} |
De naam voor uw implementatie. Deze waarde is hoofdlettergevoelig | staging |
{API-VERSION} |
De versie van de API die u aanroept | 2022-05-01 |
Neem het volgende body
op met uw aanvraag.
{
"trainedModelLabel": "{MODEL-NAME}",
}
Tijdelijke aanduiding | Waarde |
---|---|
{MODEL-NAME} |
De modelnaam die wordt toegewezen aan uw implementatie. Deze waarde is hoofdlettergevoelig. |
Als u uw aanvraag hebt ingediend, ontvangt u een 202
antwoord met een antwoordheader van operation-location
. Deze header heeft een URL waarmee de status moet worden aangevraagd, opgemaakt als volgt:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Implementatiestatus ophalen
Dien een GET-aanvraag in bij de URL vanuit de bovenstaande antwoordheader. De waarden worden al ingevuld op basis van de eerste implementatieaanvraag.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Tijdelijke aanduiding | Waarde |
---|---|
{ENDPOINT} |
Het eindpunt voor het verifiëren van uw API-aanvraag |
{PROJECT-NAME} |
De naam voor uw project (hoofdlettergevoelig) |
{DEPLOYMENT-NAME} |
De naam voor uw implementatie (hoofdlettergevoelig) |
{JOB-ID} |
De id voor het vinden van de trainingsstatus van uw model, gevonden in de headerwaarde die hierboven is beschreven in de implementatieaanvraag |
{API-VERSION} |
De versie van de API die u aanroept |
De antwoordtekst geeft de details van de implementatiestatus. Het status
veld heeft de waarde van geslaagd wanneer de implementatie is voltooid.
{
"jobId":"{JOB-ID}",
"createdDateTime":"String",
"lastUpdatedDateTime":"String",
"expirationDateTime":"String",
"status":"running"
}
Zie de quickstart voor gesprekskennis voor een volledig overzicht van elke stap met voorbeeldaanvragen.
Query's uitvoeren op uw model
Als u een query wilt uitvoeren op uw model voor een voorspelling, kunt u SDK's in C# of Python gebruiken of de REST API gebruiken.
Query's uitvoeren met SDK's
Als u een query wilt uitvoeren op uw model met behulp van een SDK, moet u eerst uw client maken. Zodra u uw client hebt, gebruikt u deze om het juiste eindpunt aan te roepen.
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]
Voor andere taalfuncties, zoals het begrip van de gesprekstaal, moet de aanvraag anders worden gemaakt en verzonden.
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
}
}
)
Query's uitvoeren met behulp van de REST API
Als u een query wilt uitvoeren op uw model met behulp van REST, maakt u een POST-aanvraag naar de juiste URL met de juiste hoofdtekst die is opgegeven. Voor ingebouwde functies zoals taaldetectie of sentimentanalyse voert u een query uit op het analyze-text
eindpunt.
Fooi
Onthoud dat elke aanvraag moet worden geverifieerd met uw Azure AI Language-resourcesleutel in de Ocp-Apim-Subscription-Key
header
{ENDPOINT}/language/:analyze-text?api-version={API-VERSION}
Tijdelijke aanduiding | Waarde |
---|---|
{ENDPOINT} |
Het eindpunt voor het verifiëren van uw API-aanvraag |
{API-VERSION} |
De versie van de API die u aanroept |
In de hoofdtekst van die aanvraag moet u de kind
parameter opgeven, waarmee de service aangeeft welk type taalkennis u aanvraagt.
Als u de taal wilt detecteren, ziet de JSON-hoofdtekst er bijvoorbeeld ongeveer als volgt uit.
{
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id":"1",
"text": "This is a document written in English."
}
]
}
}
Voor andere taalfuncties, zoals het begrip van de gesprekstaal, moet de aanvraag worden doorgestuurd naar een ander eindpunt. De aanvraag voor het begrijpen van de gesprekstaal wordt bijvoorbeeld verzonden naar het volgende.
{ENDPOINT}/language/:analyze-conversations?api-version={API-VERSION}
Tijdelijke aanduiding | Waarde |
---|---|
{ENDPOINT} |
Het eindpunt voor het verifiëren van uw API-aanvraag |
{API-VERSION} |
De versie van de API die u aanroept |
Deze aanvraag bevat een JSON-hoofdtekst die vergelijkbaar is met de volgende.
{
"kind": "Conversation",
"analysisInput": {
"conversationItem": {
"id": "1",
"participantId": "1",
"text": "Sample text"
}
},
"parameters": {
"projectName": "{PROJECT-NAME}",
"deploymentName": "{DEPLOYMENT-NAME}",
"stringIndexType": "TextElement_V8"
}
}
Tijdelijke aanduiding | Waarde |
---|---|
{PROJECT-NAME} |
De naam van het project waarin u uw model hebt gebouwd |
{DEPLOYMENT-NAME} |
De naam van uw implementatie |
Voorbeeldrespons
Het queryantwoord van een SDK wordt geretourneerd in het object dat afhankelijk is van de functie (zoals in response.key_phrases
of response.Value
). De REST API retourneert JSON die er ongeveer als volgt uitziet.
{
"kind": "KeyPhraseExtractionResults",
"results": {
"documents": [{
"id": "1",
"keyPhrases": ["modern medical office", "Dr. Smith", "great staff"],
"warnings": []
}],
"errors": [],
"modelVersion": "{VERSION}"
}
}
Voor andere modellen, zoals begrip van gesprekstalen, zou een voorbeeldantwoord op uw query er ongeveer als volgt uitzien.
{
"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
}
]
}
}
}
De SDK's voor zowel Python als C# retourneren JSON die vergelijkbaar is met het REST-antwoord.
Zie de documentatiepagina's voor Azure AI Language voor volledige documentatie over functies, waaronder voorbeelden en handleidingen.