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

Screenshot che mostra la pagina della chiave e dell'endpoint nel portale di Azure.

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.