0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Swarm パーソナルショッパー: AIを活用したカスタマーサービス

Last updated at Posted at 2024-10-12

この記事では、Swarmを使用して作成されたパーソナルショッピングエージェントシステムについて解説します。このシステムは、販売や注文の払い戻しを支援する複数のAIエージェントで構成されています。

システム概要

このシステムは3つの主要なエージェントで構成されています:

  1. トリアージエージェント:顧客のリクエストを分類し、適切なエージェントに転送します。
  2. 払い戻しエージェント:顧客の払い戻しリクエストを処理します。
  3. 販売エージェント:商品の注文に関するリクエストを処理します。

また、SQLite3データベースを使用して顧客情報と取引データを管理しています。

主要コードの解説

データベース管理(database.py)

データベースの初期化と管理を行う関数が含まれています。以下は主要な関数の一部です:

def create_database():
    """データベースとテーブルを作成する関数"""
    conn = get_connection()
    cursor = conn.cursor()

    # Usersテーブルの作成
    cursor.execute(
        """
        CREATE TABLE IF NOT EXISTS Users (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            user_id INTEGER,
            first_name TEXT,
            last_name TEXT,
            email TEXT UNIQUE,
            phone TEXT
        )
    """
    )

    # 他のテーブル(PurchaseHistory, Products)も同様に作成
    # ...

def add_user(user_id, first_name, last_name, email, phone):
    """ユーザーを追加する関数"""
    conn = get_connection()
    cursor = conn.cursor()

    try:
        cursor.execute(
            """
            INSERT INTO Users (user_id, first_name, last_name, email, phone)
            VALUES (?, ?, ?, ?, ?)
        """,
            (user_id, first_name, last_name, email, phone),
        )

        conn.commit()
    except sqlite3.Error as e:
        print(f"データベースエラー: {e}")

これらの関数は、データベースの作成、ユーザーの追加、購入履歴の記録などの操作を行います。

メイン処理(main.py)

メインの処理ロジックとエージェントの定義が含まれています。

# エージェントの定義
refunds_agent = Agent(
    name="払い戻しエージェント",
    description="""返品処理後の払い戻しに関するすべてのアクションを処理するエージェントです。
    払い戻しを開始するには、ユーザーIDとアイテムIDの両方が必要です。両方を1つのメッセージで尋ねてください。
    ユーザーが通知を希望する場合は、通知方法を尋ねる必要があります。通知の場合、
    ユーザーIDと通知方法を1つのメッセージで尋ねてください。""",
    functions=[refund_item, notify_customer],
)

sales_agent = Agent(
    name="販売エージェント",
    description="""商品の注文に関するすべてのアクションを処理する販売エージェントです。
    ユーザーが購入したい商品に関わらず、注文を行うにはユーザーIDと製品IDの両方が必要です。
    これらの2つの情報なしでは注文を行うことができません。ユーザーIDと製品IDの両方を1つのメッセージで尋ねてください。
    ユーザーが通知を希望する場合は、通知方法を尋ねる必要があります。通知の場合、
    ユーザーIDと通知方法を1つのメッセージで尋ねてください。
    """,
    functions=[order_item, notify_customer],
)

triage_agent = Agent(
    name="トリアージエージェント",
    instructions="""ユーザーのリクエストを分類し、適切なインテントに転送するツールを呼び出します。
    適切なインテントに転送する準備ができたら、ツールを呼び出してください。
    詳細を知る必要はなく、リクエストのトピックだけを理解すれば十分です。
    ユーザーのリクエストが注文や商品の購入に関するものであれば、販売エージェントに転送します。
    ユーザーのリクエストが商品の払い戻しや返品に関するものであれば、払い戻しエージェントに転送します。
    リクエストをエージェントに振り分けるために更に情報が必要な場合は、理由を説明せずに直接質問してください。
    ユーザーに思考プロセスを共有しないでください!ユーザーに代わって不合理な仮定をしないでください。""",
    functions=[transfer_to_sales_agent, transfer_to_refunds_agent],
)

これらのコードは、各エージェントの役割と振る舞いを定義しています。トリアージエージェントは顧客のリクエストを適切なエージェントに振り分け、販売エージェントと払い戻しエージェントはそれぞれの専門分野でリクエストを処理します。

システムの動作

  1. ユーザーがリクエストを入力します。
  2. トリアージエージェントがリクエストを分析し、適切なエージェント(販売または払い戻し)に転送します。
  3. 各エージェントは必要な情報(ユーザーID、製品ID、アイテムIDなど)を収集します。
  4. 収集した情報を基に、リクエストを処理します(商品の注文や払い戻しの実行)。
  5. 処理結果をユーザーに通知します。

このシステムにより、顧客サービスの自動化と効率化が実現され、24時間対応の柔軟なサポートが可能になります。

まとめ

Swarmを活用したこのパーソナルショッパーシステムは、AIエージェントを使用して顧客サービスを自動化する優れた例です。複数のエージェントが協力して働くことで、効率的かつ正確な顧客対応が可能になります。このシステムは、eコマースプラットフォームやカスタマーサポートシステムの基盤として活用できる可能性があります。

実際の運用環境で使用する場合は、セキュリティ、エラー処理、データ検証などの実装を強化する必要があります。また、ユーザー認証システムの追加や外部APIとの連携など、さらなる機能拡張も考えられます。

リポジトリ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?