Use o crewAI para criar sistemas multiagentes multimodais para otimização de prateleiras de varejo com o watsonx.ai

Autor

Yohan Bensoussan

GenAI Architect @ IBM Build Lab

IBM

Anna Gutowska

AI Engineer, Developer Advocate

IBM

Imagine transformar o desempenho da sua loja de varejo com apenas um smartphone e o poder da inteligência artificial (IA). Esse não é um cenário futuro distante: é uma realidade que as pequenas e médias lojas de varejo podem implementar hoje! Neste tutorial, vamos explorar um caso de uso interessante do mundo real em que os proprietários e gerentes de lojas podem usar a IA para otimizar a disposição das prateleiras, impulsionar as vendas e melhorar a experiência do cliente. Aproveitaremos o mais recente modelo IBM Granite neste projeto, bem como o modelo de visão Llama 3.2 da Meta.

Os impactos da IA generativa no varejo

Com o advento da IA generativa baseada em agentes, as pequenas e médias lojas de varejo agora têm acesso a análises e recomendações de nível especializado que antes eram domínio de grandes corporações com equipes de ciência de dados dedicadas. Essa democratização da tecnologia de IA pode ser inovadora para sua loja, boutique ou rede regional.

Veja o que torna essa abordagem tão revolucionária:

  • Simplicidade: tudo aquilo de que você precisa para começar é uma simples foto do corredor de sua loja.
  • Conhecimento especializado sob demanda: os agentes de IA atuam como sua equipe pessoal de especialistas em varejo, analisando seu espaço e as tendências atuais do mercado.
  • Insights práticos: você receberá um plano detalhado e prático para reorganizar as prateleiras para maximizar as vendas e a satisfação dos clientes.
  • Econômico: essa abordagem elimina a necessidade de consultores caros ou sistemas de software complexos.
  • Adaptabilidade: à medida que as tendências do mercado mudam, você pode reanalisar e ajustar rapidamente o layout de sua loja para se manter à frente da concorrência.

Vamos nos aprofundar nos detalhes técnicos e ver como funciona essa otimização de varejo impulsionada por IA, passo a passo. No final do tutorial, você terá uma compreensão clara de como implementar este sistema em sua própria loja, podendo revolucionando seu espaço de varejo com o poder da IA.

Esquema de arquitetura de agentes multimodais

A história por trás da solução

Sarah é proprietária de um supermercado local que estava tendo dificuldades para competir com redes maiores. Apesar de seus melhores esforços, ela percebeu que certos produtos não estavam vendendo tão bem quanto deveriam, enquanto outros estavam constantemente sem estoque. Um dia, enquanto reorganizava seu corredor de produtos frescos pela terceira vez naquele mês, ela se perguntou se havia uma maneira melhor.

É aí que entra nossa solução impulsionada por IA. Usando apenas seu smartphone e nosso sistema inteligente, Sarah conseguiu transformar o desempenho de sua loja. Vamos nos aprofundar em como construir esse sistema.

Verduras e frutas orgânicas na prateleira do supermercado Prateleiras de Sarah

O que é o CrewAI?

Podemos usar o CrewAI, um framework de agentes de código aberto que orquestra as interações dos agentes nas equipes. O termo "crew (equipe)" refere-se a sistemas multiagentes. Nossa equipe é composta por agentes especialistas em varejo que estão disponíveis 24 horas por dia, sete dias por semana, cada um com sua própria especialidade. As tarefas podem ser atribuídas diretamente a um agente ou gerenciadas pelo processo hierárquico do CrewAI, que avalia as funções e disponibilidade específicas.

Para iniciantes no CrewAI, confira a explicação sobre IA juntamente com os documentos oficiais. No repositório oficial do GitHub do CrewAI, você também pode encontrar exemplos de equipes realizando análise de estoque, análise de dados, RAG, integração do LangGraph e muito mais.

Conheça a equipe de varejo com IA

Vamos dar uma olhada na equipe de especialistas em varejo agêntico que usaremos neste 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.

Fluxo de trabalho de tarefas

O fluxo de trabalho das tarefas é o seguinte.

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

Etapas

Você pode encontrar esse projeto no Github.

Etapa 1. Configure seu ambiente

Primeiro precisamos configurar nosso ambiente. Você pode encontrar essas etapas no arquivo Markdown no GitHub ou seguindo aqui.

  • Certifique-se de ter o Python entre o 3.10 e o 3.13 instalado em seu sistema. Você pode verificar sua versão do Python usando o comando python3 --version .
  • Configure um ambiente virtual para evitar conflitos de dependência de pacotes Python.
python3 -m venv myenv
source ./myenv/bin/activate
  • Clone o repositório usando https://github.com/IBM/ibmdotcom-tutorials.git como a URL HTTPS. Para ver etapas detalhadas sobre como clonar um repositório, consulte a documentação do GitHub.

A estrutura do projeto do diretóriocrew-ai-projects deve ser semelhante à seguinte:

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

Etapa 2. Obtenha as credenciais da API do watsonx

  1.  Faça login no watsonx.ai usando sua conta do IBM Cloud.
  2. Crie um projeto do watsonx.ai. Anote a ID do projeto em projeto > Gerenciar > Geral > ID do projeto. Você precisará dessa ID para este tutorial.
  3. Crie uma instância do serviço watsonx.ai Runtime (escolha o plano Lite, que é uma instância gratuita).
  4. Gere uma chave de API do watsonx
  5. Associe o serviço watsonx.ai Runtime ao projeto que você criou no watsonx.ai.

Etapa 3. Obtenha credenciais da API da Serper

Gere e anote sua chave de API do Serper gratuita. Serper é uma API de pesquisa do Google que usaremos neste projeto.

Etapa 4. Instale o CrewAI e defina suas credenciais

Precisamos instalar o framework crewAI para este tutorial e definir as credenciais do watsonx.ai que geramos na etapa 2.

Para instalar o crewAI, execute o seguinte comando em seu terminal.

%pip install 'crewai[tools]'

 

Em um arquivo .env  separado no mesmo nível de diretório que o arquivo .env_sample  , defina suas credenciais como strings da seguinte forma:

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

Etapa 5. Personalize a equipe (opcional)

O CrewAI pode ser configurado para utilizar qualquer grande modelo de linguagem (LLM) de código aberto. Os LLMs podem ser conectados por meio do Ollama e de várias outras APIs, como o IBM watsonx e o OpenAI. Os usuários também podem aproveitar ferramentas criadas previamente disponíveis no toolkit do CrewAI, bem como no LangChain Tools.

Nossa ferramenta de pesquisa visual personalizada funciona com o llama-3-2-90b-vision-instruct modelo que usa o watsonx.ai. Veja aqui a ferramenta de visão personalizada no diretório de ferramentas.

# 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

Há muitas maneiras de personalizar sua equipe:

  • Modifique src/my_retail_advisor/config/agents.yaml para definir seus agentes.
  • Modifique src/my_retail_advisor/config/tasks.yaml  para definir suas tarefas.
  • Modifique src/my_retail_advisor/crew.py para adicionar sua própria lógica, ferramentas e argumentos específicos.
  • Modifique src/my_retail_advisor/main.py para adicionar entradas personalizadas para seus agentes e tarefas.
  • Modifique src/my_retail_advisor/tool/custom_tool.py para adicionar ferramentas personalizadas para seus agentes e tarefas.
  • Modifique src/my_retail_advisor/tool/tool_helper.py para alterar a ferramenta de visão personalizada com base no modelo Llama multimodal.
  • Substitua images/shelf.jpg por uma imagem sua.

Etapa 6. Execute o sistema

Certifique-se de que você esteja no diretório de trabalho adequado deste projeto. Você pode alterar os diretórios executando o seguinte comando em seu terminal.

cd crew-ai-projects/my_retail_advisor

Para iniciar sua equipe de agentes de IA e iniciar a execução de tarefas, execute este comando na pasta raiz do seu projeto. Observe que a equipe pode ficar em execução por vários minutos antes de retornar um resultado final.

crewai run

Esse comando inicializa o themy-retail-advisor Crew, reunindo os agentes e atribuindo-lhes tarefas conforme definido na sua configuração. Este exemplo, não modificado, utilizará o Granite no watsonx.ai para criar um arquivo report.md com a saída. O CrewAI pode retornar JSON, modelos Pydantic e strings brutas como saída. Aqui está um exemplo de saída produzida pelo Crew.

Exemplo de saída:

Plano de ação para reorganizar e melhorar a prateleira de vegetais

Objetivo:
criar uma seção de produtos visualmente atraente e organizada que mostre os legumes e verduras mais populares, aumente as vendas e a satisfação do cliente.

Recomendações do Analista de Mercado:

  1. Crie um ponto focal com uma disposição colorida e atraente dos legumes mais populares.
  2. Use uma variedade de cores, texturas e alturas para criar interesse visual.
  3. Agrupe legumes semelhantes.
  4. Considere a possibilidade de usar cestas, lixeiras ou outros recipientes para dar um toque natural e terroso.
  5. Use iluminação para destacar produtos ou promoções específicos.
    ...

Plano de ação para o Gerente da Loja e o Comprador da Loja:

...

Etapa 1: Exibição do ponto focal

  • Gerente da Loja: indique uma área de ponto focal na prateleira para os legumes e verduras mais populares (tomate, batatas, cebolas, alface, cenoura, pimenta, pepino e aipo).
  • Comprador da Loja: certifique-se de ter um estoque suficiente desses legumes para manter uma exibição completa e atraente.
  • Equipe: organize os legumes de forma visualmente atraente, usando uma variedade de cores, texturas e alturas.

...

Etapa 4: Exibições temáticas e funcionalidades adicionais

  • Gerente da Loja: planeje e implemente expositores temáticos (por exemplo, churrascos no verão ou temas de férias) para envolver os clientes e promover produtos relacionados.
  • Comprador da Loja: garanta um estoque suficiente de materiais de exibição temáticos e produtos relacionados.
  • Equipe: use prateleiras de verduras ou suportes para adicionar espaço de exibição extra e criar uma exibição visualmente atraente.

Conclusão

Conforme visto no exemplo de saída, o sistema multiagentes é capaz de executar o processo sequencial de processamento de entradas, chamadas de ferramentas e formulação de descobertas.

Você se lembra do problema do corredor de produtos frescos de Sarah? Veja como o sistema a ajudou:

  1. Análise visual: Sarah tirou uma foto da prateleira de legumes com o smartphone. O agente Gerente da Loja analisou a imagem e percebeu que as prateleiras estão lotadas e precisam de manutenção.
  2. Pesquisa de mercado: o agente Analista de Mercado usou as tendências atuais de mercado para vendas de legumes e preferências do cliente para criar recomendações praticáveis para reorganizar a prateleira de legumes.
  3. Plano de ação: com base nesses insights, Sarah recebeu um plano detalhado, incluindo instruções para:
    • Criar uma exibição coloridas e atraente
    • Usar cestas ou caixas para dar um toque natural à exibição.
    • Adicionar uma exibição temática, como um churrasco de verão ou uma exibição com tema de férias, para envolver os clientes em produtos relacionados.
    • Criar espaço entre os diferentes tipos de legumes para organizar.
    • Melhorar a iluminação.

Em resumo, aequipe my-retail-advisor é composta por vários agentes de IA, cada um com funções, objetivos e ferramentas exclusivos. Esses agentes colaboram em uma série de tarefas, definidas em config/tasks.yaml , aproveitando suas habilidades coletivas para alcançar objetivos complexos. O arquivo config/agents.yaml descreve os recursos e as configurações de cada agente em sua equipe.

Com ferramentas impulsionadas por IA como essa, pequenos e médios varejistas podem agilizar seu processo de tomada de decisão. Assim como Sarah, você pode transformar o desempenho da sua loja com tecnologia acessível, econômic e eficaz. Essa arquitetura também libera outras oportunidades de IA em vários domínios, como design de produtos e melhor experiência do cliente. Sua flexibilidade a torna valiosa para além do varejo, permitindo que as empresas inovem e se destaquem em tarefas específicas de setores.

Soluções relacionadas
Desenvolvimento de agentes de IA da IBM 

Permita que desenvolvedores criem, implementem e monitorem agentes de IA com o IBM watsonx.ai studio.

Explore o watsonx.ai
Agentes de IA e assistentes da IBM

Atinja uma produtividade revolucionária com um dos conjuntos de recursos mais abrangentes do setor para ajudar as empresas a criar, personalizar e gerenciar agentes e assistentes de IA. 

Explore agentes de IA
IBM Granite

Tenha mais de 90% de economia de custos com os modelos menores e abertos do Granite, projetados para a eficiência do desenvolvedor. Esses modelos prontos para uso corporativo oferecem desempenho excepcional em relação aos benchmarks de segurança e em uma ampla variedade de tarefas corporativas, da cibersegurança a RAG.

Explore Granite
Dê o próximo passo

Automatize seus fluxos de trabalho complexos e crie uma produtividade revolucionária com um dos conjuntos de recursos mais abrangentes do setor para ajudar empresas a construir, personalizar e fazer o gerenciamento de agentes e assistentes de IA. 

Explore o desenvolvimento de agentes no watsonx.ai Conheça o watsonx Orchestrate