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 | Value |
---|---|
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);