Condividi tramite


Quando usare le app del flusso di lavoro di orchestrazione o comprensione del linguaggio di conversazione

Quando si creano applicazioni di grandi dimensioni, è consigliabile valutare se il caso d'uso sarebbe meglio gestito da una singola app conversazionale (architettura flat) o da più app orchestrate.

Panoramica dell'orchestrazione

Il flusso di lavoro di orchestrazione è una funzionalità che consente di connettere progetti diversi da LUIS da comprensione del linguaggio di conversazione e dalla funzionalità personalizzata di risposta alla domanda in un unico progetto. È quindi possibile usare questo progetto per le previsioni usando un endpoint. Il progetto di orchestrazione esegue una previsione su quale progetto figlio dovrebbe essere chiamato, instrada automaticamente la richiesta a tale progetto e restituisce la risposta.

Il punto chiave è che l'orchestrazione prevede due passaggi:

  1. Previsione del progetto figlio da chiamare.
  2. Instradare l'espressione all'app figlio di destinazione e restituire la risposta dell'app figlio.

Vantaggi

  • Scomposizione chiara e sviluppo più rapido:

    • Se lo schema complessivo ha un numero considerevole di domini, l'approccio di orchestrazione può aiutare a scomporre l'applicazione in diverse app figlio (ognuna che gestisce un dominio specifico). Ad esempio, un'app per conversazioni automobilistiche potrebbe avere un dominio di navigazione, undominio multimediale e così via.
    • Lo sviluppo di ogni app di dominio in parallelo è più semplice. Le persone e i team con competenze specifiche sul dominio possono lavorare su singole app in modo collaborativo e parallelo.
    • Poiché ogni app di dominio è più piccola, il ciclo di sviluppo diventa più veloce. Il training delle app di dominio di dimensioni inferiori richiede molto meno tempo rispetto a una singola app di grandi dimensioni.
  • Soglie del punteggio di attendibilità più flessibili:

    • Poiché sono presenti app figlio separate che servono ogni dominio, è facile impostare soglie separate per app figlio diverse.
  • Miglioramenti della qualità dell'intelligenza artificiale, se appropriato:

    • Alcune applicazioni richiedono che alcune entità siano limitate al dominio. L'orchestrazione semplifica questo risultato. Una volta che il progetto di orchestrazione ha stimato quale app figlio deve essere chiamata, le altre app figlio non verranno chiamate.

    Ad esempio, se l'app contiene un'entità Person.Name predefinita, prendere in considerazione l'espressione "Come si usa un martinetto?", nel contesto di una domanda relativa a un veicolo. In questo contesto, il martinetto è uno strumento automobilistico e non deve essere riconosciuto come nome di una persona. Utilizzando l'orchestrazione, questa espressione può essere reindirizzata a un'app figlio creata per rispondere a tali domande, che non ha un'entità Person.Name.

Svantaggi

  • Entità ridondanti nelle app figlio:
    • Se è necessaria una particolare entità predefinita restituita in tutte le espressioni indipendentemente dal dominio, ad esempio Quantity.Number o Geography.Location, non è possibile aggiungere un'entità all'app Orchestrazione (si tratta di un modello di sola finalità). È necessario aggiungerla a tutte le singole app figlio.
  • Efficienza:
    • Le app di orchestrazione accettano due inferenze del modello. Uno per prevedere l'app figlio da chiamare, un'altra per la previsione nell'app figlio. I tempi di inferenza in genere saranno più lenti rispetto alle singole app con un'architettura flat.
  • Suddivisione di training/test per l’agente di orchestrazione:
    • Il training di un'app di orchestrazione non consente di suddividere in modo granulare i dati tra i set di test e di training. Ad esempio, non è possibile eseguire il training di una divisione da 90 a 10 per l'app figlio A e quindi una divisione da 80 a 20 per l'app figlio B. Questo può essere un punto secondario, ma vale la pena tenerlo presente.

Panoramica dell'architettura flat

L'architettura flat è l'altro metodo per lo sviluppo di app conversazionali. Invece di usare un'app di orchestrazione per inviare espressioni a una di più app figlio, si sviluppa un'app singolare (o flat) per gestire le espressioni.

Vantaggi

  • Semplicità:
    • Per le app o i domini di piccole dimensioni, l'approccio dell'agente di orchestrazione può essere eccessivamente complesso.
    • Poiché tutte le finalità e le entità sono allo stesso livello di app, potrebbe essere più semplice apportare modifiche a tutte insieme.
  • È più semplice aggiungere entità che devono sempre essere restituite:
    • Se si desidera che vengano restituite determinate entità predefinite o di elenco per tutte le espressioni, è sufficiente aggiungerla insieme ad altre entità in una singola app. Se si usa l'orchestrazione, come indicato in precedenza, è necessario aggiungerla a ogni app figlio.

Svantaggi

  • Poco pratico per app di grandi dimensioni:
    • Per le app di grandi dimensioni, ad esempio > 50 finalità o entità, può diventare difficile tenere traccia degli schemi e dei set di dati in evoluzione. Ciò è particolarmente evidente nei casi in cui l'app deve gestire diversi domini. Ad esempio, un'app per conversazioni di carattere automobilistico potrebbe avere un dominio di navigazione, undominio multimediale e così via.
  • Controllo limitato sulle corrispondenze di entità:
    • In un'architettura flat non è possibile limitare la restituzione delle entità solo in determinati casi. A tale scopo, è possibile usare l'orchestrazione assegnando tali entità specifiche a specifiche app figlio.

Passaggi successivi