ケーススタディ: SAP Conversational AI を使用したチャットボットの構築

ケーススタディ: SAP Conversational AI を使用したチャットボットの構築

[51CTO.com クイック翻訳] チャットボットの構築に慣れていない初心者の場合、自然言語理解、対話フロー、メッセージ送信プラットフォームなどのさまざまな概念に直面したときに、間違いなく圧倒されるでしょう。この記事では、SAP Conversational AI で最初のチャットボットを構築し、次の目標を達成するための手順を順を追って説明します。

  • ボットに人間の言語を理解させましょう。
  • 強力な AI によって駆動される複雑な会話フロー。
  • ボットを外部チャネル (Facebook Messenger、Twitter など) に展開します。

シンプルなボットから始めましょう。次の図は、人間との対話のためのインターフェースを示しています。

ここで、ボットは次のインテリジェンスを実現する必要があります。

  • さまざまな挨拶や別れの言葉を理解する。
  • ユーザーがジョークを要求したことを理解し、リストからジョークをランダムに選択して応答できるようになります。
  • 少なくとも 2 種類のフィードバック (笑いまたはニヤリ) の意味を理解し、面白い GIF または深い謝罪で応答できます。
  • Facebook Messenger にボットを展開します。

前提条件

1. SAP Conversational AI で無料アカウントを作成します。

2. ログイン後、「テンプレートで開始」ボタンをクリックするか、右側のラベルにある「+ 新しい BOT」ボタンを直接クリックします。

3. ボットに 1 つ以上の定義済みスキルを選択できます。これにより、より早く開始できるようになります。ここでは「挨拶」を選択しますが、後で他のスキルを追加することもできます。

4. 「joke-Bot」という名前を付けます。

5. 「私の最初の面白いジョークボット」と説明してください。

6. ボットのトレーニングを改善するために、最大 6 つのトピックを設定できます。同時に、トピックのキーワードを「ファッション」、「ゲーム」、「仕事」などとして定義することもできます。

7. データの使用方法に基づいて適切なデータ ポリシー オプションを選択します。注: ユーザーに個人の健康情報について質問される可能性があることを考慮して、「健康」カテゴリのボットはチェックしませんでした。

8. デフォルトの言語を英語に設定します。

9. 現時点ではプライバシー情報がないので、公開に設定して後で調整することができます。

これまでに、ボットを構築するための準備が完了しました。

ボット構築フェーズ

通常、ボットはプラットフォーム上で次の 5 つの段階を経ます。

1. トレーニング - ボットに理解する必要があることを教えます。

2. 構築 - Bot Builder ツールを使用して会話フローを作成します。

3. コード - 外部 API またはデータベースを使用してボットに接続します。

4. 接続 - ボットを 1 つ以上のメッセージング プラットフォームに送信します。

5. 監視 – ボットを継続的にトレーニングして、さまざまな状況に対処できるように、よりスマートで柔軟にします。

現時点では外部情報は必要ないので、ここでは「コード」の部分をスキップします。もちろん、ボットとコードの関係について詳しく知りたい場合は、https://cai.tools.sap/blog/nodejs-chatBot-movie-Bot/ を参照してください。

ステップ1: ボットに人間の言語を理解させるトレーニング

ボットとしては、収集した情報を理解し、さまざまな意図を区別できる必要があります。ここでの意図は、異なる方法で表現された文が同じ意味を持つということです。したがって、ユーザーがボットにテキスト メッセージを送信すると、当社のアルゴリズムはそれをインテント内のフレーズと比較し、最も近いものをチェックして一致させ、テキスト メッセージのインテントが何であるかを判断します。

例えば:

  • あなたはロボットですか?
  • あまりにも早く反応したので、あなたはロボットのようなものだと思われます。
  • 私は人間と話しているのでしょうか?

ご覧のとおり、上記の 3 つの文は表現が異なりますが、すべて同じ質問をしています。「あなたはロボットですか?」したがって、ボットが質問を認識できる場合は、「私はロボットであり、それを誇りに思っています」などの適切な応答を準備できます。

フォークインテント

ユーザーとコミュニケーションをとるとき、すべてのタイプのボットは「挨拶」、「同意」、「反対」などの基本的なコンテンツを認識できます。そのため、初期段階でボットに定義済みの「挨拶」スキルを設定しておけば、別れと挨拶の 2 つの意図を判断する能力がすでに備わっていることになります。

また、SAP Conversational AI はコラボレーション型であるため、毎回新しいインテントを作成し直す必要がありません。他のユーザーによってすでに作成されたインテントをフォーク (複製) できます。たとえば、ユーザーがジョークを聞きたいことがわかっている場合は、コミュニティを検索して、そのようなインテントがすでに作成されているかどうかを確認できます。

上の画像に示すように、検索バーに「joke」と入力すると、結果のリストが表示されます。特定のコンテンツを表示する場合は、別のインテントの名前を直接クリックすることもできます。

新しいインテントを作成する

新しいインテントをカスタマイズする場合は、最初から構築する必要があります。ここでは、相手がジョークを聞いて笑ったことをボットに理解してもらいたいのです。検索フィールドの右側にある [+ 作成] をクリックして、インテントに名前を付けることができます。

上記のプロセスを繰り返すことで、相手が馬鹿げていると思わないような意図を作り出すことができます。

ステップ2: 表現を追加する

インテントが作成されたので、さまざまな表現を使用してそれを表現する必要があります。さまざまなインテントをクリックして、さまざまな式ステートメントを追加できます。私のアドバイスは、1 つのインテントに少なくとも 30 個の表現を追加し、理想的には 50 個追加することです。

以下に表現の例をいくつか示します。

大声で笑う

  • ハハハハ、これはとても面白いですね。
  • ROFL(床に転がって笑う)あなたは素晴らしいです!
  • 君はすごいよ、友よ!それは素晴らしいジョークだ。
  • 久しぶりにこんなに笑いました。

面白くない

  • あなたにはユーモアのセンスが欠けているようですね。
  • これはひどくて不快です。
  • これは何を表現しているのでしょうか?
  • このジョークはまったく面白くない。別のジョークを試してみて。

ヒント: インターフェースの青い「意図を豊かにするために X 個の表現が提案されています」をクリックすると、追加できる表現の例をさらに確認できます。これにより、ボットのトレーニングをスピードアップできます。

ステップ3: ボットのテスト

コンソールで、右上隅にある TEST バブル アイコンをクリックします。 「ジョークを言ってもらえますか?」など、これまで練習したことのない文章を入力します。

入力に基づいて、ボットはインテントを取得して応答します。既存のアルゴリズムが対応する意図を検出できなかったり、無効な意図を検出したりした場合は、新しい表現を追加するか、既存の表現を変更して、さらにトレーニングする必要があります。これは少し面倒に思えるかもしれませんが、ボットがユーザーの発言を正しく認識できるようにするには最適な方法です。

ボットの意図検出効果が要件を満たしたら、次の段階であるボットのダイアログフローの構築に進むことができます。

ステップ4: 会話フローを構築して管理する

ここで、ボット ビルダーの [ビルド] タブを見つけましょう。このタブは、ボットのスキルに基づいて会話フローを構築するのに役立ちます。

スキルとは何ですか?

各スキルは、ボットが「知っている」実行方法を表し、相互の順列と組み合わせによってますます複雑になります。

新しいボットを作成すると、そのボットに対して定義済みのスキルがすでに選択されています。もちろん、「車輪の再発明」を避けるために、プラットフォーム上で他の人が作成したスキルを検索して「フォーク」することもできます。

たとえば、作成時に定義済みのスキル「Greetings」を選択した場合は、それがインターフェースに表示されます。

名前をクリックすると、次の詳細情報が表示されます。

通常、スキルは次の 4 つの部分で構成されます。

  • Readme: スキルについて説明します。
  • トリガー: ユーザーからのどのようなメッセージの後にこのスキルをアクティブ化するかを定義します。
  • 要件: このスキルが収集する必要がある追加情報と、この情報を収集するための条件について説明します。
  • アクション: 要件が満たされた場合、どのようなアクションを実行する必要がありますか?

Greeting スキルを参照すると、その構造が次のようになっていることがわかります。

  • 挨拶または別れの意図が正常に一致した場合に起動します。
  • これ以上情報を収集する必要がないため、追加の要件はありません。つまり、トリガーされるとすぐにアクションが実行されます。
  • ここでは、2 つのアクションが考えられます。一致するインテントが挨拶の場合、リストからランダムに歓迎メッセージを選択して送信します。インテントが別れの場合、別のリストからメッセージを選択して送信します。

ステップ5: スキルを磨く

「ビルド」タブに戻り、左側の「+ 作成」スキルをクリックして、独自のスキルを構築しましょう。

スキルには、ビジネス、フローティング、フォールバックの 3 つのタイプがあります。

  • 商業用とフローティングの間には構造上の違いはありません。これらは、最も一般的に使用されるスキルをカバーするのに十分です。
  • バックアップ スキルは、ユーザーからメッセージを受信したが、スキルをトリガーできない場合に便利です。ほとんどの場合、これらのタイプのうち 1 つだけを使用できます。もちろん、ボットが何ができるかについてのヒントをユーザーに提供して、質問を言い換えるように提案することもできます。

ここでのスキルは浮遊型です。私はそれを「冗談を言ってみろ」と名付けました。

新しく作成されたスキルと「トリガー」タブをクリックすると、一致したインテントに対してさまざまなスキルをアクティブ化できます。

上の図に示すように、デフォルトの条件は AND であり、いずれかのインテントが一致したときにスキルをアクティブ化したいので、条件を OR に変更することを忘れないでください (青いボタン「AND」をクリックします)。

この場合は追加の要件がないため、追加の設定は行いません。もちろん、ボットがどんな種類のジョークを好むか、大人向けのジョークに年齢制限を追加するなど、さらに情報を尋ねてボットを改善することもできます。

次に、「アクション」タブをクリックしてメッセージ グループを作成します。

「新しいメッセージ グループの追加」をクリックし、次に「条件の追加」をクリックして、メッセージがトリガーされる条件を追加します (例: @ask-joke が存在する場合)。ここで「@」はインテントの種類を表します。これについては後ほど紹介します。

次に、「メッセージを送信」というアクションとテキストの形式を選択できます。

***、お気に入りのジョークを入力できます。

もちろん、ボットが返信する長いメッセージをユーザーがゆっくり読めるように、2 つのメッセージの間に 5 秒の遅延を設定することもできます。

ステップ6: ボットにさまざまな回答を提供する

メッセージの「+」をクリックすると、ランダム リストに新しいメッセージを追加できます。こうすれば、いつも同じジョークを送ることがなくなります。もう一度下の「メッセージを送信」をクリックすると、複数のメッセージを一度に送信することもできます。

さらに2つの意図を紹介しましょう。

[新しいメッセージ グループの追加] をクリックし、条件を「@laughter が存在する場合」に設定します。

この場合、さまざまな GIF 画像を送信する場合は、「メッセージを送信」と「画像形式」をクリックします。

同様に、3 番目の意図についても同じことができます。

ステップ7: ボットとチャットする

次に、実際の状況でボットが人間のユーザーとチャットできるようにする必要があります。もちろん、ボットの構築中はできるだけ頻繁にボットとチャットして、ロジックエラーをできるだけ早く特定することをお勧めします。

右下にある青いボタン「ボットとチャット」をクリックして、メッセージを送信してみてください。同時に、「クリア」を使用して画面をクリアすることもできます。

ステップ8: ボットをメッセージングプラットフォームに接続する

すべての準備が整ったら、ボットをパブリック メッセージング プラットフォームにデプロイできます。

「接続」タブに移動し、希望するメッセージング プラットフォームを選択して、ステップバイステップの指示に従ってください。

これはプラットフォームによって異なることに注意してください。たとえば、Telegram は設定が簡単ですが、GIF 画像をサポートしていません。したがって、ボットを適切に調整する必要があります。どこから始めればよいかわからない場合は、膨大な数のユーザーを抱える非常に強力なプラットフォームである Facebook Messenger を使用することをお勧めします。

[[260177]]

ステップ9: ボットの監視とトレーニング

モニター タブは、ボットのインテリジェンスを継続的に向上させるのに役立ちます。ボットが受信したすべてのメッセージを収集し、どのインテントが一致したかを表示します。綿密に監視することで、一致が効果的でない、または存在しないインテントに対して動的に調整して割り当てることができます。

上の図に示すように、最後のメッセージでは、ボットは意図を一致させることができませんでした。このタイプのメッセージが引き続き表示される場合は、新しいインテントを作成する必要があります。

見通し

上記の 9 つの手順を正常に完了し、チャットボットをさらに改善したい場合は、次の 3 つの側面から始めることもできます。

  • メッセージから豊富なキー情報を抽出する方法を学びます。
  • 外部 API と対話するには、ボットをコードに接続します。
  • ボットを複数の言語で利用できるようにして、視聴者を拡大します。

最後に、他の人が生み出した善意やスキルを「寄付」することを忘れないでください。継続的な反復と再構築を通じて、ボットはより賢くなると信じています。

原題: SAP Conversational AI で初めてのチャットボットを構築する、著者: Omer Biran

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください]

<<:  ビル・ゲイツ:AIは教育と医療の向上に活用されるべき

>>:  CBインサイトがAI業界の25大トレンドを発表:中国では顔認識や無人店舗が急速に発展

ブログ    
ブログ    

推薦する

アンドリュー・ン氏の新たな動き:「データ中心のAI」の拠点となる新たなMLリソースサイトを設立

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

Dynalang - 言語を使って世界のモデルを学習する新しいAIテクノロジー

翻訳者|朱 仙中レビュー | Chonglou導入この記事は、人工知能に関する最新の研究に関する当社...

...

メタ研究者が新たなAIの試み:地図や訓練なしでロボットに物理的なナビゲーションを教える

Meta Platformsの人工知能部門は最近、少量のトレーニングデータのサポートにより、AIモデ...

研究によると、AIシステムは大量のエネルギーを消費する

同研究機関はAIインフラの需要について徹底的な調査を実施し、AIシステムに必要なエネルギーは本格導入...

分散トレーニング入門: PyTorch を使用してマルチ GPU 分散トレーニングを実装する方法

具体的には、この記事ではまず、分散コンピューティングの基本概念と、分散コンピューティングがディープラ...

...

人工知能はますますあらゆる分野に浸透しつつある

近年、人工知能技術は急速に発展し、ますます多くの分野でその急速な発展の勢いと大きな可能性を発揮してい...

ドローンは5G開発をフィードバックし、インテリジェントな運用と保守の新たなアップグレードを促進する

近年、民生用ドローンの急速な発展と5G商用化の段階的な深化に伴い、ドローンと5Gの関係はますます密接...

大規模モデルのモデル融合法についてお話しましょう

モデル融合は、特に判別モデルにおいて、これまで頻繁に使用されてきました。これは、常に着実に改善できる...

ディープラーニングを使用した音声分類のエンドツーエンドの例と説明

サウンド分類は、オーディオのディープラーニングで最も広く使用されている方法の 1 つです。音を分類し...

ICLRは深層生成モデルに関する大きな議論を開催し、ウェリングとAAAIの百万ドル賞受賞者が来場する。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

2019 Baidu AI 開発者会議で AI レポートカードが披露される

7月3日、北京で百度AI開発者会議「Baidu Create2019」が開催された。この会議は「産業...

インターネット技術起業家は、2 つのセッションで提案を行う際にどのような点に重点を置いていますか?

[[258735]] 3月3日、毎年恒例の全国「両会」が正式に始まりました。「両会」シーズンが始ま...

人工知能とビッグデータが私たちの生活に何をもたらすかご存知ですか?

「ビッグデータ」と「人工知能」はテクノロジー業界で最も価値のある分野となっている。Apple、Go...