Estender o aplicativo no tempo de execução da previsão

Importante

O LUIS será aposentado em 1º de outubro de 2025 e a partir de 1º de abril de 2023 você não poderá criar novos recursos do LUIS. Recomendamos migrar seus aplicativos LUIS para o entendimento de linguagem conversacional para se beneficiar do suporte contínuo ao produto e dos recursos multilíngues.

O esquema do aplicativo (modelos e recursos) é treinado e publicado no ponto de extremidade de previsão. Este modelo publicado é usado no tempo de execução da previsão. Você pode passar novas informações, juntamente com o enunciado do usuário, para o tempo de execução da previsão para aumentar a previsão.

Duas alterações de esquema de tempo de execução de previsão incluem:

Entidades externas

As entidades externas dão ao seu aplicativo LUIS a capacidade de identificar e rotular entidades durante o tempo de execução, que podem ser usadas como recursos para entidades existentes. Isso permite que você use seus próprios extratores de entidade separados e personalizados antes de enviar consultas para seu ponto de extremidade de previsão. Como isso é feito no ponto de extremidade de previsão de consulta, você não precisa treinar novamente e publicar seu modelo.

O aplicativo cliente está fornecendo seu próprio extrator de entidade, gerenciando a correspondência de entidade e determinando o local dentro da emissão dessa entidade correspondente e, em seguida, enviando essas informações com a solicitação.

As entidades externas são o mecanismo para estender qualquer tipo de entidade enquanto ainda são usadas como sinais para outros modelos.

Isso é útil para uma entidade que tem dados disponíveis somente no tempo de execução da previsão de consulta. Exemplos deste tipo de dados são dados em constante mudança ou específicos por utilizador. Você pode estender uma entidade de contato LUIS com informações externas da lista de contatos de um usuário.

As entidades externas fazem parte da API de criação V3.

Entidade já existe no aplicativo

O valor de para a entidade externa, passado no corpo POST da solicitação de ponto de entityName extremidade, já deve existir no aplicativo treinado e publicado no momento em que a solicitação é feita. O tipo de entidade não importa, todos os tipos são suportados.

Primeiro turno na conversa

Considere uma primeira declaração em uma conversa de bot de bate-papo em que um usuário insere as seguintes informações incompletas:

Send Hazem a new message

O pedido do bot de chat para o LUIS pode passar informações no corpo do POST para Hazem que seja diretamente correspondido como um dos contatos do usuário.

    "externalEntities": [
        {
            "entityName":"contacts",
            "startIndex": 5,
            "entityLength": 5,
            "resolution": {
                "employeeID": "05013",
                "preferredContactType": "TeamsChat"
            }
        }
    ]

A resposta de previsão inclui essa entidade externa, com todas as outras entidades previstas, porque é definida na solicitação.

Segundo turno na conversa

A próxima declaração do usuário no bot de bate-papo usa um termo mais vago:

Send him a calendar reminder for the party.

Neste giro da conversa, o enunciado usa him como referência a Hazem. O bot de bate-papo conversacional, no corpo do POST, pode mapear him para o valor da entidade extraído da primeira declaração, Hazem.

    "externalEntities": [
        {
            "entityName":"contacts",
            "startIndex": 5,
            "entityLength": 3,
            "resolution": {
                "employeeID": "05013",
                "preferredContactType": "TeamsChat"
            }
        }
    ]

A resposta de previsão inclui essa entidade externa, com todas as outras entidades previstas, porque é definida na solicitação.

Substituir previsões de modelo existentes

A preferExternalEntities propriedade options especifica que, se o usuário enviar uma entidade externa que se sobrepõe a uma entidade prevista com o mesmo nome, o LUIS escolhe a entidade passada ou a entidade existente no modelo.

Por exemplo, considere a consulta today I'm free. LUIS deteta today como um datetimeV2 com a seguinte resposta:

"datetimeV2": [
    {
        "type": "date",
        "values": [
            {
                "timex": "2019-06-21",
                "value": "2019-06-21"
            }
        ]
    }
]

Se o usuário enviar a entidade externa:

{
    "entityName": "datetimeV2",
    "startIndex": 0,
    "entityLength": 5,
    "resolution": {
        "date": "2019-06-21"
    }
}

Se o estiver definido como , o preferExternalEntities LUIS retornará uma resposta como falsese a entidade externa não tivesse sido enviada.

"datetimeV2": [
    {
        "type": "date",
        "values": [
            {
                "timex": "2019-06-21",
                "value": "2019-06-21"
            }
        ]
    }
]

Se o estiver definido como true, o preferExternalEntities LUIS retornará uma resposta incluindo:

"datetimeV2": [
    {
        "date": "2019-06-21"
    }
]

Resolução

A propriedade opcionalresolution retorna na resposta de previsão, permitindo que você passe os metadados associados à entidade externa e, em seguida, receba-os de volta na resposta.

O objetivo principal é estender entidades pré-criadas, mas não está limitado a esse tipo de entidade.

A resolution propriedade pode ser um número, uma cadeia de caracteres, um objeto ou uma matriz:

  • "Dallas"
  • {"texto": "valor"}
  • 12345
  • ["a", "b", "c"]

Listas dinâmicas

As listas dinâmicas permitem estender uma entidade de lista treinada e publicada existente, já no aplicativo LUIS.

Use esse recurso quando os valores da entidade da lista precisarem ser alterados periodicamente. Esse recurso permite estender uma entidade de lista já treinada e publicada:

  • No momento da solicitação de ponto de extremidade de previsão de consulta.
  • Para um único pedido.

A entidade de lista pode estar vazia na aplicação LUIS, mas tem de existir. A entidade de lista no aplicativo LUIS não é alterada, mas a capacidade de previsão no ponto de extremidade é estendida para incluir até 2 listas com cerca de 1.000 itens.

Corpo da solicitação JSON da lista dinâmica

Envie o seguinte corpo JSON para adicionar uma nova sublista com sinônimos à lista e prever a entidade da lista para o texto, LUIScom a solicitação de previsão de POST consulta:

{
    "query": "Send Hazem a message to add an item to the meeting agenda about LUIS.",
    "options":{
        "timezoneOffset": "-8:00"
    },
    "dynamicLists": [
        {
            "listEntity*":"ProductList",
            "requestLists":[
                {
                    "name": "Azure AI services",
                    "canonicalForm": "Azure-Cognitive-Services",
                    "synonyms":[
                        "language understanding",
                        "luis",
                        "qna maker"
                    ]
                }
            ]
        }
    ]
}

A resposta de previsão inclui essa entidade de lista, com todas as outras entidades previstas, porque é definida na solicitação.

Próximos passos