Eseguire il backup e ripristinare i modelli di comprensione del linguaggio conversazionale

Quando si crea una risorsa Language nel portale di Azure, si specifica un'area in cui deve essere creata. Da allora, la risorsa e tutte le operazioni correlate vengono eseguite nell'area del server di Azure specificata. È raro, ma non impossibile, riscontrare un problema di rete che colpisce un'intera area. Se la soluzione deve essere sempre disponibile, è necessario progettarla per eseguire il failover in un'altra area. Sono necessarie due risorse del linguaggio di Azure in aree diverse e la possibilità di sincronizzare i modelli CLU tra aree.

Se l'app o l'azienda dipende dall'uso di un modello CLU, è consigliabile creare una replica del progetto in un'altra area supportata. In questo 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 l'importazione in un nuovo progetto. In questo modo viene creata solo una copia delle impostazioni, delle finalità, delle entità e delle espressioni del progetto. È comunque necessario eseguire il training e distribuire i modelli da usare con le API di runtime.

In questo articolo si apprenderà come usare le API di esportazione e importazione per replicare il progetto da una risorsa a un'altra esistente in aree geografiche supportate diverse, indicazioni su come mantenere sincronizzati i progetti e le modifiche necessarie per il consumo di runtime.

Prerequisiti

  • Due risorse del linguaggio di Azure in aree di Azure diverse, ognuna di esse in un'area diversa.

Ottenere l'endpoint delle chiavi di risorsa

Usare la procedura seguente per ottenere le chiavi e l'endpoint delle risorse primarie e secondarie. Questi verranno usati nei passaggi seguenti.

Passare alla pagina di panoramica delle risorse nel portale di Azure. Dal menu a sinistra selezionare Chiavi ed Endpoint. Si useranno l'endpoint e la chiave per le richieste API

A screenshot showing the key and endpoint page in the Azure portal.

Suggerimento

Tenere presente le chiavi e gli endpoint per le risorse primarie e secondarie. Usare questi valori per sostituire i segnaposto seguenti: {PRIMARY-ENDPOINT}, {SECONDARY-ENDPOINT}{PRIMARY-RESOURCE-KEY}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}e {DEPLOYMENT-NAME}{MODEL-NAME} .

Esportare gli asset del progetto primario

Per iniziare, esportare gli asset di progetto dal progetto nella risorsa primaria.

Invia processo di esportazione

Sostituire i segnaposto nella richiesta seguente 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.

URL richiesta

Usare l'URL seguente durante la creazione della richiesta API. Sostituire i valori segnaposto seguenti con i valori personalizzati.

{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} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è relativo alla versione più recente rilasciata del modello . 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave Valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per autenticare le richieste API.

Dopo aver inviato la richiesta API, si riceverà una 202 risposta che indica l'esito positivo. Nelle intestazioni di risposta estrarre il operation-location valore. Verrà formattato come segue:

{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 file JSON del progetto esportato usando lo stesso metodo di autenticazione.

Ottenere lo stato del processo di esportazione

Sostituire i segnaposto nella richiesta seguente con {PRIMARY-ENDPOINT} e {PRIMARY-RESOURCE-KEY} ottenuti nel primo passaggio.

Usare la richiesta GET seguente per eseguire una query sullo 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} ID per l'individuazione dello stato del processo di esportazione. Si tratta del valore dell'intestazione location ricevuto nel passaggio precedente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è per la versione più recente del modello rilasciato. 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave Descrizione Valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per autenticare le 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 resultUrl chiave 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 dal 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 Chiave della risorsa. Usato per autenticare le richieste API. {PRIMARY-RESOURCE-KEY}

Copiare il corpo della risposta come si userà come corpo per il processo di importazione successivo.

Importare in un nuovo progetto

Ora procedere e importare gli asset di progetto esportati nel nuovo progetto nell'area secondaria in modo da poterlo replicare.

Inviare il processo di importazione

Sostituire i segnaposto nella richiesta seguente con {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.

URL richiesta

Usare l'URL seguente durante la creazione della richiesta API. Sostituire i valori segnaposto seguenti con i valori personalizzati.

{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. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myProject
{API-VERSION} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è per la versione più recente del modello rilasciato. 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave Valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per autenticare le richieste API.

Corpo

Usare il codice JSON di esempio seguente come corpo.

{
  "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 {API-VERSION} Versione dell'API che si sta chiamando. La versione usata qui deve essere la stessa versione del modello API nell'URL. Per altre informazioni, vedere l'articolo sulla versione del modello . 2022-05-01
projectName {PROJECT-NAME} Nome del progetto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. EmailApp
language {LANGUAGE-CODE} Stringa che specifica il codice della lingua per le espressioni usate nel progetto. Se il progetto è un progetto multilingue, scegliere il codice linguistico della maggior parte delle espressioni. en-us
multilingual true Valore booleano che consente di avere documenti in più lingue nel set di dati. Quando il modello viene distribuito, è possibile eseguire query sul modello in qualsiasi linguaggio supportato. Sono incluse le lingue che non sono incluse 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 un set di training. I valori possibili per questo campo sono Train e Test. Train

Ottenere lo stato del processo di importazione

Sostituire i segnaposto nella richiesta seguente con {SECONDARY-ENDPOINT} e {SECONDARY-RESOURCE-KEY} ottenuti nel primo passaggio.

Usare la richiesta GET seguente per eseguire una query sullo stato del processo di importazione. È 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}/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} ID per l'individuazione dello stato del processo di esportazione. Si tratta del valore dell'intestazione location ricevuto nel passaggio precedente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è per la versione più recente del modello rilasciato. 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave Descrizione Valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per autenticare le richieste API. {YOUR-PRIMARY-RESOURCE-KEY}

Corpo della risposta

Dopo aver inviato la richiesta, si riceverà la risposta seguente. Continuare a eseguire il polling di questo endpoint fino a quando il parametro di stato non viene modificato in "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 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 dell'account.

Inviare il processo di training

Sostituire i segnaposto nella richiesta seguente con {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.

URL richiesta

Usare l'URL seguente durante la creazione della richiesta API. Sostituire i valori segnaposto seguenti con i valori personalizzati.

{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} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è relativo alla versione più recente rilasciata del modello . 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave Valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per autenticare le richieste API.

Testo della richiesta

Usare l'oggetto seguente nella richiesta. Il modello verrà denominato MyModel 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} Nome del modello. Model1
trainingConfigVersion {CONFIG-VERSION} Versione del modello di configurazione del training. Per impostazione predefinita, viene usata la versione più recente del modello . 2022-05-01
trainingMode {TRAINING-MODE} Modalità di training da utilizzare per il training. Le modalità supportate sono formazione standard, formazione più veloce, ma disponibile solo per la formazione inglese e avanzata supportata per altre lingue e progetti multilingue, ma comporta tempi di formazione più lunghi. Altre informazioni sulle modalità di training. standard
kind percentage Metodi di divisione. I valori possibili 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

E trainingSplitPercentagetestingSplitPercentage sono obbligatori 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 202 risposta che indica l'esito positivo. Nelle intestazioni di risposta estrarre il operation-location valore. Verrà formattato come segue:

{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 {SECONDARY-ENDPOINT} e {SECONDARY-RESOURCE-KEY} ottenuti nel primo passaggio.

Usare la richiesta GET seguente per ottenere lo stato dello stato di avanzamento del training del modello. Sostituire i valori segnaposto seguenti con i valori personalizzati.

URL richiesta

{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} ID per l'individuazione dello stato di training del modello. Si tratta del valore di location intestazione ricevuto quando è stato inviato il processo di training. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è relativo alla versione più recente rilasciata. Altre informazioni sulle altre versioni api disponibili 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave Valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per autenticare le richieste API.

Corpo della risposta

Dopo aver inviato la richiesta, si riceverà la risposta seguente. Continuare a eseguire il polling di questo endpoint fino a quando il parametro di stato non viene modificato in "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 Versione di configurazione del training. Per impostazione predefinita, viene usata la versione più recente . 2022-05-01
trainingMode Modalità di training selezionata. standard
startDateTime Ora di inizio del training 2022-04-14T10:23:04.2598544Z
status Stato del processo di training running
estimatedEndDateTime Tempo stimato per il completamento del processo di training 2022-04-14T10:29:38.2598544Z
jobId ID processo di training xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
createdDateTime Data e 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 Data e ora di scadenza del processo di training 2022-04-14T10:22:42Z

Distribuire il modello

Questo è il passaggio in cui si rende disponibile il consumo del modulo del modello sottoposto a training tramite l'API di stima di runtime.

Suggerimento

Usare lo stesso nome di distribuzione del progetto primario per semplificare la manutenzione e le modifiche minime apportate al sistema per gestire il reindirizzamento del traffico.

Inviare il processo di distribuzione

Sostituire i segnaposto nella richiesta seguente con {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 conversazionale.

URL richiesta

{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} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è per la versione più recente del modello rilasciato. 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave Valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per autenticare le 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 con training corretto. Per questo valore viene applicata la distinzione tra maiuscole e minuscole. myModel

Dopo aver inviato la richiesta API, si riceverà una 202 risposta che indica l'esito positivo. Nelle intestazioni di risposta estrarre il operation-location valore. Verrà formattato come segue:

{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 {SECONDARY-ENDPOINT} e {SECONDARY-RESOURCE-KEY} ottenuti nel primo passaggio.

Usare la richiesta GET seguente per ottenere lo stato del processo di distribuzione. Sostituire i valori segnaposto seguenti con i valori personalizzati.

URL richiesta

{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} ID per l'individuazione dello stato di training del modello. Si tratta del valore dell'intestazione location ricevuto dall'API in risposta alla richiesta di distribuzione del modello. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è per la versione più recente del modello rilasciato. 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave Valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per autenticare le richieste API.

Corpo della risposta

Dopo aver inviato la richiesta, si riceverà la risposta seguente. Continuare a eseguire il polling di questo endpoint fino a quando il parametro di stato non viene modificato in "succeeded".

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"{CREATED-TIME}",
    "lastUpdatedDateTime":"{UPDATED-TIME}",
    "expirationDateTime":"{EXPIRATION-TIME}",
    "status":"running"
}

Modifiche alla chiamata del runtime

All'interno del sistema, nel passaggio in cui si chiama il controllo dell'API di runtime per il codice di risposta restituito dall'API dell'attività di invio. Se si osserva un errore coerente durante l'invio della richiesta, ciò potrebbe indicare un'interruzione nell'area primaria. L'errore una volta non significa un'interruzione, potrebbe trattarsi di un problema temporaneo. Riprovare a inviare il processo tramite la risorsa secondaria creata. Per la seconda richiesta usare la {YOUR-SECONDARY-ENDPOINT} chiave secondaria e , se sono stati eseguiti i passaggi precedenti, {PROJECT-NAME} e {DEPLOYMENT-NAME} sarebbe lo stesso in modo che non siano necessarie modifiche al 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 viene distribuito il modello.

Controllare se i progetti non sono sincronizzati

Mantenere la freschezza di entrambi i progetti è una parte importante del processo. È necessario controllare spesso se sono stati apportati aggiornamenti al progetto primario in modo da spostarli nel progetto secondario. In questo modo, se l'area primaria ha esito negativo e si passa all'area secondaria, è consigliabile prevedere prestazioni del modello simili perché contiene già gli aggiornamenti più recenti. L'impostazione della frequenza di verifica se i progetti sono sincronizzati è una scelta importante, è consigliabile eseguire questa verifica ogni giorno per garantire la freschezza 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 un altro per il progetto secondario e confrontare il timestamp restituito per entrambi per verificare 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} Versione dell'API che si sta chiamando. Il valore a cui viene fatto riferimento è per la versione più recente del modello rilasciato. 2022-05-01

Intestazioni

Usare l'intestazione seguente per autenticare la richiesta.

Chiave Descrizione Valore
Ocp-Apim-Subscription-Key Chiave della risorsa. Usato per autenticare le 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 l'oggetto restituito lastModifiedDateTime 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 il progetto in una risorsa lingua secondaria in un'altra area. Esplorare quindi la documentazione di riferimento dell'API per visualizzare le altre operazioni che è possibile eseguire con le API di creazione.