Compartilhar via


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

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

Visão geral da orquestração

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

A orquestração envolve duas etapas:

  1. Prever qual projeto filho chamar.
  2. Rotear o enunciado para o aplicativo filho de destino e retornar a resposta do aplicativo filho.

Vantagens de 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 poderá ajudar a decompor seu aplicativo em diversos aplicativos filho (cada um atendendo a um domínio específico). Por exemplo, um aplicativo de conversa automotivo pode ter um domínio de navegação, ou um domínio de mídia.
    • Desenvolver o aplicativo de cada domínio em paralelo é mais fácil. Pessoas e equipes com experiência em domínios específicos podem trabalhar em aplicativos individuais de forma colaborativa e em paralelo.
    • Como um aplicativo de cada domínio é menor, o ciclo de desenvolvimento se torna mais rápido. Aplicativos de domínio com um tamanho menor levam muito menos tempo para serem treinados do que um único aplicativo grande.
  • Limites de pontuação de confiança mais flexíveis:

    • Como existem aplicativos filho separados atendendo a cada domínio, é fácil definir limites separados para aplicativos filho diferentes.
  • Aprimoramento da qualidade da IA sempre que for apropriado:

    • Alguns aplicativos exigem que determinadas entidades sejam restritas a um domínio. A orquestração torna a 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 o seu aplicativo contiver uma entidade pré-desenvolvida Person.Name, considere o enunciado "Como faço para usar um "jack"?, no contexto de uma pergunta sobre veículos. Nesse contexto, jack é uma ferramenta automotiva — macaco — e não deve ser reconhecido como o nome de uma pessoa. Quando você usa a orquestração, esse enunciado pode ser redirecionado para um aplicativo filho criado para responder a esse tipo de perguntas, que não têm uma entidade Person.Name.

Desvantagens de orquestração

  • Entidades redundantes em aplicativos filho:

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

    • Os aplicativos de orquestração têm duas inferências de modelo. Uma para prever qual aplicativo filho chamar e a outra para a previsão no aplicativo filho. Os tempos de inferência normalmente são mais lentos do que aplicativos independentes com uma arquitetura simples.
  • Divisão entre treinamento e teste para o orquestrador:

    • O processo de treinar um aplicativo de orquestração não permite que você divida os 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 treinar uma divisão 80-20 para o aplicativo filho B. Essa limitação pode ser menor, mas vale a pena ter isso em mente.

Visão geral da arquitetura simples

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

Vantagens de arquitetura simples

  • Simplicidade:

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

    • Se quiser que determinadas entidades pré-desenvolvidas ou que façam parte de uma lista sejam retornadas para todos os enunciados, você só precisará adicioná-las junto com outras entidades em um único aplicativo. Se você usar a orquestração, conforme mencionado, precisará adicioná-la a cada aplicativo filho.

Desvantagens de arquitetura simples

  • Difícil para aplicativos grandes:

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

    • Em uma arquitetura simples, não existe uma maneira de restringir entidades a serem retornadas somente em determinados casos. Ao usar a orquestração, você pode atribuir essas entidades específicas a aplicativos filho específicos.