カスタム セクションによる要約

カスタム セクションによる要約では、LLM を使用してカスタマー サービスの会話を要約します。モデルは、会話とカスタム セクション(モデルが実行するタスクを定義するテキスト プロンプトの一部)を取り込み、要約を生成します。

カスタム セクションで独自の要約タスク定義を記述することもできます。事前定義セクションとカスタム セクションは、ジェネレータで記述されます。

事前定義されたセクション

この機能には、次の 6 つの事前定義されたセクションがあり、選択できます。

  • 状況。お客様がサポートを必要としている内容や、お客様から質問を受けた内容です。

  • Action のラッパー メッセージ。エージェントがお客様をサポートするために行うことです。

  • 解決。次の 4 つのオプションがあります。

    • Y: はい。お客様の問題とお問い合わせがすべて解決されている。
    • P: 部分的。複数のお客様の問題やお問い合わせのうち、一部のみが解決されている。
    • N: いいえ。お客様の問題やお問い合わせは解決していません。
    • 該当なし: 会話の中でお客様から具体的な問題や質問が提起されていない。
  • 顧客満足度。選択肢は「不満」と「不満なし」です。

    • D: 会話の終了時点で、お客様が不満を感じている、またはネガティブな感情を持っている。
    • N: 会話の終了時点で、お客様は中立または肯定的な感情を示している。
  • キャンセルの理由。お客様がキャンセルをリクエストした場合のキャンセル理由。それ以外の場合は該当なし。

  • エンティティ。会話から抽出された重要なエンティティの Key-Value ペア。

要約生成ツールを作成する

コンソール

エージェント アシスト コンソールを使用して要約生成ツールを作成するには、次の操作を行います。

  1. コンソールで [要約] ページに移動し、[生成ツール] を選択します。

    [要約] に移動

  2. 生成ツールの名前を入力します。

  3. 生成ツールのバージョンを選択します。

  4. 出力言語を選択します。

  5. [事前定義されたセクション] でセクションを選択します。

  6. [カスタム セクション] の下にセクションを追加します。必要に応じて新しい要約タスクを定義し、必要に応じて強化のための少数ショットのサンプルを追加します。

  7. [保存] をクリックします。

REST

API を使用して要約生成ツールを作成するには、次の操作を行います。

  1. Generator リソースから CreateGenerator メソッドを呼び出します。

  2. description フィールドにジェネレータの名前を入力します。

  3. output_language_code フィールドに、生成ツールの出力言語コードを入力します。

  4. トリガー イベント MANUAL_CALL を入力します。

  5. 事前定義されたセクションを選択し、SummarizationContext に少数ショットの例を含むカスタム セクションを追加します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際の Cloud プロジェクトの ID
  • LOCATION_ID: ロケーション ID

HTTP メソッドと URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/generators

リクエストの本文(JSON):

{
  "parent": "projects/PROJECT_ID/locations/LOCATION_ID",
  "description": "test",
  "triggerEvent": "MANUAL_CALL",
  "summarizationContext": {
    "summarizationSections": [{
      "type": "SITUATION"
    }, {
      "type": "ENTITIES"
    }, {
      "key": "custom_section",
      "definition": "Describe what the customer needs help with or has questions about. If there is an order number mentioned in the conversation, INCLUDE the order number.",
      "type": "CUSTOMER_DEFINED"
    }],
    "version": "2.1",
    "outputLanguageCode": "en-US"
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/generators/GENERATOR_ID",
  "description": "test",
  "inferenceParameter": {
    "maxOutputTokens": 1024,
    "temperature": 0.0,
    "topK": 40,
    "topP": 0.8
  },
  "triggerEvent": "MANUAL_CALL",
  "createTime": "2024-05-11T00:28:14.790937126Z",
  "updateTime": "2024-05-11T01:59:15.751724150Z",
  "summarizationContext": {
    "summarizationSections": [{
      "type": "SITUATION"
    }, {
      "type": "ENTITIES"
    }, {
      "key": "custom_section",
      "definition": "Describe what the customer needs help with or has questions about. If there is an order number mentioned in the conversation, INCLUDE the order number.",
      "type": "CUSTOMER_DEFINED"
    }],
    "version": "2.1",
    "outputLanguageCode": "en-US"
  }
}

要約生成ツールをテストする

コンソールでは、次の図に示すように、[Test generator] セクションでジェネレータをテストできます。

コンソールでジェネレータをテストする手順は次のとおりです。

コンソール

  1. 会話の文字起こし。次の図に示すように、発話を手動で入力するか、JSON 形式で文字起こしをアップロードできます。

  2. [生成] をクリックして概要を表示します。

会話プロファイルを構成する

会話プロファイルでは、会話中にエージェントに提示される候補を制御する一連のパラメータを構成します。次の手順では、HumanAgentAssistantConfig オブジェクトを使用して ConversationProfile を作成します。

次のサンプルは、会話プロファイルを作成する方法を示しています。

コンソール

  1. Agent Assist コンソールで、[会話プロファイル] ページに移動します。

  2. 表示名を入力します。

  3. 候補の種類として [会話の要約(生成ツール)] を選択します。

  4. リストからジェネレータの名前を選択します。

REST

  1. 会話プロファイル リソースから create メソッドを呼び出します。

  2. 新しい会話プロファイルの名前を入力します。

  3. 言語コードを入力します。

  4. human_agent_suggestion_config に生成ツールの名前を入力します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際の Cloud プロジェクトの ID
  • LOCATION_ID: ロケーション ID
  • CONVERSATION_PROFILE_ID: 会話プロファイル ID
  • GENERATOR_ID: ジェネレータ ID

HTTP メソッドと URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles

リクエストの本文(JSON):

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "displayName": "conversation-profile-with-generator",
  "humanAgentAssistantConfig": {
    "humanAgentSuggestionConfig": {
      "generators": "projects/PROJECT_ID/locations/LOCATION_ID/generators/GENERATOR_ID"
    }
  },
  "languageCode": "en-US"
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "displayName": "conversation-profile-with-generator",
  "humanAgentAssistantConfig": {
    "humanAgentSuggestionConfig": {
      "generators": "projects/PROJECT_ID/locations/LOCATION_ID/generators/GENERATOR_ID"
    }
  },
  "languageCode": "en-US"
}

シミュレータで確認する

会話プロファイルは Agent Assist シミュレータで確認できます。

ランタイムでの会話

実行時に、ユーザーとエージェントとの間でダイアログが開始されると、会話が作成されます。これは、エージェント(人間または仮想)とサポートの顧客またはユーザーとのやり取りです。候補を表示するには、ユーザー参加者とエージェント参加者の両方を作成して、会話に追加します。

会話を作成する

会話を作成するには、Conversation リソースの create メソッドを呼び出します。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際の Cloud プロジェクトの ID
  • LOCATION_ID: ロケーション ID
  • CONVERSATION_PROFILE_ID: 会話プロファイルの作成時に受け取った ID

HTTP メソッドと URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations

リクエストの本文(JSON):

{
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID",
  "lifecycleState": "IN_PROGRESS",
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "startTime": "2018-11-05T21:05:45.622Z"
}

conversations の後のパスセグメントには、新しい会話 ID が含まれます。

ユーザー参加者を作成する

ユーザー参加者を作成するには、Participant リソースの create メソッドを呼び出します。role フィールドに会話 ID と END_USER を指定します。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際の Cloud プロジェクトの ID
  • LOCATION_ID: ロケーション ID
  • CONVERSATION_ID: 会話 ID

HTTP メソッドと URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants

リクエストの本文(JSON):

{
  "role": "END_USER",
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
  "role": "END_USER"
}

participants の後のパスセグメントには、新しいユーザー参加者 ID が含まれます。

エージェント参加者を作成する

Participant リソースで create メソッドを呼び出します。role フィールドに会話 ID と HUMAN_AGENT または AUTOMATED_AGENT を指定します。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際の Cloud プロジェクトの ID
  • LOCATION_ID: ロケーション ID
  • CONVERSATION_ID: 会話 ID

HTTP メソッドと URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants

リクエストの本文(JSON):

{
  "role": "HUMAN_AGENT",
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
  "role": "HUMAN_AGENT"
}

participants の後のパスセグメントには、新しいエージェント参加者 ID が含まれます。

メッセージを分析する

メッセージを分析する方法は 2 つあります。

  • 会話中。会話のエージェント メッセージを追加して分析するには、Participant リソースの analyzeContent メソッドを呼び出します。会話 ID とエージェント参加者 ID を指定します。会話のユーザー メッセージを追加して分析するには、Participant リソースの analyzeContent メソッドを呼び出します。会話 ID とユーザー参加者 ID を指定します。analyzeContent メソッドが他の Dialogflow 機能で呼び出された場合は、analyzeContent メソッドを重複して呼び出さないでください。

  • 会話の終了後。このオプションは、会話中に analyzeContent メソッドを使用しない場合に使用できます。代わりに、messages リソースの batchCreate メソッドを使用して、会話の過去のメッセージを取り込むことができます。

要約を生成します

どちらの参加者からの最新のメッセージも、いつでも候補として表示されます。

  • conversations.suggestions リソースで suggestConversationSummary メソッドを呼び出します。会話 ID といずれかの参加者の最新のメッセージ ID を指定します。

  • generateStatelessSuggestion メソッドを呼び出します。ConversationContext、ジェネレータ名、トリガー イベント(MANUAL_CALL)を指定します。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際の Cloud プロジェクトの ID
  • LOCATION_ID: ロケーション ID
  • GENERATOR_ID: 生成ツール ID

HTTP メソッドと URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/statelessSuggestion:generate

リクエストの本文(JSON):

{
  "parent": "projects/PROJECT_ID/locations/LOCATION_ID",
  "generatorName": "projects/PROJECT_ID/locations/LOCATION_ID/generators/GENERATOR_ID",
  "conversationContext" {
    "messageEntries": [{
      "role": "HUMAN_AGENT",
      "text": "Hi, this is ABC messaging, how can I help you today?",
      "languageCode": "en-US"
    }, {
      "role": "END_USER",
      "text": "I want to return my order, it is broken",
      "languageCode": "en-US"
    }]
  },
  "triggerEvents": [
    "MANUAL_CALL"
  ]
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "generatorSuggestion": {
    "summarySuggestion": {
      "summarySections": [
        {
          "section": "situation",
          "summary": "customer wants to return an order."
        },
        {
          "section": "resolution",
          "summary": "N"
        }
      ]
    }
  }
}

レスポンスには概要が含まれます。

会話を完了する

会話を完了するには、conversations リソースの complete メソッドを呼び出します。会話 ID を指定します。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: GCP プロジェクト ID
  • CONVERSATION_ID: 会話の作成時に受け取った ID

HTTP メソッドと URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID:complete

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID",
  "lifecycleState": "COMPLETED",
  "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "startTime": "2018-11-05T21:05:45.622Z",
  "endTime": "2018-11-06T03:50:26.930Z"
}

以前のバージョン