선제적 생성형 지식 지원은 진행 중인 대화를 추적하고 검색어 제안과 답변을 선제적으로 제공합니다. 선제적 생성형 지식 지원은 검색 컨텍스트, 여러 제안된 질문을 지원하며 시작 이벤트를 맞춤설정할 수 있습니다.
검색 컨텍스트
사전 대응형 생성형 지식 지원은 검색어와 컨텍스트를 생성합니다. 대화에서 정보를 키-값 쌍으로 추출하여 검색 컨텍스트를 개선하고 검색어에 대한 더 나은 답변을 제공합니다.
검색 컨텍스트를 사용 중지할 수도 있습니다. 일부 시나리오에서는 검색 컨텍스트를 사용하지 않고 쿼리 자체만 사용할 수 있습니다. disable_query_search_context 필드로 이를 제어합니다. 이 필드가 true로 설정되면 사전 대응형 생성 지식 지원은 검색 컨텍스트를 생성하지만 기술 자료로 전송되는 검색어에 추가하지는 않습니다.
여러 추천 쿼리
선제적 생성형 지식 지원은 대화에서 논의된 다양한 상담 주제에 대해 여러 관련 질문을 생성할 수 있습니다. 자동 검색을 위해 기본 쿼리를 사용하고 필요한 경우 상담사가 사용할 수 있도록 응답에 추가 질문을 제공합니다.
이벤트 시작 맞춤설정
기본적으로 CUSTOMER_MESSAGE는 사전 대응형 생성형 지식 지원의 추천을 시작합니다. 새로운 사전 대응형 생성형 지식 지원 추천을 시작하는 이벤트를 정의하려면 suggestion_trigger_event 필드에 다음 값 옵션 중 하나를 선택하세요.
CUSTOMER_MESSAGE: 최종 사용자로부터 수신된 기본 메시지를 유지합니다.AGENT_MESSAGE: 상담사가 메시지를 보냅니다.END_OF_UTTERANCE: 사전 대응형 생성형 지식 지원이 사용자 발화의 끝을 감지합니다.
선제적 생성형 지식 지원 구현
사전 대응형 생성형 지식 지원을 사용하려면 다음 단계를 따르세요.
1단계: 대화 프로필 만들기
Agent Assist 콘솔 또는 API를 사용하여 대화 프로필을 만듭니다. Agent Assist 콘솔을 사용하여 대화 프로필을 만드는 것이 좋습니다.
콘솔
- 생성형 지식 지원 제안 유형을 사용 설정하고 이전 단계의 흐름 기반 데이터 스토어 에이전트 또는 플레이북 기반 데이터 스토어 에이전트에 연결합니다. 이를 통해 흐름 기반 데이터 스토어 에이전트 또는 플레이북 기반 데이터 스토어 에이전트가 선제적으로 질문 및 답변 제안을 제공하고 상담사의 수동 검색 질문에 답변할 수 있습니다.
- 선택사항: 대화에 대한 모든 추천 질문 표시 체크박스를 사용하여 흐름 기반 데이터 스토어 에이전트 또는 플레이북 기반 데이터 스토어 에이전트가 기술 문서에서 답변을 찾지 못한 경우에도 이러한 질문을 모두 표시하도록 합니다. 이는 진행 중인 대화에서 가져올 수 있는 질문을 테스트하기 위한 것입니다.
- 선택사항: 사전 대응 답변을 비동기적으로 로드 체크박스를 사용하여 질문 제안만 가져옵니다. 추천 검색어를 SearchKnowledge API에 수동으로 제출할 수 있으며, Agent Assist 콘솔 시뮬레이터 및 UI 모듈에서 자동으로 제출할 수 있습니다.

API
다음 단계에서는 HumanAgentAssistantConfig 객체를 사용하여 ConversationProfile을 만듭니다. Agent Assist 콘솔을 사용하여 이러한 작업을 수행할 수도 있습니다.
대화 프로필을 만들려면 ConversationProfile 리소스에서 create 메서드를 호출하고 `baseline_model_version`을 업데이트합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION_ID: 위치의 ID
- AGENT_ID: 이전 단계의 흐름 기반 데이터 스토어 에이전트 또는 플레이북 기반 데이터 스토어 에이전트 ID
{ "name": "projects/PROJECT_ID/locations/LOCATION/conversationProfiles/PROFILE_ID", "human_agent_assistant_config": { "human_agent_suggestion_config": { "feature_configs": [ { "suggestion_feature": { "type": "KNOWLEDGE_ASSIST" }, "query_config": { "dialogflow_query_source": { "agent": "projects/PROJECT_ID/locations/LOCATION/agents/AGENT_ID" } }, "conversation_model_config": { "baseline_model_version": "2.0" } "disable_query_search_context": false, "enableQuerySuggestionWhenNoAnswer": false, "suggestion_trigger_event": "END_OF_UTTERANCE", } ] } } }
2단계: 런타임에 대화 처리
선제적 생성형 지식 지원은 런타임에 대화를 처리하여 현재 대화 컨텍스트와 답변을 기반으로 검색어 추천을 선제적으로 제공합니다.
대화 만들기
먼저 대화를 만들어야 합니다.
REST
대화를 만들려면 Conversation 리소스에서 create 메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 클라우드 프로젝트 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가 있습니다.
Python
자세한 내용은 Agent Search Python API 참고 문서를 확인하세요.
Agent Search에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
사용자 참여자 만들기
추천을 보려면 사용자 및 상담사 참여자를 대화에 추가합니다. 먼저 사용자 참여자를 대화에 추가합니다.
REST
사용자 참여자를 만들려면 Participant 리소스에서 create 메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 클라우드 프로젝트 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가 있습니다.
Python
자세한 내용은 Agent Search Python API 참고 문서를 확인하세요.
Agent Search에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
상담사 참여자 만들기
상담사 참여자를 대화에 추가합니다.
REST
상담사 참여자를 만들려면 Participant 리소스에서 create 메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 클라우드 프로젝트 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가 있습니다.
Python
자세한 내용은 Agent Search Python API 참고 문서를 확인하세요.
Agent Search에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
에이전트의 메시지 추가 및 분석
참여자가 대화에 메시지를 입력할 때마다 처리를 위해 해당 메시지를 API에 전송해야 합니다. 데이터 스토어 에이전트는 상담사 및 사용자 메시지 분석을 기반으로 추천을 제공합니다. 다음 예시에서는 상담사가 'How may I help you?'라고 묻는 대화를 시작합니다.
아직 응답에 추천이 반환되지 않습니다.
REST
대화의 상담사 메시지를 추가하고 분석하려면 Participant 리소스에서 analyzeContent 메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- CONVERSATION_ID: 대화 ID
- PARTICIPANT_ID: 상담사 참여자 ID
HTTP 메서드 및 URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
JSON 요청 본문:
{
"textInput": {
"text": "How may I help you?",
"languageCode": "en-US"
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"message": {
"name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
"content": "How may I help you?",
"languageCode": "en-US",
"participant": "PARTICIPANT_ID",
"participantRole": "HUMAN_AGENT",
"createTime": "2020-02-13T00:01:30.683Z"
}
}
Python
자세한 내용은 Agent Search Python API 참고 문서를 확인하세요.
Agent Search에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
사용자가 보낸 메시지를 추가하여 추천 받기
에이전트에 대한 응답으로 사용자가 '언제 반품 환불을 받을 수 있나요?'라고 질문합니다. 이번에는 API 응답에 추천 질문과 지식 문서를 기반으로 한 생성형 AI 답변이 포함됩니다.
REST
대화의 사용자 메시지를 추가하고 분석하려면 Participant 리소스에서 analyzeContent 메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- CONVERSATION_ID: 대화 ID
- PARTICIPANT_ID: 최종 사용자 참여자 ID
HTTP 메서드 및 URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
JSON 요청 본문:
{
"textInput": {
"text": "When can I get my return refund?",
"languageCode": "en-US"
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"message": {
"name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
"content": "When can I get my return refund?",
"languageCode": "en-US",
"participant": "PARTICIPANT_ID",
"participantRole": "END_USER",
"createTime": "2020-02-13T00:07:35.925Z"
},
"humanAgentSuggestionResults": [
{
"suggestKnowledgeAssistResponse": {
"knowledgeAssistAnswer": {
"suggestedQuery": {
"queryText": "Refund processing time"
},
"suggestedQueryAnswer": {
"answerText": "After your return is processed, you receive your refund in 7 days. The refund amount should be for the full value of the items returned, but doesn't include shipping & service fees.",
"generativeSource": {
"snippets": [
{
"title": "Returns & refunds - Help",
"uri": "https://example.com/",
"text": "When the package with your return arrives at the seller's return center, it may take up to 7 additional business days to process. Check the status of your refund with the return tracking number found on your orders page."
}
]
},
},
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID"
},
}
}
]
}
Python
자세한 내용은 Agent Search Python API 참고 문서를 확인하세요.
Agent Search에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
대화 완료
대화가 끝나면 API를 사용하여 대화를 완료합니다.
REST
대화를 완료하려면 conversations 리소스에서 complete 메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- 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"
}
Python
자세한 내용은 Agent Search Python API 참고 문서를 확인하세요.
Agent Search에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
시뮬레이터
Agent Assist 시뮬레이터에서 흐름 기반 데이터 스토어 에이전트 또는 플레이북 기반 데이터 스토어 에이전트를 테스트할 수 있습니다.

위 예에서 흐름 기반 데이터 스토어 에이전트는 다음과 같은 제안을 제공합니다.
- 추천 질문: 환불 처리 기간
- 생성형 AI 생성 답변: 반품이 처리된 후 7일 이내에 환불이 이루어집니다. 환불 금액은 반품된 상품의 전체 금액이지만 배송비 및 서비스 수수료는 포함되지 않습니다.
- 관련 지식 문서 제목: 반품 및 환불 - 도움말
3단계: Pub/Sub 추천 알림
대화 프로필을 만들 때 notificationConfig 필드를 설정하여 추천에 대한 알림을 받을 수 있습니다. 이 옵션은 대화가 진행되고 새로운 추천이 제공될 때 Pub/Sub를 사용하여 애플리케이션에 추천 알림을 보냅니다.
AnalyzeContent API를 통해 통합하는 경우 ConversationProfile에서 disable_high_latency_features_sync_delivery 구성을 사용 설정하여 AnalyzeContent API가 사전 대응형 생성형 지식 지원 제안을 기다리지 않고 응답하고 Pub/Sub를 통해 제안을 제공하도록 할 수 있습니다.
Agent Assist 콘솔에서 이 구성을 사용 설정할 수도 있습니다.

고객 경험 인사이트를 통해 데이터 액세스
또는 사전 대응형 생성형 지식 지원에서 생성된 질문과 답변이 고객 경험 통계에 자동으로 채워집니다. 이 데이터에 액세스하려면 Dialogflow 런타임 통합 사용 설정의 안내를 따르세요.
의견 보내기
의견을 보내는 단계는 Agent Assist에 의견 보내기를 참고하세요.
상담사 질문에 답변
다음은 상담사 질문에 대한 답변에 관한 의견을 보내기 위한 JSON 요청의 예입니다.
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/answerRecords/ANSWER_RECORD_ID", "answerFeedback": { "displayed": true "clicked": true "correctnessLevel": "FULLY_CORRECT" "agentAssistantDetailFeedback": { "knowledgeSearchFeedback": { "answerCopied": true "clickedUris": [ "url_1", "url_2", "url_3", ] } } } }
Q&A를 선제적으로 제안
다음은 사전 제안에 관한 의견을 전송하기 위한 JSON 요청의 예시입니다.
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/answerRecords/ANSWER_RECORD_ID", "answerFeedback": { "displayed": true "clicked": true "correctnessLevel": "FULLY_CORRECT" "agentAssistantDetailFeedback": { "knowledgeAssistFeedback": { "answerCopied": true "clickedUris": [ "url_1", "url_2", "url_3", ] } } } }