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

会話データは、文字起こし(スマート リプライ)と文字起こしとアノテーション データ(要約)として受け入れられます。ランタイムにスマート リプライと要約を使用するには、独自の会話データを指定する必要があります。

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

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

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

要約データの形式

要約は、エージェント アシストの任意の機能と組み合わせて使用することも、スタンドアロンの機能として使用することもできます。要約を実装するには、アノテーションを含む会話データを 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 ストレージ クイックスタートの手順に沿って、バケットを作成し、ファイルをアップロードします。