Usa crewAI per creare sistemi multiagente multimodali per l'ottimizzazione degli scaffali nel retail con watsonx.ai

Autore

Yohan Bensoussan

GenAI Architect @ IBM Build Lab

IBM

Anna Gutowska

AI Engineer, Developer Advocate

IBM

Immagina di trasformare le prestazioni del tuo negozio retail semplicemente con uno smartphone e la potenza dell'intelligenza artificiale (AI). Non si tratta di uno scenario futuro lontano, ma di una realtà che i negozi retail di piccole e medie dimensioni possono implementare subito. In questo tutorial, esploreremo un interessante caso d'uso reale in cui proprietari e gestori di negozi possono utilizzare l'AI per ottimizzare le disposizioni degli scaffali, aumentare le vendite e migliorare l'esperienza del cliente. Utilizzeremo sia l'ultimo modello IBM Granite che il modello di visione Llama 3.2 di Meta.

Gli impatti dell'AI generativa sul retail

Con l'avvento dell'AI generativa basata su agenti, i negozi retail di piccole e medie dimensioni hanno ora accesso ad analisi di livello esperto e raccomandazioni che un tempo erano di competenza delle grandi aziende con team di data science dedicati. Questa democratizzazione della tecnologia AI può rivelarsi rivoluzionaria per il tuo negozio di alimentari locale, la tua piccola catena o la tua catena regionale.

Ecco cosa rende questo approccio così rivoluzionario:

  • Semplicità: tutto ciò che ti serve per iniziare è una semplice foto della corsia del tuo negozio.
  • Competenza su richiesta: gli agenti AI agiscono come il tuo team personale di esperti retail, analizzando il tuo spazio e le attuali tendenze del mercato.
  • Insight attuabili: riceverai un piano dettagliato e pratico per riorganizzare i tuoi scaffali in modo da massimizzare le vendite e la soddisfazione del cliente.
  • Convenienza: questo approccio elimina la necessità di costosi consulenti o sistemi software complessi.
  • Adattabilità: con il mutare delle tendenze del mercato, puoi rianalizzare e regolare rapidamente la disposizione del tuo negozio per stare al passo con i tempi.

Entriamo nei dettagli tecnici e vediamo come funziona questa ottimizzazione per il retail basata sull'AI, passo dopo passo. Alla fine di questo tutorial, avrai una chiara comprensione di come implementare questo sistema nel tuo negozio, potenzialmente rivoluzionando il tuo spazio retail con la potenza dell'AI.

Schema di architettura con agenti multimodali

La storia dietro la soluzione

Sarah è la proprietaria di un negozio di alimentari locale che faceva fatica a competere con le catene più grandi. Nonostante i suoi sforzi, aveva notato che alcuni prodotti non si vendevano come avrebbero dovuto, mentre altri erano costantemente esauriti. Un giorno, mentre riorganizzava il suo reparto dei prodotti freschi per la terza volta di quel mese, si è chiesta se ci fosse un modo migliore per farlo.

È qui che entra in gioco la nostra soluzione basata sull'AI. Utilizzando solo il suo smartphone e il nostro sistema intelligente, Sarah è riuscita a trasformare le prestazioni del suo punto vendita. Vediamo nel dettaglio come realizzare un sistema di questo tipo.

Frutta e verdura biologica fresca sullo scaffale del supermercato Gli scaffali di Sarah

Cos'è crewAI?

Possiamo usare crewAI, un framework di agenti open source che orchestra le interazioni tra agenti in crew. Il termine "crew" si riferisce a un "equipaggio" di sistemi multiagente. Il nostro team è composto da agenti che interpretano il ruolo di esperti retail, disponibili 24 ore su 24, 7 giorni su 7, ognuno con la propria specializzazione. Le attività possono essere assegnate direttamente a un agente o gestite attraverso il processo gerarchico di crewAI che valuta ruoli e disponibilità specifici.

Per chi è alle prime armi con crewAI, consigliamo di consultare l'articolo esplicativo su crewAI insieme ai documenti ufficiali. Nel repository GitHub di crewAI ufficiale, puoi anche trovare degli esempi di crew che eseguono analisi dei titoli azionari, analisi dei dati, RAG, integrazioni con LangGraph e molto altro ancora.

Conosci il team AI per il retail

Diamo un'occhiata al team di esperti del retail agentici che utilizzeremo in questo 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.

Workflow dell'attività

Il workflow delle attività è il seguente.

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

Passaggi

Puoi trovare questo progetto su Github.

Passaggio 1. Configura il tuo ambiente

Per prima cosa, dobbiamo configurare il nostro ambiente. Puoi trovare questi passaggi nel file Markdown su GitHub oppure seguendo le istruzioni qui.

  • Assicurati di avere Python >=3.10 <=3.13 installato sul sistema. Puoi controllare la versione di Python con il comando python3 --version
  • Configura un ambiente virtuale per evitare conflitti di dipendenza tra pacchetti Python.
python3 -m venv myenv
source ./myenv/bin/activate
  • Clona il repository utilizzando https://github.com/IBM/ibmdotcom-tutorials.git come URL HTTPS. Per i passaggi dettagliati su come clonare un repository, consulta la documentazione di GitHub.

La struttura del progetto della directorycrew-ai-projects dovrebbe essere simile alla seguente:

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

Passaggio 2. Ottieni le credenziali API watsonx

  1.  Accedi a watsonx.ai con il tuo account IBM Cloud.
  2. Crea un progetto watsonx.ai. Prendi nota dell'ID progetto in Progetto > Gestisci > Generali > ID progetto. Questo ID sarà necessario per questo tutorial.
  3. Crea un'istanza di servizio watsonx.ai Runtime (scegli il piano Lite, che è un'istanza gratuita).
  4. Genera una chiave API watsonx.
  5. Associa il servizio watsonx.ai Runtime al progetto che hai creato in watsonx.ai.

Passaggio 3. Ottieni le credenziali API Serper

Genera e prendi nota della tua chiave API Serper gratuita. Serper è un'API di Google Search che utilizzeremo in questo progetto.

Passaggio 4. Installa crewAI e imposta le tue credenziali

Dobbiamo installare il framework crewAI per questo tutorial e configurare le credenziali watsonx.ai generate nel passaggio 2.

Per installare crewAI, esegui il seguente comando nel tuo terminale.

%pip install 'crewai[tools]'

 

In un file .env  distinto, allo stesso livello di directory del file .env_sample,  imposta le tue credenziali come stringhe in questo modo:

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

Passaggio 5. Personalizza l'equipaggio (opzionale)

crewAI può essere configurato per utilizzare qualsiasi modello linguistico di grandi dimensioni (LLM) open source. Gli LLM possono essere connessi tramite Ollama e diverse altre API come IBM watsonx e OpenAI. Gli utenti possono anche utilizzare gli strumenti precostituiti disponibili tramite crewAI Toolkit e LangChain Tools.

Il nostro strumento di ricerca visiva personalizzato è alimentato dal llama-3-2-90b-vision-instruct modello che usa watsonx.ai. Ecco uno sguardo allo strumento di visione personalizzato nella directory degli strumenti.

# 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

Ci sono molti modi per personalizzare il tuo equipaggio:

  • Modifica src/my_retail_advisor/config/agenti.yaml per definire i tuoi agenti.
  • Modifica src/my_retail_advisor/config/tasks.yaml  per definire le tue attività.
  • Modifica src/my_retail_advisor/crew.py per aggiungere la tua logica, i tuoi strumenti e argomenti specifici.
  • Modifica src/my_retail_advisor/main.py per aggiungere input personalizzati per gli agenti e le attività.
  • Modifica src/my_retail_advisor/strumento/custom_tool.py per aggiungere strumenti personalizzati per gli agenti e le attività.
  • Modifica src/my_retail_advisor/strumento/tool_helper.py per modificare lo strumento di visione personalizzato in base al modello multimodale Llama.
  • Sostituisci images/shelf.jpg con un'immagine specifica.

Passaggio 6. Esegui il sistema

Assicurati di essere nella directory di lavoro corretta di questo progetto. Puoi cambiare directory eseguendo il seguente comando nel tuo terminale.

cd crew-ai-projects/my_retail_advisor

Per dare il via al tuo equipaggio di agenti AI e iniziare l'esecuzione delle attività, esegui questo comando dalla cartella principale del tuo progetto. Nota: l'equipaggio può richiedere diversi minuti di esecuzione di restituire un risultato finale.

crewai run

Questo comando inizializza l'equipaggio my-retail-advisor, riunendo gli agenti e assegnando loro i compiti definiti nella configurazione. Questo esempio, non modificato, utilizzerà Granite su watsonx.ai per creare un file report.mdcon l'output. crewAI può restituire JSON, modelli Pydantic e stringhe grezze come output. Ecco un esempio dell'output prodotto dall'equipaggio.

Output di esempio:

Piano d'azione per riorganizzare e ottimizzale lo scaffale di ortaggi e verdura

Obiettivo:
creare una sezione di prodotti visivamente accattivante e organizzata che metta in mostra le verdure e gli ortaggi più acquistati, generi un aumento delle vendite e migliori la soddisfazione dei clienti.

Raccomandazioni dell'analista di mercato:

  1. Crea un punto focale con un'esposizione colorata e accattivante delle verdure e degli ortaggi più acquistati.
  2. Usa una varietà di colori, texture e altezze per creare interesse visivo.
  3. Raggruppa le verdure e gli ortaggi simili tra loro.
  4. Prendi in considerazione l'utilizzo di cestini, ceste o altri contenitori per aggiungere un tocco naturale e rustico.
  5. Utilizzate l'illuminazione per mettere in risalto prodotti o promozioni specifici.
    ...

Piano d'azione per il responsabile del punto vendita e il responsabile acquisti:

...

Passaggio 1: esposizione che deve fungere da punto focale

  • Responsabile del punto vendita: designa un'area che deve fungere da punto focale sullo scaffale per le verdure e gli ortaggi più acquistati (pomodori, patate, cipolle, lattuga, carote, peperoni, cetrioli e sedano).
  • Responsabile acquisti: garantisce che vi sia una scorta sufficiente di questi ortaggi e verdure per tenere l'espositore sempre al completo e invitante.
  • Team: dispone le verdure e gli ortaggi in modo visivamente gradevole, utilizzando vari colori, texture e altezze.

...

Passaggio 4: espositori a tema e caratteristiche aggiuntive

  • Responsabile del punto vendita: pianifica e implementa espositori a tema (ad esempio, a tema natalizio o barbecue estivo) per coinvolgere i clienti e promuovere i prodotti correlati.
  • Responsabile acquisti: garantisce che vi sia una scorta sufficiente di materiali espositivi a tema e prodotti correlati.
  • Team: usa scaffali o espositori per verdure e ortaggi per aggiungere ulteriore spazio espositivo e creare un'esposizione visivamente accattivante.

Conclusioni

Come si vede nell'output di esempio, il sistema multiagente è in grado di eseguire il processo sequenziale di elaborazione degli input, lanciare gli strumenti e formulare i risultati.

Ricordi il problema del corridoio dei prodotti freschi di Sarah? Ecco come il sistema l'ha aiutata:

  1. Analisi visiva: Sarah ha scattato una foto del suo reparto di verdura e ortaggi con lo smartphone. L'agente responsabile del punto vendita ha analizzato l'immagine e ha notato che gli scaffali erano densamente affollati e necessitavano di manutenzione.
  2. Ricerca di mercato: l'agente analista di mercato ha utilizzato le attuali tendenze del mercato per le vendite di verdure e ortaggi e le preferenze dei clienti per offrire consigli fruibili per riorganizzare lo scaffale della verdura e degli ortaggi.
  3. Piano d'azione: sulla base di queste informazioni approfondite, Sarah ha ricevuto un piano dettagliato che includeva le istruzioni per:
    • Creare un'esposizione colorata e accattivante
    • Usare cestini o ceste per aggiungere un tocco naturale all'esposizione.
    • Aggiungere un espositore a tema, ad esempio a tema natalizio o barbecue estivo, per coinvolgere i clienti con prodotti correlati.
    • Creare spazio tra i diversi tipi di verdure e ortaggi da riordinare.
    • Migliorare l'illuminazione.

In sintesi, la Crewmy-retail-advisor è composta da più agenti AI, ognuno con ruoli, obiettivi e strumenti specifici. Questi agenti collaborano a una serie di compiti, definiti in config/tasks.yaml facendo leva sulle proprie competenze collettive per raggiungere obiettivi complessi. Il file config/agents.yaml definisce le funzionalità e le configurazioni di ciascun agente della crew.

Grazie agli strumenti basati su AI come questo, retailer di piccole e medie dimensioni possono semplificare il loro processo decisionale. Proprio come Sarah, puoi trasformare le prestazioni del tuo punto vendita con una tecnologia accessibile, conveniente ed efficace. Questa architettura sblocca anche altre opportunità di AI in vari campi, come la progettazione del prodotto e una migliore esperienza del cliente. La sua flessibilità la rende preziosa anche al di là del settore retail, in quanto permette alle aziende di innovare ed eccellere in attività specifiche del loro settore.

Soluzioni correlate
Sviluppo di agenti AI IBM 

Consenti agli sviluppatori di creare, distribuire e monitorare agenti AI con lo studio IBM watsonx.ai.

Esplora watsonx.ai
Agenti e assistenti AI di IBM

Migliora la produttività con uno dei set di funzionalità più completi del settore che aiuta le aziende a creare, personalizzare e gestire agenti e assistenti AI. 

Scopri gli agenti AI
IBM Granite

Ottieni un risparmio sui costi di oltre il 90% con i modelli più piccoli e aperti di Granite, progettati per l'efficienza degli sviluppatori. Questi modelli pensati per le imprese offrono prestazioni eccellenti rispetto ai benchmark di sicurezza e in un'ampia gamma di attività aziendali, dalla cybersecurity alla RAG.

Esplora Granite
Prossimi passi

Automatizza i tuoi workflow complessi e migliora la produttività con uno dei set di funzionalità più completi del settore che aiuta le aziende a creare, personalizzare e gestire agenti e assistenti AI. 

Esplora lo sviluppo di agenti watsonx.ai Scopri watsonx Orchestrate