Modelos de IA generativa: mejora de la experiencia del usuario de análisis de marketing

        Utilice inteligencia artificial generativa para mejorar la experiencia analítica, permitiendo a los usuarios comerciales solicitar cualquier información sobre los datos disponibles en nuestra plataforma de datos.

        En este artículo, explicamos cómo utilizar un nuevo modelo de inteligencia artificial generativa (LLM) para mejorar la experiencia de los usuarios comerciales en nuestra plataforma de análisis. Supongamos que proporcionamos a los gerentes de ventas minoristas una aplicación web o una aplicación móvil que puede analizar el comportamiento de las ventas y el inventario en tiempo real utilizando lenguaje natural.

        Estas aplicaciones suelen tener una serie de limitaciones y muestran principalmente tipos genéricos de análisis que el usuario puede filtrar o segmentar en función de ciertos filtros y proporcionar información como:

  • comportamiento de ventas
  • vender a través de
  • Agotado
  • comportamiento de las acciones

        Todos estos datos, independientemente de su granularidad, pueden responder una pregunta que alguien haya identificado previamente. El problema es que no todos los usuarios tienen el mismo problema, y ​​en ocasiones el nivel de personalización es tan alto que la solución se convierte en una gran ballena. La mayoría de las veces la información está disponible, pero no hay tiempo para incluirla en una aplicación web.

En los últimos años han aparecido en el mercado varias soluciones low-code con el objetivo de acelerar el desarrollo de aplicaciones para responder lo más rápidamente posible a las necesidades de estos usuarios. Todas estas plataformas requieren algunos conocimientos técnicos. El modelo LLM nos permite interactuar con los usuarios en lenguaje natural y traducir sus preguntas a código y llamar a API en nuestra plataforma, permitiéndonos brindarles información valiosa de manera ágil.

Casos de uso de la plataforma de marketing de IA generativa

Para mejorar nuestra plataforma de ventas, podemos incluir dos casos de uso:

1. Iterar las preguntas de análisis empresarial

Permita que los usuarios comerciales hagan preguntas iterativas sobre los datos en nuestra plataforma de datos con las siguientes características:

  • Poder hacer preguntas en lenguaje natural, puede ser interactivo, pero también debe permitir al usuario guardar sus preguntas personalizadas.
  • Las respuestas se basarán en datos actualizados.

2. Cuenta una historia

        Cuando proporcionas a los usuarios empresariales datos sobre el porcentaje de ventas, una parte fundamental es el storytelling. Esto mejora la comprensión y convierte los datos en información valiosa. Sería fantástico si pudiéramos poner esta explicación a disposición del usuario en lenguaje natural, en lugar de que el usuario tenga que interpretar las métricas.

Ejemplo: diseño de marketing por chat

descripción general

        Esta es una idea que es muy simple de implementar y aporta mucho valor comercial a los usuarios. Entrenaremos nuestro modelo LLM para poder hacer preguntas para comprender qué servicio de datos proporciona información. Para ello, nuestra arquitectura debe cumplir tres requisitos:

Todos los datos se exponen a través de API.
Todas las entidades de datos están definidas y documentadas.
Contamos con una capa API estandarizada.


El siguiente diagrama muestra la arquitectura de esta solución de alto nivel:

 

  • Merchandising AI Web Platform : un canal de red basado en Vue que utiliza el chat para promocionar a través de los usuarios.
  • Servicio de datos : proporciona API Rest para consumir entidades de datos comerciales disponibles en la plataforma de datos. 
  • Chat Merchandising Engine : Un servicio backend de Python que realiza la integración entre el frontend y el servicio LLM; en este caso utilizamos la API Open AI.
  • Open AI : proporciona una API Rest para acceder a modelos de IA generativos.
  • Dominios de datos comerciales y repositorios de datos : los almacenes de datos de próxima generación, como Snowflake, se modelan a partir de los dominios de datos disponibles para las entidades comerciales.

        En esta PoC usamos el servicio OpenAI, pero puede usar cualquier otro SaaS o implementar su LLM; otro punto importante es que en este caso de uso, no enviaremos ningún dato comercial al servicio OpenAI, porque el modelo LLM lo hace todo  . es convertir las solicitudes de los usuarios en lenguaje natural en solicitudes de nuestros servicios de datos.

Plataforma de red de inteligencia artificial de marketing

        Con LLM y UI generativa, el front-end gana nueva relevancia, la forma en que los usuarios interactúan con él y cómo el front-end responde a las interacciones; ahora tenemos un nuevo actor, la IA generativa, que necesita interactuar con el front-end para gestionar solicitudes de los usuarios.
        La interfaz debe proporcionar contexto a los mensajes de los usuarios y poder mostrar las respuestas de la forma que el usuario desee. En esta PoC obtendremos diferentes tipos de respuestas del modelo:

Matriz de datos para mostrar en la tabla:

 

Matriz de datos para mostrar en el gráfico:

 

        El front-end necesita saber cómo se comporta el modelo o lo que el usuario quiere ver en la respuesta según lo solicitado; por ejemplo, si el usuario solicita un gráfico, el front-end necesita representar un gráfico; si solicita una tabla, el La interfaz debe representar una tabla, si se acaba de probar, se muestra el texto (incluso si hay un error, debemos mostrarlo de manera diferente).

Entramos en la respuesta del motor de ofertas de chat (tanto en backend como en frontend):

export interface TextChatResponse {
  type: 'text'
  text: string
}

export interface TableDataChatResponse {
  type: 'table-data'
  data: TableData
}

export interface ChartChatResponse {
  type: 'chart'
  options: EChartOptions
}

export interface ErrorChatResponse {
  type: 'error'
  error: string
}

export type ChatResponse = TextChatResponse | TableDataChatResponse | ErrorChatResponse | ChartChatResponse

Así es como decidimos qué componente mostrar.

<div class="chat-messages">
  <template v-for="(message, index) in messages" :key="index">          
	<q-chat-message
      v-if="message.type === 'text'"
      :avatar="message.avatar"
      :name="message.name"
      :sent="message.sent"
      :text="message.text"
    />    
    <div class="chart" v-if="message.type === 'chart'">
      <v-chart :option="message.options" autoresize class="chart"/>
    </div>
    <div class="table-wrapper"  v-if="message.type === 'table-data'">
	  <q-table :columns="getTableCols(message.data)" :rows="message.data" dense></q-table>
    </div>
  </template>
</div>

        Con este enfoque, el front end puede recibir mensajes de forma estructurada y saber mostrar los datos: como texto, como tabla, como gráfico o lo que se te ocurra, y también es muy útil para el back end, ya que puede obtener los datos del canal lateral.

        Para gráficos, puede configurar todo lo relacionado con el gráfico (para cualquier tipo de gráfico) en un objeto JS, de modo que en la próxima iteración de la PoC, puede preguntarle al modelo para ese objeto, y él puede decirnos cómo representar el gráfico. gráfico, o incluso es un tipo de gráfico más adecuado para los datos, etc.

Motor de marketing por chat

        Nuestra lógica en el motor es muy simple: su trabajo es simplemente actuar como puerta de enlace entre el front-end, el servicio abierto de IA y nuestro servicio de datos. Esto es necesario porque los modelos Open AI no están entrenados en nuestro entorno de servicio. Nuestro motor se encarga de proporcionar ese contexto. La poca lógica que incluimos en este motor estará en la capa de servicio frontal si el modelo está entrenado.

         Implementamos este servicio usando Python, ya que Open AI proporciona una biblioteca para facilitar la integración con su API. Estamos usando la API de finalización de chat (modelo gpt-3.5-turbo), pero podemos usar la llamada de función de nueva característica (modelo gpt-3.5-turbo-0613).

# Initial context
messages=[
            {"role": "system", "content": API_description_context},
            {"role": "system", "content": load_openapi_specification_from_yaml_to_string()},
            {"role": "system", "content": entities},
        ]

# Add User Query to messages array
messages.append({"role": "user", "content": user_input})

# Call Open AI API
response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=messages,
  temperature=0
)

# Get messages

generated_texts = [
            choice.message["content"].strip() for choice in response["choices"]
        ]

Usamos descripciones en lenguaje natural para formar el contexto, incluidos algunos ejemplos, especificaciones de API y definiciones de API.

Merchandasing Data Service is an information query API, based on OPEN API 3, 
this is an example of URL http://{business_domain}.retail.co/data/api/v1/{
   
   {entity}}.
  
Following parameters are included in the API: "fields" to specify the attributes of the entity that we want to get; 
"filter" to specify the conditions that must satisfy the search;

For example to answer the question of retrieving the products that are not equal to the JEANS family a value 
would be  products that are not equal to the JEANS family a value would be filter=familyName%%20ne%%20JEANS

Analizamos la respuesta y utilizamos expresiones regulares para obtener la URL resultante, aunque podríamos elegir otra estrategia con algunas comillas especiales.

def find_urls(model_message_response):
    # Patrón para encontrar URLs
    url_pattern = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')
    urls = re.findall(url_pattern, model_message_response)
    return urls

        También le pedimos al modelo que agregue un fragmento (por ejemplo, #chart) en la URL para saber qué espera ver el usuario en la interfaz.

        Esta solución es mucho mejor que buscar cadenas en la entrada del usuario, porque el usuario puede solicitar un gráfico sin usar palabras de gráfico (es decir, un modelo) que "entienda" quién decide usar el gráfico para representar el problema.

        Finalmente, enviamos esta respuesta de regreso al front end, ya que la llamada al servicio de datos se realiza desde el propio front end, lo que nos permite utilizar el token JWT del propio usuario para consumir el servicio de datos.

en conclusión

        En los últimos años, muchas organizaciones y equipos se han comprometido a contar con arquitecturas ágiles, buen gobierno de datos y estrategias de API que les permitan adaptarse al cambio de manera ágil. Los modelos de IA generativa pueden proporcionar un enorme valor empresarial y empezar a generar valor con muy poco esfuerzo.
        Desarrollamos este PoC en unas pocas horas, como puede ver en el video, usando Vue3, Quasar Ui para componentes y tablas básicos, y Echarts para renderizar gráficos y Open AI. No hay duda de que los algoritmos son la nueva tendencia y serán clave para las estrategias basadas en datos; las organizaciones que comienzan con arquitecturas estandarizadas y ágiles lideran el camino en este desafío.

Supongo que te gusta

Origin blog.csdn.net/qq_28245905/article/details/132224657
Recomendado
Clasificación