Lenguaje

Estos son los componentes que están disponibles en la categoría Language del editor de flujo de diálogo basado en YAML.

System.Intent

Este componente detecta la intención del usuario y extrae todas las entidades para, a continuación, disparar un estado posterior.
Nota

Este componente no está disponible para las aptitudes desarrolladas con el diseñador de flujos visuales. En su lugar, las intenciones se resuelven automáticamente cuando no hay ningún flujo activo. Consulte Detección y resolución de información.
Propiedad Descripción ¿Obligatoria?
variable Contiene el valor que el marco de procesamiento de lenguaje resuelve a partir de la entrada de usuario. Por ejemplo, nuestros bots de aptitudes de ejemplo definen esta propiedad como variable=iResult (con iResult: "nlpResult" definido como una de las variables context). No es necesario asignar un nombre a la variable iResult. Este nombre es una convención utilizada en nuestro código de ejemplo y en las aptitudes de muestra. Independientemente del nombre de variable que utilice para nlpResult, asegúrese de utilizarlo de forma coherente en el flujo de diálogo.
optionsPrompt Título de la lista de intenciones cuando se define un valor para la opción Margen de ganancias. Por defecto, el valor de esta cadena es Do you want to.

El valor por defecto de esta propiedad se almacena en el grupo de recursos de la aptitud. Para cambiarlo, haga clic en Icono Grupos de recursos, seleccione el separador Configuración y actualice la clave Intención - optionsPrompt. Si utiliza el grupo de recursos de la aptitud para cambiar el mensaje por defecto, no es necesario incluir la propiedad en el componente a menos que desee sustituir el valor por defecto.

No
botName Nombre (no el nombre mostrado) de la aptitud que resuelve la intención. Utilice esta propiedad si decide resolver los datos introducidos por el usuario mediante el modelo de una aptitud independiente en lugar de la aptitud actual. El uso de este enfoque puede ser beneficioso si desea resolver la intención basada en un modelo con un dominio más acotado que el dominio que exija su caso de uso principal. No
botVersion Especifica la versión de la aptitud. El valor por defecto es 1.0 (si no se especifica el número de versión). No
sourceVariable El marco de procesamiento de lenguaje resuelve la intención utilizando sourceVariable como entrada.

Importante: no puede utilizar esta propiedad en combinación con la propiedad translate. Si necesita traducir la entrada representada por sourceVariable, puede utilizar System.TranslateInput para hacerlo.

No
daIntercept Para las llamadas a System.Intent, determina si el asistente digital puede interceptar y volver a enrutar los datos introducidos por el usuario a otras aptitudes. Estos son los valores posibles:
  • always (valor por defecto): permite al asistente digital interceptar los datos introducidos, incluso si el flujo actual no ha terminado. Esto permite al asistente digital manejar interrupciones que sugieren cambiar a otro flujo.
  • never: impide que el asistente digital intercepte la entrada de usuario. Para obtener más información sobre el caso de uso para definir este valor, consulte Aplicación de llamadas al componente System.Intent de una aptitud.
Esta propiedad se ignora si la aptitud no pertenece a un asistente digital.
No
translate Sustituye el juego de valores para la variable de contexto autoTranslate. Si autoTranslate no se ha definido o se ha definido en false, puede definir esta propiedad en true para activar la conversión automática solo para este componente. Si la variable de contexto autotranslate se define en true, puede definir esta propiedad en false para excluir este componente de la conversión automática.

Importante: no puede utilizar esta propiedad en combinación con la propiedad sourceVariable. Si necesita traducir la entrada representada por sourceVariable, puede utilizar System.TranslateInput para hacerlo.

No

Propiedades de preguntas y respuestas del componente System.Intent

Se trata de propiedades opcionales para el enrutamiento de preguntas y respuestas.
Propiedad Descripción Tipo de dato Valor por defecto
qnaEnable Habilita el enrutamiento al módulo de preguntas y respuestas. Si se define en true (enrutamiento activado), también deberá definir la acción de transición de preguntas y respuestas (none o exit). Consulte Transiciones de preguntas y respuestas. booleano false
qnaBotName Nombre (no el nombre mostrado) de la aptitud con el módulo de preguntas y respuestas. Si no se define esta propiedad, se utiliza en su lugar el valor definido para la propiedad botName del componente System.QnA. Cadena N/D
qnaBotVersion Versión de la aptitud con el módulo de preguntas y respuestas. Por defecto, es 1.0. Este valor es opcional int N/D
qnaTimeout Tiempo, en milisegundos, que la aptitud espera a que el servidor de preguntas y respuestas responda a la entrada de usuario. Largo 5000
qnaUseResult Si esta opción se establece en true (valor por defecto), se permite a la aptitud consultar el servidor de preguntas y respuestas con la entrada de usuario. A continuación, la aptitud utiliza los resultados de esta consulta (las coincidencias) para establecer el enrutamiento. Si esta propiedad se establece en true, la aptitud muestra el enlace Ver respuestas solo si hay coincidencias. Si se establece en false, se muestra el enlace Ver respuestas en todo momento. booleano true
qnaSkipIfIntentFound Cuando se establece en true, la aptitud omite las preguntas y respuestas cuando hay una coincidencia de intenciones. El valor por defecto (false) permite a la aptitud consultar el servidor de preguntas y respuestas con expresiones de usuario, así como presentar las preguntas y respuestas como una opción. booleano false
optionsPrompt

Las preguntas y respuestas se muestran si se han habilitado para el componente System.Intent y se encuentra una coincidencia.

Consejo: en el caso de idiomas extranjeros (distintos al inglés), haga referencia a un grupo de recursos. Consulte Referencia a grupos de recursos en el flujo de diálogo

Cadena Do you want to
optionsQnaLabel

Etiqueta de acción en las opciones (optionsPrompt) que lleva al usuario al componente System.QnA para mostrar las coincidencias.

Consejo: en el caso de idiomas extranjeros (distintos al inglés), haga referencia a un grupo de recursos. Consulte Referencia a grupos de recursos en el flujo de diálogo

Cadena Questions
qnaMatchFields Define los campos de preguntas y respuestas que se utilizan para buscar la coincidencia con el mensaje de usuario. Los valores válidos incluyen:
  • all
  • categories
  • questions
  • answers
  • categories+questions
Puede introducir estos valores como una lista separada por comas
Cadena all
qnaMinimumMatch

Establece los porcentajes mínimo y máximo de tokens que cualquier par de preguntas y respuestas debe contener para que se considere una coincidencia.

Para devolver las mejores coincidencias, las expresiones que resuelve como preguntas el motor de intenciones se convierten en tokens. Estos tokens se forman a partir de las raíces de las palabras y de varias combinaciones de palabras. Como resultado, se puede generar un gran conjunto de tokens a partir de una expresión. Por este motivo, es poco probable que un par de preguntas y respuestas contenga todas las palabras clave y variantes. Por lo tanto, no se recomienda cambiar este valor por defecto, 50%,25%.

Tener un 50% de los tokens generados (el nivel máximo por defecto) significa que el par de preguntas y respuestas se puede considerar una coincidencia relevante si tiene todas las palabras clave de la expresión. Si no se puede alcanzar este nivel máximo, un nivel mínimo del 25% podría ser suficiente. Si cambia estos valores, especialmente si aumenta el máximo por encima del 50%, el par de preguntas y respuestas no solo tendría que contener todas las palabras clave, sino que también debería parear los tokens adicionales.

Dicho esto, si desea reducir la posibilidad de que falte una coincidencia relevante, y si puede tolerar que se devuelvan coincidencias irrelevantes en el proceso, puede agregar un umbral incluso más bajo. Por ejemplo: 50%,25%,10%.

Si desea minimizar las coincidencias irrelevantes, puede aumentar los niveles (por ejemplo, 60%,50%). Tenga en cuenta que, al hacerlo, puede excluir pares de preguntas y respuestas que tengan todas las palabras clave.

Importante: si no desea utilizar los niveles por defecto, debe definir en los mismos valores la propiedad minimumMatch y la opción Umbrales de coincidencia del comprobador de lotes de preguntas y respuestas. Consulte Prueba por lotes del módulo de preguntas y respuestas.

Cadena 50%,25%
qnaUseSourceVariable Si se establece en true, la coincidencia de preguntas y respuestas se basa en el valor almacenado en la propiedad sourceVariable de System.Qna, no en la entrada del usuario. booleano false

System.MatchEntity

Nota

En este tema se trata el uso de este componente en modo YAML. Para obtener información sobre su uso en el diseñador de flujos visuales, consulte Entidad de coincidencia.

System.MatchEntity llama al motor de intenciones para extraer la información de la entidades del texto contenido por la propiedad sourceVariable. Si existe una coincidencia para el tipo de entidad de la variable, esta se define con este valor de entidad.

Propiedad Descripción ¿Obligatoria?
sourceVariable Variable que contiene el valor de entrada.
variable Nombre de la variable de contexto. El valor de esta variable puede utilizarse en un componente System.SetVariable posterior para extraer una entidad específica con una expresión de FreeMarker. Por ejemplo, para extraer un valor de entidad EMAIL: ${userInputEntities.value.entityMatches['EMAIL'][0]}

Este componente también tiene dos transiciones predefinidas: match y nomatch.

Transición Descripción
match Indica al motor de diálogo que debe pasar a un estado cuando las entidades coincidan.
nomatch Define el motor de diálogo para que pase a un estado cuando las entidades no coincidan.
En el siguiente fragmento, el componente System.MatchEntity parea el valor proporcionado por el usuario almacenado en la variable mailInput con el tipo de entidad EMAIL definido para la variable mailEntity. Si la entrada de usuario respeta el tipo de entidad, al ser una dirección de correo electrónico, el componente System.MatchEntity escribe este valor en la variable mailEntity, que se devuelve al usuario del bot ("You entered ${mailEntity.value.email}"). Si los valores no coinciden, el motor de diálogo pasa al estado nomatch.
Nota

El componente System.MatchEntity resuelve un valor único.
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

Nota

En este tema se trata el uso de este componente en modo YAML. Para obtener información sobre su uso en el diseñador de flujos visuales, consulte Detectar idioma.
Este componente utiliza el servicio de traducción para detectar el idioma del usuario a partir de la entrada del usuario o del contenido guardado en una variable de contexto a la que hace referencia una propiedad 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:
      ...
El componente System.DetectLanguage establece una variable denominada profile.languageTag con la cadena de configuración regional. Puede definir variables con el idioma actual si utiliza esta variable en una expresión de valor (${profile.languageTag}).
Nota

profile.languageTag tiene prioridad sobre la variable profile.locale definida por el cliente de mensajería.

La propiedad useExistingProfileLanguageTag se utiliza cuando una aptitud forma parte de un asistente digital que tiene un servicio de traducción. Esto permite a la aptitud utilizar el idioma detectado por el asistente digital inmediatamente. De lo contrario, la aptitud puede proporcionar un mensaje o una petición de datos en inglés antes de que se detecte (o se vuelva a detectar) el idioma. Si la aptitud no está en un asistente digital con la función de traducción activada, se ignora la propiedad.

Variables profile.locale y profile.languageTag

El uso de un grupo de recursos concreto y las traducciones de las etiquetas de la interfaz de usuario y los mensajes del componente dependen del idioma del usuario almacenado en las variables profile.locale y profile.languageTag.

Las formas en que se definen estas variables dependen del modo de idioma de la aptitud:

  • Para las aptitudes que utilizan soporte de idioma nativo, el idioma se detecta automáticamente y estas variables se rellenan con el valor adecuado, a menos que ya se hayan asignado valores a las variables.
  • Para las aptitudes que utilizan un servicio de traducción:
    • El valor de la variable profile.locale se deriva del cliente de mensajería del usuario.
      Nota

      profile.locale soporta valores en formatos ISO de país de idioma o ISO language_country.
    • El valor de la variable profile.languageTag lo proporciona el componente System.DetectLanguage.
Nota

El valor definido para la variable profile.locale puede determinar los formatos específicos de configuración regional para las entidades DATE, CURRENCY y NUMBER incluso cuando se ha definido un valor para la variable profile.languageTag.
Puede definir el valor para ambas variables (y permitir que cada una de estas variables defina valores para la otra) utilizando System.SetVariable. Por ejemplo:
  • 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}"

Consejo:

Puede implantar una lista de opciones de idiomas comparando el valor de configuración regional almacenado en estas variables, o bien en una tabla de base de datos de usuarios personalizada, con una lista de los idiomas admitidos. Si el idioma detectado no está en esta lista, puede pedir al usuario que elija uno y, a continuación, definir profile.languageTag con este valor.

System.TranslateInput

Nota

En este tema se trata el uso de este componente en modo YAML. Para obtener información sobre su uso en el diseñador de flujos visuales, consulte Convertir entrada.

Este componente envía el texto especificado al servicio de traducción de la aptitud y, a continuación, almacena la traducción al inglés. Se basa en la aptitud que se está configurando con un servicio de traducción, que reconoce el idioma de la entrada del usuario y la convierte al inglés. Este componente no funciona con aptitudes que utilizan el modo de idioma con soporte nativo.

Utilice este componente cuando necesite procesar el texto de entrada sin formato antes de traducirlo. Por ejemplo, puede que desee eliminar datos personales de la entrada de usuario antes de enviarla al servicio de traducción.

Propiedad Descripción ¿Obligatoria?
source Especifica los valores de texto que se deben traducir al inglés. No
variable Variable que contiene la traducción al inglés del texto.

Dado que el componente System.TranslateInput utiliza el servicio de traducción, que detecta el idioma del usuario, este componente no necesita seguir los estados que detectan o establecen el idioma, tal y como se describe en Agregar un servicio de traducción a la aptitud. Como resultado, puede almacenar la traducción al inglés de la entrada directa del usuario o de una variable source.

Traducción de entrada directa

El componente System.TranslateInput almacena la traducción al inglés de la entrada de usuario directa en su propiedad variable. El siguiente fragmento de código muestra cómo la entrada del usuario "Hallo, ich bin ein Mensch" en la variable translatedString se almacena como "Hello, I am a human".
context:
  variables:
     translatedString: “string”
     sourceString: “string”
...

states:
...

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

Variable de origen

En el siguiente fragmento, la variable sourceString contiene la entrada de usuario. (Esta entrada, por ejemplo, puede haber sido recopilada por un componente de respuesta común). Una vez que System.TranslateInput termina su procesamiento, la traducción al inglés se almacena en la variable translatedString.
context:
  variables:
    autoTranslate: "boolean" 
    translatedString: "string"
    sourceString: "string"    

   ...

states:
   ...

  translateInputString:
    component: "System.TranslateInput"
    properties:
      source: "sourceString"
      variable: "translatedString"
    transitions: 
      ...
Nota

El componente System.TranslateInput no puede traducir objetos de datos ni matrices almacenados en una variable de contexto por un componente personalizado. Este contenido solo se puede traducir cuando un componente que utiliza la traducción automática hace referencia a la variable. Por ejemplo, el componente System.TranslateInput no puede traducir un objeto de datos, por ejemplo, {”product”: “scissors”, “color”: “silver”}, como scissors y silver.

Propiedad sourceVariable

Dado que la propiedad sourceVariable de System.Intent contiene el valor procesado por el componente, puede utilizarlo con el componente System.TranslateInput para insertar texto traducido. El siguiente fragmento muestra la asignación del valor de variable translated para que pueda ser procesado por el motor de NLP.

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

System.TranslateOutput

Nota

En este tema se trata el uso de este componente en modo YAML. Para obtener información sobre su uso en el diseñador de flujos visuales, consulte Traducir salida.
El componente System.TranslateOutput permite traducir texto al idioma del usuario. El componente toma el valor definido para la propiedad source. Traduce el texto al idioma detectado por el componente System.DetectLanguage o por la variable profile.locale y, a continuación, lo almacena en la propiedad variable.
Propiedades Descripción ¿Obligatoria?
source Texto que se debe traducir, o bien expresión de FreeMarker que hace referencia a una variable cuyo valor se debe traducir.
variable Contiene el texto traducido.
En este ejemplo, el componente System.Output, que, de lo contrario, mostraría texto traducido automáticamente, aún genera texto traducido, pero aquí genera la traducción del texto definido para la propiedad 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

Son propiedades opcionales para el componente System.Qna.
Nombre Descripción ¿Obligatoria? Valor por Defecto
botName Nombre (no el nombre mostrado) de la aptitud con el módulo de preguntas y respuestas. No N/D
botVersion Versión de la aptitud identificada por la propiedad botName. Puede definir la propiedad botName sin definir también la propiedad botVersion. Sin embargo, no puede definir botVersion sin definir también botName: botVersion se ignora si no se define también la propiedad botName. Como consecuencia, su versión por defecto (1.0) solo se aplica si también se define la propiedad botName. Para encaminar a otra versión de la aptitud, debe definir la propiedad botName y establecer la propiedad botVersion con la versión de destino. No 1
highlighter Método usado para resaltar el texto más relevante de cada respuesta. Los valores válidos son:
  • system: el sistema intenta determinar el texto más relevante de la respuesta y resalta esas palabras.
  • firstNChars: se resaltan los primeros caracteres de la respuesta. El número de caracteres viene determinado por el valor de la propiedad highlightLength, además de los caracteres restantes de la palabra final resaltada.
No system
highlightLength Número de caracteres que se van a resaltar en cada respuesta. No 100
sourceVariable El marco de procesamiento de idioma resuelve la coincidencia de preguntas y respuestas utilizando el valor almacenado por sourceVariable, no la entrada del usuario. Esta coincidencia se activa definiendo qnaUseSourceVariable: true para el componente System.Intent. Por ejemplo:
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/D
transitionOnTextReceived
Transiciones desde el estado definido con el componente System.QnA cuando el usuario introduce texto libre.
  • true (valor por defecto): transiciones desde el estado System.Qna cuando la aptitud recibe texto libre. La aptitud puede intentar resolver este texto cuando se configura una transición a un estado System.Intent configurado con las propiedades de preguntas y respuestas.

  • false: el motor de diálogo permanece en el estado de preguntas y respuestas, donde el texto libre se trata como una consulta de preguntas y respuestas. El componente también muestra una opción de salida. Por defecto, este botón se muestra como Preguntas de salida, pero esto se puede cambiar con la propiedad exitLabel.

    Dado que esta opción agrega la opción de salida, debe configurar la transición exit.

No true
keepTurn

La propiedad keepTurn se comporta de forma diferente según cómo realice el usuario la transición desde el estado definido con el componente System.QnA. Puede configurar cómo encamina keepTurn al usuario a través del flujo mediante un valor booleano (true, false) o con una asignación de pares clave-valor.

No false (si se configura como booleano)
matchListLimit Limita la paginación de las respuestas No 5
categoryListLimit Limita la paginación de las categorías No 5
resultLayout Diseño para respuestas coincidentes. Valores válidos: horizontal y vertical. No horizontal
minimumMatch

Establece los porcentajes mínimo y máximo de tokens que cualquier par de preguntas y respuestas debe contener para que se considere una coincidencia.

Para devolver las mejores coincidencias, las expresiones que resuelve como preguntas el motor de intenciones se convierten en tokens. Estos tokens se forman a partir de las raíces de las palabras y de varias combinaciones de palabras. Según la longitud del mensaje de usuario, el proceso puede generar un gran conjunto de tokens. Como es poco probable que un par de preguntas y respuestas pueda coincidir con todos, se recomienda definir el nivel de coincidencia en 50%, 25%.

En esta configuración, el par de preguntas y respuestas se puede considerar relevante si coincide con el 50% de los tokens. Si no se puede alcanzar este nivel máximo, el nivel mínimo del 25% será suficiente.

Si quiere reducir la posibilidad de que falte una coincidencia relevante, y puede tolerar devolver coincidencias irrelevantes en el proceso, puede agregar un umbral más bajo como reserva. Por ejemplo: 50%,25%,10%.

Si quiere minimizar las coincidencias irrelevantes, puede aumentar el porcentaje (por ejemplo, minimumMatch: "80%"), pero hacerlo puede causar coincidencias inesperadas para mensajes formados por entre tres y siete palabras. Dicho esto, puede ajustar la precisión de las preguntas y respuestas devueltas para consultas de usuarios cortas y largas.

Importante: si no desea utilizar los niveles por defecto al realizar la prueba, debe definir la propiedad QnaMinimumMatch y la opción Umbrales de coincidencia del comprobador por lotes de preguntas y respuestas en los mismos valores definidos para la propiedad minimumMatch. Consulte Prueba por lotes del módulo de preguntas y respuestas

No 50%25%
matchfields Define los campos de preguntas y respuestas que se utilizan para buscar la coincidencia con el mensaje de usuario. Los valores válidos incluyen:
  • all
  • categories
  • questions
  • answers
  • categories+questions
Puede introducir estos valores como una lista separada por comas.
No all
enableCategoryDrilldown Defina esta opción en true para aumentar los detalles por categoría. No true
exitLabel Texto de etiqueta para salir del módulo de preguntas y respuestas. No Exit Questions
viewAnswerLabel Texto de etiqueta para la acción de vista de un detalle de respuesta. No View
moreAnswersLabel Texto de etiqueta para la acción de vista para más respuestas. No More Answers
answersLabel Texto de etiqueta para las acciones de vista para respuestas de una categoría específica. No Answers
categoriesLabel Texto de etiqueta para las categorías que coinciden con la expresión. No Categories
subCategoriesLabel Texto de etiqueta para la acción de vista para las subcategorías. No Sub-Categories
moreCategoriesLabel Texto de etiqueta para la acción de vista para más categorías. No More Categories

Aumento de la precisión de las preguntas y respuestas devueltas utilizando minimumMatch

Aunque la configuración predeterminada de 50%,25% devuelve pares de preguntas y respuestas precisas, puede que desee que la aptitud devuelva menos resultados, pero más precisos, mediante un aumento del porcentaje. Por ejemplo, puede que desee que su aptitud devuelva solo un par de preguntas y respuestas cuando coincida con un porcentaje elevado de los tokens o que enrute al usuario a un agente en vivo.

En este escenario, el aumento del porcentaje de la propiedad minimumMatch al 80% puede devolver coincidencias más precisas de preguntas y respuestas, especialmente en el caso de los mensajes más largos. Cuando se trata de mensajes más cortos, que normalmente están compuestos por entre tres y siete palabras, de las que aproximadamente un 50% son palabras irrelevantes (palabras vacías), puede que esto no se cumpla. Por ejemplo, en la pregunta del usuario ¿Qué es la seguridad de la cuenta?, el sistema detecta dos tokens: cuenta y seguridad. Si minimumMatch se define en el 80%, solo se devuelve uno de estos tokens (el 80% de 2 es 1,6, que se redondea a 1), cuando deberían devolverse ambos. En este caso, la aptitud puede devolver pares de preguntas y respuestas que, por lo general, describen cuentas, lo que constituye una respuesta demasiado amplia. La aptitud debería haber devuelto solo la información de preguntas y ganancias relativa a la seguridad de las cuentas o no haber devuelto nada.

Para configurar la propiedad minimumMatch para que devuelva preguntas y respuestas precisas en caso de mensajes cortos, introduzca el número de tokens que deben coincidir, un operador de tipo menor que (<) y el nivel de coincidencia necesario cuando el mensaje contenga un número mayor de tokens. Por ejemplo:
  qna:
    component: "System.QnA"
    properties:
      minimumMatch: "3<80%"
    transitions:
      actions:
        none: "unresolved"
      next: "intent"
En este fragmento, si el mensaje contiene entre 1 y 3 tokens, el par de preguntas y respuestas debe coincidir con todos ellos para que la aptitud lo devuelva al usuario. En este escenario, esta configuración solo devuelve un par de preguntas y respuestas que coincide con la seguridad de la cuenta. Si el mensaje tiene cuatro tokens o más, el par de preguntas y respuestas solo necesita la coincidencia con el 80% de ellos.
Si quiere ajustar la coincidencia mínima para mensajes más largos que contengan detalles agregados, puede graduar el número de tokens coincidentes necesarios (y disminuir simultáneamente el porcentaje). Por ejemplo, la configuración siguiente muestra cómo incluir mensajes que pueden contener más de nueve tokens:
  qna:
    component: "System.QnA"
    properties:
      minimumMatch: "3<80% 8<70% 12<65%"  
    transitions:
      actions:
        none: "unresolved"
      next: "intent"
Según la configuración de minimumMatch de este fragmento, la aptitud solo devuelve preguntas y respuestas cuando se establecen coincidencias de los siguientes tokens.
Número de tokens en el mensaje Número de tokens que deben coincidir
1 1
2 2
3 3
4 (80% coincidencia) 3 (3,2, redondeado a 3)
5 (80% coincidencia) 4
6 (80% coincidencia) 4 (4,8, redondeado a 4
7 (80% coincidencia) 5 (5,6, redondeado a 5)
8 (80% coincidencia) 6 (6,4 redondeado a 6)
9 (70% coincidencia) 6 (6,3, redondeado a 5)
10 (coincidencia del 70%) 7
11 (coincidencia del 70%) 7 (7,7, redondeado a 7)
12 (coincidencia del 70%) 8 (8,4, redondeado a 8)
13 (coincidencia del 65%) 8 (8,45, redondeado a 8)

Acciones de transición y asignaciones de clave-valor de keepTurn

Puede definir la propiedad keepTurn como una asignación cuyas claves describen las transiciones.
Clave Descripción Valor por Defecto
next Si se establece en false, la aptitud cede el control cuando el diálogo pasa al estado siguiente. La aptitud no procesa ninguna entrada del usuario hasta que el motor de diálogo pase al siguiente estado. false
none Si se establece en true, la aptitud mantiene el control cuando se dispara una acción de transición none, ya que no hay ninguna pregunta que se pueda devolver para la entrada del usuario. true
exit Si se establece en true, la aptitud mantiene el control cuando se dispara una acción de transición exit. true
textReceived Si se establece en true, la aptitud mantiene el control de la conversación cuando transitionOnTextReceived se establece en true, lo que indica al motor de diálogo que pase de estado. true

Transiciones de preguntas y respuestas

Nombre Descripción ¿Obligatoria?
none No se ha encontrado ninguna coincidencia para la entrada de usuario (lo que significa normalmente que el flujo direcciona a un estado que informa al usuario de que no se ha encontrado ninguna coincidencia).
exit El usuario sale del módulo de preguntas y respuestas. Por defecto, keepTurn se establece en true para esta acción. No