ユーザー情報を活用した効果的な会話~watsonx Assitsantプレチャットフォームの実装


近年、AI技術の進化により、私たちのデジタル体験が大きく変わりつつあります。そのなかでも、チャットボットはビジネスやカスタマーサービスの分野で重要な役割を果たしています。しかし、より効果的なユーザーエクスペリエンスを提供するためには、ユーザーとの会話がよりパーソナライズされ、的確になる必要があります。

watsonx Assistantを利用してWebチャットボットを作る時に、[サンプルコード](https://github.com/watson-developer-cloud/assistant-toolkit/tree/master/integrations/webchat/examples/pre-post-chat-forms)をプレチャットフォームを実装してみました。この記事では、手順をシェアさせたいと思います。

実装イメージ：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/5eb46a6d-1a96-6421-7511-aedf8cac64b7.png)
# 準備
まず最初にwatsonx Assitstantのインスタンスを持っていなければなりませんね！
watsonx Assitstantのインスタンスを作成する方法は下記の記事にご参考ください。

https://qiita.com/yanagih/items/b02db00d06de397bec64

チャットボットを新規作成するには下記の記事をご参考ください。

https://qiita.com/yanagih/items/f98cff2b5b9ce3208fc4#%E6%97%A9%E9%80%9F%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%82%87%E3%81%86

プレチャットフォームサンプルコードのリンクは[ここ](https://github.com/watson-developer-cloud/assistant-toolkit/tree/master/integrations/webchat/examples/pre-post-chat-forms)です。

# Step 1　Session Variable(セッション変数)を作成する
左上のホームボタンをクリックするとナビゲーションが表示され、Actionをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/790746c0-0351-048e-7ab7-a38e848c0823.png)

「Created by you」 をクリックして、右上の「New variable」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/b3a52642-0e49-43c8-b737-c6e282f7c17c.png)

下記のようにセッション変数を作成します。
変数名「Name」に入力しますとVariable IDが自動的に生成されます。「Type」は「Free text」にします。
「Save」で保存できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/3dcc0637-0a52-d84f-65a0-2785e79f54b4.png)

作成した様子：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/81e600c0-fed0-a83d-b253-ab40ffb45eba.png)

# Step 2 チャットボットの挨拶を編集する
Actionの「Set by assistant」をクリック、次に「Greet customer」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/03493e3c-d092-b8ec-4f79-1676a679fba2.png)
デフォルトが下記のような挨拶文になりますが、左のConversation stepsのステップ1をクリックして内容を編集できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/c0353f92-7daa-0e34-8234-ee51c94e47b2.png)

Assistant saysの部分先ほど作成したUser Name変数を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/19ff08ec-5f4f-efaa-a54c-27d5fcc4aa54.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/4c1587a8-58f4-f79c-16c6-fdb8597324a5.png)

挨拶を入力します：
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/0c919bbf-a0b0-baed-5627-1efe42cf53ce.png)
 右上の「Save」で保存することを忘れないてね！保存したら隣ろの「Close」でActionのリストに戻れます。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/06650068-8078-deeb-a373-25df4e0d98be.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/d23b3e13-653e-ddf5-b790-00794ec88b9e.png)


# [Option] Step 3 会話内容を作る
**このステップをスキップしてもプレチャットフォームの動作に影響がありません。**
Actionsの「Created by you」はデフォルトで空白になりますが、「Create action」をクリックして最初のアクションを作成しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/de756b3d-94bc-2b42-779a-fb7c5c05be0c.png)

ここにアクションのトリーガーとなるユーザーの発話を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/b7d651e3-5183-8742-653b-5abf6cb2fc08.png)

ステップのAssistant saysにクリスマスの挨拶を入力して、 下部の「And　then」を「End the action」にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/9902e1ec-7224-d48c-bab2-db26cac34d6d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/5d5a5a63-2c7c-b1c8-786b-be57157199b9.png)
できたらこんな感じですね。保存しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/f1901ce4-862e-89bb-9fe6-f7f338b4214d.png)

画面の右下にプレビューボタンがあります。クリックしてチャットボットの動きを確認してみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/cb0ec990-7414-bb05-c85b-3d0ca92458ae.png)

チャットボットの挨拶にはユーザーが入力する名前が表示され、「テスト」をチャットボットに送信したら「Merry Christmas」で返事します。
ここではまだ入力内容が取得されていないので、デフォルトの値が表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/40885e31-1019-5e33-95fa-e94832e83a9d.png)

# Step 4 Webチャットのプレビューを設定する
ナビゲーションからPreviewに移動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/240bf0c8-548c-1508-af6f-fdf54ca3d2a2.png)
チャットボットのデフォルト挨拶画面が画面の右側に表示する通りですが、Step2で作成した挨拶を表示させるためにカスタマイズ設定が必要です。右上の「Customize web chat」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/99a618e0-0a3e-bc5a-ba96-67c4c383e9b8.png)
「Home screen」タブに移動して、スイッチをOffにして、右上の「Save and exit」で保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/19d5455e-a436-2716-fc77-a2fe527db1f3.png)

# Step 5 接続情報を取得する
ナビゲーションから「Integrations」に移動して、「Web chat」の「Open」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/b1d79a9c-e811-ca4f-c7e8-b8ca92a80172.png)

環境はDraftのままでOKです。「Confirm」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/907ff952-c34a-fd26-010b-15d495771cb8.png)
「Embed」タブに移動して、integrationID、regionおよびserviceInstanceIDをメモしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/0433ca06-1f4c-306d-cdac-3259c74bc79a.png)

サンプルコードの下記のパスにconfig.jsファイルがあります:

**assistant-toolkit/integrations/webchat/examples/pre-post-chat-forms/client/react/src**

integrationID、regionとserviceInstanceIDの値を自分のチャットボットの環境情報に変更して保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/92a795d4-4e84-9d21-d4e9-7c0f949475ac.png)

# Step 6 プレチャットフォームを編集する

チャットボットの動きに影響がありませんが、プレチャットフォームの案内文を日本語に編集して操作を分かりやすくしましょう。
config.jsと同じパスに「forms」フォルダがあります。「preChatForm.js」の27行にあるlabelTextを「お名前を入力してください。」に編集して保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/eb681d9b-2eaa-e8d0-66da-9bc52a6d4be7.png)


# 起動しで実装結果を確認する
**assistant-toolkit/integrations/webchat/examples/pre-post-chat-forms/client/** に移動して、下記のコマンドを実行します：
```shell:command
npm install
npm run start
```
Webブラウザを開いて localhost:3000 にアクセスします。画面の右下にある下記のアイコンをクリックするとチャットを開始できます：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/15bed1fc-5791-d5b1-7f4f-70e7112c5c9a.png)
チャットボットがプレチャットフォームに入力された名前が含まれる挨拶文を表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730915/2bc3c715-8a4f-5023-3663-20ecbb15f7c4.png)

#### いかがでしたでしょうか
今回は、ここまでです。
読んでいただき、ありがとうございました。それでは、Merry Chirstmas！