Utilice crewAI para crear sistemas multimodales multiagente para la optimización de estanterías de venta minorista con watsonx.ai

Autor

Yohan Bensoussan

GenAI Architect @ IBM Build Lab

IBM

Anna Gutowska

AI Engineer, Developer Advocate

IBM

Imagine transformar el rendimiento de su tienda minorista con solo un teléfono inteligente y el poder de la inteligencia artificial (IA). Este no es un escenario futuro lejano: ¡es una realidad que las tiendas de venta minorista pequeñas y medianas pueden implementar hoy! En este tutorial, exploraremos un emocionante caso de uso del mundo real en el que los propietarios de tiendas y gerentes pueden utilizar la IA para optimizar la disposición de sus estantes, impulsar las ventas y mejorar la experiencia del cliente. Aprovecharemos tanto el último modelo de IBM Granite en este proyecto como el modelo de visión Llama 3.2 de Meta.

Los impactos de la IA generativa en la venta minorista

Con la llegada de la IA generativa basada en agentes, las pequeñas y medianas tiendas minoristas ahora tienen acceso a análisis y recomendaciones a nivel de expertos que alguna vez fueron dominio de las grandes corporaciones con equipos dedicados de ciencia de datos. Esta democratización de la tecnología de IA puede ser innovadora para su tienda local, boutique o cadena regional.

Esto es lo que hace que este enfoque sea tan revolucionario:

  • Simplicidad: todo lo que necesita para comenzar es una imagen simple de su tienda.
  • Experiencia bajo demanda: los agentes de IA actúan como su equipo personal de expertos de venta minorista, analizando su espacio y las tendencias actuales del mercado.
  • Perspectivas aplicables en la práctica: recibirá un plan detallado y práctico para reorganizar sus estantes para maximizar las ventas y la satisfacción del cliente.
  • Rentable: este enfoque elimina la necesidad de consultores costosos o sistemas de software complejos.
  • Adaptabilidad: a medida que cambian las tendencias del mercado, puede volver a analizar y ajustar rápidamente su tienda para mantenerse a la vanguardia.

Profundicemos en los detalles técnicos y veamos cómo funciona esta optimización minorista impulsada por IA, paso a paso. Al final de este tutorial, tendrá una comprensión clara de cómo implementar este sistema en su propia tienda, revolucionando potencialmente su espacio de venta minorista con el poder de la IA.

Esquema de arquitectura de agente multimodal

La historia detrás de la solución

Sarah es propietaria de una tienda de comestibles local que estaba luchando por competir con cadenas más grandes. A pesar de sus mejores esfuerzos, notó que ciertos productos no se vendían tan bien como deberían, mientras que otros estaban constantemente agotados. Un día, mientras reorganizaba su pasillo de productos frescos por tercera vez ese mes, se preguntó si había una mejor manera.

Ahí es donde entra en juego nuestra solución impulsada por IA. Con solo su teléfono inteligente y nuestro sistema inteligente, Sarah pudo transformar el rendimiento de su tienda. Profundicemos en cómo construir un sistema de este tipo.

Verduras y frutas orgánicas frescas en los estantes de los supermercados Estantes de Sarah

¿Qué es crewAI?

Podemos usar crewAI, una infraestructura de agentes de código abierto que orquesta las interacciones de los agentes en los equipos. El término "cuadrilla" se refiere a sistemas multiagente. Nuestra cuadrilla es un equipo de agentes que interpretan roles de expertos de venta minorista que están disponibles las 24 horas del día, los 7 días de la semana, cada uno con su propia especialidad. Las tareas pueden asignarse directamente a un agente o manejarse a través del proceso jerárquico de crewAI que evalúa roles específicos y disponibilidad.

Para los principiantes de crewAI, consulte el explicativo de crewAI junto con los documentos oficiales . En el repositorio oficial de crewAI GitHub, también puede encontrar ejemplos de equipos que realizan análisis de acciones, análisis de datos, RAG, integración de LangGraph y mucho más.

Conozca al equipo de venta minorista de IA

Echemos un vistazo al equipo de expertos en venta minorista de agentes que utilizaremos en este tutorial.

store_manager:
    role: Store Manager
    goal
        Analyze the shelves in the physical store and provide a detailed report
        to the market analyst to develop a detailed action plan with the insights.
    backstory
        As the Space Planner, you are responsible for examining the store's shelves,
        assessing product placement and optimizing space utilization.
        You have access to advanced tools for shelf visualization, which help you
        collect accurate data on the current arrangement of products.
        You are capable to translate market analysis into a plan for the store
        or specific shelf or department.

market_analyst:
    role: Market Trend Analyst
    goal
        Provide recommendations to rearrange the product arrangement based on market trends.
    backstory
        As the Market Analyst, you possess in-depth knowledge of market trends and consumer behavior.
        Your experience and keen sense of retail enable you to propose effective recommendations
        for specific shelves. You analyze reports provided by the Space Planner to suggest
        improvements that enhance sales and customer experience.

Flujo de trabajo de tareas

El flujo de trabajo de la tarea es el siguiente.

analyze_shelf:
    description:
        Use the Vision Tool to collect visual data and caption the current product arrangement.
        Conduct a thorough analysis of shelf {shelf} in the store.
        Prepare a detailed report highlighting the current layout, products,
        product placement and any observed issues.
        Ensure the report is detailed at the level of product names.
    expected_output:
        A comprehensive report on shelf {shelf}, including visual data,
        analysis of product placement, space utilization and any recommendations for improvement.
    agent: store_manager

provide_recommendations:
    description:
        Review the report on shelf {shelf} provided by the Store Manager.
        Utilize your knowledge of the retail market and internet to assess current trends
        relevant to the products in this shelf ({shelf}).
        Develop expert recommendations to optimize sales and customer satisfaction.
        Ensure the recommendations are detailed and includes details like product names.
    expected_output:
        A set of actionable recommendations for rearranging the {shelf} shelf,
        aligned with current market trends and consumer preferences.
    agent: market_analyst

create_action_plan:
    description:
        List the recommendations from the Market Analyst,
        then develop a detailed action plan for Store manager and Store buyer
        to implement the changes.
        Ensure the plan is practical and outlines the steps needed to rearrange
        the products effectively.
        Be smart and well explained.
        Give the explanation of your recommendations and the goal to achieve.
    expected_output:
        A detailed list of recommendation and action plan for rearranging and
        improving the {shelf} shelf according to market trends,
        including market analyst recommendations and translation into
        practical tasks for the Store manager and the Buyer.
    agent: store_manager

Pasos

Puedes encontrar este proyecto en Github.

Paso 1. Configure su entorno

Primero tenemos que configurar nuestro entorno. Puede encontrar estos pasos en el archivo Markdown en GitHub o siguiendo aquí.

  • Asegúrese de tener Python >=3.10 <=3.13 instalado en su sistema. Puede verificar su versión de Python usando el comando python3 --version .
  • Configure un entorno virtual para evitar conflictos de dependencia de paquetes de Python.
python3 -m venv myenv
source ./myenv/bin/activate
  • Clone el repositorio utilizando https://github.com/IBM/ibmdotcom-tutorials.git como URL HTTPS. Para conocer los pasos detallados sobre cómo clonar un repositorio, consulte la documentación de GitHub.

La estructura del proyecto del directoriocrew-ai-projects debe ser similar a lo siguiente:

src/my_retail_advisor/

├── config/
│ ├── agents.yaml # Agent configurations
│ └── tasks.yaml # Task definitions
├── tool/
│ ├── custom_tool.py # Custom crewAI tool implementations
│ └── tool_helper.py # Vision helper functions
├── crew.py # Crew orchestration
└── main.py # Application entry point

Paso 2. Obtenga las credenciales de la API de watsonx

  1.  Inicie sesión en watsonx.ai con su cuenta de IBM Cloud.
  2. Cree un proyecto watsonx.ai. Tome nota de su ID de proyecto en project > Manage > General > Project ID. Necesitará este ID para este tutorial.
  3. Cree una instancia de servicio watsonx.ai Runtime (elija el plan Lite, que es una instancia gratuita).
  4. Genere una clave de API de watsonx .
  5. Asocie el servicio watsonx.ai Runtime al proyecto que creó en watsonx.ai.

Paso 3. Obtenga las credenciales de la API de Serper

Genere y tome nota de su clave de API Serper gratuita. Serper es una API de búsqueda de Google que usaremos en este proyecto.

Paso 4. Instale crewAI y configure sus credenciales

Necesitamos instalar la infraestructura de crewAI para este tutorial y establecer las credenciales de watsonx.ai que generamos en el paso 2.

Para instalar crewAI, ejecute el siguiente comando en su terminal.

%pip install 'crewai[tools]'

 

En un archivo .env  en el mismo nivel de directorio que el archivo .env_sample,  establezca sus credenciales como cadenas de la siguiente manera:

WATSONX_APIKEY=your_watson_api_key_here
WATSONX_PROJECT_ID=your_watsonx_project_id_here
WATSONX_URL=your_endpoint (e.g. "https://us-south.ml.cloud.ibm.com")
SERPER_API_KEY=your_serper_api_key_here

Paso 5. Personalice el equipo (opcional)

crewAI se puede configurar para usar cualquier modelo de lenguaje extenso de código abierto. Los LLM se pueden conectar a través de Ollama y varias otras API, como IBM watsonx y OpenAI. Los usuarios también pueden aprovechar las herramientas predefinidas disponibles a través del kit de herramientas de crewAI, así como las herramientas LangChain.

Nuestra herramienta de búsqueda visual personalizada está impulsada por el llama-3-2-90b-vision-instruct modelo con watsonx.ai. A continuación se muestra un vistazo a la herramienta de visión personalizada en el directorio de herramientas.

# tool/custom_tool.py
from crewai.tools import BaseTool
from my_retail_advisor.tools.tool_helper import Helper

class VisionTool(BaseTool):
name: str = "Vision Tool"
description: str = "Analyzes a default picture to collect visual data."

def _run(self) -> str:
# Relative path to the shelf.jpg image from the working crew-ai/my_retail_advisor directory
image_path = 'images/shelf.jpg'

# Simulating image-to-text conversion
products_in_image = Helper.image2text(image_path)
return products_in_image

Hay muchas maneras de personalizar su equipo:

  • Modifique src/my_retail_advisor/config/agents.yaml para definir a sus agentes.
  • Modifique src/my_retail_advisor/config/tasks.yaml  para definir sus tareas.
  • Modifique src/my_retail_advisor/crew.py para agregar su propia lógica, herramientas y argumentos específicos.
  • Modifique src/my_retail_advisor/main.py para agregar entradas personalizadas para sus agentes y tareas.
  • Modifique src/my_retail_advisor/tool/custom_tool.py para agregar herramientas personalizadas para sus agentes y tareas.
  • Modifique src/my_retail_advisor/tool/tool_helper.py para cambiar la herramienta de visión personalizada basada en el modelo multimodal Llama.
  • Reemplace images/shelf.jpg con una imagen propia.

Paso 6. Ejecute el sistema

Asegúrese de estar en el directorio de trabajo adecuado de este proyecto. Puede cambiar de directorio ejecutando el siguiente comando en su terminal.

cd crew-ai-projects/my_retail_advisor

Para dar inicio a su equipo de agentes de IA y comenzar la ejecución de tareas, ejecute este comando desde la carpeta raíz de su proyecto. Tenga en cuenta que el equipo puede ejecutar durante varios minutos antes de devolver un resultado final.

crewai run

Este comando inicializa my-venta minorista-advisor Crew, reúne a los agentes y les asigna tareas según lo definido en su configuración. Este ejemplo, sin modificar, utilizará Granite en watsonx.ai para crear un report.md con la salida. crewAI puede devolver JSON, modelos Pydantic y cadenas sin procesar como salida. Aquí hay un ejemplo de la salida producida por el equipo.

Ejemplo de salida:

Plan de acción para reorganizar y mejorar el estante de verduras

Objetivo:
crear una sección de productos agrícolas visualmente atractiva y organizada que muestre las verduras más populares, aumente las ventas y mejore la satisfacción del cliente.

Recomendaciones del analista de mercado:

  1. Cree un punto focal con una exhibición colorida y llamativa de las verduras más populares.
  2. Utilice una variedad de colores, texturas y alturas para crear interés visual.
  3. Agrupe las verduras similares.
  4. Considere usar canastas, contenedores u otros contenedores para agregar una sensación natural y terrenal.
  5. Utilice la iluminación para resaltar productos o promociones específicos.
    ...

Plan de acción para el gerente de almacenar y el comprador de almacenar:

...

Paso 1: Visualización del punto focal

  • Administrador de almacenar: designe un área central en el estante para las verduras más populares (tomates, papas, cebollas, lechuga, zanahorias, pimientos, pepinos y apio).
  • Comprador: asegúrese de almacenar existencias suficientes de estas verduras para mantener una exhibición completa y atractiva.
  • Equipo: Organice las verduras de una manera visualmente atractiva, utilizando una variedad de colores, texturas y alturas.

...

Paso 4: Pantallas temáticas y características adicionales

  • Gerente de almacenar: planifique e implemente exhibiciones temáticas (por ejemplo, barbacoa de verano o temática festiva) para atraer a los clientes y promocionar productos relacionados.
  • Comprador: garantice un stock suficiente de materiales de exhibición temáticos y productos relacionados.
  • Equipo: use estantes o soportes para verduras para agregar espacio de exhibición adicional y crear una exhibición visualmente atractiva.

Conclusión

Como se ve en el resultado de muestra, el sistema multiagente puede ejecutar el proceso secuencial de procesar entradas, llamar a herramientas y formular hallazgos.

¿Recuerda el problema del pasillo de productos frescos de Sarah? Así es como el sistema la ayudó:

  1. Análisis visual: Sarah tomó una foto de su pasillo de verduras con su teléfono inteligente. El agente gerente de la tienda analizó la imagen y notó que los estantes están densamente llenos y necesitan mantenimiento.
  2. Investigación de mercado: el agente analista de mercado utilizó las tendencias actuales del mercado para las ventas de verduras y las preferencias de los clientes para crear recomendaciones aplicables en la práctica para reorganizar el estante de verduras.
  3. Plan de acción: con base en estos insights, Sarah recibió un plan detallado que incluía instrucciones para:
    • Cree una pantalla colorida y llamativa
    • Use canastas o contenedores para agregar una sensación natural a la exhibición.
    • Agregue una exhibición temática, como una barbacoa de verano o una exhibición temática festiva, para atraer a los clientes en productos relacionados.
    • Cree espacio entre los diferentes tipos de verduras para ordenar.
    • Mejorar la iluminación.

En resumen, el Crewmy-retail-advisor está compuesto por múltiples agentes de IA, cada uno con roles, objetivos y herramientas únicos. Estos agentes colaboran en una serie de tareas, definidas en config/tasks.yaml , aprovechando sus habilidades colectivas para lograr objetivos complejos. El archivo config/agents.yaml describe las capacidades y configuraciones de cada agente de su equipo.

Con herramientas impulsadas por IA como esta, los minoristas pequeños y medianos pueden optimizar su proceso de toma de decisiones. Al igual que Sarah, puede transformar el rendimiento de su tienda con Tecnología accesible, asequible y eficaz. Esta arquitectura también desbloquea otras oportunidades de IA en varios dominios, como el diseño de productos y la mejora de la experiencia del cliente. Su flexibilidad lo hace valioso más allá de la venta minorista, ya que permite a las empresas innovar y sobresalir en tareas específicas de las industrias.

Soluciones relacionadas
Desarrollo de agentes de IA de IBM 

Permita a los desarrolladores crear, desplegar y monitorear agentes de IA con el estudio IBM watsonx.ai.

Explore watsonx.ai
Agentes de IA y asistentes de IBM

Cree una productividad revolucionaria con uno de los conjuntos de capacidades más completos de la industria para ayudar a las empresas a crear, personalizar y gestionar asistentes y agentes de IA. 

Explore los agentes de IA
IBM Granite

Logre un ahorro de más del 90 % en costos de energía con los modelos más pequeños y abiertos de Granite, diseñados para mejorar la eficiencia de los desarrolladores. Estos modelos preparados para empresas ofrecen un rendimiento excepcional contra puntos de referencia de seguridad y en una amplia gama de tareas empresariales, desde la ciberseguridad hasta el RAG.

Explorar Granite
Dé el siguiente paso

Automatice sus complejos flujos de trabajo y cree una productividad revolucionaria con uno de los conjuntos de capacidades más completos de la industria para ayudar a las empresas a crear, personalizar y gestionar agentes y asistentes de IA. 

Explore el desarrollo de agentes de watsonx.ai Descubra watsonx Orchestrate