Alterar dados de emissão antes ou durante a 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 LUIS fornece maneiras de manipular o enunciado antes ou durante a previsão. Isso inclui corrigir a ortografia e corrigir problemas de fuso horário para datetimeV2 pré-criado.

Corrigir erros ortográficos no enunciado

Tempo de execução V3

Pré-processe o texto para correções ortográficas antes de enviar o enunciado para o LUIS. Use expressões de exemplo com a ortografia correta para garantir que você obtenha as previsões corretas.

Use a Verificação Ortográfica do Bing para corrigir o texto antes de enviá-lo para o LUIS.

Antes do tempo de execução da V3

O LUIS usa a API de Verificação Ortográfica do Bing V7 para corrigir erros de ortografia no enunciado. O LUIS precisa da chave associada a esse serviço. Crie a chave e, em seguida, adicione a chave como um parâmetro querystring no ponto de extremidade.

O ponto de extremidade requer dois parâmetros para que as correções ortográficas funcionem:

Param valor
spellCheck boolean
bing-spell-check-subscription-key Chave de ponto de extremidade da API de Verificação Ortográfica do Bing V7

Quando a API de Verificação Ortográfica do Bing V7 deteta um erro, o enunciado original e o enunciado corrigido são retornados junto com as previsões do ponto de extremidade.

{
  "query": "Book a flite to London?",
  "alteredQuery": "Book a flight to London?",
  "topScoringIntent": {
    "intent": "BookFlight",
    "score": 0.780123
  },
  "entities": []
}

Lista de palavras permitidas

A API de verificação ortográfica do Bing usada no LUIS não oferece suporte a uma lista de palavras a serem ignoradas durante as alterações da verificação ortográfica. Se você precisar permitir uma lista de palavras ou siglas, processe o enunciado no aplicativo cliente antes de enviar o enunciado para o LUIS para previsão de intenção.

Alterar fuso horário da entidade datetimeV2 pré-criada

Quando um aplicativo LUIS usa a entidade datetimeV2 pré-criada, um valor datetime pode ser retornado na resposta de previsão. O fuso horário da solicitação é usado para determinar a data/hora correta a ser retornada. Se a solicitação for proveniente de um bot ou outro aplicativo centralizado antes de chegar ao LUIS, corrija o fuso horário que o LUIS usa.

API de previsão V3 para alterar o fuso horário

Na V3, o determina o deslocamento de fuso datetimeReference horário.

API de previsão V2 para alterar o fuso horário

O fuso horário é corrigido adicionando o fuso horário do usuário ao ponto de extremidade usando o timezoneOffset parâmetro baseado na versão da API. O valor do parâmetro deve ser o número positivo ou negativo, em minutos, para alterar o tempo.

Exemplo de previsão V2 de horário de verão

Se você precisar que o datetimeV2 pré-criado retornado seja ajustado para o horário de verão, use o parâmetro querystring com um valor +/- em minutos para a consulta do ponto de extremidade .

Adicione 60 minutos:

https://{region}.api.cognitive.microsoft.com/luis/v2.0/apps/{appId}?q=Turn the lights on?timezoneOffset=60&verbose={boolean}&spellCheck={boolean}&staging={boolean}&bing-spell-check-subscription-key={string}&log={boolean}

Retire 60 minutos:

https://{region}.api.cognitive.microsoft.com/luis/v2.0/apps/{appId}?q=Turn the lights on?timezoneOffset=-60&verbose={boolean}&spellCheck={boolean}&staging={boolean}&bing-spell-check-subscription-key={string}&log={boolean}

O código C# de previsão V2 determina o valor correto do parâmetro

O código C# a seguir usa o método FindSystemTimeZoneById da classe TimeZoneInfo para determinar o valor de deslocamento correto com base no tempo do sistema:

// Get CST zone id
TimeZoneInfo targetZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");

// Get local machine's value of Now
DateTime utcDatetime = DateTime.UtcNow;

// Get Central Standard Time value of Now
DateTime cstDatetime = TimeZoneInfo.ConvertTimeFromUtc(utcDatetime, targetZone);

// Find timezoneOffset/datetimeReference
int offset = (int)((cstDatetime - utcDatetime).TotalMinutes);

Próximos passos

Corrigir erros ortográficos com este tutorial