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の技術スキルは殆ど必要としませんでしたが、面白いので色々試してみたいと思います。もちろん日本語も。












