---
title: Moments AIモジュール
description: Moments AIモジュールを使用して、モバイルプロファイルのオンデバイスAI推論を構成します。
url: https://docs.tealium.com/ja/platforms/prism-mobile/module-list/moments-ai/
---
Moments AIモジュールは、Tealium Prism SDKを使用してモバイルアプリにオンデバイスAI推論を追加します。これはGemini Nanoを使用してデバイス上でローカルに実行され、サーバーサイドコンポーネントはありません。Tealium iQの**モバイル構成**スライドアウトを通じてモジュールを構成します。このモジュールはモバイルプロファイルでのみ利用可能です。

## モジュール構成

モジュールを追加する際には、以下の構成を構成します：

* **システムプロンプト**：AIモデルの役割と出力形式を定義します。このプロンプトは、すべての推論の全体的な動作と制約を構成します。例：モデルに特定のスキーマでJSONを返すよう指示するか、特定のタイプのアシスタントとして機能するようにします。変数置換を使用して<code>{{handlebars}}</code>構文をサポートします。
* **ユーザープロンプト**：モデルに送信されるリクエストごとの指示を提供します。現在のイベントから値を挿入するために<code>{{event.<key>}}</code>を使用します（例：<code>{{event.user_name}}</code>）、および<code>{{history}}</code>を使用して最近のイベント履歴を含めます。これらのプレースホルダーは、マッピングされたコンテキストからの実際のデータでランタイムに置き換えられます。変数置換を使用して<code>{{handlebars}}</code>構文をサポートします。
* **温度**：モデルの温度に対する数値入力。
* **最大トークン数**：オンデバイスモデルの最大出力トークン数。
* **最大イベント履歴**：モデルのコンテキストとして保持する最近のイベントの数。

## 変数置換

システムプロンプトとユーザープロンプトのフィールドは、ランタイムでのhandlebarsスタイルの`{{variable}}`置換をサポートします。モジュールは、プロンプトをオンデバイスモデルに送信する前にこれらのプレースホルダーを解決します。

以下の組み込み変数が利用可能です：

| 変数 | 説明 |
| :--- | :--- |
| `{{history}}` | 最大イベント履歴とコンテキストマッピングによって定義された保存されたイベント履歴を注入します。 |
| `{{event.<key>}}` | 最新のイベントコンテキストから特定のキーの値を注入します。`<key>`をデータレイヤー変数名に置き換えます。例えば、`{{event.user_name}}`。 |

[prompt variable mappings](#prompt-variable-mappings)を通じてカスタム変数も利用可能です。

## マッピング

Tealium iQのMoments AIモジュールの**マッピング**セクションでマッピングを構成します。

### コマンドトリガー

SDKコマンドにイベント条件をマップします。マップされた条件が満たされると、指定されたコマンドが実行されます。イベントをマップするには、[イベントマッピングの作成](https://docs.tealium.com/ja/iq-tag-management/data-mappings/manage/#add-an-event-mapping)を参照してください。

| コマンド | 説明 |
| :--- | :--- |
| `trigger_inference` | 現在のイベントとイベント履歴をオンデバイスモデルに送信して、推論結果を生成します。 |
| `store_event` | 未来のモデルコンテキストとして使用するために、現在のイベントをイベント履歴バッファに保存します。 |

### 構成のオーバーライド

ランタイムでモジュール構成フィールドをオーバーライドするためにデータレイヤー値をマップします。以下の宛先がサポートされています：

| 宛先 | 説明 |
| :--- | :--- |
| `system_prompt` | システムプロンプトフィールドをオーバーライドします。 |
| `user_prompt` | ユーザープロンプトフィールドをオーバーライドします。 |
| `temperature` | 温度フィールドをオーバーライドします。 |
| `max_tokens` | 最大トークン数フィールドをオーバーライドします。 |

### コンテキストマッピング

保存されたイベント履歴にキャプチャする変数をマップします。イベント履歴に保存するコンテキストキー名を入力します。例えば、`checkout`にマッピングすると`context.checkout`が生成されます。

### プロンプト変数マッピング

プロンプト置換で使用するためにデータレイヤー値をカスタム変数名にマップします。マッピング後、システムプロンプトまたはユーザープロンプトフィールドで変数を`{{variable_name}}`として参照します。

## 例

次の例では、Moments AIを使用してパーソナライズされたカート放棄通知を生成します。

**構成：**

システムプロンプト：

```wrap
あなたはモバイル小売アプリのオンデバイスeコマースパーソナライゼーションアシスタントです。あなたの仕事は、ショッパーの現在の活動と最近の行動をタイムリーな次の最善の行動に変えることです。
JSONオブジェクトのみを返答し、散文やマークダウンは含まず、正確に以下に一致するものを返答してください：
  {"headline": string, "message": string, "recommended_category": string, "urgency": "low"|"medium"|"high"}
ルール：
  - "headline": <=6語、行動を促すもの。
  - "message": <=160文字、閲覧または購入したものに特化して温かみのある内容。提供されたデータにない製品、価格、割引は決してでっち上げない。
  - "recommended_category": ショッパーが興味を示したカテゴリから選択します。不明な場合は「trending」を使用します。
  - メール、ユーザーID、その他の個人識別子を繰り返し返答しないでください。
  - 十分な信号がない場合は、緊急度を「low」と構成し、メッセージを一般的ですがブランドに合ったものにしてください。
  ```

ユーザープロンプト：

```wrap
現在のイベント：{{event.tealium_event}}
ショッパーの位置：{{event.customer_city}}
閲覧中/カート内の製品：{{event.product_names}}
カテゴリ：{{event.product_categories}}
ブランド：{{event.product_brands}}
価格：{{event.prices}} {{event.currency}}
最近の活動（最新のものが最後）：{{history}}
```

* 温度：`0.7`
* 最大トークン数：`150`
* 最大イベント履歴：`5`

**マッピング：**

* コマンドトリガー：
    * `event_name == "product_view"` → `store_event`
    * `event_name == "app_background"` → `trigger_inference`
* コンテキストマッピング：
    * `product_name`, `product_price`, `page_name` → `context`
* プロンプト変数マッピング：
    * `cart_contents` → `cart_contents`

`app_background`イベントが発生すると、モジュールは構成されたプロンプトをオンデバイスモデルに送信します。最後の5つの保存されたイベントを`{{history}}`として、データレイヤーからの現在のカート内容を`{{event.cart_contents}}`として注入します。モデルはJSONレスポンスを返し、アプリはそれを解析してパーソナライズされたプッシュ通知を表示します。