Eseguire il backup e ripristinare i modelli di comprensione del linguaggio di conversazione
Quando si crea una risorsa Linguaggio nel portale di Azure, si specifica un'area in cui crearla. Da allora, la risorsa e tutte le operazioni correlate alla risorsa vengono eseguite nell'area del server di Azure specificata. È raro, ma non impossibile, riscontrare un problema di rete che interessa un'intera area. Se una soluzione deve essere sempre disponibile, è necessario progettarla prevedendo il failover in un'altra area. Ciò richiede due risorse Lingua di Azure AI in aree differenti e la possibilità di sincronizzare i modelli CLU tra regioni.
Se un'app o un'azienda fa affidamento sull'uso di un modello CLU, è preferibile creare una replica del progetto in un'altra area supportata. In tal modo, se si verifica un'interruzione a livello di area, è possibile accedere al modello nell'altra area di failover in cui è stato replicato il progetto.
La replica di un progetto implica l'esportazione dei metadati e degli asset del progetto e la loro importazione in un nuovo progetto. In questo modo viene creata solo una copia delle impostazioni del progetto, delle finalità, delle entità e delle espressioni. È comunque necessario eseguire il training di e distribuire i modelli per poterli utilizzare con le API di runtime.
Questo articolo descrive come usare le API di esportazione e importazione per replicare un progetto da una risorsa a un'altra risorsa esistente in aree geografiche supportate diverse, e fornisce indicazioni su come mantenere sincronizzati i progetti e le modifiche necessarie per l’uso del runtime.
Prerequisiti
- Due risorse Lingua di Azure AI in aree di Azure differenti, ognuna di esse in un’area diversa.
Ottenere l'endpoint e le chiavi di una risorsa
Usare la procedura seguente per ottenere le chiavi e l'endpoint delle risorse primarie e secondarie. Verranno usati nel passaggio successivo.
Accedere alla pagina di panoramica della risorsa nel portale di Azure. Nel menu sul lato sinistro, scegliere Chiavi ed endpoint. Si useranno l'endpoint e la chiave per le richieste API
Suggerimento
Prendere nota delle chiavi e degli endpoint per le risorse sia primarie che secondarie. Usare questi valori per sostituire i segnaposto seguenti: {PRIMARY-ENDPOINT}
, {PRIMARY-RESOURCE-KEY}
, {SECONDARY-ENDPOINT}
e {SECONDARY-RESOURCE-KEY}
.
Prendere nota anche del nome del progetto, del nome del modello e del nome della distribuzione. Usare questi valori per sostituire i segnaposto seguenti: {PROJECT-NAME}
, {MODEL-NAME}
e {DEPLOYMENT-NAME}
.
Esportare gli asset del progetto primari
Per iniziare, esportare gli asset del progetto dal progetto nella risorsa primaria.
Inviare il processo di esportazione
Sostituire i segnaposto nella richiesta indicata di seguito con {PRIMARY-ENDPOINT}
e {PRIMARY-RESOURCE-KEY}
, ottenuti nel primo passaggio.
Creare una richiesta POST usando l'URL, le intestazioni e il corpo JSON seguenti per esportare il progetto.
Richiesta URL
Usare l'URL seguente durante la creazione della richiesta API. Sostituire i valori segnaposto seguenti con i propri valori.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:export?stringIndexType=Utf16CodeUnit&api-version={API-VERSION}
Segnaposto | Valore | Esempio |
---|---|---|
{ENDPOINT} |
Endpoint per l'autenticazione della richiesta API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. | EmailApp |
{API-VERSION} |
La versione dell'API che si sta richiamando. | 2023-04-01 |
Intestazioni
Usare l'intestazione seguente per autenticare la richiesta.
Chiave | valore |
---|---|
Ocp-Apim-Subscription-Key |
La chiave della risorsa. È usata per l’autenticazione delle richieste API. |
Dopo aver inviato la richiesta API, si riceverà una risposta 202
che indica l'esito positivo. Nelle intestazioni della risposta, estrarre il valore operation-location
. Il formato sarà simile al seguente:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
JOB-ID
viene usato per identificare la richiesta, poiché questa operazione è asincrona. Usare questo URL per ottenere il codice JSON del progetto esportato usando lo stesso metodo di autenticazione.
Ottenere lo stato di un processo di esportazione
Sostituire i segnaposto nella richiesta seguente con i valori {PRIMARY-ENDPOINT}
e {PRIMARY-RESOURCE-KEY}
ottenuti nel primo passaggio.
Usare la richiesta GET seguente per eseguire una query dello stato del processo di esportazione. È possibile usare l'URL ricevuto dal passaggio precedente oppure sostituire i valori segnaposto seguenti con i propri valori.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/export/jobs/{JOB-ID}?api-version={API-VERSION}
Segnaposto | Valore | Esempio |
---|---|---|
{ENDPOINT} |
Endpoint per l'autenticazione della richiesta API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. | myProject |
{JOB-ID} |
L'ID per individuare lo stato del processo di esportazione. Questo valore è incluso nel valore dell'intestazione location ricevuto nel passaggio precedente. |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
La versione dell'API che viene richiamata. | 2023-04-01 |
Intestazioni
Usare l'intestazione seguente per autenticare la richiesta.
Chiave | Descrizione | Valore |
---|---|---|
Ocp-Apim-Subscription-Key |
La chiave della risorsa. È usata per l’autenticazione delle richieste API. | {YOUR-PRIMARY-RESOURCE-KEY} |
Corpo della risposta
{
"resultUrl": "{Endpoint}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/export/jobs/xxxxxx-xxxxx-xxxxx-xx/result?api-version={API-VERSION}",
"jobId": "xxxx-xxxxx-xxxxx-xxx",
"createdDateTime": "2022-04-18T15:23:07Z",
"lastUpdatedDateTime": "2022-04-18T15:23:08Z",
"expirationDateTime": "2022-04-25T15:23:07Z",
"status": "succeeded"
}
Usare l'URL della chiave resultUrl
nel corpo per visualizzare gli asset esportati da questo processo.
Ottenere i risultati dell'esportazione
Inviare una richiesta GET usando l'oggetto {RESULT-URL}
ricevuto nel passaggio precedente per visualizzare i risultati del processo di esportazione.
Intestazioni
Usare l'intestazione seguente per autenticare la richiesta.
Chiave | Descrizione | Valore |
---|---|---|
Ocp-Apim-Subscription-Key |
La chiave della risorsa. È usata per l’autenticazione delle richieste API. | {PRIMARY-RESOURCE-KEY} |
Copiare il corpo della risposta perché verrà usato come corpo nel processo di importazione successivo.
Importare in un nuovo progetto
Procedere quindi importando gli asset di progetto esportati nel nuovo progetto nell'area secondaria in modo da poterli replicare.
Inviare un processo di importazione
Sostituire i segnaposto nella richiesta seguente con i valori {SECONDARY-ENDPOINT}
e {SECONDARY-RESOURCE-KEY}
ottenuti nel primo passaggio.
Inviare una richiesta POST usando l'URL, le intestazioni e il corpo JSON seguenti per importare il progetto.
Richiesta URL
Usare l'URL seguente per la creazione della richiesta API. Sostituire i valori segnaposto con i propri valori.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:import?api-version={API-VERSION}
Segnaposto | Valore | Esempio |
---|---|---|
{ENDPOINT} |
Endpoint per l'autenticazione della richiesta API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nome del progetto. Questo valore fa distinzione tra maiuscole e minuscole e deve corrispondere al nome del progetto nel file JSON importato. | EmailAppDemo |
{API-VERSION} |
La versione dell'API che viene richiamata. | 2023-04-01 |
Intestazioni
Usare l'intestazione seguente per autenticare la richiesta.
Chiave | valore |
---|---|
Ocp-Apim-Subscription-Key |
La chiave della risorsa. È usata per l’autenticazione delle richieste API. |
Corpo
Il corpo JSON inviato è simile all'esempio seguente. Per altri dettagli sull'oggetto JSON, vedere la documentazione di riferimento.
{
"projectFileVersion": "{API-VERSION}",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectKind": "Conversation",
"settings": {
"confidenceThreshold": 0.7
},
"projectName": "{PROJECT-NAME}",
"multilingual": true,
"description": "Trying out CLU",
"language": "{LANGUAGE-CODE}"
},
"assets": {
"projectKind": "Conversation",
"intents": [
{
"category": "intent1"
},
{
"category": "intent2"
}
],
"entities": [
{
"category": "entity1"
}
],
"utterances": [
{
"text": "text1",
"dataset": "{DATASET}",
"intent": "intent1",
"entities": [
{
"category": "entity1",
"offset": 5,
"length": 5
}
]
},
{
"text": "text2",
"language": "{LANGUAGE-CODE}",
"dataset": "{DATASET}",
"intent": "intent2",
"entities": []
}
]
}
}
Chiave | Segnaposto | Valore | Esempio |
---|---|---|---|
{API-VERSION} |
La versione dell'API che viene richiamata. | 2023-04-01 |
|
projectName |
{PROJECT-NAME} |
Il nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. | EmailAppDemo |
language |
{LANGUAGE-CODE} |
Una stringa che specifica il codice lingua per le espressioni usate nel progetto. Se il progetto è un progetto multilingue, scegliere il codice linguaggio della maggior parte delle espressioni. | en-us |
multilingual |
true |
Valore booleano che consente di avere documenti in diversi linguaggi nel set di dati. Quando il modello viene distribuito, è possibile eseguire query sul modello in qualsiasi linguaggio supportato, compresi quelli non inclusi nei documenti di training. | true |
dataset |
{DATASET} |
Vedere come eseguire il training di un modello per informazioni sulla suddivisione dei dati tra un set di test e uno di training. I valori possibili per questo campo sono Train e Test . |
Train |
Quando una richiesta ha esito positivo, la risposta API conterrà un'intestazione operation-location
con un URL che è possibile usare per controllare lo stato del processo di importazione. È formattata come segue:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Ottenere lo stato del processo di importazione
Sostituire i segnaposto nella richiesta seguente con i valori {SECONDARY-ENDPOINT}
e {SECONDARY-RESOURCE-KEY}
ottenuti nel primo passaggio.
Quando si invia una richiesta di importazione di progetto con esito positivo, l'URL completo della richiesta per verificare lo stato del processo di importazione (incluso l'endpoint, il nome del progetto e l'ID processo) è contenuto nell'intestazione operation-location
della risposta.
Usare la richiesta GET seguente per eseguire un query dello stato del processo di importazione. È possibile usare l'URL ricevuto dal passaggio precedente oppure sostituire i valori segnaposto con i propri valori.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Segnaposto | Valore | Esempio |
---|---|---|
{ENDPOINT} |
Endpoint per l'autenticazione della richiesta API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. | myProject |
{JOB-ID} |
L'ID per individuare lo stato del processo di importazione. | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
La versione dell'API che viene richiamata. | 2023-04-01 |
Intestazioni
Usare l'intestazione seguente per autenticare la richiesta.
Chiave | Descrizione | Valore |
---|---|---|
Ocp-Apim-Subscription-Key |
La chiave della risorsa. È usata per l’autenticazione delle richieste API. | {YOUR-PRIMARY-RESOURCE-KEY} |
Corpo della risposta
Dopo aver inviato la richiesta, si otterrà la risposta seguente. Mantenere il polling di questo endpoint fino a quando il parametro dello stato diventa "succeeded".
{
"jobId": "xxxxx-xxxxx-xxxx-xxxxx",
"createdDateTime": "2022-04-18T15:17:20Z",
"lastUpdatedDateTime": "2022-04-18T15:17:22Z",
"expirationDateTime": "2022-04-25T15:17:20Z",
"status": "succeeded"
}
Eseguire il training del modello
Dopo aver importato il progetto, sono stati copiati solo gli asset e i metadati e gli asset del progetto. È comunque necessario eseguire il training del modello che comporterà l'utilizzo del proprio account.
Inviare il processo di training
Sostituire i segnaposto nella richiesta seguente con i valori {SECONDARY-ENDPOINT}
e {SECONDARY-RESOURCE-KEY}
ottenuti nel primo passaggio.
Creare una richiesta POST usando l'URL, le intestazioni e il corpo JSON seguenti per inviare un processo di training.
Richiesta URL
Usare l'URL seguente per la creazione della richiesta API. Sostituire i valori segnaposto con i propri valori.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Segnaposto | Valore | Esempio |
---|---|---|
{ENDPOINT} |
Endpoint per l'autenticazione della richiesta API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. | EmailApp |
{API-VERSION} |
La versione dell'API che si sta richiamando. | 2023-04-01 |
Intestazioni
Usare l'intestazione seguente per autenticare la richiesta.
Chiave | valore |
---|---|
Ocp-Apim-Subscription-Key |
La chiave della risorsa. È usata per l’autenticazione delle richieste API. |
Corpo della richiesta
Usare l’oggetto seguente nella richiesta. Il modello verrà denominato dopo il valore usato per il parametro modelLabel
al termine del training.
{
"modelLabel": "{MODEL-NAME}",
"trainingMode": "{TRAINING-MODE}",
"trainingConfigVersion": "{CONFIG-VERSION}",
"evaluationOptions": {
"kind": "percentage",
"testingSplitPercentage": 20,
"trainingSplitPercentage": 80
}
}
Chiave | Segnaposto | Valore | Esempio |
---|---|---|---|
modelLabel |
{MODEL-NAME} |
Il nome del modello. | Model1 |
trainingConfigVersion |
{CONFIG-VERSION} |
La versione del modello di configurazione del training. Per impostazione predefinita, viene utilizzata la versione del modello più recente. | 2022-05-01 |
trainingMode |
{TRAINING-MODE} |
La modalità da utilizzare per il training. Le modalità supportate sono Training standard, Training più veloce, disponibile solo in inglese e Training avanzato supportata per altre lingue e progetti multilingue, ma che prevede tempi di training più lunghi. Altre informazioni sulle modalità di training. | standard |
kind |
percentage |
Metodi di divisione. I possibili valori sono percentage o manual . Per altre informazioni, vedere Come eseguire il training di un modello. |
percentage |
trainingSplitPercentage |
80 |
Percentuale dei dati con tag da includere nel set di training. Il valore consigliato è 80 . |
80 |
testingSplitPercentage |
20 |
Percentuale dei dati con tag da includere nel set di test. Il valore consigliato è 20 . |
20 |
Nota
trainingSplitPercentage
e testingSplitPercentage
sono necessari solo se Kind
è impostato su percentage
e la somma di entrambe le percentuali deve essere uguale a 100.
Dopo aver inviato la richiesta API, si riceverà una risposta 202
indicante l'esito positivo. Nelle intestazioni della risposta, estrarre il valore operation-location
. Il formato sarà simile al seguente:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
È possibile usare questo URL per ottenere lo stato del processo di training.
Get Training Status
Sostituire i segnaposto nella richiesta seguente con i valori {SECONDARY-ENDPOINT}
e {SECONDARY-RESOURCE-KEY}
ottenuti nel primo passaggio.
Quando si invia una richiesta di training con esito positivo, l'URL completo della richiesta per verificare lo stato del processo (incluso l'endpoint, il nome del progetto e l'ID processo) è contenuto nell'intestazione operation-location
della risposta.
Usare la seguente richiesta GET per ottenere lo stato dello stato di avanzamento del training del modello. Sostituire i valori segnaposto seguenti con i propri valori.
Richiesta URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Segnaposto | Valore | Esempio |
---|---|---|
{YOUR-ENDPOINT} |
Endpoint per l'autenticazione della richiesta API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. | EmailApp |
{JOB-ID} |
L’ID per individuare lo stato del training del modello. | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
La versione dell'API che viene richiamata. | 2023-04-01 |
Intestazioni
Usare l'intestazione seguente per autenticare la richiesta.
Chiave | valore |
---|---|
Ocp-Apim-Subscription-Key |
La chiave della risorsa. È usata per l’autenticazione delle richieste API. |
Testo della risposta
Dopo aver inviato la richiesta, si otterrà la risposta seguente. Continuare il polling di questo endpoint fino a quando il parametro dello stato diventa "succeeded".
{
"result": {
"modelLabel": "{MODEL-LABEL}",
"trainingConfigVersion": "{TRAINING-CONFIG-VERSION}",
"trainingMode": "{TRAINING-MODE}",
"estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
"trainingStatus": {
"percentComplete": 3,
"startDateTime": "2022-04-18T15:45:06.8190649Z",
"status": "running"
},
"evaluationStatus": {
"percentComplete": 0,
"status": "notStarted"
}
},
"jobId": "xxxxx-xxxxx-xxxx-xxxxx-xxxx",
"createdDateTime": "2022-04-18T15:44:44Z",
"lastUpdatedDateTime": "2022-04-18T15:45:48Z",
"expirationDateTime": "2022-04-25T15:44:44Z",
"status": "running"
}
Chiave | valore | Esempio |
---|---|---|
modelLabel |
Nome del modello | Model1 |
trainingConfigVersion |
La versione della configurazione del training. Per impostazione predefinita, viene utilizzata la versione più recente. | 2022-05-01 |
trainingMode |
La modalità di training selezionata. | standard |
startDateTime |
L’ora di inizio del training | 2022-04-14T10:23:04.2598544Z |
status |
Lo stato del processo di training | running |
estimatedEndDateTime |
Il tempo stimato per il completamento del processo di training | 2022-04-14T10:29:38.2598544Z |
jobId |
L'ID del processo di training | xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx |
createdDateTime |
La data e l'ora di creazione del processo di training | 2022-04-14T10:22:42Z |
lastUpdatedDateTime |
Data e ora dell'ultimo aggiornamento del processo di training | 2022-04-14T10:23:45Z |
expirationDateTime |
La data e l'ora di scadenza del processo di training | 2022-04-14T10:22:42Z |
Distribuire il modello
Questo è il passaggio in cui si rende disponibile all’uso il modello sottoposto a training tramite l'API di stima di runtime.
Suggerimento
Usare lo stesso nome distribuzione del progetto primario per semplificare la manutenzione e apportare modifiche minime al sistema per gestire il reindirizzamento del traffico.
Inviare un processo di distribuzione
Sostituire i segnaposto nella richiesta seguente con i valori {SECONDARY-ENDPOINT}
e {SECONDARY-RESOURCE-KEY}
ottenuti nel primo passaggio.
Creare una richiesta PUT usando l'URL, le intestazioni e il corpo JSON seguenti per iniziare a distribuire un modello di comprensione del linguaggio di conversazione.
Richiesta URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Segnaposto | Valore | Esempio |
---|---|---|
{ENDPOINT} |
Endpoint per l'autenticazione della richiesta API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. | myProject |
{DEPLOYMENT-NAME} |
Nome della distribuzione. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. | staging |
{API-VERSION} |
La versione dell'API che si sta richiamando. | 2023-04-01 |
Intestazioni
Usare l'intestazione seguente per autenticare la richiesta.
Chiave | valore |
---|---|
Ocp-Apim-Subscription-Key |
La chiave della risorsa. È usata per l’autenticazione delle richieste API. |
Corpo della richiesta
{
"trainedModelLabel": "{MODEL-NAME}",
}
Chiave | Segnaposto | Valore | Esempio |
---|---|---|---|
trainedModelLabel | {MODEL-NAME} |
Nome del modello che verrà assegnato alla distribuzione. È possibile assegnare solo modelli il cui training è stato eseguito correttamente. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. | myModel |
Dopo aver inviato la richiesta API, si riceverà una risposta 202
indicante l'esito positivo. Nelle intestazioni della risposta, estrarre il valore operation-location
. Il formato sarà simile al seguente:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
È possibile usare questo URL per ottenere lo stato del processo di distribuzione.
Ottenere lo stato della distribuzione
Sostituire i segnaposto nella richiesta seguente con i valori {SECONDARY-ENDPOINT}
e {SECONDARY-RESOURCE-KEY}
ottenuti nel primo passaggio.
Quando si invia una richiesta di distribuzione con esito positivo, l'URL completo della richiesta per verificare lo stato del processo (incluso l'endpoint, il nome del progetto e l'ID processo) è contenuto nell'intestazione operation-location
della risposta.
Usare la richiesta GET seguente per ottenere lo stato del processo di distribuzione. Sostituire i valori segnaposto con i propri valori.
Richiesta URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Segnaposto | Valore | Esempio |
---|---|---|
{ENDPOINT} |
Endpoint per l'autenticazione della richiesta API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. | myProject |
{DEPLOYMENT-NAME} |
Nome della distribuzione. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. | staging |
{JOB-ID} |
L’ID per individuare lo stato del training del modello. | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
La versione dell'API che viene richiamata. | 2023-04-01 |
Intestazioni
Usare l'intestazione seguente per autenticare la richiesta.
Chiave | valore |
---|---|
Ocp-Apim-Subscription-Key |
La chiave della risorsa. È usata per l’autenticazione delle richieste API. |
Testo della risposta
Dopo aver inviato la richiesta, si otterrà la risposta seguente. Mantenere il polling di questo endpoint fino a quando il parametro dello stato diventa "succeeded".
{
"jobId":"{JOB-ID}",
"createdDateTime":"{CREATED-TIME}",
"lastUpdatedDateTime":"{UPDATED-TIME}",
"expirationDateTime":"{EXPIRATION-TIME}",
"status":"running"
}
Modifiche nella chiamata del runtime
Nel proprio sistema, nel passaggio in cui si richiama l’API di runtime, cercare il codice di risposta restituito dall'API di invio attività. Se si osserva un errore coerente nell'invio della richiesta, potrebbe essersi verificata un'interruzione nell'area primaria. Un solo errore non implica necessariamente un'interruzione; potrebbe trattarsi di un problema temporaneo. Ritentare l’invio del processo tramite la risorsa secondaria creata. Per la seconda richiesta, usare {YOUR-SECONDARY-ENDPOINT}
e la chiave secondaria, se sono stati eseguiti i passaggi precedenti; {PROJECT-NAME}
e {DEPLOYMENT-NAME}
saranno uguali, quindi non sarà necessario modificare il corpo della richiesta.
Se si ripristina l'uso della risorsa secondaria, si noterà un lieve aumento della latenza a causa della differenza nelle aree in cui è distribuito il modello.
Controllare se i progetti non sono sincronizzati
L'aggiornamento costante di entrambi i progetti è una parte importante del processo. È necessario controllare frequentemente se sono stati apportati aggiornamenti al progetto primario in modo da spostarli nel progetto secondario. In questo modo, se si verifica un errore dell'area primaria e si passa all'area secondaria, le prestazioni del modello dovrebbero essere simili perché già contiene gli aggiornamenti più recenti. L'impostazione della frequenza di controllo della sincronizzazione dei progetti è una scelta importante; è preferibile eseguire questa verifica ogni giorno per garantire l’aggiornamento dei dati nel modello secondario.
Ottenere i dettagli del progetto
Usare l'URL seguente per ottenere i dettagli del progetto; una delle chiavi restituite nel corpo indica la data dell'ultima modifica del progetto. Ripetere due volte il passaggio seguente, uno per il progetto primario e l’altro per il progetto secondario, quindi confrontare il timestamp restituito per entrambi per controllare se non sono sincronizzati.
Usare la richiesta GET seguente per ottenere i dettagli del progetto. È possibile usare l'URL ricevuto dal passaggio precedente oppure sostituire i valori segnaposto seguenti con i propri valori.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
Segnaposto | Valore | Esempio |
---|---|---|
{ENDPOINT} |
Endpoint per l'autenticazione della richiesta API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. | myProject |
{API-VERSION} |
La versione dell'API che si sta richiamando. | 2023-04-01 |
Intestazioni
Usare l'intestazione seguente per autenticare la richiesta.
Chiave | Descrizione | Valore |
---|---|---|
Ocp-Apim-Subscription-Key |
La chiave della risorsa. È usata per l’autenticazione delle richieste API. | {YOUR-PRIMARY-RESOURCE-KEY} |
Corpo della risposta
{
"createdDateTime": "2022-04-18T13:53:03Z",
"lastModifiedDateTime": "2022-04-18T13:53:03Z",
"lastTrainedDateTime": "2022-04-18T14:14:28Z",
"lastDeployedDateTime": "2022-04-18T14:49:01Z",
"projectKind": "Conversation",
"projectName": "{PROJECT-NAME}",
"multilingual": true,
"description": "This is a sample conversation project.",
"language": "{LANGUAGE-CODE}"
}
Ripetere gli stessi passaggi per il progetto replicato usando {SECONDARY-ENDPOINT}
e {SECONDARY-RESOURCE-KEY}
. Confrontare il valore lastModifiedDateTime
restituito da entrambi i progetti. Se il progetto primario è stato modificato prima di quello secondario, è necessario ripetere i passaggi di esportazione, importazione, training e distribuzione del modello.
Passaggi successivi
In questo articolo si è appreso come usare le API di esportazione e importazione per replicare un progetto in una risorsa Lingua secondaria in un'altra area. Consultare, ora, la documentazione di riferimento delle API per informazioni su altre operazioni che è possibile eseguire con le API di creazione.