会話AI・チャットボットに求めるレスポンス例・機能

下記はデジタルヒューマンプラットフォームと接続する際にチャットボットに求めるレスポンスの例や機能です。

通常はチャットボット側が持つAPIに対してデジタルヒューマンプラットフォームから接続しますが、LLM等をつかってチャットボットを作成する場合は下記を参考にしていただけるとスムーズに接続可能です。

一般的なチャットボットへのリクエスト例

DHプラットフォームからのリクエストパラメータ例
{
    "bot_id":"string",
    "api_key":"string",
    "session_id":"string",
    "question":"string",
    "stream": true,
}

パラメーター解説

bot_id

 
  • 説明 : チャットボットの識別子です。特定のチャットボットを指定するために使用されます。
  • データ型 : 文字列(string)

api_key

  • 説明 : APIへのアクセスを認証するためのキーです。セキュリティのために使用され、正当なユーザーであることを確認します。
  • データ型 : 文字列(string)

session_id

  • 説明 : ユーザーのセッションを識別するためのIDです。会話のコンテキストを維持するために使用されます。
  • データ型 : 文字列(string)

question

  • 説明 : ユーザーがチャットボットに尋ねる質問です。チャットボットはこの質問に対して応答を生成します。
  • データ型 : 文字列(string)

stream

  • 説明 : ストリーミングモードを有効にするかどうかを指定します。
  • データ型 : ブール値(boolean)
 

他リクエストパラメーターとして渡せる値

  • 言語

ユーザーの質問を言語特定した値。

サポートされている言語 :

af als am an ar arz as ast av az azb ba bar bcl be bg bh bn bo bpy br bs bxr ca cbk ce cebckb co cs cv cy da de diq dsb dty dv el eml en eo es et eu fa fi fr frr fy ga gd gl gn gom gu gv he hi hif hr hsb ht hu hy ia id ie ilo io is it ja jbo jv ka kk km kn ko krc ku kv kw ky la lb lez li lmo lo lrc lt lv mai mg mhr min mk ml mn mr mrj ms mt mwl my myv mzn nah nap nds ne new nl nn no oc or os pa pam pfl pl pms pnb ps pt qu rm ro ru rue sa sah sc scn sco sd sh si sk sl so sq sr su sv sw ta te tg th tk tl tr tt tyv ug uk ur uz vec vep vi vls vo wa war wuu xal xmf yi yo yue zh

 
  • ユーザーの表情・風景(画像)

ユーザー側のWebカメラで撮影した画像を1秒おきにNLPオーケストレーションに送信する機能により、ユーザーの会話情景をBase64画像として、チャットボットに渡すことができます。

リクエストする際に渡される画像は、撮影された最新の画像になります。

チャットボットからのレスポンス(streamなし)

streamを行わない場合のレスポンス
{
   "question":"string",
   "session_id":"string",
   "utterance":"string",
   "bestResponse":{
       "utterance":"string",
       "extensions":"json string",
       "suggest":[{
               "label":"string1",
               "utterance":"string1"
           },
           {
               "label":"string2",
               "utterance":"string2"
           },
           {
               "label":"string3",
               "utterance":"string3"
           }],
   },
}

パラメーター解説

question

  • 説明: ユーザーがチャットボットに尋ねた質問です。
  • データ型: 文字列(string)

session_id

  • 説明: ユーザーのセッションを識別するためのIDです。会話のコンテキストを維持するために使用されます。
  • データ型: 文字列(string)

utterance

  • 説明: チャットボットの応答です。ユーザーの質問に対する直接の回答が含まれます。
  • データ型: 文字列(string)
  • 補足: 実際に生成・(シナリオベースであれば登録)されている文字列

bestResponse

  • 説明: チャットボットが選択した最適な応答です。この応答に関連する追加情報が含まれます。
  • データ型: オブジェクト(object)

extensions

  • 説明: 追加の情報やメタデータを含むJSON形式の文字列です。
  • データ型: 文字列(json string)
  • 補足 : 一般的に画面上のコンテンツ表示・非表示用のJSONが含まれます。サポートサイト

suggest

  • 説明: ユーザーに対する提案のリストです。次に尋ねる可能性のある質問やフレーズが含まれます。
  • データ型: 配列(array)

label

  • 説明: 提案のラベルです。ユーザーに表示されるテキストです。
  • データ型: 文字列(string)

utterance

  • 説明: 提案されるユーザーの発話です。ラベルに対応する質問やフレーズが含まれます。実質値。
  • データ型: 文字列(string)
 
 

チャットボットからのレスポンス(stream)

stream生成中

streamで生成中のレスポンス
{
    "generate":"string"
    "bestResponse":{
        "utterance":"string",
        "extensions":"json string",
        "suggest":[{
               "label":"string1",
               "utterance":"string1"
           },
           {
               "label":"string2",
               "utterance":"string2"
           },
           {
               "label":"string3",
               "utterance":"string3"
           }],
    },
    "final":false,
}

パラメーター解説

generate

  • 説明: 今回生成された文字列です。
  • データ型: 文字列(string)

bestResponse

  • 説明: チャットボットが選択した最適な応答です。この応答に関連する追加情報が含まれます。
  • データ型: オブジェクト(object)

utterance

  • 説明: 今回生成された文字列まで、streamでこれまでに生成された全体の文字列です。
  • データ型: 文字列(string)

extensions

  • 説明: 追加の情報やメタデータを含むJSON形式の文字列です。
  • データ型: 文字列(json string)
  • 補足 : 一般的に画面上のコンテンツ表示・非表示用のJSONが含まれます。サポートサイト

suggest

  • 説明: ユーザーに対する提案のリストです。次に尋ねる可能性のある質問やフレーズが含まれます。
  • データ型: 配列(array)

label

  • 説明: 提案のラベルです。ユーザーに表示されるテキストです。
  • データ型: 文字列(string)

utterance

  • 説明: 提案されるユーザーの発話です。ラベルに対応する質問やフレーズが含まれます。実質値。
  • データ型: 文字列(string)

final

  • 説明: ストリーミングが終了したことを示すフラグです。falseに設定されている場合、応答が生成途中であることを示します。
  • データ型: ブール値(boolean)
 

stream生成終了

streamで生成が終了したレスポンス
{
   "question":"string",
   "session_id":"string",
   "generated":"string",
   "bestResponse":{
       "utterance":"string",
       "extensions":"json string",
       "suggest":[{
               "label":"string1",
               "utterance":"string1"
           },
           {
               "label":"string2",
               "utterance":"string2"
           },
           {
               "label":"string3",
               "utterance":"string3"
           }],
   "final": true,
}

パラメーター解説

question

  • 説明: ユーザーがチャットボットに尋ねた質問です。
  • データ型: 文字列(string)

session_id

  • 説明: ユーザーのセッションを識別するためのIDです。会話のコンテキストを維持するために使用されます。
  • データ型: 文字列(string)

generated

  • 説明: 実際に生成された文章全体が含まれます。
  • データ型: 文字列(string)

bestResponse

  • 説明: チャットボットが選択した最適な応答です。この応答に関連する追加情報が含まれます。
  • データ型: オブジェクト(object)

utterance

  • 説明: チャットボットの応答です。ユーザーの質問に対する直接の回答が含まれます。
  • データ型: 文字列(string)
  • 補足: 実際にデジタルヒューマンの発話に利用する文字列

extensions

  • 説明: 追加の情報やメタデータを含むJSON形式の文字列です。
  • データ型: 文字列(json string)
  • 補足 : 一般的に画面上のコンテンツ表示・非表示用のJSONが含まれます。サポートサイト

suggest

  • 説明: ユーザーに対する提案のリストです。次に尋ねる可能性のある質問やフレーズが含まれます。
  • データ型: 配列(array)

label

  • 説明: 提案のラベルです。ユーザーに表示されるテキストです。
  • データ型: 文字列(string)

utterance

  • 説明: 提案されるユーザーの発話です。ラベルに対応する質問やフレーズが含まれます。実質値。
  • データ型: 文字列(string)

final

  • 説明: ストリーミングが終了したことを示すフラグです。trueに設定されている場合、応答が完全に生成されていることを示します。
  • データ型: ブール値(boolean)
 

チャットボットの機能

デジタルヒューマンに実装している機能・デジタルヒューマンの仕様を元に、チャットボット側に求める機能を記載しています。

起動時の回答設定

  • 機能説明: 初回のセッション開始時に、設定された挨拶や案内メッセージを返す機能です。
  • メリット:
      1. デジタルヒューマン起動時に発話する文言を設定することができます。
      1. ユーザーはすぐにチャットボットがどのように役立つかを理解しやすくなります。

サジェステッドレスポンス(クイックリプライ)機能

  • 機能説明: ユーザーに選択肢を提示し、クリックで簡単に応答できる機能です。
  • メリット:
      1. デジタルヒューマンのUIで、クイックリプライを表示できる機能を利用可能になります。
      1. ユーザーは、提示された選択肢から一つを選ぶだけで、次のステップに進むことができます。
  • 補足: レスポンス例のsuggestに利用することが想定されます。表示文字・実際値の2つを設定できるとさらに幅が広がります。

拡張データ機能

  • 機能説明: 回答のほかに、レスポンスに含めるデータをJSONサポートサイト形式で登録できる機能です。
  • メリット:
      1. デジタルヒューマンのUIで、コンテンツ表示を行うことが可能になります。
      1. 会話に関連する画像やグラフ、動画などを表示することで、ユーザーの理解が深まります。
  • 補足: レスポンス例のextensionsに利用されることが想定されます。

タグ装飾対応

機能説明 : デジタルヒューマンとの接続では、デジタルヒューマンのアクションやTTS変換のためのSSMLを特定のタグで文章に装飾することで実現します。チャットボットによっては、タグが自動変換されたり、消えてしまったり、特定の形式に変換される処理が含まれている場合がありますが、この機能はタグをそのままの状態で保持することができます。

多言語対応

  • 機能説明: ユーザーの言語に合わせた言語で回答を生成する機能です。
  • メリット:
      1. デジタルヒューマンの音声認識優先言語選択・言語特定を利用した正確な言語を取得できます。
      1. グローバルなユーザーに対応できます。
  • 補足: リクエストパラメータとして、ユーザーの言語を渡すことが可能です。

state管理機能

  • 機能説明: ユーザーの質問・回答やLLMの回答を特定の名前の変数として、保持する機能です。
  • メリット:
      1. ユーザーは一貫性のある会話を楽しむことができ、途中で情報が途切れることがありません。

state管理の拡張

  • 品詞抽出
    • ユーザーの質問・回答から主となる品詞を抽出して、 stateに格納する機能。

画像認識機能

  • 機能説明: ユーザーの質問とともに画像データをリクエストすることで、画像も認識した回答を生成する機能です。

会話リセット機能

機能説明:特定のユーザー質問、またはイベントが来た際に、セッションの会話履歴削除などを行い、会話をリセットする機能。

メリット :

  1. デジタルヒューマンのUIに会話をリセットするボタンがあります。ユーザーはボタンを押すことで会話をリセットすることが可能です。

応答拡張機能

  • 機能説明: LLMが生成した特定の文字列を認識し、その内容をレスポンスに自動的に組み込む機能です。
  • 例 : 「@suggest{リスト型のサジェスト}」という形式で生成されたサジェストを、レスポンスの「suggest」欄に登録します。
  • メリット:
      1. LLMのプロンプト次第で、動的サジェステッドレスポンス(クイックリプライ)・動的拡張データのような機構を作成できます。
      1. LLMによる自動化の幅が大幅に増えます。
お役に立ちましたか?
😞
😐
🤩

最終更新日 July 4, 2024