Intenciones: zep explica cómo hacer que los grandes modelos comprendan las intenciones de los clientes.

En el Procesamiento del Lenguaje Natural (PLN), la intención se refiere a la expresión por parte de un usuario de algún propósito, necesidad o deseo. Analizando los mensajes enviados por el usuario e identificando la intención que hay detrás de ellos, podemos responder con contenidos pertinentes. Por ejemplo, "pedir comida", "consultar el tiempo", "quiero ir a París" son intenciones válidas.

Para que el chatbot reconozca con precisión la intención del usuario, necesitamos definir un nombre y un conjunto de ejemplos para cada intención. El nombre es una etiqueta única que sirve para identificar la intención, y los ejemplos son expresiones de muestra que sirven para entrenar al chatbot en el reconocimiento de la intención. El nombre debe ser conciso, claro y coherente, y los ejemplos deben ser variados, típicos y cubrientes. Por ejemplo, podemos definir lo siguiente para la intención "pedir comida":

Nombre: order_food
Ejemplo:

  • Me gustaría pedir una pizza.
  • Un tazón de fideos con carne, por favor.
  • ¿Cuáles son sus especialidades?

Al definir diferentes intenciones, podemos permitir que los chatbots gestionen múltiples tipos de solicitudes de los usuarios y ofrezcan respuestas o acciones adecuadas en función de diferentes escenarios. Por ejemplo, si un usuario escribe "Quiero ir a París", el chatbot puede reconocerlo como una intención de "viaje" y proporcionar información y sugerencias sobre París en función de las preferencias y el presupuesto del usuario. De este modo, podemos crear un chatbot más inteligente, flexible y fácil de usar.

 

Presentación de intenciones

Zep identifica la intención de un mensaje y la guarda en los metadatos del mensaje. 💡 Con los datos de intención, los desarrolladores pueden construir interacciones corporales inteligentes más ricas y personalizadas. 🔥

En el campo del Procesamiento del Lenguaje Natural (PLN), extraer el significado del caos de la comunicación humana puede parecer desalentador. Hoy nos complace presentar una función importante, la extracción de intenciones, que aporta un valor más profundo para la comprensión en tiempo real.

Comprender la intención del usuario es la piedra angular del diseño de interacciones significativas y personalizadas en cualquier sistema de IA conversacional. Extraer la intención no consiste sólo en reconocer palabras o frases, sino en comprender lo que el usuario quiere decir en un contexto determinado. La personalización de las aplicaciones LLM (Large Language Model) requiere comprender la intención a lo largo de toda la conversación.

Nuestra nueva función:Extracción de intencioneses una valiosa herramienta para que las organizaciones aprovechen las interacciones con los clientes impulsadas por la IA.

 

¿Qué es la extracción de intenciones?

La extracción de intenciones es una tarea de PNL que consiste en reconocer el objetivo o propósito del usuario -lo que quiere hacer- a partir de sus entradas. Por ejemplo, un usuario puede decir: "Pon música alegre". La intención no es sólo "poner música", sino especificar el tipo de música: "alegre".

 

Intención de uso

Por defecto, Zep extrae automáticamente la intención de cada mensaje, y puedes activar o desactivar esta función editando config.yaml:

...
extractors:
summarizer:
enabled: true
entities:
enabled: true
intent:
enabled: true
embeddings:
enabled: true
dimensions: 1536
model: "AdaEmbeddingV2"
...

Por defecto, todas las conversaciones contendrán un metadato de "sistema" con una "intención" para cada mensaje almacenado en Zep.

 

La intención impulsa la personalización

El siguiente ejemplo ilustra cómo la intención puede combinarse con las preferencias del cliente para ayudar a impulsar interacciones personalizadas con los usuarios en un entorno de comercio electrónico:

Human: I'm looking for a new skincare product.
ZepMemory:
{
"uuid": "6026b3b7-3755-4d00-89d8-243ecfc45931",
"created_at": "2023-06-21T02:19:45.577522Z",
"role": "human",
"content": "I'm looking for a new skincare product.",
"metadata": {
"system": {
"intent": "The subject is expressing a need or want for a new skincare product."
}
"customer_firstname": "Alice",
"customer_id": "KDSJFJDSF",
"member_since": "03-01-2009",
"product_pref_tags": "eco-friendly, vegan"
},
"token_count": 11
}
AI: Of course, Alice. Based on your preference for eco-friendly and vegan products, I can recommend a few options. Are you looking for a specific type of skincare product like a cleanser, moisturizer, or serum?
ZepMemory:
{
"uuid": "30eb918d-4b3a-42a9-a64b-c79e01f87ec4",
"created_at": "2023-06-21T02:19:45.577522Z",
"role": "ai",
"content": "Of course, Alice. Based on your preference for eco-friendly and vegan products, I can recommend a few options. Are you looking for a specific type of skincare product like a cleanser, moisturizer, or serum?",
"metadata": {
"system": {
"intent": "The subject is offering recommendations for eco-friendly and vegan skincare options and inquiring about the specific type of product the person is looking for."
}
},
"token_count": 46
}
Human: I'm looking for a good face moisturizer.
ZepMemory:
{
"uuid": "f8ec855b-fd59-4084-a3d1-2b81857d5dcd",
"created_at": "2023-06-21T02:19:45.577522Z",
"role": "human",
"content": "I'm looking for a good face moisturizer.",
"metadata": {
"system": {
"intent": "The subject is searching for a specific type of facial skincare product."
}
},
"token_count": 12
}
AI: I recommend the 'Green Goddess' vegan moisturizer. It's a highly rated, eco-friendly product and is particularly effective for dry skin. Would you like to add this to your cart?
ZepMemory:
{
"uuid": "4e3d0fe8-5242-4c9c-8891-34636af1e576",
"created_at": "2023-06-21T02:19:45.577522Z",
"role": "ai",
"content": "I recommend the 'Green Goddess' vegan moisturizer. It's a highly rated, eco-friendly product and is particularly effective for dry skin. Would you like to add this to your cart?",
"metadata": {
"system": {
"intent": "The subject is making a product recommendation and asking if the listener would like to add it to their cart."
}
},
"token_count": 40
}
Human: Great, that should work!
ZepMemory:
{
"uuid": "5ec6a546-eec9-4b9d-b03d-11b142600a0a",
"created_at": "2023-06-21T02:19:45.577522Z",
"role": "human",
"content": "Great, that should work!",
"metadata": {
"system": {
"intent": "None."
}
},
"token_count": 8
}
]
}

 

¿Por qué es tan importante la extracción de intenciones?

A medida que el uso de chatbots de IA sigue creciendo en todos los ámbitos, la necesidad de que estos sistemas comprendan y respondan adecuadamente a la intención del usuario se ha vuelto más importante que nunca. La extracción de intenciones ayuda:

  • Experiencia de usuario mejorada: Al comprender la intención del usuario, los sistemas de IA pueden ofrecer respuestas pertinentes y personalizadas para aumentar su satisfacción.
  • Interacción simplificada: Ayuda a simplificar el diálogo identificando los objetivos del usuario al principio del intercambio.
  • Mayor eficacia: Al reconocer con precisión la intención del usuario, los sistemas de IA pueden empezar a realizar acciones en su nombre (por ejemplo, llamar a API, actualizar el sistema, etc.), mejorando así la eficiencia general de estos sistemas.

 

aplicación práctica

Los grandes modelos lingüísticos actuales son muy potentes en términos de comprensión, razonamiento e inferencia. Entonces, ¿cómo puede aprovechar el poder de la intención en sus aplicaciones?

Veamos cómo puede utilizarse realmente el ejemplo anterior en un entorno de producción real:

Human intents that we captured in this conversation:
1: "The subject is expressing a need or want for a new skincare product."
2: "The subject is searching for a specific type of facial skincare product."

Ahora que conocemos la intención, podemos analizar cómo los clientes han mantenido estas conversaciones en el pasado y utilizarlo para modelar varias formas posibles de interactuar con ellos en el futuro:

  • Clientes que han buscado productos para el cuidado de la piel en los últimos 7 días
  • Clientes que buscaron productos para el cuidado de la piel del rostro en el último mes
  • Clientes que buscan tipos específicos de productos en la categoría de cuidado de la piel

 

Así, si queremos reunir a todos los clientes que han buscado productos para el cuidado de la piel en los últimos siete días, podemos crear un grupo de clientes que incluya a todos los clientes que pretendan cumplir estos criterios.

# Use Zep SDK
search_results = await client.asearch_memory(
session_id=session_id,
search_payload=MemorySearchPayload(
metadata={
"start_date": "2023-06-02",
"end_date": "2023-06-09",
"where": {"jsonpath": "$[*]['metadata']['system']['intent'] == 'customers looking for skincare'"},
},
),
)
# You can also use Langchain
search_results = retriever.get_relevant_documents(
metadata={
"start_date": "2023-06-02",
"end_date": "2023-06-09",
"where": {"jsonpath": "$[*]['metadata']['system']['intent'] == 'customers looking for skincare'"},
},
)

 

Además, puede continuar este análisis para evaluar cuántos clientes con intención de comprar una crema hidratante para el cuidado de la piel acaban comprándola en lugar de un producto diferente pero relacionado (quizá un protector solar). Esto podría suponer una mejora de la base de clientes existente, o quizás una base de clientes adicional.

A continuación, cada uno de estos segmentos de clientes puede asignarse a un trayecto Prompt, que puede optimizarse para la personalización del usuario, la fidelidad a la marca, la coherencia de la respuesta u otros resultados empresariales.

from langchain.prompts import PromptTemplate, StringPromptTemplate
from langchain.chains import LLMChain
...
prompt = """you are a helpful shopping assistant. Use the User preferences and Recommendations to write back responses based on the following rules:
1. If the user has preference for {user_pref} then suggest {recommend_sku} products.
2. Make a helpful {prompt_journey_append} suggestion.
"""
prompt_journey.prompt = prompt
...
#
# an example of how a prompt_journey may be used
# prompt_journey may be implemented as a structure that
# contains different prompts that can be used and chained together
# for different customer segments
#
if customer_segment.tag == "ecofriendly":
prompt_journey.type = customer_segment.type
prompt_journey.append("eco-friendly face cream")
prompt_journey.suggest_top(eco_sku)
elif customer_segment.tag == "newcustomer":
prompt_journey.append("face cream with built in sun-protection?)
prompt_journey.suggest_top(spf_facecream)
# Now you can use the chosen prompt
prompt = PromptTemplate.from_template(prompt_journey.prompt)
chain = LLMChain(llm=ChatOpenAI(), prompt=prompt)
chain.run(input=input)

Un sistema automatizado relevante podría probar continuamente A/B diferentes rutas de Prompt basadas en la intención aprendida y cómo usted podría querer posicionar el producto.

Ahora podemos empezar a ver el poder de la intención a la hora de categorizar cómo interactúan los clientes con un producto y construir viajes Prompt, que pueden proporcionar un nivel más profundo de personalización en estas interacciones.

 

futuro de la inteligencia

Lo interesante de Intent es su potencial para las inteligencias autónomas de IA. Nos entusiasma la posibilidad de combinar una personalización profunda con flujos de trabajo que puedan activar API o llamar a sistemas externos en función de las acciones identificadas en el diálogo. Intent también puede utilizarse para depurar pasos, podar bucles de ejecución de inteligencia innecesarios y optimizar la ejecución rápida de inteligencia.

Comprender la intención es la clave de la interpretabilidad humana, la precisión y la repetibilidad de estos sistemas. Se trata de un campo emergente en el que los equipos experimentan e innovan con rapidez. Esperamos que esta función sea útil para diversos casos de uso.

Con el lanzamiento de Intent Extraction, pretendemos que la IA conversacional sea más personal, significativa y eficiente. Pruébela ahora y díganos qué le parece.

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...