Design de aplicativo iterativo para LUISIterative app design for LUIS

Um aplicativo Reconhecimento vocal (LUIS) aprende e executa com mais eficiência com iteração.A Language Understanding (LUIS) app learns and performs most efficiently with iteration. Aqui está um ciclo de iteração típico:Here's a typical iteration cycle:

  • Criar nova versãoCreate new version
  • Edite o esquema do aplicativo LUIS.Edit the LUIS app schema. Isso inclui:This includes:
    • Tentativas com o exemplo declaraçõesIntents with example utterances
    • EntidadesEntities
    • RecursosFeatures
  • Treinar, testar e publicarTrain, test, and publish
    • Testar no ponto de extremidade de previsão para o aprendizado ativoTest at the prediction endpoint for active learning
  • Coletar dados de consultas de ponto de extremidadeGather data from endpoint queries

Ciclo de criação

Criando um esquema LUISBuilding a LUIS schema

O esquema de um aplicativo define o que o usuário está solicitando (a intenção ou a intenção ) e quais partes da intenção fornecem detalhes (chamados de entidades) que são usadas para ajudar a determinar a resposta.An app's schema defines what the user is asking for (the intention or intent ) and what parts of the intent provide details (called entities) that are used to help determine the answer.

O esquema do aplicativo deve ser específico para os domínios de aplicativo para determinar palavras e frases relevantes, bem como para determinar a ordenação típica de palavras.The app schema must be specific to the app domains to determine words and phrases that are relevant, as well as to determine typical word ordering.

Exemplos declarações representam entradas de usuário, como fala ou texto reconhecido, que o aplicativo espera no tempo de execução.Example utterances represent user inputs, such as recognized speech or text, that the app expects at runtime.

O esquema requer tentativas e deve ter entidades.The schema requires intents, and should have entities.

Esquema de exemplo de tentativasExample schema of intents

O esquema mais comum é um esquema de intenção organizado com tentativas.The most common schema is an intent schema organized with intents. Esse tipo de esquema usa LUIS para determinar a intenção de um usuário.This type of schema uses LUIS to determine a user's intention.

O tipo de esquema de intenção pode ter entidades se ajudar LUIS a determinar a intenção do usuário.The intent schema type may have entities if it helps LUIS determine the user's intention. Por exemplo, uma entidade de remessa (como um recurso de aprendizado de máquina para uma intenção) ajuda a Luis a determinar uma intenção de envio.For example, a shipping entity (as a machine learning feature to an intent) helps LUIS determine a shipping intention.

Esquema de exemplo de entidadesExample schema of entities

Um esquema de entidade se concentra em entidades, que são os dados extraídos do usuário declarações.An entity schema focuses on entities, which is the data that is extracted from user utterances. Por exemplo, se um usuário deveria dizer: "Eu gostaria de pedir três pizzas".For example, if a user was to say, "I'd like to order three pizzas." Há duas entidades que seriam extraídas: três e pizzas.There are two entities that would be extracted: three and pizzas. Eles são usados para ajudar a atender à intenção, que era fazer um pedido.These are used to help fulfill the intention, which was to make an order.

Para um esquema de entidade, a intenção do expressão é menos importante para o aplicativo cliente.For an entity schema, the intention of the utterance is less important to the client application.

Um método comum de organizar um esquema de entidade é adicionar todos os declarações de exemplo à intenção de nenhum .A common method of organizing an entity schema is to add all example utterances to the None intent.

Exemplo de um esquema mistoExample of a mixed schema

O esquema mais potente e maduro é um esquema de intenção com uma gama completa de entidades e recursos.The most powerful and mature schema is an intent schema with a full range of entities and features. Esse esquema pode começar como um esquema de intenção ou de entidade e aumentar para incluir os conceitos de ambos, uma vez que o aplicativo cliente precisa dessas informações.This schema can begin as either an intent or entity schema and grow to include concepts of both, as the client application needs those pieces of information.

Adicionar declarações de exemplo a intençõesAdd example utterances to intents

LUIS precisa de alguns exemplos de declarações em cada tentativa.LUIS needs a few example utterances in each intent. O exemplo declarações precisa de uma variação suficiente de opção de palavra e de palavra para poder determinar a qual intenção o expressão se destina.The example utterances need enough variation of word choice and word order to be able to determine which intent the utterance is meant for.

Cuidado

Não adicione o exemplo declarações em massa.Do not add example utterances in bulk. Comece com 15 a 30 exemplos específicos e variados.Start with 15 to 30 specific and varying examples.

Cada exemplo de expressão precisa ter todos os dados necessários para extrair e rotulados com entidades.Each example utterance needs to have any required data to extract designed and labeled with entities.

Elemento KeyKey element FinalidadePurpose
IntencionalIntent Classifique o declarações do usuário em uma única intenção ou ação.Classify user utterances into a single intention, or action. Os exemplos incluem BookFlight e GetWeather.Examples include BookFlight and GetWeather.
EntidadeEntity Extraia os dados do expressão necessários para concluir a intenção.Extract data from utterance required to complete intention. Os exemplos incluem data e hora de viagem e local.Examples include date and time of travel, and location.

Um aplicativo LUIS pode ser projetado para ignorar declarações que não são relevantes para o domínio de um aplicativo atribuindo o expressão à tentativa de nenhum .A LUIS app can be designed to ignore utterances that aren't relevant to an app's domain by assigning the utterance to the None intent.

Testar e treinar seu aplicativoTest and train your app

Depois de ter 15 a 30 exemplos diferentes de declarações em cada tentativa, com as entidades necessárias rotuladas, você precisa testar e treinar seu aplicativo Luis.After you have 15 to 30 different example utterances in each intent, with the required entities labeled, you need to test and train your LUIS app.

Publicar em um ponto de extremidade de previsãoPublish to a prediction endpoint

O aplicativo LUIS deve ser publicado para que esteja disponível para você nas regiões de ponto de extremidade de previsãode lista.The LUIS app must be published so that it's available to you in the list prediction endpoint regions.

Testar seu aplicativo publicadoTest your published app

Você pode testar seu aplicativo LUIS publicado do ponto de extremidade de previsão HTTPS.You can test your published LUIS app from the HTTPS prediction endpoint. O teste do ponto de extremidade de previsão permite que o LUIS escolha qualquer declarações com baixa confiança para revisão.Testing from the prediction endpoint allows LUIS to choose any utterances with low-confidence for review.

Criar uma nova versão para cada cicloCreate a new version for each cycle

Cada versão é um instantâneo no momento do aplicativo LUIS.Each version is a snapshot in time of the LUIS app. Antes de fazer alterações no aplicativo, crie uma nova versão.Before you make changes to the app, create a new version. É mais fácil voltar para uma versão mais antiga do que tentar remover tentativas e declarações para um estado anterior.It is easier to go back to an older version than to try to remove intents and utterances to a previous state.

A ID da versão é composta de caracteres, dígitos ou '.' e não pode ser maior do que 10 caracteres.The version ID consists of characters, digits or '.' and cannot be longer than 10 characters.

A versão inicial (0.1) é a versão ativa padrão.The initial version (0.1) is the default active version.

Comece clonando uma versão existenteBegin by cloning an existing version

Clone uma versão existente para usar como um ponto de partida para cada nova versão.Clone an existing version to use as a starting point for each new version. Depois de clonar uma versão, a nova versão torna-se a versão ativa .After you clone a version, the new version becomes the active version.

Slots de publicaçãoPublishing slots

Você pode publicar no estágio e/ou nos slots de produção.You can publish to either the stage and/or production slots. Cada slot pode ter uma versão diferente ou a mesma versão.Each slot can have a different version or the same version. Isso é útil para verificar as alterações antes de publicar para produção, que está disponível para bots ou outros aplicativos de chamada LUIS.This is useful for verifying changes before publishing to production, which is available to bots or other LUIS calling apps.

Versões treinadas não estão disponíveis automaticamente no ponto de extremidadedo seu aplicativo Luis.Trained versions aren't automatically available at your LUIS app's endpoint. Você deve publicar ou republicar uma versão para que ela esteja disponível no ponto de extremidade do aplicativo Luis.You must publish or republish a version in order for it to be available at your LUIS app endpoint. Você pode publicar para preparo e produção, fornecendo duas versões do aplicativo disponíveis no ponto de extremidade.You can publish to Staging and Production, giving you two versions of the app available at the endpoint. Se mais versões do aplicativo precisarem estar disponíveis em um ponto de extremidade, você deverá exportar a versão e importá-la novamente para um novo aplicativo.If more versions of the app need to be available at an endpoint, you should export the version and reimport it to a new app. O novo aplicativo tem uma ID do aplicativo diferente.The new app has a different app ID.

Importar uma versãoImport a version

Uma versão pode ser importada como uma nova:A version can be imported as a new:

  • Aplicativo, com uma nova ID do aplicativoApp, with a new app ID
  • Versão de um aplicativo existenteVersion of an existing app

Essa versão se torna a versão ativa e usa a ID da versão na versionId Propriedade do arquivo do aplicativo.That version becomes the active version and uses the version ID in the versionId property of the app file.

Exportar uma versãoExport a version

Uma versão pode ser exportada do portal do Luis no nível do aplicativo ou nível de versão:A version can be exported from the LUIS portal at either the app level or version level:

  • Nível do aplicativo – selecione aplicativo na página meus aplicativos e, em seguida, selecione ExportarApp level - select app on My apps page, then select Export
  • Nível de versão – selecione o link do aplicativo na página meus aplicativos , selecione gerenciar, selecione versõesVersion level - select app link on My apps page, select Manage, select Versions

A única diferença é que o nível de aplicativo, a versão exportada, é a versão ativa no momento no nível de versão, você pode escolher qualquer versão para exportar na página de configurações .The only difference is that the app-level, the exported version is the currently active version while at the version level, you can choose any version to export on the Settings page.

O arquivo exportado não contém:The exported file doesn't contain:

  • informações de aprendizado de máquina, porque o aplicativo é retreinado depois de ser importadomachine-learning information, because the app is retrained after it's imported
  • Informações do colaboradorContributor information

Para fazer backup do esquema do aplicativo LUIS, exporte uma versão do portal do Luis.In order to back up your LUIS app schema, export a version from the LUIS portal.

Gerenciar alterações de colaborador com versões e colaboradoresManage contributor changes with versions and contributors

O LUIS usa o conceito de colaboradores para um aplicativo, fornecendo permissões no nível de recurso do Azure.LUIS uses the concept of contributors to an app, by providing Azure resource-level permissions. Combine esse conceito com o controle de versão para fornecer colaboração direcionada.Combine this concept with versioning to provide targeted collaboration.

Use as técnicas a seguir para gerenciar alterações de colaborador em seu aplicativo.Use the following techniques to manage contributor changes to your app.

Gerenciar várias versões dentro do mesmo aplicativoManage multiple versions inside the same app

Comece pela clonagem de uma versão base para cada autor.Begin by cloning from a base version for each author.

Cada autor faz alterações em sua própria versão do aplicativo.Each author makes changes to their own version of the app. Quando o autor for satisfeito com o modelo, exporte as novas versões para arquivos JSON.When the author is satisfied with the model, export the new versions to JSON files.

Aplicativos exportados, .json ou .lu arquivos, podem ser comparados para alterações.Exported apps, .json or .lu files, can be compared for changes. Combine os arquivos para criar um único arquivo da nova versão.Combine the files to create a single file of the new version. Altere a versionId propriedade para significar a nova versão mesclada.Change the versionId property to signify the new merged version. Importe essa versão para o aplicativo original.Import that version into the original app.

Esse método permite que você tenha uma versão ativa, uma versão do estágio e uma versão publicada.This method allows you to have one active version, one stage version, and one published version. Você pode comparar os resultados da versão ativa com uma versão publicada (fase ou produção) no painel de teste interativo.You can compare the results of the active version with a published version (stage or production) in the interactive testing pane.

Gerenciar várias versões como aplicativosManage multiple versions as apps

Exporte a versão base.Export the base version. Cada autor importa a versão.Each author imports the version. A pessoa que importa o aplicativo é o proprietário da versão.The person that imports the app is the owner of the version. Quando ela terminar de modificar o aplicativo, exporte a versão.When they are done modifying the app, export the version.

Aplicativos exportados são arquivos formatados para JSON, que podem ser comparados com a exportação base quanto a alterações.Exported apps are JSON-formatted files, which can be compared with the base export for changes. Combine os arquivos para criar um único arquivo JSON da nova versão.Combine the files to create a single JSON file of the new version. Altere a propriedade versionId no JSON para significar a nova versão mesclada.Change the versionId property in the JSON to signify the new merged version. Importe essa versão para o aplicativo original.Import that version into the original app.

Saiba mais sobre a criação de contribuições de colaboradores.Learn more about authoring contributions from collaborators.

Examinar o ponto de extremidade declarações para iniciar o novo ciclo iterativoReview endpoint utterances to begin the new iterative cycle

Quando terminar com um ciclo de iteração, você poderá repetir o processo.When you are done with an iteration cycle, you can repeat the process. Comece com revisar ponto de extremidade de previsão declarações Luis marcado com baixa confiança.Start with reviewing prediction endpoint utterances LUIS marked with low-confidence. Verifique essas declarações para a entidade prevista correta e correta e completa extraída.Check these utterances for both correct predicted intent and correct and complete entity extracted. Depois de revisar e aceitar as alterações, a lista de revisão deve estar vazia.After you review and accept changes, the review list should be empty.

Próximas etapasNext steps

Conheça conceitos sobre colaboração.Learn concepts about collaboration.