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, comprensione del linguaggio di conversazione e 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.
L'orchestrazione prevede due passaggi:
- Previsione del progetto figlio da chiamare.
- Instradare l'espressione all'app figlio di destinazione e restituire la risposta dell'app figlio.
Vantaggi dell'orchestrazione
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 di carattere automobilistico potrebbe avere un dominio di navigazione o un dominio multimediale.
- 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à devono essere limitate al dominio. L'orchestrazione semplifica questo risultato. Dopo che il progetto di orchestrazione prevede quale app figlio deve essere chiamata, le altre app figlio non vengono 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 dell'orchestrazione
Entità ridondanti nelle app figlio:
- Se è necessaria una particolare entità predefinita restituita in tutte le espressioni indipendentemente dal dominio, ad esempio
Quantity.Number
oGeography.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.
- Se è necessaria una particolare entità predefinita restituita in tutte le espressioni indipendentemente dal dominio, ad esempio
Efficiency:
- 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 sono 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 poi eseguire il training di una divisione da 80 a 20 per l'app figlio B. Questa limitazione potrebbe essere secondaria, ma vale la pena tenerne 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 dell'architettura flat
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 aggiungerle insieme ad altre entità in una singola app. Se si usa l'orchestrazione, come indicato, è necessario aggiungerla a ogni app figlio.
Svantaggi dell'architettura flat
Poco pratico per app di grandi dimensioni:
- Per le app di grandi dimensioni, ad esempio più di 50 finalità o entità, può diventare difficile tenere traccia degli schemi e dei set di dati in evoluzione. Questa difficoltà è 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 o un dominio multimediale.
Controllo limitato sulle corrispondenze di entità:
- In un'architettura flat non è possibile limitare la restituzione delle entità solo in determinati casi. Quando si usa l'orchestrazione, è possibile assegnare tali entità specifiche a specifiche app figlio.