Renderizar respuestas de agentes para fuentes de datos de Looker

En esta guía se describen los enfoques recomendados para renderizar las salidas de la API Conversational Analytics en una interfaz de usuario (IU) mediante fuentes de datos de Looker.

Cuando un usuario consulta la API, la respuesta puede incluir pasos de razonamiento intermedios, además de la respuesta final. En esta guía se describe cómo renderizar respuestas de la API con diferentes niveles de detalle implementando una vista de respuesta principal y una vista de detalles completa:

  • La vista de respuesta principal muestra directamente la respuesta a la pregunta del usuario. Esta vista ofrece una presentación concisa y no incluye detalles sobre el razonamiento del agente al principio.
  • La vista de detalles muestra el proceso de razonamiento completo que sigue el agente para llegar a la respuesta final, incluidos todos los elementos de la vista de respuesta principal.

Un patrón de interfaz de usuario recomendado es mostrar la vista de respuesta principal de forma predeterminada y proporcionar un control de interfaz de usuario, como un botón o un interruptor, que permita a los usuarios cambiar a la vista de detalles completa. Aunque los detalles del razonamiento son útiles para validar la lógica, mostrarlos de forma predeterminada puede añadir información innecesaria para los usuarios que solo estén interesados en la respuesta final.

Vista principal de la respuesta

Para mostrar solo la respuesta directa final a la pregunta del usuario, sigue los pasos de esta sección. Esta vista se centra en el resultado final y excluye los pasos intermedios.

Directrices de renderización de mensajes del sistema

En la siguiente tabla se describen los mensajes del sistema que se consideran respuestas directas finales, así como recomendaciones sobre cómo renderizar estos mensajes.

Mensaje del sistema Directrices de renderización
DataQuery Renderiza con el resultado asociado. Renderiza este mensaje solo en los casos en los que renderices el mensaje DataResult correspondiente.

No renderices los mensajes DataQuery en los siguientes casos:
  • El campo name del mensaje DataQuery termina en _sample_values (por ejemplo, products_brand_sample_values).
  • El campo name del mensaje DataResult correspondiente termina en _sample_values.
  • El campo data del mensaje DataResult correspondiente está vacío.
Te recomendamos que coloques el texto de la consulta en un interruptor para mostrar la consulta de origen cuando sea necesario. Por ejemplo, Analíticas conversacionales en Looker usa el control "¿Cómo se ha calculado?".
DataResult Renderiza todos los mensajes DataResult, excepto los resultados intermedios y vacíos.

No renderices los mensajes DataResult en los siguientes casos:
  • El campo name termina en _sample_values. Estos son los pasos intermedios para obtener valores de muestra de un campo específico.
  • El campo data está vacío. Estos resultados se resumen en la respuesta final de TextMessage.
ChartResult Renderiza todos los gráficos. Renderiza todos los mensajes ChartResult en la respuesta de la API.
TextMessage Renderizar solo las respuestas finales. Renderiza los mensajes TextMessage solo cuando el valor de TextType es FINAL_RESPONSE.

Ejemplo: renderizar la vista de respuesta principal

Puedes implementar un interruptor, como Mostrar razonamiento, para que los usuarios puedan cambiar de la vista de respuesta principal a la vista de detalles completa.

Un interruptor con la etiqueta "Mostrar motivo" en estado contraído.

En la siguiente transcripción se muestra la vista principal de la respuesta. En el caso de los mensajes DataQuery, te recomendamos que ocultes los detalles de la consulta tras un interruptor insertado, indicado en la transcripción con un icono contraído (), para ofrecer acceso opcional a la lógica de la consulta subyacente.

Usuario: Compara las ventas totales del grupo Cymbal en el 2022 y el 2023. Representa el resultado en un gráfico.

Agente:

Aquí tienes el resultado de la consulta Ventas totales de Cymbal Group en el 2022 y el 2023.

Año de creación Ventas totales
2023 $96,627.00
2022 93.095,50 USD

Ventas totales de Cymbal Group en el 2022 y el 2023

Gráfico de barras que compara las ventas del 2022 y el 2023.

Las ventas totales de Cymbal Group en el 2022 fueron de 93.095,50 USD y, en el 2023, de 96.627,00 USD.

En la siguiente tabla se asignan los elementos de la interacción de ejemplo a los mensajes del sistema de la API correspondientes.

Elemento Mensaje de origen
Consulta generada (JSON oculto tras el botón de forma predeterminada) DataQuery
Tabla de datos DataResult
Gráfico de barras ChartResult
Respuesta de texto final TextMessage (FINAL_RESPONSE)

Vista de detalles completa

Sigue estas directrices para mostrar el proceso de razonamiento completo. Esta vista incluye todo lo que aparece en la vista de respuesta principal y muestra el contenido y los pasos en el orden en el que los genera el agente. En esta vista se muestran todos los pasos que sigue el agente para llegar a la respuesta final, incluidos su razonamiento y los datos intermedios.

Directrices de renderización para el razonamiento y la obtención de datos granulares

En la siguiente tabla se describen los mensajes del sistema que representan el razonamiento del agente y los pasos de recuperación detallados, así como recomendaciones sobre cómo mostrar estos mensajes.

Mensaje del sistema Directrices de renderización
TextMessage con un valor de TextType de THOUGHT Render reasoning steps. Muestra estos mensajes para que se vea el proceso de pensamiento interno del agente. Estos mensajes constan de dos partes:
  • parts[0] es el resumen de la reflexión, que resume brevemente el texto completo de la reflexión.
  • parts[1] es el texto completo del pensamiento
Si tu aplicación muestra actualizaciones de estado (como un indicador de carga o una barra de progreso), te recomendamos que muestres el resumen de la reflexión (parts[0]) como indicador de estado transitorio.
TextMessage con un valor de TextType de PROGRESS Mostrar mensajes PROGRESS. Muestra estos mensajes para obtener información valiosa sobre las acciones del agente. Se trata de mensajes informativos sobre el progreso del agente, como una herramienta que se está invocando. Esto es distinto del proceso de reflexión interno del agente (THOUGHT) y de la respuesta final al usuario (FINAL_RESPONSE). Estos mensajes constan de dos partes:
  • parts[0] es el resumen.
  • parts[1] es el texto completo del progreso.
DataQuery y DataResult con un nombre que termine en _sample_values Mostrar mensajes intermedios DataQuery y DataResult. Tanto los mensajes DataQuery como los DataResult con un campo name que termina en _sample_values son pasos intermedios para obtener datos granulares y no se muestran en la vista de respuesta principal. Inclúyelos en la vista de respuesta completa (detrás de un interruptor) para mostrar los pasos que sigue el agente.
DataResult con un campo data vacío Mostrar solo el mensaje DataQuery asociado. No muestres mensajes DataResult con el campo data vacío en ninguna vista. En la vista de detalles completa, muestra el mensaje DataQuery que ha dado lugar al resultado vacío (detrás de un interruptor). De esta forma, el usuario puede ver la consulta que se ha ejecutado aunque no haya devuelto ningún resultado. El resumen de la respuesta final (TextMessage con el tipo FINAL_RESPONSE) ya habrá informado al usuario de que la consulta no ha devuelto ningún dato.

Ejemplo: renderizar la vista de detalles completa

Cuando un usuario activa el interruptor Mostrar razonamiento, la interfaz de usuario muestra el razonamiento paso a paso del agente.

Un interruptor con la etiqueta "Mostrar motivo" en estado expandido.

En la siguiente transcripción se muestra la vista de detalles completa, incluidos los pasos de razonamiento. En el caso de los DataQuery mensajes, los detalles de la consulta se pueden mostrar de forma predeterminada, opcionalmente detrás de un interruptor insertado indicado por un icono ampliado (), como se muestra en la transcripción.

Usuario: Compara las ventas totales del grupo Cymbal en el 2022 y el 2023. Representa el resultado en un gráfico.

Agente:

Información sobre el esquema

Para comparar las ventas totales de "Cymbal Group" en el 2022 y el 2023, tengo que consultar la exploración "Artículos de pedido". Filtraré por el nombre de producto "Cymbal Group" y por los años 2022 y 2023. A continuación, recuperaré los campos Total Sales y Created Year.

Aquí tienes el resultado de la consulta Ventas totales de Cymbal Group en el 2022 y el 2023.

[
 {"model":"thelook","view":"order_items","fields":["order_items.total_sale_price","order_items.created_year"],
 "filters":{"order_items.created_year":"2022,2023","products.brand":"Cymbal Group"}}
]
Año de creación Ventas totales
2023 $96,627.00
2022 93.095,50 USD

Representar la distribución de las ventas

He obtenido las ventas totales de "Cymbal Group" en el 2022 y el 2023. Ahora voy a generar un gráfico para visualizar esta comparación y, después, te daré la respuesta final.

Genera un gráfico de barras que compare las ventas totales de "Cymbal Group" en el 2022 y el 2023. El eje X debe representar el año y el eje Y, las ventas totales.

Gráfico de barras que compara las ventas del 2022 y el 2023.

Las ventas totales de Cymbal Group en el 2022 fueron de 93.095,50 USD y, en el 2023, de 96.627,00 USD.

En la siguiente tabla se asignan los pasos de la interacción de ejemplo a los mensajes del sistema de la API correspondientes.

Elemento Mensaje de origen
"Interpretar el esquema" (resumen de la reflexión) TextMessage (tipo THOUGHT, parts[0])
"Para comparar las ventas totales..." (texto completo del pensamiento) TextMessage (tipo THOUGHT, parts[1])
Consulta generada (JSON que se muestra cuando se despliega el interruptor ) DataQuery
Tabla de datos DataResult
"Trazando la distribución de las ventas" (resumen de la reflexión) TextMessage (tipo THOUGHT, parts[0])
"He recuperado..." (texto completo del pensamiento) TextMessage (tipo THOUGHT, parts[1])
Gráfico de barras ChartResult
Respuesta de texto final TextMessage (FINAL_RESPONSE)