Informazioni sulle risorse per la creazione di un modello di comprensione del linguaggio conversazionale
Per usare il servizio Language Understanding per sviluppare una soluzione NLP, è necessario creare una risorsa del linguaggio in Azure. Tale risorsa verrà usata sia per la creazione del modello che per l'elaborazione delle richieste di stima dalle applicazioni client.
Suggerimento
Il lab di questo modulo illustra la creazione di un modello per la comprensione del linguaggio conversazionale. Per moduli più incentrati sulla classificazione del testo personalizzata e sul riconoscimento di entità denominate personalizzate, vedere i moduli di soluzione personalizzati nel percorso di apprendimento Sviluppare soluzioni in linguaggio naturale .
Creare il modello
Per le funzionalità che richiedono un modello per la stima, è necessario compilare, eseguire il training e la distribuzione del modello prima di usarlo per eseguire una stima. Questa compilazione e formazione insegnerà al servizio Azure AI Language cosa cercare.
Prima di tutto, è necessario creare la risorsa del linguaggio di intelligenza artificiale di Azure nel portale di Azure. Quindi:
- Cercare i servizi di intelligenza artificiale di Azure.
- Trovare e selezionare Servizio linguistico.
- Selezionare Crea nel servizio di linguaggio.
- Compilare i dettagli necessari, scegliere l'area geograficamente più vicina (per ottenere prestazioni ottimali) e assegnargli un nome univoco.
Dopo aver creato la risorsa, sarà necessaria una chiave e l'endpoint. È possibile trovarla sul lato sinistro in Chiavi ed endpoint della pagina di panoramica delle risorse.
Usa Language Studio
Per un metodo più visivo di compilazione, training e distribuzione del modello, è possibile usare Language Studio per ottenere ognuno di questi passaggi. Nella pagina principale è possibile scegliere di creare un progetto di comprensione del linguaggio conversazionale . Dopo aver creato il progetto, passare allo stesso processo precedente per compilare, eseguire il training e distribuire il modello.
Il laboratorio in questo modulo illustrerà l'uso di Language Studio per creare il modello. Per altre informazioni, vedere la guida introduttiva di Language Studio
Usare l'API REST
Un modo per compilare il modello consiste nell'API REST. Il modello consiste nel creare il progetto, importare dati, eseguire il training, distribuire e quindi usare il modello.
Queste attività vengono eseguite in modo asincrono; sarà necessario inviare una richiesta all'URI appropriato per ogni passaggio e quindi inviare un'altra richiesta per ottenere lo stato del processo.
Ad esempio, se si desidera distribuire un modello per un progetto di comprensione del linguaggio conversazionale, è necessario inviare il processo di distribuzione e quindi controllare lo stato del processo di distribuzione.
Autenticazione
Per ogni chiamata alla risorsa del linguaggio di intelligenza artificiale di Azure, autenticare la richiesta specificando l'intestazione seguente.
Chiave | Valore |
---|---|
Ocp-Apim-Subscription-Key |
La chiave della tua risorsa |
Richiedere la distribuzione
Inviare una richiesta POST all'endpoint seguente.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Segnaposto | Valore | Esempio |
---|---|---|
{ENDPOINT} |
Punto finale della risorsa linguistica di intelligenza artificiale di Azure | https://<your-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nome del progetto. Questo valore fa distinzione tra maiuscole e minuscole | myProject |
{DEPLOYMENT-NAME} |
Nome della distribuzione. Questo valore fa distinzione tra maiuscole e minuscole | staging |
{API-VERSION} |
La versione dell'API che stai chiamando | 2022-05-01 |
Includere quanto segue body
con la richiesta.
{
"trainedModelLabel": "{MODEL-NAME}",
}
Segnaposto | Valore |
---|---|
{MODEL-NAME} |
Nome del modello che verrà assegnato alla distribuzione. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. |
Al successo dell'invio della richiesta, riceverai una 202
risposta con un'intestazione di risposta operation-location
. Questa intestazione avrà un URL tramite il quale richiedere lo stato, formattato nel modo seguente:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Ottenere lo stato della distribuzione
Inviare una richiesta GET all'URL dall'intestazione della risposta precedente. I valori verranno già compilati in base alla richiesta di distribuzione iniziale.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Segnaposto | Valore |
---|---|
{ENDPOINT} |
Endpoint per l'autenticazione della richiesta API |
{PROJECT-NAME} |
Nome del progetto (con distinzione tra maiuscole e minuscole) |
{DEPLOYMENT-NAME} |
Il nome per la tua distribuzione (con distinzione tra maiuscole e minuscole) |
{JOB-ID} |
L'identificativo per trovare lo stato di addestramento del modello, disponibile nel valore dell'intestazione descritto sopra nella richiesta di distribuzione. |
{API-VERSION} |
La versione dell'API che stai chiamando |
Il corpo della risposta fornirà i dettagli sullo stato di distribuzione. Il campo status
avrà il valore esito positivo al termine della distribuzione.
{
"jobId":"{JOB-ID}",
"createdDateTime":"String",
"lastUpdatedDateTime":"String",
"expirationDateTime":"String",
"status":"running"
}
Per una guida completa di ogni passaggio con richieste di esempio, consulta l'avvio rapido per la comprensione delle conversazioni.
Interrogare il modello
Per eseguire query sul modello per una stima, è possibile usare GLI SDK in C# o Python oppure usare l'API REST.
Effettuare query utilizzando gli SDK
Per eseguire query sul modello usando un SDK, è prima necessario creare il client. Dopo aver creato il client, usarlo per chiamare l'endpoint appropriato.
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]
Altre funzionalità del linguaggio, ad esempio la comprensione del linguaggio conversazionale, richiedono la compilazione e l'invio della richiesta in modo diverso.
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
}
}
)
Eseguire query con API REST
Per interrogare il modello usando REST, creare una richiesta POST all'URL appropriato specificando il corpo appropriato. Per le funzionalità predefinite, ad esempio il rilevamento della lingua o l'analisi del sentiment, si eseguirà una query sull'endpoint analyze-text
.
Suggerimento
Tenere presente che ogni richiesta deve essere autenticata con la chiave della risorsa del linguaggio di intelligenza artificiale di Azure nell'intestazione Ocp-Apim-Subscription-Key
{ENDPOINT}/language/:analyze-text?api-version={API-VERSION}
Segnaposto | Valore |
---|---|
{ENDPOINT} |
Endpoint per l'autenticazione della richiesta API |
{API-VERSION} |
La versione dell'API che stai chiamando |
All'interno del corpo di tale richiesta, è necessario specificare il kind
parametro , che indica al servizio il tipo di comprensione del linguaggio richiesto.
Se si vuole rilevare il linguaggio, ad esempio, il corpo JSON sarà simile al seguente.
{
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id":"1",
"text": "This is a document written in English."
}
]
}
}
Altre funzionalità del linguaggio, ad esempio la comprensione del linguaggio conversazionale, richiedono che la richiesta venga instradata a un endpoint diverso. Ad esempio, la richiesta di comprensione del linguaggio di conversazione verrà inviata alla seguente.
{ENDPOINT}/language/:analyze-conversations?api-version={API-VERSION}
Segnaposto | Valore |
---|---|
{ENDPOINT} |
Endpoint per l'autenticazione della richiesta API |
{API-VERSION} |
La versione dell'API che stai chiamando |
Tale richiesta includerebbe un corpo JSON simile al seguente.
{
"kind": "Conversation",
"analysisInput": {
"conversationItem": {
"id": "1",
"participantId": "1",
"text": "Sample text"
}
},
"parameters": {
"projectName": "{PROJECT-NAME}",
"deploymentName": "{DEPLOYMENT-NAME}",
"stringIndexType": "TextElement_V8"
}
}
Segnaposto | Valore |
---|---|
{PROJECT-NAME} |
Nome del progetto in cui è stato compilato il modello |
{DEPLOYMENT-NAME} |
Nome della distribuzione |
Risposta di esempio
La risposta alla query da un SDK sarà presente nell'oggetto restituito, che varia a seconda della funzionalità, ad esempio in response.key_phrases
o response.Value
. L'API REST restituirà JSON simile al seguente.
{
"kind": "KeyPhraseExtractionResults",
"results": {
"documents": [{
"id": "1",
"keyPhrases": ["modern medical office", "Dr. Smith", "great staff"],
"warnings": []
}],
"errors": [],
"modelVersion": "{VERSION}"
}
}
Per altri modelli come la comprensione del linguaggio conversazionale, una risposta di esempio alla query sarà simile alla seguente.
{
"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
}
]
}
}
}
Gli SDK per Python e C# restituiscono JSON molto simili alla risposta REST.
Per la documentazione completa sulle funzionalità, inclusi esempi e guide pratiche, vedere le pagine della documentazione del linguaggio di intelligenza artificiale di Azure .