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

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

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

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

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

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

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

サンプルの会話データセットは、外部ソースから派生し、Google Cloud Storage バケットに保存されます。データには、「予約」、「レストラン」、「ホテル」、「アトラクション」、「タクシー」、「トレーニング」の 6 つのドメインに触れるタスク指向のダイアログが含まれています。このデータセットを使用して独自のモデルをトレーニングするには、Agent Assist コンソールを使用して会話データセットを作成する手順に沿って操作します。[Conversation data] フィールドに「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 文字列 必須。カテゴリの表示名。

エントリ

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

項目 タイプ 説明
テキスト 文字列 必須。この会話メッセージのテキスト。すべてのテキストを大文字で入力する必要があります。テキスト内のすべての文字が大文字または小文字の場合、モデルの品質に大きな影響が及ぶ可能性があります。このフィールドが空白の場合、エラーが返されます。
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 ストレージ クイックスタートの手順に沿って、バケットを作成し、ファイルをアップロードします。