SAP Tutorialsを参考に、SAP Conversational AIでチャットbotを作成してみようと思います。
今回はこちらのTutorialを参考にしています。
SAP Conversational AI アカウントの作成
まずはこちらの SAP Conversational AI のサイトからアカウントを作成します。
SAP IDをお持ちであれば、Sign in でアカウントを作成することができます。
免責事項の画面が表示されますので、諸条件にチェックを入れて同意ボタンを押します。これで完了です。
botプロジェクトの作成
アカウントの作成が完了しログインができると、ホーム画面が表示されます。
早速botプロジェクトを作成しましょう。Start With Templateボタンを押します。
① "What do you want your chatbot to do?"の画面が表示されますので、Perform Actionsを選択します。
② "Select predefined skills for your bot"にはTutorial に従って、Greetingを選択します。
③ "Create your bot"には、¥Tutorial に従って、bot名にはmy-first-bot
、DescriptionにはA bot that likes to tell jokes and have a little fun
を入力します。
④ "Data Policy"にはTutorial に従って、Type of dataにNon-personal
、Store conversation dataにはStore (recommended)
を選択します。
⑤ "Bot visibility"にはTutorial に従って、Publicを選択します。
最後にCreateボタンを押します。
botのステージの解説
botのステージの解説がありましたので、日本語訳を記載します。
Train:botが理解する必要があることを教えます。ここでは、botがユーザーからの表現を認識すべきであるというアイデア、つまりintentsを作成します。
Build:私たちのBot Builderツールで会話の流れを作成します。ここで、botが実行できるスキルを与えます。ここでは、botができること(スキル)を作成し、それらがトリガーされるタイミングを定義します。スキルはトリガー、要件(ボットが収集する必要がある情報)、およびアクションによって定義されます。
Connect:botを一つまたは複数のメッセージングプラットフォームに展開します。
Monitor:ユーザーがbotと、どのようにコミュニケーションを取っているかを確認し、botがユーザーを正しく理解しているかをチェックし、botのintentsやentitiesを更新します。モニタリングはまた、ユーザーが何を求めているかを見ることができ、ボットに追加できる新しい機能のアイデアを提供します。
IntentとEntityについては、ChatGPTの回答をご参考ください。
Intentは、ユーザーの発言または質問の目的を表します。つまり、ユーザーが何をしたいか、何を求めているかということです。例えば、ユーザーが「今日の天気は?」と尋ねた場合、そのIntentは「天気を知りたい」という意図を示しています。チャットボットはこのIntentを識別し、適切な天気情報を提供することで応答します。
Entityは、Intentに関連する具体的な情報やキーワードを指します。これは、ユーザーの質問や発言から抽出される具体的な詳細や条件です。先の例で言えば、「今日」という言葉は「天気」というIntentに関連するエンティティです。エンティティによって、チャットボットはユーザーが求めている情報をより正確に理解し、より具体的な応答を行うことができます。
IntentのFork
最初にForkの概念をChatGPTに聞いてみました。ソフトウェアやプロセスの分岐の意味でも使われますが、ここではGithubにおけるForkの概念が正しいと思われます。
Forkとは、他人のリポジトリを自分のGitHubアカウント下にコピーすることを指します。このプロセスにより、オリジナルのリポジトリに影響を与えることなく、コピーされたリポジトリで自由に変更や実験を行うことができます。Forkされたリポジトリは独立しており、オリジナルのリポジトリには自動的には反映されません。
Serchボックスにjoke
と入力して、Serchボタンを押します。
いくつかIntentのリストが表示されますので、@ask-joke
が付いているものの中から1つを選んでFork
を押します。(Tutorialと同じものは私は表示されませんでした。)
登録されたIntentをクリックすると、登録されているExpressionを確認できます。
Intentの新規作成
Intentを新規作成するには、New Intent ボタンを押します。
Let's create your intentの画面が表示されますので、Tutorialに従いIntent名にlaughs
、Your intent description (optional)の欄にA natural reaction to our awesome jokes.
を入力し、Create Intentボタンを押します。
同様に、Intent名にlame
、Your intent description (optional)の欄にYou can’t succeed every time.
を入力し、Create Intentボタンを押します。
Expressionの追加
作成したIntent(意図)にExpression(表現)を追加していきます。
作成したIntent@laughs
をクリックし、Tutorialに従い以下の文章を一行ずつ入力してEnterを押します。
右側のImport Expressionsボタンは、csvファイルにした一覧を一括で取り込む場合に利用します。
Hahaha that's hilarious
ROFL you're good!
That, my friend, was an amazing joke.
I haven't laughed that much in a long time!
追加したExpression はリストに追加されていきます。
同様にIntent@lame
をクリックし、Tutorialに従い以下の文章を一行ずつ入力してEnterを押します。
You have no sense of humor whatsoever.
That's both terrible and offensive.
What the heck was that?
Try harder, that was a very bad joke.
botのテスト
画面右上のTrainボタンを見るとステータスが黄色になっています。最新のIntentとExpressionを学習できていない状態ですので、Trainボタンを押して最新の情報にアップデートします。
数秒まつとステータスがグリーンとなり学習が完了した状態になります。
トレーニングモードはSetting -> Versions -> ドロップダウンぼたん -> Training Modeから、AUtomaticとManualを切り替えることができます。
画面右下のExpression Analysisタブを開きます。
Tutorialに従い、Botty bot, can you tell me a joke please?
を入力しEnterを押します。もしIntentがうまく学習されていれば、テストはbotがそのIntentを認識したことを示すでしょう。
スキルを使った会話の流れの管理
スキルとは?
各スキルは、botが実行できる1つのことを表します。スキルは複雑なもの(例:クレジットカードによる支払いの管理)から、非常にシンプルなもの(例:基本的な質問に答える)まで様々です。意図(Intents)と同様に、スキルはゼロから作成することも、作成した他のbotや他の人のbotからスキルを継承することもできます。
ここで事前定義されたスキル「Greetings(挨拶)」を選択して確認してみましょう。
Greetingsスキルは、すべてのスキルと同様に、4つのタブを持っています:
Triggers(トリガー): スキルが実行されるために発生しなければならない条件 - 一般的にはユーザーが表現しなければならない意図
Requirements(要件): スキルが実行されるために収集されなければならない情報
Actions(アクション): 実行するアクション(基本的にこれがスキルです)
スキルの新規作成
スキルの作成を行います。BuildタブのAdd skillを押します。
Tutorialに従い、Nameにtell-me-a-joke
を入力、TypeにBusiness
を選択し、Addボタンを押します。
各Typeの説明の翻訳は以下になります。
・Businessは、ボットの核心的な目的を反映しています。
・Floatingは、ボットの核心的なビジネススキルを補完します(例えば、雑談など)。
・Initialize(チャットボットには1つだけ存在できます)は、ユーザーとの会話が開始されたときにトリガーされます。
作成されたスキルtell-me-a-jokeをクリックします。
Ifの右側の空白を押すと、空白の下にリストが表示されます。そこから@ask-joke
-> Saveボタンの順にクリックします。
@ask-joke
が追加されました。+
ボタンを押して、同様に@laughs
とlame
も追加します。
Actionsタブに移動し、New Action Group
ボタンを押します。
ADD CONDITION to trigger actionsを押します。
Ifの右側の空白を押すと、空白の下にリストが表示されます。そこから@ask-joke
-> Saveボタンの順にクリックします。
Tutorialに従い、I just flew into town, and boy are my arms tired.
を入力し、Saveボタンを押します。
チャットbotのテスト
チャットbotをテストをするには、画面右下のCHat Previewタブを開きます。
Tutorialに従い、Tell me a joke
と入力してEnterを押します。意図した結果が返されました。
あとがき
これで今回の記事は終了です。お疲れ様でした。
ITの技術スキルは殆ど必要としませんでしたが、面白いので色々試してみたいと思います。もちろん日本語も。