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

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

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

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

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

要約のデータ形式

要約は、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 文字列 必須。カテゴリの表示名。

エントリ

1 つの会話メッセージのデータ。

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

以下に、会話データファイルの例を示します。

{
  "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 ストレージ クイックスタートの手順に沿って、バケットを作成し、ファイルをアップロードします。