Agent Assist Summarization カスタムモデルを使用すると、お客様固有のデータのみでトレーニングされたモデルを活用して、会話が完了するたびにエージェントに会話の要約を提供できます。これは、カスタム セクションを使用した要約で説明されている大規模言語モデルによるカスタマイズとは異なります。要約は、エージェントが会話メモを作成し、エンドユーザーの通信履歴を把握するのに役立ちます。たとえば、会話に関する要約出力は次のようになります。

カスタムの Agent Assist 要約モデルをインポートして、CCAI Insights の会話で使用することもできます。
始める前に
- データが必要な形式になっていることを確認します。サンプル データセットを使用するか、データセットを必要としないデモの要約モデルを使用して機能をテストすることもできます。
API を使用して要約モデルをトレーニングしてデプロイする
会話データセットを作成して文字起こしをインポートする
ConversationDataset リソースの create メソッドを呼び出して、会話データセットを作成します。文字起こしデータを含む Cloud Storage バケットへのパスを含めて、新しい会話データセットにインポートします。
リクエストの例:
{
"displayName": "CONVERSATION_DATASET_NAME",
"inputConfig": {
"gcsSource": {
"uris": ["gs://PATH_NAME/*"]
}
}
}
レスポンスには会話データセット ID が含まれます。レスポンスの例:
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.dialogflow.v2beta1.ConversationDataset",
"name": "projects/PROJECT_ID/locations/global/conversationDatasets/CONVERSATION_DATASET_ID",
"displayName": "CONVERSATION_DATASET_NAME",
"createTime": "2022-06-16T23:13:22.627380457Z"
}
}
会話モデルを作成する
ConversationModel リソースの create メソッドを呼び出して、要約会話モデルを作成します。各プロジェクトには、毎月最大 120 ノード時間のトレーニングが割り当てられ、1 つのトレーニング ジョブを同時に実行できます。
必須フィールド:
datasets: モデルのトレーニングに使用した文字起こしデータを含む単一のデータセットを指定します。summarizationModelMetadata: 空のオブジェクトに設定するか、フィールドに入力してデフォルトをオーバーライドします。
リクエストの例:
{
"displayName": "CONVERSATION_DATASET_NAME",
"datasets": [{
"dataset": "projects/PROJECT_ID/locations/global/conversationDatasets/CONVERSATION_DATASET_ID"
}],
"summarizationModelMetadata": {
"trainingModelType": "SUMMARIZATION_MODEL"
},
"languageCode": "en-US"
}
レスポンスは長時間実行オペレーションです。GetOperation API を使用してポーリングし、完了を確認できます。トレーニングには数時間かかることがあります。レスポンスでは、ステータスとモデル ID が返されます。
レスポンスの例:
{
"name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.dialogflow.v2beta1.CreateConversationModelOperationMetadata",
"conversationModel": "projects/PROJECT_ID/locations/global/conversationModels/MODEL_ID",
"state": "TRAINING",
"createTime": "2022-06-16T23:27:50Z"
}
}
会話モデルを評価する
モデルのトレーニングが完了したら、ListConversationModelEvaluations API を呼び出してモデルの品質を確認します。
ListConversationModelEvaluationsRequest で、確認するモデルの名前を指定します。
{ "parent": "projects/cloud-contact-center-quality/locations/global/conversationModels/d3f2ca9f3e2c571a" }
ListConversationModelEvaluationsResponse には、自動要約を評価するための Rouge-L スコアが含まれています。
{ "conversationModelEvaluations": [{ "name": "projects/cloud-contact-center-quality/locations/global/conversationModels/d3f2ca9f3e2c571a/evaluations/c10ac25411a23fe1", "displayName": "Training Auto Generated Evaluation", "createTime": "2022-06-04T03:38:35.151096Z", "evaluationConfig": { }, "summarizationMetrics": { "rougel": 0.4474459 } }] }
会話モデルをデプロイする
モデルのトレーニングが完了したら、DeployConversationModel API を使用してモデルをデプロイできます。
DeployConversationModelRequest で、デプロイするモデルの name を指定します。レスポンスは長時間実行オペレーションです。GetOperation API を使用してポーリングし、完了を確認できます。
会話プロファイルを構成する
会話プロファイルでは、会話中にエージェントに提示される候補を制御する一連のパラメータを構成します。次の手順では、HumanAgentAssistantConfig オブジェクトを使用して ConversationProfile を作成します。
会話プロファイルを作成する
会話プロファイルを作成するには、ConversationProfile リソースの create メソッドを呼び出します。新しい会話プロファイルの名前、 Google Cloudプロジェクト ID、モデル ID を指定します。CreateConversationProfileRequest で、使用する会話モデルと CONVERSATION_SUMMARIZATION にする提案機能を指定します。
JSON の例を次に示します。
{ "displayName": "CONVERSATION_PROFILE_NAME", "humanAgentAssistantConfig": { "humanAgentSuggestionConfig": { "featureConfigs": [{ "suggestionFeature": { "type": "CONVERSATION_SUMMARIZATION" }, "conversationModelConfig": { "model": "projects/PROJECT_ID/locations/global/conversationModels/MODEL_ID", } }] } }, "languageCode": "en-US" }
レスポンスは、会話プロファイル name を含む ConversationProfile オブジェクトです。
{ "name": "projects/PROJECT_ID/locations/global/conversationProfiles/CONVERSATION_PROFILE_ID", "displayName": "CONVERSATION_PROFILE_NAME", "automatedAgentConfig": { }, "humanAgentAssistantConfig": { "notificationConfig": { }, "humanAgentSuggestionConfig": { "featureConfigs": [{ "suggestionFeature": { "type": "CONVERSATION_SUMMARIZATION" }, "conversationModelConfig": { } }] }, "messageAnalysisConfig": { } }, "languageCode": "en-US", "createTime": "2022-06-06T21:06:46.841816Z", "updateTime": "2022-06-06T21:06:46.841816Z", "projectNumber": "344549229138" }
ランタイムに会話を処理する
エンドユーザーと人間のエージェントとの会話が開始されると、会話が作成されます。以下のセクションでは、このプロセスについて詳しく説明します。
会話を作成する
会話を作成するには、Conversation リソースの create メソッドを呼び出します。
レスポンスには、新しい会話 ID が含まれます。
エンドユーザーの参加者を作成する
エンドユーザーの参加者を作成するには、Participant リソースの create メソッドを呼び出します。role フィールドに会話 ID と END_USER を指定します。
participants の後のパスセグメントには、新しいエンドユーザー参加者 ID が含まれます。
人間のエージェントの参加者を作成する
人間のエージェントの参加者を作成するには、Participant リソースの create メソッドを呼び出します。role フィールドに会話 ID と HUMAN_AGENT を指定します。
participants の後のパスセグメントには、新しい人間のエージェントの参加者 ID が含まれます。
メッセージを分析する
オプション 1: 会話中
会話の人間のエージェント メッセージを追加して分析するには、Participant リソースの analyzeContent メソッドを呼び出します。会話 ID と人間のエージェントの参加者 ID を指定します。
エンドユーザー メッセージを会話に追加して分析するには、Participant リソースの analyzeContent メソッドを呼び出します。会話 ID とエンドユーザー参加者 ID を指定します。
他の Dialogflow 機能で analyzeContent メソッドが呼び出されている場合は、重複して呼び出さないでください。
オプション 2: 会話後
このオプションは、会話中に analyzeContent メソッドを使用しない場合に使用できます。代わりに、messages リソースの batchCreate メソッドを使用して、会話の履歴メッセージを取り込むことができます。
提案を取得する
いずれかの参加者からの最新のメッセージに対する候補はいつでも取得できます。
オプション 1. suggestConversationSummary
conversations.suggestions リソースで suggestConversationSummary メソッドを呼び出します。会話 ID と、いずれかの参加者の最新のメッセージ ID を指定します。
オプション 2. generateStatelessSummary
generateStatelessSummary メソッドを呼び出します。会話の Messages と、いずれかの参加者の最新のメッセージ ID を指定します。
generateStatelessSummary の JSON リクエストの例を次に示します。
{ "statelessConversation": { "messages": [{ "content": "Hello, how can I help you today?", "languageCode": "en-US", "participantRole": "HUMAN_AGENT" }, { "content": "I would like to cancel my plan.", "languageCode": "en-US", "participantRole": "END_USER" }, { "content": "Okay, I have canceled your plan. Is there anything else that I can do to help you?", "languageCode": "en-US", "participantRole": "HUMAN_AGENT" }, { "content": "No, thank you.", "languageCode": "en-US", "participantRole": "END_USER" }, { "content": "Okay, have a great day!", "languageCode": "en-US", "participantRole": "HUMAN_AGENT" }], "parent": "projects/PROJECT_ID/locations/global" }, "conversationProfile": { "humanAgentAssistantConfig": { "humanAgentSuggestionConfig": { "featureConfigs": [{ "suggestionFeature": { "type": "CONVERSATION_SUMMARIZATION" }, "conversationModelConfig": { "model": "projects/PROJECT_ID/locations/global/conversationModels/MODEL_ID" } }] } }, "languageCode": "en-US" } }
レスポンスには Summarization の候補が含まれます。
会話を完了する
会話を完了するには、conversations リソースの complete メソッドを呼び出します。会話 ID を指定します。