会話データのアップロード

会話データは、文字起こし(スマート リプライ)と文字起こしとアノテーション データ(要約)として受け入れられます。必要に応じて、Agent Assist 提供の会話データとデモモデルを使用して、独自のデータを提供しなくても機能または統合をテストできます。ランタイムにスマート リプライと要約を使用するには、独自の会話データを指定する必要があります。

このページでは、一般公開データセットを使用する手順と、Cloud Storage にアップロードする独自のデータをフォーマットする手順を説明します。会話データは JSON 形式のテキスト ファイルとして指定する必要があります。

スマート リプライのデータ形式

スマート リプライは、エージェント アシストの任意の機能と組み合わせて使用することも、スタンドアロンの機能として使用することもできます。スマート リプライを実装するには、Agent Assist に会話データを提供する必要があります。

Agent Assist は、モデルのトレーニングに使用できるサンプル会話データと、デモモデルと許可リストを提供します。これらのリソースを使用すると、独自のデータを提供しなくても、会話プロファイルを作成して機能をテストできます。独自のデータを提供する場合は、指定された形式にする必要があります。

スマート リプライのサンプル会話データを使用する

サンプル会話データセットは、外部ソースから派生し、Google Cloud Storage バケットに保存されます。データには、「予約」、「レストラン」、「ホテル」、「アトラクション」、「タクシー」、「トレーニング」の 6 つのドメインに触れるタスク指向のダイアログが含まれています。このデータセットを使用して独自のモデルをトレーニングするには、Agent Assist コンソールを使用して会話データセットを作成する手順に沿って操作します。[会話データ] フィールドに「gs://smart_messaging_integration_test_data/*.json」と入力して、テスト データセットを使用します。コンソールを使用せずに API を直接呼び出す場合は、上記の Cloud Storage バケットに API を指定して、会話データセットを作成できます。

デモのスマート リプライ モデルと許可リストを使用する

コンソールを使用してデモのスマート リプライ モデルと許可リストをテストするには(データセットは不要)、Agent Assist コンソールに移動し、スマート リプライ機能の [始める] ボタンをクリックします。コンソールのチュートリアルでは、独自のデータ、提供されたデータ、デモモデルを使用するオプションが用意されています。

コンソールを使用せずに API を直接呼び出す場合は、モデルと許可リストは次の場所にあります。

  • モデル: projects/ccai-shared-external/conversationModels/c671dd72c5e4656f
  • 許可リスト: projects/ccai-shared-external/knowledgeBases/smart_messaging_kb/documents/NzU1MDYzOTkxNzU0MjQwODE5Mg

機能をテストするには、次のエンドユーザー メッセージを使用してレスポンスをトリガーすることをおすすめします。

  • 「東の方に、安く宿泊できる場所はないでしょうか?」
  • 「タイの料理を提供する高価なレストランを探しています。」
  • 「ケンブリッジの北のほうで、無料 Wi-Fi があるホテルを探しています。」

要約データの形式

要約は、エージェント アシストの任意の機能と組み合わせて使用することも、スタンドアロンの機能として使用することもできます。要約を実装するには、アノテーションを含む会話データを Agent Assist に提供する必要があります。アノテーションは、関連付けられた会話の文字起こしの要約です。アノテーションは、エンドユーザーとの会話の最後にエージェントの要約を生成するために使用できるモデルをトレーニングするために使用されます。

サンプル要約会話データとデモモデルを使用する

Agent Assist は、モデルのトレーニングに使用できるサンプル アノテーション付き会話データも提供します。独自のデータセットをフォーマットする前に要約機能をテストする場合は、このオプションを選択することをおすすめします。テスト データセットは、次の Cloud Storage バケットにあります。gs://summarization_integration_test_data/dataサンプルデータを使用する場合は、コンソールまたは API を使用して要約モデルをトレーニングできます。サンプル データセットを使用するには、データセット URI フィールドに gs://summarization_integration_test_data/data/* と入力します。

デモの要約モデルをテストするには(データセットは不要)、Agent Assist コンソールに移動し、要約機能の [開始] ボタンをクリックします。コンソールのチュートリアルでは、独自のデータ、提供されたデータ、デモモデルを使用するオプションが用意されています。

アノテーションの書式を設定する

Agent Assist の要約カスタムモデルは、会話データセットを使用してトレーニングされます。会話データセットには、アップロードした独自の文字起こしデータとアノテーション データが含まれています。

データのアップロードを開始する前に、各会話文字起こしが JSON 形式で、関連するアノテーションがあり、Google Cloud Storage バケットに保存されていることを確認する必要があります。

アノテーションを作成するには、データセット内の各会話に関連付けられた annotation フィールドに、想定される key 文字列と value 文字列を追加します。最適な結果を得るには、アノテーション トレーニング データは次のガイドラインに準拠する必要があります。

  1. 推奨されるトレーニング アノテーションの最小数は 1,000 です。強制される最小数は 100 です。
  2. トレーニング データに PII を含めることはできません。
  3. アノテーションには、性別、人種、年齢に関する情報を含めないでください。
  4. アノテーションでは、有害な表現や冒とく的な表現を使用しないでください。
  5. アノテーションには、対応する会話の文字起こしから推測できない情報を含めないでください。
  6. 各アノテーションには最大 3 つのセクションを含めることができます。セクション名は自由に選択できます。
  7. アノテーションのスペルと文法が正しい。

関連付けられたアノテーションを含む会話文字起こしの形式を示す例を次に示します。

{
  "entries": [
    {
      "text": "How can I help?",
      "role": "AGENT"
    },
    {
      "text": "I cannot login",
      "role": "CUSTOMER"
    },
    {
      "text": "Ok, let me confirm. Are you experiencing issues accessing your account",
      "role": "AGENT"
    },
    {
      "text": "Yes",
      "role": "CUSTOMER"
    },
    {
      "text": "Got it. Do you still have access to the registered email for the account",
      "role": "AGENT"
    },
    {
      "text": "Yes",
      "role": "AGENT"
    },
    {
      "text": "I have sent an email with reset steps. You can follow the instructions in the email to reset your login password",
      "role": "AGENT"
    },
    {
      "text": "That's nice",
      "role": "CUSTOMER"
    },
    {
      "text": "Is there anything else I can help",
      "role": "AGENT"
    },
    {
      "text": "No that's all",
      "role": "CUSTOMER"
    },
    {
      "text": "Thanks for calling. You have a nice day",
      "role": "AGENT"
    }
  ],
  "conversation_info": {
    "annotations": [
      {
        "annotation": {
          "conversation_summarization_suggestion": {
            "text_sections": [
              {
                "key": "Situation",
                "value": "Customer was unable to login to account"
              },
              {
                "key": "Action",
                "value": "Agent sent an email with password reset instructions"
              },
              {
                "key": "Outcome",
                "value": "Problem was resolved"
              }
            ]
          }
        }
      }
    ]
  }
}

会話の音声文字変換データ

テキスト会話データは JSON 形式のファイルで指定する必要があります。各ファイルには 1 つの会話のデータが含まれています。必須の JSON 形式は次のとおりです。

会話

会話データの最上位オブジェクト。

項目 タイプ 説明
conversation_info ConversationInfo { } 省略可。会話のメタデータ。
entries エントリ [ ] 必須。時系列に並べられた会話メッセージ。

ConversationInfo

会話のメタデータ。

項目 タイプ 説明
categories カテゴリ [ ] 省略可。会話データのカスタム カテゴリ。

カテゴリ

会話データのカテゴリ。会話データとともにカテゴリを指定すると、会話内のトピックの特定に使用されます。カテゴリを指定しない場合、システムはコンテンツに基づいて会話を自動的に分類します。

項目 タイプ 説明
display_name 文字列 必須。カテゴリの表示名。

エントリ

単一の会話メッセージのデータ。

項目 タイプ 説明
テキスト 文字列 必須。この会話メッセージのテキスト。すべてのテキストで大文字と小文字が正しく使用されていること。テキスト内のすべての文字が大文字または小文字の場合、モデルの品質に大きな影響を与える可能性があります。このフィールドが空欄になっている場合、エラーが返されます。
user_id 整数 省略可。会話の参加者を識別する番号です。参加者ごとに 1 つの user_id が必要です。複数の会話に参加する場合は、この ID を繰り返し使用します。
役割 文字列 必須。会話の参加者のロール。「AGENT」または「CUSTOMER」のいずれか。
start_timestamp_usec integer 会話がよくある質問アシスト、記事の候補、要約にのみ使用される場合は省略可。それ以外の場合は必須。この会話の開始のタイムスタンプがマイクロ秒単位で表示されます。

以下は、会話データファイルの例です。

{
  "conversation_info":{
    "categories":[
      {
        "display_name":"Category 1"
      }
    ]
  },
  "entries": [
    {
      "start_timestamp_usec": 1000000,
      "text": "Hello, I'm calling in regards to ...",
      "role": "CUSTOMER",
      "user_id": 1
    },
    {
      "start_timestamp_usec": 5000000,
      "text": "Yes, I can answer your question ...",
      "role": "AGENT",
      "user_id": 2
    },
    ...
  ]
}

Cloud Storage に会話をアップロード

会話データは、Google Cloud Platform プロジェクト内の Cloud Storage バケットに保存する必要があります。バケットを作成するとき:

  • Dialogflow で使用する Google Cloud Platform プロジェクトが選択されていることを確認します。
  • Standard Storage クラスを使用します。
  • バケットのロケーションを現在地に最も近い場所に設定します。会話データを提供するときにロケーション ID(例: us-west1)が必要になるため、選択した ID をメモしておきます。
  • 会話データを提供する際には、バケット名も必要になります。

Cloud ストレージ クイックスタートの手順に沿って、バケットを作成し、ファイルをアップロードします。