Partilhar via


Quando usar aplicativos de fluxo de trabalho de orquestração ou compreensão de linguagem conversacional

Ao criar aplicativos grandes, você deve considerar se seu caso de uso é melhor servido por um único aplicativo de conversação (arquitetura simples) ou por vários aplicativos orquestrados.

Visão geral da orquestração

O fluxo de trabalho de orquestração é um recurso que permite conectar diferentes projetos do LUIS, compreensão de linguagem conversacional e resposta a perguntas personalizadas em um projeto. Em seguida, você pode usar este projeto para previsões usando um ponto de extremidade. O projeto de orquestração faz uma previsão sobre qual projeto filho deve ser chamado, roteia automaticamente a solicitação e retorna com sua resposta.

A orquestração envolve duas etapas:

  1. Prevendo qual projeto filho chamar.
  2. Roteamento da declaração para o aplicativo filho de destino e retornando a resposta do aplicativo filho.

Vantagens da orquestração

  • Decomposição clara e desenvolvimento mais rápido:

    • Se o esquema geral tiver um número substancial de domínios, a abordagem de orquestração pode ajudar a decompor seu aplicativo em vários aplicativos filho (cada um servindo um domínio específico). Por exemplo, um aplicativo de conversação automotivo pode ter um domínio de navegação ou um domínio de mídia.
    • Desenvolver cada aplicativo de domínio em paralelo é mais fácil. Pessoas e equipes com experiência específica em domínios podem trabalhar em aplicativos individuais de forma colaborativa e em paralelo.
    • Como cada aplicativo de domínio é menor, o ciclo de desenvolvimento se torna mais rápido. Aplicativos de domínio de tamanho menor levam muito menos tempo para treinar do que um único aplicativo grande.
  • Limiares de pontuação de confiança mais flexíveis:

    • Como aplicativos filho separados atendem a cada domínio, é fácil definir limites separados para aplicativos filho diferentes.
  • Melhorias na qualidade da IA, quando apropriado:

    • Alguns aplicativos exigem que determinadas entidades sejam restritas ao domínio. A orquestração torna esta tarefa fácil de realizar. Depois que o projeto de orquestração prevê qual aplicativo filho deve ser chamado, os outros aplicativos filho não são chamados.

      Por exemplo, se seu aplicativo contiver uma Person.Name entidade pré-criada, considere a frase "Como uso um jack?" no contexto de uma pergunta sobre veículos. Neste contexto, jack é uma ferramenta automotiva e não deve ser reconhecido como o nome de uma pessoa. Quando você usa orquestração, esse enunciado pode ser redirecionado para um aplicativo filho criado para responder a essa pergunta, que não tem uma Person.Name entidade.

Desvantagens da orquestração

  • Entidades redundantes em aplicativos filho:

    • Se você precisar que uma entidade pré-criada específica seja retornada em todos os enunciados, independentemente do domínio, por exemplo Quantity.Number ou Geography.Location, não há como adicionar uma entidade ao aplicativo de orquestração (é um modelo somente de intenção). Você precisaria adicioná-lo a todos os aplicativos filho individuais.
  • Efficiency:

    • Os aplicativos de orquestração usam duas inferências de modelo. Um para prever qual aplicativo filho chamar e outro para a previsão no aplicativo filho. Os tempos de inferência são normalmente mais lentos do que os aplicativos individuais com uma arquitetura plana.
  • Divisão de trem/teste para orquestrador:

    • O treinamento de um aplicativo de orquestração não permite que você divida dados granularmente entre os conjuntos de teste e treinamento. Por exemplo, você não pode treinar uma divisão 90-10 para o aplicativo filho A e, em seguida, treinar uma divisão 80-20 para o aplicativo filho B. Essa limitação pode ser menor, mas vale a pena ter em mente.

Visão geral da arquitetura plana

A arquitetura plana é o outro método de desenvolvimento de aplicativos de conversação. Em vez de usar um aplicativo de orquestração para enviar expressões para um dos vários aplicativos filho, você desenvolve um aplicativo singular (ou plano) para lidar com enunciados.

Vantagens da arquitetura plana

  • Simplicidade:

    • Para aplicativos ou domínios de pequeno porte, a abordagem do orquestrador pode ser excessivamente complexa.
    • Como todas as intenções e entidades estão no mesmo nível de aplicativo, pode ser mais fácil fazer alterações em todas elas juntas.
  • É mais fácil adicionar entidades que devem ser sempre devolvidas:

    • Se você quiser que determinadas entidades pré-criadas ou de lista sejam retornadas para todos os enunciados, você só precisará adicioná-las ao lado de outras entidades em um único aplicativo. Se você usa orquestração, como mencionado, você precisa adicioná-lo a cada aplicativo filho.

Desvantagens da arquitetura plana

  • Pesado para aplicações grandes:

    • Para aplicativos grandes (digamos, mais de 50 intenções ou entidades), pode se tornar difícil acompanhar a evolução de esquemas e conjuntos de dados. Essa dificuldade é evidente nos casos em que o aplicativo tem que servir vários domínios. Por exemplo, um aplicativo de conversação automotivo pode ter um domínio de navegação ou um domínio de mídia.
  • Controle limitado sobre correspondências de entidades:

    • Em uma arquitetura plana, não há como restringir que as entidades sejam retornadas apenas em certos casos. Ao usar orquestração, você pode atribuir essas entidades específicas a aplicativos filho específicos.