---
title: "コードアシスタント"
slug: "code-assistant"
abstract: "コードアシスタントの仕組みと例示プロンプトについて。"
---
# コードアシスタント

> !注コードアシスタントは、組織でSitecore Streamが有効である場合にのみ利用可能です。

Code Assistantは、自然言語で書いたプロンプトを理解し、JavaScriptコードで応答するAI搭載のPersonalizeツールです。コードは、オーディエンスエクスポート、コンディション、プログラム可能、セッション特性など、アシスタントを使用する特定のPersonalize機能に合わせてカスタマイズされています。

このトピックでは、Code Assistantが裏でどのように動作するか、そしてPersonalizeでJavaScriptを使って作業を効果的にプロンプトする方法について説明します。

## データのプライバシーとセキュリティ

Sitecoreでは、データのプライバシーとセキュリティを最優先事項としています。あなたのデータはLLMの学習に使われることはなく、安全かつ機密性が保たれます。当社のAI機能は、マーケティングワークフロー全体を通じて機密ブランド情報を保護するAIガードレールを組み込みます。AI対応ツールとのやり取りによるすべてのブランド文書およびデータは、厳格なデータプライバシーおよびセキュリティポリシーの下で保護されています。

SitecoreでのAI活用については、[Gen AI FAQ](https://www.sitecore.com/legal/gen-ai-faqs)をご覧ください。

## コードアシスタントのプロンプト

コードアシスタントにプロンプトを送ると、[サポートされているJavaScript関数](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/introduction-to-decisioning-in-sitecore-personalize/managing-programmable-decisions/supported-and-unsupported-javascript-entities/supported-and-unsupported-javascript-entities.html "Supported and unsupported JavaScript entities")を用いた生成コードのみで応答します。自然言語による説明やフィードバックは一切提供しません。応答を生成する際には、Personalizeインスタンス内の基礎データスキーマ、現在のプロンプト、そしてコードエディタにあるコード(存在する場合)を考慮します。プロンプト履歴やコードエディタ内の過去のJavaScriptは考慮しません。

したがって、アシスタントと仕事をする際は:

-   現在のコードをプロンプトにコピー&ペーストしないでください。エディターにコードがあれば、アシスタントが自動的に使います。
-   アシスタントにコードの生成や修正を促します。アシスタントはJavaScriptを出力するよう設計されており、一般的な会話には関わるものではありません。

> !注コードアシスタントはミスをすることがあります。本番環境で使用する前に、必ずコードを確認し、該当するPersonalize機能でテストしてください。
> 
> AIの応答は様々です。同じプロンプトを複数回実行すると結果が異なることがあります。

## プロンプトのアイデア

ここでは、コードアシスタントのためのいくつかのプロンプトアイデアを紹介します。

### コードを理解し、リファクタリングする

Code Assistantを使ってコードの説明やリファクタリング、好みに合わせて構文を更新し、役立つログをPersonalizeテストコンソールに追加できます。

プロンプト

結果

*コードの理解を助けるために、各行にコードコメントを追加しました。*

コードの内容をより理解できるように、行ごとのコメントで更新します。

*テスト中に確認できるように、コードにもっとログを含めてください。*

テスト中のコード実行を> **Response** **Logs** **\>で**テスト中のコード実行を追跡できるよう、コードにprint()文を付けて更新します。

*コードを短くリファクタリングしてください。*

コードをより簡潔に更新します。

-   *if-else文をスイッチに変換します。*
-   *矢印関数を従来の関数に変換します。*
-   *forループを簡素化しましょう。*

JavaScriptの構文を更新し、あなたの好みに応じてコードの読みやすさを向上させます。

-   *このJavaScriptをES5と互換性のあるものにしてください。*
-   *このJavaScriptをES6と互換性のあるものにしてください。*

コードを好みに応じて古いまたは新しいバージョンのJavaScript構文に変換します。

### 条件

[コードアシスタントを使って、](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/developer-center/conditions/create-a-condition-with-the-code-assistant.html "Create a condition with the Code Assistant")特定の基準を評価してオーディエンスをフィルタリングする条件を素早く作成できます。

-   プロンプト:結果
-   *過去2日以内に購入した顧客*:過去48時間以内に購入した場合は返品が真;そうでなければ返品は偽。例文:

{ false }

-   *Returning customer*: 顧客が少なくとも1件の注文を持っている場合はtrueを返します。過去の購入がない場合はfalseを返します。例文:

{ true }

-   *セグメント内の顧客*:指定されたセグメントに属している顧客はtrueを返します。属さなければfalseを返します。例文:

{ false }

-   *購入は開始済みですが未完了*:ゲストが注文を開始したが注文ステータスが完了していない場合はtrueを返します。注文が完了または開始されていない場合、falseを返します。例文:

{ false }

### プログラマブル

Code Assistantを使えば、体験や実験でのオファー意思決定を支援するために [、意思決定モデルのプログラム可能なものを素早く作成](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/introduction-to-decisioning-in-sitecore-personalize/managing-programmable-decisions/create-a-programmable-with-the-code-assistant.html "Create a programmable with the Code Assistant") できます。

-   プロンプト:結果
-   *Retrieve Last session channel*:有効な文字列であればゲストの最後のセッションのチャネルを返します。無効であればnullを返します。例文:

"outputs": 
 {
 "programmable": "EMAIL"
 }

-   *ゲストの好み言語を取得する*:有効な文字列であればゲストの好み言語のコードを返します。有効な文字列でなければnullを返します。例文:

"outputs": 
 {
 "programmable": "EN"
 }

-   *総注文数を取得する*:利用可能な注文数を返します。なければ0を返します。例文:

"outputs": 
 {
 "programmable": 0
 }

-   *最新の注文品の通貨コードを取得*:利用可能な通貨コードが有効な場合は、ゲストの最新の注文品から通貨コードを返します。そうでない場合はnullを返します。例文:

"outputs": 
 {
 "programmable": "EUR"
 }

### セッション特性

[Code Assistantを使えば、](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/developer-center/session-traits/create-a-session-trait-with-the-code-assistant.html "Create a session trait with the Code Assistant")個々の顧客のセッションベースの値を取得・保存するためのセッション特性を簡単に作成できます。短いプロンプトを入力したり、セッション特性を定義する際には好きなだけ説明的でいくことができます。

-   プロンプト:結果
-   *セッションで最も閲覧されたページ*:顧客のセッション中に最も頻繁に閲覧されたページを返します。例文:

{ "cmp" }

-   *総ビューイベントをカウント*する:顧客セッション中のページビューイベントの総数を返します。例文:

{ 2 }

-   *最終閲覧ページ*:セッション中に顧客が最後に閲覧したページを返します。例の出力:

{ "/select" }

-   *セッション中のストア時間*:顧客がセッション中に使用した合計時間を、最初のイベントから最後のイベントまで返します。例文:

{ "0 hour(s), 0 minute(s), 15 second(s)"}

-   *顧客がカートに追加した回*数を保存:セッション内のADD TO CARTイベント数を返します。例文:

{ 1 }

-   *ゲストが閲覧した上位3つの商品カテゴリを保存*する:セッション中に閲覧された上位3つの商品カテゴリを返します。例文:

{  "undefined", "select"  }

-   *最後の注文で購入した商品のタイプ名を保存*する:顧客の直近購入の商品タイプを返します。例の出力:

{ "FLIGHT" }