カスタム セクションを使用した要約では、LLM を使用してカスタマー サービスの会話を要約します。モデルは、会話とカスタム セクション(モデルが実行するタスクを定義するテキスト プロンプトの一部)を入力として受け取り、要約を生成します。
事前定義されたセクションを選択することも、カスタム セクションで独自の要約タスク定義を作成することもできます。
利用可能なリージョン
カスタム セクションを使用した Summarization v4.0 は、次のリージョンで利用できます。
us-central1
us-east1
us-west1
us
northamerica-northeast1
europe-west1
europe-west2
europe-west3
asia-southeast1
asia-northeast1
asia-south1
australia-southeast1
global
事前定義されたセクション
この機能には 6 つの事前定義済みセクションがあり、次のものを選択できます。
状況: お客様がサポートを必要としていることや、質問していることです。簡潔な要約をカスタマイズするオプションが用意されており、推奨されています。
アクション: エージェントがお客様をサポートするために行うこととして定義されます。簡潔な要約をカスタマイズするオプションが用意されており、推奨されています。
解像度: 4 つのオプションがあります。
- Y: はい。お客様の問題と質問がすべて解決している。
- P: 部分的。複数のお客様の問題や問い合わせの一部のみが解決された。
- N: いいえ。お客様の問題や質問は解決していません。
- N/A: 会話の中で、お客様から具体的な問題や質問が提起されていません。
顧客満足度: 選択肢は「不満」または「不満ではない」です。
- D: 会話の終了時にお客様が不満を感じている、または否定的な感情を抱いている。
- N: 会話の終了時にお客様が中立的または肯定的な気持ちになっている。
Reason for cancellation(キャンセル理由): お客様がキャンセルをリクエストした場合のキャンセル理由。それ以外の場合は N/A。
エンティティ: 会話から抽出された重要なエンティティの Key-Value ペア。
要約生成ツールを作成する
コンソール
Agent Assist コンソールを使用して要約ジェネレータを作成する手順は次のとおりです。
コンソールで、[要約] ページに移動し、[ジェネレータ] を選択します。
生成ツールの名前を入力します。
生成ツールのバージョンを選択します。
出力言語を選択します。
[事前定義されたセクション] でセクションを選択します。
[カスタム セクション] にセクションを追加します。必要に応じて新しい要約タスクを定義し、必要に応じて拡張用の少数ショットの例を追加します。
[保存] をクリックします。
REST
API を使用して要約ジェネレータを作成する手順は次のとおりです。
Generator リソースから
CreateGenerator
メソッドを呼び出します。[
description
] フィールドにジェネレータの名前を入力します。output_language_code
フィールドにジェネレータの出力言語コードを入力します。トリガー イベント
MANUAL_CALL
を入力します。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" } }
要約生成ツールをテストする
コンソール内で、次の図に示すように、[テスト ジェネレータ] セクションでジェネレータをテストできます。
コンソールでジェネレータをテストするには、次の操作を行います。
コンソール
会話の文字起こし。次の図に示すように、発話を直接入力するか、JSON 形式の文字起こしをアップロードできます。
[生成] をクリックして、要約を表示します。
会話プロファイルを構成する
会話プロファイルでは、会話中にエージェントに提示される候補を制御する一連のパラメータを構成します。次の手順では、HumanAgentAssistantConfig
オブジェクトを使用して ConversationProfile
を作成します。
次のサンプルは、会話プロファイルを作成する方法を示しています。
コンソール
Agent Assist コンソールで、[会話プロファイル] ページに移動します。
表示名を入力します。
候補のタイプとして [会話の要約(ジェネレータ)] を選択します。
リストからジェネレータの名前を選択します。
REST
会話プロファイル リソースから
create
メソッドを呼び出します。新しい会話プロファイルの名前を指定します。
言語コードを入力します。
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 を指定します。他の 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" }