CrewAIを使用して、watsonx.aiで小売棚の最適化のためのマルチモーダル・マルチエージェント・システムを構築します。

著者

Yohan Bensoussan

GenAI Architect @ IBM Build Lab

IBM

Anna Gutowska

AI Engineer, Developer Advocate

IBM

スマートフォンと人工知能(AI)の力だけで小売店のパフォーマンスを変革することを想像してみてください。これは決して未来のシナリオではなく、中小規模の小売店が今日からすぐに導入できます。このチュートリアルでは、店舗のオーナーやマネージャーがAIを使用して棚の配置を最適化し、売上を増やし、顧客体験を向上させることができるというエキサイティングな現実世界のユースケースを紹介します。このプロジェクトでは、最新のIBM GraniteモデルとMeta社のLlama 3.2ビジョン・モデルの両方を活用します。

生成AIが小売に与える影響

エージェントベースの生成AIの登場により、中小規模の小売店は、かつては専用のデータサイエンス・チームを擁する大企業の領域であった専門家レベルの分析と推奨事項を利用できるようになりました。このようなAIのテクノロジーの民主化は、地元の食料品店、ブティック、または地域チェーンにとっては画期的な変革となる可能性があります。

このアプローチががこれほどまでに革新的である理由は、

  • 簡潔さ: 最初に必要なのは、店の通路のシンプルな写真だけです。
  • オンデマンドでの専門知識: AIエージェントは、お客様の小売専門家チームとして機能し、お客様のスペースや現在の市場動向を分析します。
  • 実行可能な洞察: 販売と顧客満足度を最大化するために棚を再配置するための詳細で実用的な計画が提供されます。
  • 費用対効果の高さ: このアプローチにより、高価なコンサルタントや複雑なソフトウェアシステムが不要になります。
  • 適応性: 市場のトレンドの変化に合わせ、保管のレイアウトをすばやく再分析して調整し、時代の先を行くことができます。

技術的な詳細を掘り下げ、小売店の最適化がどのように機能するかを順を追って確認しましょう。このチュートリアルを完了する頃には、AIの力を活用して小売空間に革命をもたらす可能性のあるこのシステムを、自社の店舗に導入する方法が明確に理解できるようになります。

マルチモーダル・エージェント・アーキテクチャのスキーマ

ソリューションの背後にあるストーリー

Sarahは地元の店舗のオーナーですが、大規模なチェーンとの競争に苦労していました。最善を尽くしたにもかかわらず、ある商品がそれほど売れず、他の商品が常に在庫切れになっていることに気づきました。ある日、彼女は今月3回目の生鮮食品コーナーの再編成作業をしていて、もっと良い方法があるのではないかと考えました。

そこでAI搭載のソリューションの出番です。スマートフォンとIBMのインテリジェント・システムだけを使用して、Sarahは保管の性能を変革することができました。そのようなシステムを構築する方法を詳しく見てみましょう。

スーパーマーケットの棚に並ぶ新鮮な有機野菜や果物 サラの棚

crewAIとは

オープンソースのエージェント・フレームワークであるCrewAIを活用できます。これはクルー内のエージェント間インタラクションのオーケストレーションを行うフレームワークです。「クルー」という用語は、マルチ・エージェント・システムを指します。今回のクルーは小売専門家のロールプレイを行うエージェントのチームであり、24時間年中無休で対応し、各自が独自の専門分野を持っています。タスクはエージェントに直接割り当てることも、特定の役割や可用性を評価するcrewAIの階層型プロセスを通じて割り当てることもできます。

CrewAI 初心者の方は、 crewAI の解説と公式ドキュメントをご覧ください。公式のcrewAI GitHubリポジトリでは、株式分析、データ分析、 RAG 、LangGraph統合などを実行するクルーの例も見つかります。

AI小売チームの紹介

このチュートリアルで使用するエージェント小売エキスパートのチームを見てみましょう。

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.

タスクのワークフロー

このタスクのワークフローは次のとおりです。

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

ステップ

このプロジェクトはGithubにあります。

ステップ1. 環境を設定する

まず、環境をセットアップする必要があります。この手順は、GitHubのマークダウン・ファイル、またはこのページの解説に沿って実行できます。

  • Pythonバージョン3.10以上、3.13以下がシステムにインストールされていることを確認します。Pythonのバージョンはpython3 --version コマンドで確認できます。
  • Python パッケージの依存関係の競合を回避するために仮想環境を設定します。
python3 -m venv myenv
source ./myenv/bin/activate
  • HTTPSのURLとしてhttps://github.com/IBM/ibmdotcom-tutorials.gitを使い、リポジトリをクローンします。リポジトリをクローンする方法の詳細な手順については、 GitHubのドキュメンテーションを参照してください。

crew-ai-projectsディレクトリーのプロジェクト構造 は次のようになります。

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

ステップ2. watsonx®  API認証情報を取得

  1. IBM® Cloudアカウントを使用して、watsonx.aiにログインします。
  2. watsonx.ai プロジェクトを作成します。>「プロジェクト(project)」 >「管理(Manage)」 > 「一般(General)」 > 「プロジェクト ID(Project ID)」から、プロジェクトIDをメモします。本チュートリアルではこのIDが必要です。
  3. watsonx.ai ランタイムサービス・インスタンスを作成します(無料インスタンスである Lite プランを選択します)。
  4. watsonx API キーを生成します。
  5. watsonx.ai ランタイム サービスをwatsonx.aiで作成したプロジェクトに関連付けます。

ステップ3. Serper APIの認証情報を取得

無料のSerper APIキーを生成し、メモしておきます。Serverperは、このプロジェクトで使用するGoogle Search APIです。

ステップ4. crewAIをインストールし、認証情報を設定する

このチュートリアルでは、CrewAIフレームワークをインストールし、ステップ2で生成したwatsonx.aiの認証情報を設定する必要があります。

CrewAIをインストールするには、端末で次のコマンドを実行します。

%pip install 'crewai[tools]'

 

.env_sampleファイルと同様のディレクトリーレベルにある 別の.env ファイルで、認証情報を次のように文字列として設定します。

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

ステップ5. クルーのカスタマイズ(オプション)

employeeAIは、任意のオープンソースの大規模言語モデル(LLM)を使用するように構成できます。LLMは、OllamaやIBM watsonxやOpenAIなどの他のAPIを介して接続できます。ユーザーは、crewAI ToolkitやLangChain Toolsを通じて利用可能な事前構築ツールを利用することもできます。

私たちのカスタム・ビジュアル検索ツールは、llama-3-2-90b-vision-instruct watsonx.ai®を使用したモデルによってサポートされています。ここではtoolディレクトリーにあるカスタム・ビジョン・ツールを見てみましょう。

# 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

クルーをカスタマイズするには、さまざまな方法があります。

  • エージェントを定義するため、src/my_retail_advisor/config/agent_yaml を修正します。
  • エージェントを定義するため、src/my_retail_advisor/config/tasks.yaml でタスクを定義します。
  • エージェントを定義するため、src/my_retail_advisor/crew.py 独自のロジック、ツール、特定の引数を追加します。
  • エージェントを定義するため、src/my_retail_advisor/main.py エージェントやタスクにカスタム・インプットを追加します。
  • エージェントを定義するため、src/my_retail_advisor/tool/custom_tool.py エージェントとタスクのためのカスタム・ツールを追加します。
  • エージェントを定義するため、src/my_retail_advisor/tool/tool_helper.py マルチモーダルLlamaモデルに基づいてカスタム・ビジョン・ツールを変更します。
  • 実際の画像とimages/shelf.jpg を置き換えます。

ステップ 6. システムを実行する

このプロジェクトの適切な作業ディレクトリに移動していることを確認してください。端末で次のコマンドを実行すると、ディレクトリを変更できます。

cd crew-ai-projects/my_retail_advisor

AIエージェントのスタッフを開始し、タスクの実行を開始するには、プロジェクトのルート・フォルダーからこのコマンドを実行します。ただし、最終結果を返す前に数分間実行する場合があることに注意してください。

crewai run

このコマンドは、themy-retail-advisor Crewを開始し、エージェントを組み立て、設定で定義したとおりにタスクを割り当てます。未変更のこの例では、watsonx.ai上のGraniteを使用して、アウトプットと共に report.md ファイルを作成します。employeeAIは、JSON、Pydanticモデル、および生の文字列を出力として返すことができます。これはクルーが生成したアウトプットの例です。

アウトプット例:

野菜棚の再配置と改善のための行動計画

目的
:最も人気のある野菜を陳列し、売上を増やし、顧客満足度を高める、視覚的に魅力的で整理された農産物セクションを作ります。

市場アナリストからの推奨事項:

  1. 最も人気のある野菜のカラフルで目を引くディスプレイで、フォーカル・ポイントを作成します。
  2. さまざまな色、テクスチャ、高さを使用して、視覚的な興味を生み出します。
  3. 似たような野菜を一緒にグループ化します。
  4. バスケット、ゴミ箱、その他のコンテナを使用して、自然で公共性の高い感覚を与えることを検討してください。
  5. 照明を使用して、特定の製品やプロモーションを強調してください。
    ...

店舗マネージャーと店舗バイヤーのためのアクションプラン:

...

ステップ1:フォーカル・ポイント・ディスプレイ

  • 店舗マネージャー:最も人気のある野菜 (トマト、ジャガイモ、ポテト、レタス、ニンジン、ピーマン、キュウリ、セラー菜) の棚にフォーカル・ポイント・エリアを指定します。
  • 店舗バイヤー: 充実した魅力的なディスプレイを維持するために、これらの野菜の十分な在庫を確保します。
  • チーム:さまざまな色、感触、高さを使用して、視覚的に魅力的な方法で野菜を配置します。

...

ステップ4:テーマのあるディスプレイ、その他の特徴

  • 店舗マネージャー: 顧客を惹きつけ、関連商品を宣伝するために、テーマに基づいたディスプレイ(例:夏のパーティー・テーマなど)を計画・実施する。
  • 店舗のバイヤー: テーマのあるディスプレイ資材と関連製品の十分な在庫を確保します。
  • チーム:野菜ラックやスタンドを使って、ディスプレイスペースを増やし、視覚的に魅力的なディスプレイを作成します。

結論

出力例からわかるように、マルチ・エージェント・システムは、インプットの処理、ツールの呼び出し、結果の生成の一連のプロセスを実行できます。

Sarahの生鮮食品売り場の問題を覚えていますか?このシステムが彼女をどのように助けたかは次のとおりです。

  1. 視覚分析:Sarahはスマートフォンで野菜コーナーの写真を撮影しました。ストア・マネージャーのエージェントはその画像を分析し、棚の密度が高く、調整が必要であることに気づきました。
  2. 市場調査: 市場アナリスト・エージェントは、野菜の販売と顧客の嗜好に関する現在の市場傾向を使用して、野菜棚の再配置に関する実行可能な推奨事項を作成しました。
  3. 行動計画: これらの洞察に基づいて、Sarahは次の内容を含む詳細な計画を受け取りました。
    • カラフルで目を引くディスプレイの作成
    • バスケットや箱を使用して、ディスプレイに自然な雰囲気を加えます。
    • 夏のBBQやホリデー・テーマのディスプレイなど、テーマのあるディスプレイを追加して、顧客を関連製品にアピールします。
    • さまざまな種類の野菜の間にスペースを作り、断捨離します。
    • 照明を改善します。

要約すると、my-retail-advisor のCrewは複数のAIエージェントで構成されており、それぞれに固有の役割、目標、ツールがあります。これらのエージェントは、config/tasks.yaml で定義された一連のタスクで連携し、集合的なスキルを活用して複雑な目標を達成します。config/agents.yamlファイルには、 クルーの各エージェントの機能と設定の概要が記載されています。

このようなAI搭載ツールを使用することで、中小規模の小売業者は意思決定プロセスを合理化できます。Sarahと同じように、アクセスしやすく、手頃で効果的なテクノロジーを使用して店舗のパフォーマンスを変革できます。このアーキテクチャーは、製品設計や顧客体験の向上など、さまざまな領域にわたる他のAIの機会を解き放つ。その柔軟性は小売以外でも価値を発揮し、さまざまな企業が業界固有のタスクで革新と優れたパフォーマンスを発揮できるようになります。

関連ソリューション
IBMのAIエージェント開発

開発者が、IBM watsonx.aiを使用してAIエージェントの構築、デプロイ、および監視を行えるようにします。

watsonx.aiの詳細はこちら
IBMのAIエージェントとアシスタント

業界で最も包括的な機能セットの1つを使用して、企業がAIエージェントとアシスタントを構築、カスタマイズ、管理できるようにすることで、生産性を飛躍的に向上させます。

AIエージェントの詳細はこちら
IBM Granite

開発者の効率性を考慮したGraniteの小型オープンモデルで、コストを90%以上削減します。エンタープライズ対応モデルは、安全性ベンチマークに対して、さらにサイバーセキュリティーからRAGまでの幅広い企業タスクに対して優れたパフォーマンスを発揮します。

Graniteの詳細はこちら
次のステップ

包括性で業界でも屈指の機能セットを使用して、複雑なワークフローを自動化し、生産性を飛躍的に向上させましょう。企業がAIエージェントとアシスタントを構築、カスタマイズ、管理するのに役立つ機能セットです。

watsonx.aiエージェントの開発の詳細はこちら watsonx Orchestrateの詳細はこちら