Idioma

Esses são os componentes disponíveis na categoria Idioma do editor de fluxo de caixas de diálogo baseado em YAML.

System.Intent

Este componente detecta a intenção do usuário e extrai todas as entidades; em seguida, aciona um estado subsequente.
Observação

Este componente não está disponível para habilidades desenvolvidas com o Designer de Fluxo Visual. Em vez disso, as intenções são resolvidas automaticamente quando não há fluxo ativo. Consulte Detecção e Resolução de Intenções.
Propriedade Descrição 0brigatório?
variable Mantém o valor que a estrutura de processamento de idioma resolve da entrada do usuário. Por exemplo, nossos bots de habilidade de amostra definem essa propriedade como variable=iResult (com iResult: "nlpResult" definido como uma das variáveis context). Você não precisa nomear a variável iResult. Esse nome é uma convenção usada em nosso código de amostra e nas habilidades de amostra. Seja qual for o nome da variável usado para nlpResult, certifique-se de usá-lo consistentemente em todo o fluxo de caixas de diálogo. Sim
optionsPrompt O título da lista de intenções quando você define um valor para a opção Margem de Ganho. Por padrão, esse valor de string é Do you want to.

O valor padrão dessa propriedade é armazenado no pacote de recursos da habilidade. Para alterá-lo, clique em Ícone de Pacotes de Recursos, selecione a guia Configuração e atualize a chave Intenção - optionsPrompt. Se você usar o pacote de recursos da habilidade para alterar a mensagem padrão, não será necessário incluir a propriedade no componente, a menos que deseje substituir o padrão.

Número
botName O nome (não o nome para exibição) da habilidade que resolve a intenção. Use essa propriedade se decidir resolver a entrada do usuário usando o modelo de uma habilidade distinta, em vez da habilidade atual. O uso dessa abordagem poderá ser benéfico se você quiser resolver a intenção com base em um modelo com um domínio mais restrito do que o domínio exigido pelo seu caso de uso principal. Número
botVersion Especifica a versão da habilidade. O valor padrão é 1.0 (se você não especificar o número da versão). Número
sourceVariable A estrutura de processamento de idioma resolve a intenção usando sourceVariable como entrada.

Importante: Você não pode usar essa propriedade em combinação com a propriedade translate. Se precisar traduzir a entrada representada por sourceVariable, você poderá usar System.TranslateInput para fazer isso.

No
daIntercept Nas chamadas para System.Intent, determina se o assistente digital pode interceptar e redirecionar a entrada do usuário para outras habilidades. Estes são os possíveis valores:
  • always (o padrão) - Permite que o assistente digital intercepte a entrada, mesmo que o fluxo atual não tenha sido finalizado. Isso permite que o assistente digital manipule interrupções que sugerem a alternância para outro fluxo.
  • never - Impede que o assistente digital intercepte a entrada do usuário. Para obter mais informações sobre o caso de uso para definir esse valor, consulte Impor Chamadas ao Componente System.Intent de uma Habilidade.
Essa propriedade será ignorada se a habilidade não pertencer a um assistente digital.
No
translate Substitui o conjunto de valores da variável de contexto autoTranslate aqui. Se autoTranslate não estiver definido ou definido como false, você poderá definir essa propriedade como true para ativar a tradução automática somente para esse componente. Se a variável de contexto autotranslate estiver definida como true, você poderá definir essa propriedade como false para excluir esse componente da tradução automática.

Importante: Você não pode usar essa propriedade em combinação com a propriedade sourceVariable. Se precisar traduzir a entrada representada por sourceVariable, você poderá usar System.TranslateInput para fazer isso.

No

Propriedades do Módulo de Perguntas e Respostas do Componente System.Intent

Estas são propriedades opcionais para o roteamento do módulo de perguntas e respostas.
Propriedade Descrição Tipo de Dados Valor Padrão
qnaEnable Ativa o roteamento para o módulo de perguntas e respostas. Se você definir isso como true (roteamento ativado), defina também a ação de transição do módulo de perguntas e respostas (none ou exit). Consulte Transições do Módulo de Perguntas e Respostas. booleano false
qnaBotName O nome (não para exibição) da habilidade com o módulo de perguntas e respostas. Se você não definir essa propriedade, o valor definido para a propriedade botName do componente System.QnA será usado. string N/A
qnaBotVersion A versão da habilidade com o módulo de perguntas e respostas. Por padrão, é 1.0. Esse valor é opcional inteiro N/A
qnaTimeout O tempo, em milissegundos, que a habilidade aguarda o servidor do módulo de perguntas e respostas responder à entrada do usuário. longo 5000
qnaUseResult A definição dessa opção como true (o padrão) permite que a habilidade consulte o servidor do módulo de perguntas e respostas com a entrada do usuário. Em seguida, a habilidade usa os resultados dessa consulta (as correspondências) para definir o roteamento. Quando você definir essa propriedade como true, a habilidade só exibirá o link Exibir Respostas quando houver correspondências. Defina-a como false para ver sempre o link Exibir Respostas. booleano true
qnaSkipIfIntentFound Quando definido como true, a habilidade ignora o módulo de perguntas e respostas quando há uma correspondência de intenção. O valor padrão (false) permite que a habilidade consulte o servidor QnA com a declaração do usuário e também apresente o QnA como opção. booleano false
optionsPrompt

O módulo de perguntas e respostas será exibido se estiver ativado para o componente System.Intent e se encontrarmos uma correspondência.

Dica: Para idiomas estrangeiros (que não seja o inglês), mencione um pacote de recursos. Consulte Mencionar Pacotes de Recursos no Fluxo de Caixas de Diálogo

string Do you want to
optionsQnaLabel

Um label para ação nas opções (optionsPrompt) que leva o usuário para o componente System.QnA para exibir as correspondências.

Dica: Para idiomas estrangeiros (que não seja o inglês), mencione um pacote de recursos. Consulte Mencionar Pacotes de Recursos no Fluxo de Caixas de Diálogo

string Questions
qnaMatchFields Define os campos de Perguntas e Respostas usados para corresponder à mensagem do usuário. Os valores válidos incluem:
  • all
  • categories
  • questions
  • answers
  • categories+questions
Você pode informar esses valores como uma lista separada por vírgulas
string all
qnaMinimumMatch

Define as porcentagens mínima e máxima de tokens que qualquer par pergunta/resposta deve conter para ser considerado uma correspondência.

Para retornar as melhores correspondências, nós tokenizamos as declarações que o Mecanismo de Intenção resolve como perguntas. Esses tokens são formados pelos radicais das palavras e por várias combinações de palavras. Como resultado, um grande conjunto de tokens pode ser gerado de uma declaração. Por causa disso, é improvável que qualquer par pergunta/resposta possa conter todas as palavras-chave e variantes. Portanto, não recomendamos que você altere o padrão dessa definição, 50%,25%.

Ter 50% dos tokens gerados (o nível máximo padrão) significa que o par pergunta/resposta poderá ser considerado uma correspondência relevante se tiver todas as palavras-chave da declaração. Se esse nível máximo não puder ser atendido, um nível mínimo de 25% será suficiente. Se você alterar essas definições, especialmente aumentando o máximo para mais de 50%, o par pergunta/resposta não só precisará conter todas as palavras-chave, como também os tokens adicionais deverão corresponder.

Em outras palavras, se você quiser reduzir a chance de perder uma correspondência relevante, e puder tolerar o retorno de correspondências irrelevantes no processo, poderá adicionar um limite ainda mais baixo. Por exemplo: 50%,25%,10%.

Se quiser minimizar correspondências irrelevantes, poderá aumentar os níveis (ou seja, 60%,50%). Lembre-se de que se fizer isso poderá excluir pares pergunta/resposta que tenham todas as palavras-chave.

Importante: Se você não quiser usar os níveis padrão, defina com os mesmos valores a propriedade minimumMatch e a opção Limites de Correspondência do testador de Batch do módulo de perguntas e respostas. Consulte Teste de Batch do Módulo de Perguntas e Respostas.

string 50%,25%
qnaUseSourceVariable Quando definido como true, a correspondência do módulo de perguntas e respostas se baseia no valor armazenado na propriedade sourceVariable do componente System.Qna, não na entrada do usuário. booleano false

System.MatchEntity

Observação

Este tópico abrange o uso desse componente no modo YAML. Para obter informações sobre como usá-lo no Designer de Fluxo Visual, consulte Entidade de Correspondência.

O componente System.MatchEntity chama o Mecanismo de Intenção para extrair informações de entidade do texto mantido pela propriedade sourceVariable. Se houver uma correspondência para o tipo de entidade variável, a variável será definida com esse valor de entidade.

Propriedade Descrição 0brigatório?
sourceVariable A variável que contém o valor de entrada. Sim
variable O nome da variável de contexto. O valor dessa variável pode ser usado em um componente System.SetVariable subsequente para extrair uma entidade específica usando uma expressão do FreeMarker. Por exemplo, para extrair um valor de entidade EMAIL: ${userInputEntities.value.entityMatches['EMAIL'][0]} Sim

Esse componente também tem duas transições predefinidas: match e nomatch.

Transição Descrição
match Direciona o Mecanismo de Caixa de Diálogo para passar para um estado quando as entidades coincidem.
nomatch Define o Mecanismo de Caixa de Diálogo para passar para um estado quando as entidades não coincidem.
No trecho de código a seguir, o componente System.MatchEntity corresponde ao valor fornecido pelo usuário armazenado na variável mailInput com o tipo de entidade EMAIL definido para a variável mailEntity. Se a entrada do usuário satisfizer ao tipo de entidade sendo um endereço de e-mail, o componente System.MatchEntity gravará esse valor na variável mailEntity que é confirmada novamente para o usuário do bot ("You entered ${mailEntity.value.email}"). Quando os valores não correspondem, o Mecanismo de Caixa de Diálogo é movido para o estado nomatch.
Observação

O componente System.MatchEntity resolve um único valor.
context:
  variables:
    iResult: "nlpresult"
    mailInput: "string"
    mailEntity: "EMAIL"
states:
  intent:
    component: "System.Intent"
    properties:
      variable: "iResult"
    transitions:
      actions:
        displayMailAdresses: "askMail"
        unresolvedIntent: "dunno"
  askMail:
    component: "System.Text"
    properties:
      prompt: "Please provide a valid email address"
      variable: "mailInput"
    transitions:
      next: "matchEntity"
  matchEntity:
    component: "System.MatchEntity"
    properties:
      sourceVariable: "mailInput"
      variable: "mailEntity"
    transitions:
      actions:
        match: "print"
        nomatch: "nomatch"
  print:
    component: "System.Output"
    properties:
      text: "You entered ${mailEntity.value.email}"
    transitions:
      return: "done"
  nomatch:
    component: "System.Output"
    properties:
      text: "All I wanted was a valid email address."
    transitions:
      return: "done"
  dunno:
    component: "System.Output"
    properties:
      text: "I don't know what you want"
    transitions:
      return: "done"

System.DetectLanguage

Observação

Este tópico abrange o uso desse componente no modo YAML. Para obter informações sobre como usá-lo no Designer de Fluxo Visual, consulte Detectar Idioma.
Este componente usa o serviço de tradução para detectar o idioma do usuário na entrada do usuário ou no conteúdo salvo em uma variável de contexto mencionada por uma propriedade source:
context:
  variables:
    autoTranslate: "boolean"
    translated: "string"
    someTranslatedText: "string"
states:
  setAutoTranslate:
    component: "System.SetVariable"
    properties:
      variable: "autoTranslate"
      value: true
    transitions:
      next: "detect"
   detect:
    component: "System.DetectLanguage"
    properties:
      source: "someTranslatedText"  
      useExistingProfileLanguageTag: true
    transitions:
      ...
O componente System.DetectLanguage define uma variável chamada profile.languageTag com a string de configuração regional. Você pode definir variáveis com o idioma atual quando usa essa variável em uma expressão de valor (${profile.languageTag}).
Observação

A variável profile.languageTag tem precedência sobre a variável profile.locale que é definida pelo cliente messenger.

A propriedade useExistingProfileLanguageTag é usada quando uma habilidade faz parte de um assistente digital que tem um serviço de tradução. Isso permite que a habilidade use o idioma detectado pelo assistente digital imediatamente. Caso contrário, a habilidade poderá fornecer uma mensagem ou prompt em inglês antes que o idioma seja detectado novamente. Se a habilidade não estiver em um assistente digital habilitado para tradução, a propriedade será ignorada.

As Variáveis profile.locale e profile.languageTag

Com o uso de um determinado pacote de recursos e as traduções para ambos os labels da IU, todas as mensagens do componente dependem elas mesmas do idioma do usuário que está armazenado nas variáveis profile.locale e profile.languageTag.

As formas como essas variáveis são definidas dependem do modo de idioma da habilidade:

  • Para habilidades que usam suporte a idioma nativo, o idioma é detectado automaticamente e essas variáveis são preenchidas com o valor apropriado, a menos que as variáveis já tenham sido atribuídas a valores.
  • Para habilidades que usam um serviço de tradução:
    • O valor da variável profile.locale deriva do cliente messenger do usuário.
      Observação

      O profile.locale suporta valores nos formatos de idioma ISO - país ou ISO language_country.
    • O valor da variável profile.languageTag é fornecido pelo componente System.DetectLanguage.
Observação

O valor definido para a variável profile.locale pode determinar os formatos específicos das configurações regionais para as entidades DATE, CURRENCY e NUMBER, mesmo quando um valor foi definido para a variável profile.languageTag.
Você pode definir o valor de ambas as variáveis (e permitir que elas definam valores entre si) usando System.SetVariable. Por exemplo :
  • setLocaleToGerman:
      component: "System.SetVariable"
      properties:
        variable: "profile.locale"
        value: "de"
  • setLanguageTagToGerman:
      component: "System.SetVariable"
      properties:
        variable: "profile.languageTag"
        value: "de"
  • setLanguageToVariableValue:
      component: "System.SetVariable"
      properties:
        variable: "profile.languageTag"
        value: "${language_preference_var.value}"
  • setLocaleToLanguageTag:
      component: "System.SetVariable"
      properties:
        variable: "profile.locale"
        value: "${profile.languageTag}"
  • setTagToLocale:
      component: "System.SetVariable"
      properties:
        variable: "profile.languageTag"
        value: "${profile.locale}"

Dica:

É possível implementar uma lista de opções de idiomas comparando o valor da configuração regional armazenado nessas variáveis ou em uma tabela de banco de dados de usuário personalizado, com uma lista de idiomas suportados. Se o idioma detectado não estiver nessa lista, você poderá solicitar que o usuário escolha um e, em seguida, defina a variável profile.languageTag com esse valor.

System.TranslateInput

Observação

Este tópico abrange o uso desse componente no modo YAML. Para obter informações sobre como usá-lo no Designer de Fluxo Visual, consulte Traduzir Entrada.

Este componente envia o texto especificado para o serviço de tradução da habilidade e, em seguida, armazena a tradução em inglês. Ele utiliza a habilidade que está sendo configurada com um serviço de tradução, que reconhece o idioma da entrada do usuário e o traduz em inglês. Este componente não funciona com habilidades que usam o modo de idioma Suportado Nativamente.

Use esse componente quando precisar processar o texto de entrada bruto antes de traduzi-lo. Por exemplo, talvez você queira remover alguns dados pessoais da entrada do usuário antes de enviá-la ao serviço de tradução.

Propriedade Descrição 0brigatório?
source Especifica os valores de texto a serem traduzidos em inglês. No
variable A variável que contém a tradução em inglês do texto. Sim

Como o componente System.TranslateInput utiliza o serviço de tradução, que já detecta o idioma do usuário, esse componente não precisa seguir os estados que detectam ou definem o idioma conforme descrito em Adicionar um Serviço de Tradução à Habilidade. Como resultado, você pode armazenar a tradução em inglês da entrada direta do usuário ou de uma variável source.

Tradução de Entrada Direta

O componente System.TranslateInput armazena a tradução em inglês da entrada direta do usuário em sua propriedade variable. O trecho de código a seguir mostra como a entrada do usuário "Hallo, ich bin ein Mensch" na variável translatedString é armazenada como "Hello, eu sou um humano".
context:
  variables:
     translatedString: “string”
     sourceString: “string”
...

states:
...

  translateInput:
    component: "System.TranslateInput"
      properties:
        variable: "translatedString"

A Variável source

No trecho de código a seguir, a variável sourceString mantém a entrada do usuário. (Essa entrada, por exemplo, pode ter sido reunida por um componente Resposta Comum.) Depois que o componente System.TranslateInput conclui seu processamento, a tradução em inglês é armazenada na variável translatedString.
context:
  variables:
    autoTranslate: "boolean" 
    translatedString: "string"
    sourceString: "string"    

   ...

states:
   ...

  translateInputString:
    component: "System.TranslateInput"
    properties:
      source: "sourceString"
      variable: "translatedString"
    transitions: 
      ...
Observação

O componente System.TranslateInput não pode traduzir objetos de dados ou arrays armazenados em uma variável de contexto por um componente personalizado. Esse conteúdo só pode ser traduzido quando a variável é referenciada por um componente que usa tradução automática. Por exemplo, o componente System.TranslateInput não pode traduzir um objeto de dados como {”product”: “scissors”, “color”: “silver”} como scissors e silver.

A Propriedade sourceVariable

Como a propriedade sourceVariable do System.Intent contém o valor processado pelo componente, você pode usá-la com o componente System.TranslateInput para inserir texto traduzido. O trecho de código a seguir mostra a atribuição do valor da variável translated para que ela possa ser processada pelo mecanismo NLP.

  translate:
    component: "System.TranslateInput"
    properties:
      variable: "translated"
    transitions: 
      next: "intent"
  intent:
    component: "System.Intent"
    properties:
      variable: "iResult"
      sourceVariable: "translated"
...

System.TranslateOutput

Observação

Este tópico abrange o uso desse componente no modo YAML. Para obter informações sobre como usá-lo no Visual Flow Designer, consulte Traduzir Saída.
O componente System.TranslateOutput permite traduzir texto para o idioma do usuário. O componente assume o valor definido para a propriedade source. Ele traduz o texto no idioma detectado pelo componente System.DetectLanguage ou pela variável profile.locale e o armazena na propriedade variable.
Propriedades Descrição 0brigatório?
source O texto a ser traduzido ou uma expressão do FreeMarker que menciona uma variável cujo valor precisa ser traduzido. Sim
variable Mantém o texto traduzido. Sim
Neste exemplo, o componente System.Output, que de outra forma exibiria o texto traduzido automaticamente, ainda gera o texto traduzido, mas aqui ele gera a tradução do texto definido para a propriedade source.
  unresolvedTranslate:
    component: "System.TranslateOutput"
    properties:
      source: "Sorry I don't understand"
      variable: "someTranslatedText"
    transitions:
      next: "unresolved"
  unresolved:
    component: "System.Output"
    properties:
      text: "${someTranslatedText}"
    transitions:
      return: "unresolved"

System.Qna

Estas são propriedades opcionais para o componente System.Qna.
Nome Descrição 0brigatório? Valor Padrão
botName O nome (não para exibição) da habilidade com o módulo de perguntas e respostas. No N/A
botVersion A versão da habilidade identificada pela propriedade botName. Você pode definir a propriedade botName sem definir também a propriedade botVersion. Entretanto, você não pode definir botVersion sem também definir botName: botVersion é ignorado quando você não define também a propriedade botName. Como consequência, sua versão padrão (1.0) só se aplicará se você também definir a propriedade botName. Para rotear para outra versão da habilidade, defina a propriedade botName e defina a propriedade botVersion com a versão de destino. No 1
highlighter O método usado para destacar o texto mais relevante em cada resposta. Os valores válidos são:
  • system - o sistema tenta determinar o texto mais relevante na resposta e destaca essas palavras.
  • firstNChars - os primeiros caracteres da resposta são destacados. O número de caracteres é determinado pelo valor da propriedade highlightLength mais os caracteres restantes na palavra destacada final.
No system
highlightLength O número de caracteres a serem destacados em cada resposta. No 100
sourceVariable A estrutura de processamento de idioma resolve a correspondência do módulo de perguntas e respostas com o valor armazenado pelo sourceVariable, não com a entrada do usuário. Você ativa essa correspondência definindo qnaUseSourceVariable: true para o componente System.Intent. Por exemplo :
metadata:
  platformVersion: "1.0"
main: true
name: "FinancialBotMainFlow"
context:
  variables:
    iResult: "nlpresult"
    iResult2: "nlpresult"
    transaction: "string"
    faqstring1: "string"
    faqstring2: "string"
states:

  ...  
  
  setVariable:
    component: "System.SetVariable"
    properties:
      variable: "faqstring1"
      value: "Tell me about family floater plan"

...

  intent2:
    component: "System.Intent"
    properties:
      variable: "iResult"
      sourceVariable: "faqstring1"
      qnaEnable: true
      qnaUseSourceVariable: true
    transitions:
      actions:
        Send Money: "sendMoney"
        Balances: "balances"
        unresolvedIntent: "unresolved"
        qna: "qna"

  sendMoney:
    component: "System.Output"
    properties:
      text: "send money"
    transitions:
      return: "sendMoney"

  balances:
    component: "System.Output"
    properties:
      text: "Balances"
    transitions:
      return: "balances"

  unresolved:
    component: "System.Output"
    properties:
      text: "Sorry I don't understand that question!"
    transitions:
      return: "unresolved"
  qna:
    component: "System.QnA"
    properties:
	    sourceVariable: "faqString1"
    transitions:
      actions:
        none: "unresolved"
      next: "intent2"
No N/A
transitionOnTextReceived
Faz a transição do estado definido com o componente System.QnA quando o usuário digita texto livre.
  • true (o padrão) — Faz a transição do estado System.Qna quando a habilidade recebe qualquer texto livre. Sua habilidade pode tentar resolver esse texto quando você configura uma transição para um estado System.Intent configurado com Propriedades do Módulo de Perguntas e Respostas.

  • false — O Mecanismo de Caixa de Diálogo permanece no estado de módulo de perguntas e respostas, em que o texto livre é tratado como consulta do módulo de perguntas e respostas. O componente também exibe uma opção de saída. Por padrão, esse botão é exibido como Perguntas de Saída, mas você pode alterá-lo usando a propriedade exitLabel.

    Como isso adiciona a opção de saída, configure a transição exit.

No true
keepTurn

A propriedade keepTurn se comporta de outra forma, dependendo de como o usuário muda do estado definido com o componente System.QnA. Você pode configurar como keepTurn direciona o usuário pelo fluxo usando um valor booliano (verdadeiro, falso) ou com um mapa de pares de chave/valor.

No false (quando configurado como booliano)
matchListLimit Limita a paginação das respostas No 5
categoryListLimit Limita a paginação das categorias No 5
resultLayout O layout das respostas correspondentes. Valores válidos: horizontal e vertical. No horizontal
minimumMatch

Define as porcentagens mínima e máxima de tokens que qualquer par pergunta/resposta deve conter para ser considerado uma correspondência.

Para retornar as melhores correspondências, nós tokenizamos as declarações que o Mecanismo de Intenção resolve como perguntas. Esses tokens são formados pelos radicais das palavras e por várias combinações de palavras. Dependendo do tamanho da mensagem do usuário, o processo pode gerar um conjunto grande de tokens. Como é improvável que qualquer par pergunta/resposta possa corresponder a todos eles, recomendamos que você defina o nível de correspondência em 50%, 25%.

Nessa definição, o par pergunta/resposta poderá ser considerado relevante se corresponder a 50% dos tokens. Se esse nível máximo não puder ser atendido, um nível mínimo de 25% será suficiente.

Se você quiser reduzir a chance de perder uma correspondência relevante, e puder tolerar o retorno de correspondências irrelevantes no processo, poderá adicionar um limite ainda mais baixo como fallback. Por exemplo: 50%,25%,10%.

Se você quiser minimizar as correspondências irrelevantes, poderá aumentar o percentual (digamos, minimumMatch: "80%"), mas isso poderá resultar em correspondências inesperadas para as mensagens compostas por três a sete palavras. Por outro lado, é possível ajustar a precisão do módulo de perguntas e respostas retornado para consultas curtas e longas do usuário.

Importante: Se você não quiser usar os níveis padrão ao testar, defina a propriedade QnaMinimumMatch e a opção Limites de Correspondência do testador de Batch do módulo de perguntas e respostas com os mesmos valores que você definiu para a propriedade minimumMatch. Consulte Teste de Batch do Módulo de Perguntas e Respostas

No 50%25%
matchfields Define os campos de Perguntas e Respostas usados para corresponder à mensagem do usuário. Os valores válidos incluem:
  • all
  • categories
  • questions
  • answers
  • categories+questions
Você pode informar esses valores como uma lista separada por vírgulas.
No all
enableCategoryDrilldown Defina como true para exibir um detalhamento por categoria. No true
exitLabel O texto do label para sair do módulo de perguntas e respostas. No Exit Questions
viewAnswerLabel O texto do label para a ação de exibição dos detalhes de uma resposta. No View
moreAnswersLabel O texto do label para a ação de exibição de mais respostas. No More Answers
answersLabel O texto do label para as ações de exibição de respostas em uma categoria específica. No Answers
categoriesLabel O texto do label das categorias que correspondem à sintaxe. No Categories
subCategoriesLabel O texto do label para a ação de exibição das subcategorias. No Sub-Categories
moreCategoriesLabel O texto do label para a ação de exibição de mais categorias. No More Categories

Aumentar a Precisão do Módulo de Perguntas e Respostas Retornada Usando minimumMatch

Embora a definição padrão de 50%,25% retorne pares pergunta/resposta precisos, talvez você queira que sua habilidade retorne menos resultados, aumentando a porcentagem. Por exemplo, você pode querer que sua habilidade retorne apenas um par de perguntas e respostas quando corresponder a uma alta porcentagem dos tokens ou, em vez disso, direcione o usuário para um agente ao vivo.

Nesse cenário, o aumento da porcentagem da propriedade minimumMatch para 80% pode retornar correspondências do módulo de perguntas e respostas mais preciso, especialmente para mensagens mais longas. O mesmo não pode ser verdadeiro para mensagens mais curtas, que normalmente têm de três a sete palavras, com cerca de 50% delas sendo palavras ignoradas (vazias). Por exemplo, na pergunta do usuário O que é segurança da conta?, por exemplo, o sistema detecta dois tokens, conta e segurança. Quando minimumMatch é definido como 80%, somente um desses tokens é retornado (80% de 2 é 1,6, que é arredondado para 1), quando o ideal seria que ambos fossem retornados. Nesse caso, a habilidade pode retornar pares pergunta/resposta que geralmente descrevem contas, o que é uma resposta muito ampla. A habilidade deveria ter retornado apenas o módulo de perguntas e respostas sobre segurança da conta ou não retornar nada.

Para configurar a propriedade minimumMatch para retornar um módulo de perguntas e respostas preciso para mensagens curtas, informe o número de tokens que devem ser correspondidos, um operador menor que (<) e o nível de correspondência necessário quando a mensagem contiver um número maior de tokens. Por exemplo :
  qna:
    component: "System.QnA"
    properties:
      minimumMatch: "3<80%"
    transitions:
      actions:
        none: "unresolved"
      next: "intent"
Neste trecho de código, se a mensagem contiver de 1 a 3 tokens, então o par pergunta/resposta deverá corresponder a todos eles para que a habilidade o retorne para o usuário. Nos termos do cenário, essa definição só retornaria um par pergunta/resposta que correspondesse à segurança da conta. Quando a mensagem tem quatro ou mais tokens, o par pergunta/resposta só precisa corresponder a 80% deles.
Você pode ajustar a correspondência mínima para mensagens mais longas que contenham detalhes adicionados, graduando o número de tokens correspondentes necessários (e ao mesmo tempo diminuindo a porcentagem). Por exemplo, a definição a seguir ilustra como acomodar mensagens que podem conter mais de nove tokens:
  qna:
    component: "System.QnA"
    properties:
      minimumMatch: "3<80% 8<70% 12<65%"  
    transitions:
      actions:
        none: "unresolved"
      next: "intent"
Com a definição minimumMatch nesse trecho de código, a habilidade só retorna o módulo de perguntas e respostas quando os tokens a seguir são correspondidos.
Número de Tokens na Mensagem O Número de Tokens que Devem Corresponder
1 1
2 2
3 3
4 (80% corresponde) 3 (3,2, arredondado para 3)
5 (80% corresponde) 4
6 (80% corresponde) 4 (4,8, arredondado para 4
7 (80% corresponde) 5 (5,6, arredondado para 5)
8 (80% corresponde) 6 (6,4 arredondado para 6)
9 (70% corresponde) 6 (6,3, arredondado para 5)
10 (70% match) 7
11 (70% match) 7 (7,7, arredondado para 7)
12 (70% match) 8 (8,4, arredondado para 8)
13 (65% match) 8 (8,45, arredondado para 8)

Mapas de chave/valor keepTurn e Ações de Transição

Você pode definir a propriedade keepTurn como mapa cujas chaves descrevam as transições.
Chave Descrição Valor Padrão
next Quando definido como false, a habilidade deixa o controle quando a caixa de diálogo muda para o próximo estado. A habilidade não processará qualquer entrada do usuário até que o Mecanismo de Caixa de Diálogo se mova para o próximo estado. false
none Quando definido como true, a habilidade mantém o controle quando uma ação de transição none é acionada porque não há pergunta que possa ser retornada para a entrada do usuário. true
exit Quando definido como true, a habilidade mantém o controle quando uma ação de transição exit foi acionada. true
textReceived Quando definido como true, a habilidade mantém o controle da conversa quando transitionOnTextReceived é definido como true, que sinaliza o Mecanismo de Caixa de Diálogo para fazer a transição do estado. true

Transições do Módulo de Perguntas e Respostas

Nome Descrição 0brigatório?
none Nenhuma correspondência encontrada para a entrada do usuário (o que geralmente significa que o fluxo é roteado para um estado que informa ao usuário que nenhuma correspondência foi encontrada). Sim
exit O usuário sai do módulo de perguntas e respostas. Por padrão, o keepTurn é definido como true para essa ação. Número