채팅용 요약 V1 맞춤 모델

Agent Assist 요약 맞춤 모델을 사용하면 고객별 데이터로만 학습된 모델을 활용하여 각 대화가 완료된 후 상담사에게 대화 요약을 제공할 수 있습니다. 이는 맞춤 섹션이 있는 요약에 설명된 대로 대규모 언어 모델을 통한 맞춤설정과 다릅니다. 요약은 상담사가 대화 메모를 작성하고 최종 사용자 커뮤니케이션 기록을 이해하는 데 도움이 됩니다. 예를 들어 대화에 관한 요약 출력은 다음과 유사할 수 있습니다.

맞춤 Agent Assist 요약 모델을 가져와 CCAI Insights 대화에 사용할 수도 있습니다.

시작하기 전에

  1. 데이터가 필수 형식인지 확인합니다. 샘플 데이터 세트를 사용하거나 데이터 세트 없이 데모 요약 모델을 사용하여 기능을 테스트할 수도 있습니다.

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시간을 보유하며 학습 작업을 동시에 하나 실행할 수 있습니다.

필수 필드:

  • 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 메서드를 호출합니다. 대화 ID를 제공하고 role 필드에 END_USER를 입력합니다.

participants 다음의 경로 세그먼트에 새로운 최종 사용자 참여자 ID가 있습니다.

상담사 참여자 만들기

상담사 참여자를 만들려면 Participant 리소스에서 create 메서드를 호출합니다. 대화 ID를 제공하고 role 필드에 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를 입력합니다.