Despliega un servicio de autorespuesta de preguntas con la solución QnABot en AWS, impulsado por Amazon Lex con Amazon Kendra y modelos de lenguaje amplios

Despliega un servicio de autorespuesta de preguntas con QnABot en AWS, usando Amazon Lex, Amazon Kendra y modelos de lenguaje amplios.

Impulsado por Amazon Lex, la solución QnABot en AWS es un chatbot de conversación de código abierto, multicanal y multilingüe. QnABot le permite implementar rápidamente IA conversacional de autoservicio en su centro de contacto, sitios web y canales de redes sociales, reduciendo costos, acortando los tiempos de espera y mejorando la experiencia del cliente y la percepción de la marca. Ahora los clientes desean aplicar el poder de los modelos de lenguaje grandes (LLMs) para mejorar aún más la experiencia del cliente con capacidades de IA generativas. Esto incluye generar automáticamente respuestas precisas a partir de documentos y bases de conocimiento existentes de la empresa, y hacer que sus chatbots de autoservicio sean más conversacionales.

Nuestras últimas versiones de QnABot, v5.4.0 en adelante, ahora pueden utilizar un LLM para desambiguar las preguntas de los clientes teniendo en cuenta el contexto de la conversación, generando dinámicamente respuestas a partir de preguntas frecuentes relevantes o resultados de búsqueda y pasajes de documentos de Amazon Kendra. También proporciona atribución y transparencia al mostrar enlaces a los documentos de referencia y pasajes de contexto que fueron utilizados por el LLM para construir las respuestas.

Cuando implementa QnABot, puede elegir implementar automáticamente un modelo LLM de vanguardia de código abierto (Falcon-40B-instruct) en un punto de enlace de Amazon SageMaker. El panorama de LLM está en constante evolución, se lanzan nuevos modelos con frecuencia y nuestros clientes desean experimentar con diferentes modelos y proveedores para ver qué funciona mejor para sus casos de uso. Es por eso que QnABot también se integra con cualquier otro LLM utilizando una función de AWS Lambda que usted proporciona. Para ayudarlo a comenzar, también hemos lanzado un conjunto de funciones de Lambda de ejemplo desplegables con un solo clic (complementos) para integrar QnABot con su elección de los principales proveedores de LLM, incluido nuestro propio servicio Amazon Bedrock y las API de proveedores externos, Anthropic y AI21.

En esta publicación, presentamos las nuevas funciones de IA generativa para QnABot y realizamos un tutorial para crear, implementar y personalizar QnABot para utilizar estas funciones. También discutimos algunos casos de uso relevantes.

Nuevas funciones de IA generativa

Usando el LLM, QnABot ahora tiene dos nuevas características importantes, que discutimos en esta sección.

Generar respuestas a preguntas a partir de resultados de búsqueda de Amazon Kendra o pasajes de texto

Ahora QnABot puede generar respuestas concisas a preguntas a partir de extractos de documentos proporcionados por una búsqueda de Amazon Kendra, o pasajes de texto creados o importados directamente. Esto proporciona las siguientes ventajas:

  • Se reduce el número de preguntas frecuentes que necesita mantener e importar en QnABot, porque ahora puede sintetizar respuestas concisas sobre la marcha a partir de sus documentos existentes.
  • Las respuestas generadas se pueden modificar para crear la mejor experiencia en el canal previsto. Por ejemplo, puede establecer que las respuestas sean cortas, concisas y adecuadas para los bots de centros de contacto de canales de voz, y los bots de sitios web o texto podrían proporcionar información más detallada.
  • Las respuestas generadas son totalmente compatibles con el soporte multilingüe de QnABot: los usuarios pueden interactuar en sus idiomas elegidos y recibir respuestas generadas en el mismo idioma.
  • Las respuestas generadas pueden incluir enlaces a los documentos de referencia y pasajes de contexto utilizados para proporcionar atribución y transparencia sobre cómo el LLM construyó las respuestas.

Por ejemplo, cuando se le pregunta “¿Qué es Amazon Lex?”, QnABot puede recuperar pasajes relevantes de un índice de Amazon Kendra (que contiene documentación de AWS). Luego, QnABot le pide (indica) al LLM que responda la pregunta en función del contexto de los pasajes (que también se pueden ver opcionalmente en el cliente web). La siguiente captura de pantalla muestra un ejemplo.

Desambiguar preguntas de seguimiento que se basan en el contexto de la conversación anterior

Comprender la dirección y el contexto de una conversación en constante evolución es clave para construir interfaces conversacionales naturales, similares a las humanas. Las consultas de los usuarios a menudo requieren que un bot interprete solicitudes basadas en la memoria y el contexto de la conversación. Ahora, QnABot le pedirá al LLM que genere una pregunta desambiguada basada en el historial de la conversación. Esto se puede usar como una consulta de búsqueda para recuperar las preguntas frecuentes, los pasajes o los resultados de Amazon Kendra para responder la pregunta del usuario. El siguiente es un ejemplo de historial de chat:

Humano: ¿Qué es Amazon Lex?
IA: "Amazon Lex es un servicio de AWS para construir interfaces conversacionales para aplicaciones utilizando voz y texto..."
Humano: ¿Puede integrarse con mi CRM?

QnABot utiliza el LLM para reescribir la pregunta de seguimiento y hacerla “no ambigua”, por ejemplo, “¿Puede Amazon Lex integrarse con mi sistema CRM?” Esto permite a los usuarios interactuar como lo harían en una conversación humana, y QnABot genera consultas de búsqueda claras para encontrar las preguntas frecuentes relevantes o pasajes de documentos que tienen la información para responder la pregunta del usuario.

Estas nuevas características hacen que QnABot sea más conversacional y brindan la capacidad de generar respuestas de manera dinámica basadas en una base de conocimiento. Esta es todavía una característica experimental con un potencial tremendo. ¡Animamos encarecidamente a los usuarios a experimentar para encontrar el mejor LLM y las correspondientes indicaciones y parámetros del modelo para usar. QnABot facilita la experimentación!

Tutorial

¡Es hora de probarlo! Implementemos la última versión de QnABot (v5.4.0 o posterior) y habilitemos las nuevas características de Generative AI. Los pasos generales son los siguientes:

  1. Crea y completa un índice de Amazon Kendra.
  2. Elige e implementa un complemento LLM (opcional).
  3. Implementa QnABot.
  4. Configura QnABot para tu complemento de Lambda (si estás usando un complemento).
  5. Accede al cliente web de QnABot y comienza a experimentar.
  6. Personaliza el comportamiento utilizando las configuraciones de QnABot.
  7. Agrega preguntas frecuentes y pasajes de texto a la base de conocimiento.

Crea y completa un índice de Amazon Kendra

Descarga y utiliza la siguiente plantilla de AWS CloudFormation para crear un nuevo índice de Amazon Kendra.

Esta plantilla incluye datos de muestra que contienen documentación en línea de AWS para Amazon Kendra, Amazon Lex y SageMaker. La implementación de la pila demora aproximadamente 30 minutos y luego otros 15 minutos para sincronizar e ingresar los datos en el índice.

Cuando la pila del índice de Amazon Kendra se implemente correctamente, navega hasta la pestaña Outputs de la pila y toma nota del Id del Índice, que utilizarás más adelante al implementar QnABot.

Alternativamente, si ya tienes un índice de Amazon Kendra con tu propio contenido, puedes usarlo en lugar de los datos de ejemplo para el tutorial.

Elige e implementa un complemento LLM (opcional)

QnABot puede implementar un LLM integrado (Falcon-40B-instruct en SageMaker) o utilizar funciones de Lambda para llamar a otros LLM de tu elección. En esta sección, te mostramos cómo utilizar la opción de Lambda con una función de Lambda de muestra predefinida. Si deseas utilizar el LLM integrado en su lugar, omite este paso.

Primero, elige el complemento LLM que deseas utilizar. Revisa tus opciones en el archivo README del repositorio qnabot-on-aws-plugin-samples. Al momento de escribir esto, los complementos están disponibles para Amazon Bedrock (en vista previa) y para las API de terceros AI21 y Anthropic. Esperamos agregar más complementos de muestra con el tiempo.

Implementa el complemento elegido seleccionando Launch Stack en la sección Deploy a new Plugin stack, que se implementará en la región us-east-1 de forma predeterminada (para implementar en otras regiones, consulta los artefactos de AWS CloudFormation de Build and Publish QnABot Plugins).

Cuando el complemento se implemente correctamente, navega hasta la pestaña Outputs de la pila (ver la siguiente captura de pantalla) e inspecciona su contenido, que utilizarás en los pasos siguientes para implementar y configurar QnABot. Mantén esta pestaña abierta en tu navegador.

Implementa QnABot

Elige Launch Solution en la guía de implementación de QnABot para implementar la última plantilla de QnABot a través de AWS CloudFormation. Proporciona los siguientes parámetros:

  • Para DefaultKendraIndexId, utiliza el ID del índice de Amazon Kendra (un GUID) que recopilaste anteriormente
  • Para EmbeddingsApi (consulta Búsqueda semántica utilizando incrustaciones de texto), elige una de las siguientes opciones:
    • SAGEMAKER (el modelo de incrustaciones integrado por defecto)
    • LAMBDA (para utilizar la API de incrustaciones de Amazon Bedrock con el complemento BEDROCK-EMBEDDINGS-AND-LLM)
      • Para EmbeddingsLambdaArn, utiliza el valor de salida EmbeddingsLambdaArn de tu pila de complementos BEDROCK-EMBEDDINGS-AND-LLM.
  • Para LLMApi (consulta Desambiguación de consultas para recuperación conversacional y Preguntas y respuestas generativas), elige una de las siguientes opciones:
    • SAGEMAKER (el modelo de LLM integrado por defecto)
    • LAMBDA (para utilizar el complemento LLM implementado anteriormente)
      • Para LLMLambdaArn, utiliza el valor de salida LLMLambdaArn de tu pila de complementos

Para todos los demás parámetros, acepta los valores predeterminados (consulte la guía de implementación para definiciones de parámetros) y proceda a lanzar la pila de QnABot.

Configurar QnABot para su complemento Lambda (si se utiliza un complemento)

Si desplegó QnABot utilizando un complemento Lambda de muestra de LLM para acceder a un LLM diferente, actualice los parámetros del modelo de QnABot y los ajustes de la plantilla de indicaciones según lo recomendado para su complemento elegido. Para obtener más información, consulte Actualizar la configuración de QnABot. Si utilizó la opción LLM de SageMaker (integrada), vaya al siguiente paso, ya que la configuración ya está hecha para usted.

Acceda al cliente web de QnABot y comience a experimentar

En la consola de AWS CloudFormation, elija la pestaña Outputs de la pila de CloudFormation de QnABot y seleccione el enlace ClientURL. Alternativamente, inicie el cliente seleccionando QnABot en AWS Client en el menú de herramientas del Diseñador de contenido.

Ahora, intente hacer preguntas relacionadas con los servicios de AWS, por ejemplo:

  • ¿Qué es Amazon Lex?
  • ¿Cómo funciona la escalabilidad de las cargas de trabajo de inferencia de SageMaker?
  • ¿Es Kendra un servicio de búsqueda?

Luego, puede hacer preguntas de seguimiento sin especificar los servicios o el contexto mencionados anteriormente, por ejemplo:

  • ¿Es seguro?
  • ¿Se escalan?

Personalizar el comportamiento utilizando la configuración de QnABot

Puede personalizar muchas configuraciones en la página de Configuración del Diseñador de contenido de QnABot: consulte README – Configuración de LLM para obtener una lista completa de las configuraciones relevantes. Por ejemplo, pruebe lo siguiente:

  • Establezca ENABLE_DEBUG_RESPONSES en TRUE, guarde la configuración e intente nuevamente las preguntas anteriores. Ahora verá una salida de depuración adicional en la parte superior de cada respuesta, que muestra cómo el LLM genera la consulta de búsqueda de Amazon Kendra en función del historial de chat, cuánto tiempo tardaron las inferencias del LLM en ejecutarse y más. Por ejemplo:

    [Entrada del usuario: "¿Es rápido?", Consulta generada por el LLM (1207 ms): "¿Proporciona Amazon Kendra resultados de búsqueda rápidos?", Cadena de búsqueda: "¿Es rápido? / ¿Proporciona Amazon Kendra resultados de búsqueda rápidos?"["LLM: LAMBDA"], Origen: KENDRA RETRIEVE API
  • Establezca ENABLE_DEBUG_RESPONSES nuevamente en FALSE, establezca LLM_QA_SHOW_CONTEXT_TEXT y LLM_QA_SHOW_SOURCE_LINKS en FALSE e intente nuevamente los ejemplos. Ahora no se mostrarán los enlaces de contexto y fuentes, y la salida solo contendrá la respuesta generada por el LLM.

  • Si se siente aventurero, experimente también con la configuración de la plantilla de indicaciones del LLM: LLM_GENERATE_QUERY_PROMPT_TEMPLATE y LLM_QA_PROMPT_TEMPLATE. Consulte README – Configuración de LLM para ver cómo puede usar marcadores de posición para valores en tiempo de ejecución como el historial de chat, el contexto, la entrada del usuario, la consulta y más. Tenga en cuenta que las indicaciones predeterminadas probablemente se pueden mejorar y personalizar para adaptarse mejor a sus casos de uso, ¡así que no tenga miedo de experimentar! Si rompe algo, siempre puede volver a la configuración predeterminada utilizando la opción RESTABLECER A VALORES PREDETERMINADOS en la página de configuración.

Agregue preguntas y respuestas y pasajes de texto seleccionados a la base de conocimientos

Por supuesto, QnABot puede seguir respondiendo preguntas basadas en preguntas y respuestas seleccionadas. También puede usar el LLM para generar respuestas a partir de pasajes de texto creados o importados directamente en QnABot, además de utilizar el índice de Amazon Kendra.

QnABot intenta encontrar una buena respuesta a la pregunta del usuario desambiguada en la siguiente secuencia:

  1. Elementos de preguntas y respuestas
  2. Elementos de pasajes de texto
  3. Índice de Amazon Kendra

Intentemos algunos ejemplos.

En el menú de herramientas del Diseñador de contenido de QnABot, elija Importar y luego cargue los dos paquetes de ejemplo:

  • TextPassages-NurseryRhymeExamples
  • blog-samples-final

QnABot puede utilizar incrustaciones de texto para proporcionar capacidad de búsqueda semántica (utilizando el índice OpenSearch incorporado de QnABot como un almacén de vectores), lo que mejora la precisión y reduce la ajuste de preguntas, en comparación con la coincidencia basada en palabras clave de OpenSearch estándar. Para ilustrar esto, prueba preguntas como las siguientes:

  • “Cuéntame sobre el dispositivo Alexa con pantalla”
  • “Cuéntame sobre el dispositivo de transmisión de video de Amazon”

Estas preguntas deberían coincidir idealmente con la muestra de QNA que importaste, incluso si las palabras utilizadas para hacer la pregunta no son una coincidencia de palabras clave adecuada (pero sí una buena coincidencia semántica) con los elementos de QnA configurados: Alexa.001 (¿Qué es un Amazon Echo Show) y FireTV.001 (¿Qué es un Amazon Fire TV).

Incluso si no estás utilizando (aún) Amazon Kendra (¡y deberías hacerlo!), QnABot también puede responder preguntas basadas en pasajes creados o importados en Content Designer. Las siguientes preguntas (y preguntas de seguimiento) se responden todas a partir de un elemento de pasaje de texto importado que contiene la rima infantil 0.HumptyDumpty:

  • “¿Dónde se sentó Humpty Dumpty antes de caer?”
  • “¿Qué pasó después de que cayó? ¿Estaba bien?”

Cuando se utilizan incrustaciones, una buena respuesta es una respuesta que devuelve una puntuación de similitud por encima del umbral definido por la configuración de umbral correspondiente. Consulta Coincidencia semántica de preguntas, utilizando incrustaciones de texto de modelos de lenguaje grandes para obtener más detalles sobre cómo probar y ajustar la configuración de umbral.

Si no hay respuestas adecuadas o si la respuesta de LLM coincide con la expresión regular definida en LLM_QA_NO_HITS_REGEX, entonces QnABot invoca el comportamiento de “No lo sé” personalizable (no_hits), que, por defecto, devuelve un mensaje que dice “Me dejaste perplejo”.

Realiza algunos experimentos creando preguntas y respuestas o elementos de pasaje de texto en QnABot, así como utilizando un índice de Amazon Kendra para respuestas generativas de respaldo. Experimenta (utilizando la pestaña PRUEBA en el diseñador) para encontrar los mejores valores a utilizar para la configuración del umbral de incrustación para obtener el comportamiento deseado. Es difícil encontrar el equilibrio perfecto, pero intenta encontrar un equilibrio lo suficientemente bueno que resulte en respuestas útiles la mayoría de las veces.

Limpieza

<p,Puedes, por supuesto, dejar que QnABot siga funcionando para experimentar con él y mostrárselo a tus colegas. Pero esto conlleva algunos costos; consulta Planifica tu implementación – Costos para obtener más detalles. Para eliminar los recursos y evitar costos, elimina las siguientes pilas de CloudFormation:

  • Pila de QnABot
  • Pila de complemento de LLM (si corresponde)
  • Pila de índice de Amazon Kendra

Ejemplos de casos de uso

Estas nuevas características hacen que QnABot sea relevante para muchos casos de uso de clientes, como bots de autoservicio de servicio al cliente y soporte técnico y bots de preguntas y respuestas basados en la web automatizados. Discutimos dos casos de uso de este tipo en esta sección.

Integración con un centro de contacto

Las capacidades de respuesta automática a preguntas de QnABot ofrecen un autoservicio efectivo para llamadas de voz entrantes en centros de contacto, con resultados convincentes. Por ejemplo, mira cómo el Kentucky Transportation Cabinet redujo el tiempo de espera en llamadas y mejoró la experiencia del cliente con agentes virtuales de autoservicio utilizando Amazon Connect y Amazon Lex. La integración de las nuevas funciones de IA generativa fortalece aún más esta propuesta de valor al generar dinámicamente respuestas confiables a partir de contenido existente, como documentos, bases de conocimientos y sitios web. Esto elimina la necesidad de que los diseñadores de bots anticipen y seleccionen manualmente las respuestas a todas las posibles preguntas que un usuario pueda hacer. Para integrar QnABot con Amazon Connect, consulta Conexión de QnABot de AWS a un centro de llamadas de Amazon. Para integrarse con otros centros de contacto, consulta cómo se puede utilizar el SDK de Amazon Chime para conectar bots de voz de Amazon Lex con centros de contacto de terceros mediante SIPREC y Cómo crear un agente virtual con inteligencia artificial para Genesys Cloud utilizando QnABot y Amazon Lex.

El QnABot alimentado por LLM también puede desempeñar un papel fundamental como asistente automatizado en tiempo real para agentes. En esta solución, QnABot escucha de manera pasiva la conversación y utiliza el LLM para generar sugerencias en tiempo real para los agentes humanos basándose en ciertas señales. Es fácil de configurar y probar, ¡inténtalo! Esta solución se puede utilizar tanto con Amazon Connect como con otros centros de contacto en las instalaciones y en la nube. Para obtener más información, consulta Analítica de llamadas en vivo y asistencia para agentes en tu centro de contacto con los servicios de IA de lenguaje de Amazon.

Integrar con un sitio web

Insertar QnABot en tus sitios web y aplicaciones permite a los usuarios obtener asistencia automatizada con diálogos naturales. Para obtener más información, consulta Cómo implementar una interfaz de usuario web para tu Chatbot. Para contenido de preguntas y respuestas seleccionadas, utiliza la sintaxis de markdown y botones de interfaz de usuario, e incorpora enlaces, imágenes, videos y otros elementos dinámicos que informen y deleiten a tus usuarios. Integra la interfaz web QnABot de Amazon Lex con el chat en vivo de Amazon Connect para facilitar una rápida escalación a agentes humanos cuando el asistente automatizado no pueda abordar completamente la consulta del usuario por sí mismo.

QnABot en el repositorio de muestras de complementos de AWS

Como se muestra en esta publicación, QnABot v5.4.0+ no solo ofrece soporte incorporado para incrustaciones y modelos LLM alojados en SageMaker, sino que también ofrece la capacidad de integrarse fácilmente con cualquier otro LLM mediante el uso de funciones Lambda. Puedes crear tus propias funciones Lambda personalizadas o comenzar más rápido con una de las muestras que hemos proporcionado en nuestro nuevo repositorio de muestras de complementos qnabot-on-aws.

Este repositorio incluye un complemento listo para implementar para Amazon Bedrock, que admite tanto solicitudes de incrustaciones como de generación de texto. Al momento de escribir este artículo, Amazon Bedrock está disponible a través de una vista previa privada; puedes solicitar acceso a la vista previa. Cuando Amazon Bedrock esté disponible de forma general, esperamos integrarlo directamente con QnABot, ¿pero por qué esperar? ¡Solicita acceso a la vista previa y utiliza nuestro complemento de muestra para comenzar a experimentar!

El ciclo de innovación actual de LLM está impulsando un ritmo frenético de nuevos lanzamientos de modelos, cada uno con el objetivo de superar al anterior. Este repositorio se expandirá para incluir muestras adicionales de complementos de QnABot con el tiempo. Hasta la fecha de este artículo, ofrecemos soporte para dos proveedores de modelos de terceros: Anthropic y AI21. Planeamos agregar integraciones para más LLM, incrustaciones y posiblemente ejemplos de casos de uso comunes que involucren ganchos Lambda y bases de conocimiento. Estos complementos se ofrecen tal cual, sin garantía, para tu comodidad: los usuarios son responsables de su soporte y mantenimiento una vez implementados.

Esperamos que el repositorio de complementos de QnABot se convierta en un proyecto comunitario de código abierto próspero. Sigue el repositorio de GitHub qnabot-on-aws-plugin-samples para recibir actualizaciones sobre nuevos complementos y características, utiliza el foro de Problemas para informar problemas o brindar comentarios, y contribuye con mejoras mediante solicitudes de extracción. ¡Las contribuciones son bienvenidas!

Conclusión

En esta publicación, presentamos las nuevas características de IA generativa para QnABot y detallamos una solución para crear, implementar y personalizar QnABot para utilizar estas características. También discutimos algunos casos de uso relevantes. Automatizar consultas repetitivas libera a los trabajadores humanos y aumenta la productividad. Las respuestas enriquecedoras crean experiencias atractivas. Al implementar QnABot con capacidades de LLM, puedes mejorar la experiencia de autoservicio para clientes y empleados.

No pierdas esta oportunidad, ¡comienza hoy mismo y revoluciona la experiencia del usuario en tu implementación de QnABot!

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Ciencia de Datos

Investigadores enseñan a una IA a escribir mejores leyendas de gráficos

Un nuevo conjunto de datos puede ayudar a los científicos a desarrollar sistemas automáticos que generen leyendas más...

Inteligencia Artificial

Las 5 Mejores Herramientas de IA para Maximizar la Productividad

VoAGI revisa un conjunto diverso de 5 herramientas de IA para ayudar a maximizar tu productividad. Echa un vistazo y ...

Inteligencia Artificial

Principales bibliotecas de procesamiento de imágenes en Python

La visión por computadora es una rama de la inteligencia artificial (IA) que permite a las computadoras y sistemas ex...

Inteligencia Artificial

ULTRA Modelos de base para el razonamiento del gráfico de conocimiento

Entrenar un solo modelo genérico para resolver conjuntos de datos arbitrarios siempre ha sido un sueño para los inves...

Inteligencia Artificial

Gafas de realidad virtual para ratones crean escenarios inmersivos para la investigación cerebral

Investigadores de la Universidad Northwestern desarrollaron gafas de realidad virtual para ratones.

Noticias de Inteligencia Artificial

Wimbledon introduce comentarios impulsados por inteligencia artificial (IA)

¡Noticias emocionantes para los entusiastas del tenis! Wimbledon, uno de los torneos de tenis más prestigiosos del mu...