생성형 지식 어시스턴트는 제공된 문서의 정보를 기반으로 상담사의 질문에 대한 답변을 제공합니다. 도메인 이름을 지정하거나 데이터 스토어 상담사가 색인을 생성할 문서를 업로드할 수 있습니다. 생성형 지식 지원은 이 정보를 진행 중인 대화 및 사용 가능한 고객 메타데이터와 종합하여 상담사에게 더 관련성 높고 시의적절한 답변을 제공합니다.
사전 생성형 지식 어시스턴트는 상담사와 고객 간의 대화를 따라가며 작동합니다. 현재 대화 맥락과 답변을 기반으로 검색어 추천을 사전에 제공합니다.
데이터 스토어 에이전트 만들기
프로젝트 소유자가 아닌 경우 데이터 스토어 에이전트를 만들려면 다음 역할이 필요합니다.
- Dialogflow API 관리자
- 검색 엔진 관리자
Vertex AI 콘솔에서 Vertex AI Agent Builder API를 활성화합니다.
에이전트를 만들려면 데이터 스토어 에이전트의 단계를 따르세요.
상담사의 질문에 답하기
데이터 스토어 에이전트는 사용자가 제공한 문서를 기반으로 상담사의 질문에 답변할 수 있습니다.
1단계: 대화 프로필 만들기
Agent Assist 콘솔 또는 API를 사용하여 대화 프로필을 만듭니다.
콘솔에서 만들기
- 생성형 지식 어시스턴트 추천 유형을 사용 설정하고 이전 단계의 데이터 스토어 에이전트에 연결해야 합니다.
- 선택사항: 상담사 검색어 로깅 사용 중지 체크박스를 사용하여 Google에서 품질 개선을 위해 보안 수정된 검색어를 수집하고 저장할지 여부를 나타냅니다.
- 대화 보강 쿼리 사용 체크박스를 사용하여 검색어에 대한 답변을 생성할 때 상담사와 사용자 간의 대화 맥락을 고려할지 여부를 표시할 수 있습니다.
API에서 만들기
다음 단계에서는 HumanAgentAssistantConfig 객체로 ConversationProfile을 만드는 방법을 보여줍니다. Agent Assist 콘솔을 사용하여 이러한 작업을 수행할 수도 있습니다.
대화 프로필을 만들려면 ConversationProfile 리소스에서 create 메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION_ID: 위치의 ID입니다.
- AGENT_ID: 이전 단계의 데이터 스토어 상담사 ID
{ "displayName": "my-conversation-profile-display-name", "humanAgentAssistantConfig": { "humanAgentSuggestionConfig": { "featureConfigs": [ { "suggestionFeature": { "type": "KNOWLEDGE_SEARCH" }, "queryConfig": { "dialogflowQuerySource": { "humanAgentSideConfig": { "agent": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID" } } }, "disableAgentQueryLogging": false, "enableConversationAugmentedQuery": false, } ] } } }
Agent Assist 콘솔에서 대화 프로필을 만들면 Agent Assist에서 생성형 지식 어시스턴트와 사전 예방적 생성형 지식 어시스턴트가 모두 자동으로 사용 설정됩니다. 사전 생성 지식 어시스트를 사용 중지하려면 API를 사용하여 대화 프로필을 만들어야 합니다.
2단계: 데이터 스토어 에이전트 사용
원하는 경우 SearchKnowledge
API를 사용하여 데이터 스토어 에이전트에서 답변을 가져올 수 있습니다. 다음 구성을 SearchKnowledge
요청의 일부로 사용할 수도 있습니다.
querySource
: 이 필드를 설정하여 상담사가 쿼리를 입력했는지 또는 사전 생성 지식 어시스턴트가 자동으로 제안했는지 나타냅니다.exactSearch
: 쿼리 재작성 없이 정확한 입력 쿼리를 검색할지 여부를 나타내도록 이 필드를 설정합니다.endUserMetadata
: 생성된 답변을 개선하는 최종 사용자에 관한 추가 정보를 포함하도록 이 필드를 설정합니다. 자세한 내용은 Data Store 상담사 성능 맞춤설정 페이지를 참고하세요.searchConfig
: 이 필드를 설정하여 기술 문서를 상단에 표시하거나 필터링할 수 있습니다. 자세한 내용은 데이터 스토어 에이전트 성능 검색 구성 페이지를 참고하세요.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION_ID: 위치의 ID입니다.
- CONVERSATION_PROFILE_ID: 이전 단계의 대화 프로필 ID
- SESSION_ID: 검색 세션 ID 동일한 세션의 검색 기록이 검색 결과에 영향을 미칠 수 있습니다. 세션 ID로 아래의 대화 ID를 사용할 수 있습니다.
- CONVERSATION_ID: 검색 요청이 트리거된 대화 (상담사와 최종 사용자 간의 대화)입니다.
- MESSAGE_ID: 검색 요청이 트리거될 때의 최신 대화 메시지
다음은 JSON 요청의 예입니다.
{ "parent": "projects/PROJECT_ID/locations/LOCATION_ID" "query": { "text": "What is the return policy?" } "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID" "sessionId": "SESSION_ID "conversation": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID" "latestMessage": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID "querySource": AGENT_QUERY "exactSearch": false "searchConfig": { "filterSpecs": { "filter": "category: ANY(\"persona_B\")" } } "endUserMetadata": { "deviceOwned": "Google Pixel 7" } }
원하는 경우 사용자와의 대화 중에 상담사의 검색이 실행되는 경우 conversation
및 latest_message
리소스 이름을 제공합니다. enable_conversation_augmented_query
옵션을 사용 설정하고 상담사와 사용자 간의 대화 맥락으로 쿼리 답변 환경을 개선하는 것을 선호하는 경우 이 두 필드는 필수입니다.
시뮬레이터
Agent Assist 시뮬레이터에서 데이터 스토어 에이전트를 테스트합니다.
위 예에서 데이터 스토어 에이전트는 사용자 쿼리 What is the refund
processing time?
에 다음 정보로 응답합니다.
- 생성형 AI 생성 답변: 반품 제품이 포함된 택배가 판매자의 반품 센터에 도착하면 처리하는 데 영업일 기준 최대 7일이 더 걸릴 수 있습니다. 주문 페이지에 있는 반품 운송장 번호로 환불 상태를 확인하세요.
- 관련 지식 문서의 제목: 반품 및 환불
상담사를 위해 사전 제안 Q & A
사전 생성형 지식 어시스턴트는 진행 중인 대화를 따라가며 사전에 검색어 추천 및 답변을 제공합니다.
1단계: 대화 프로필 만들기
Agent Assist 콘솔 또는 API를 사용하여 대화 프로필을 만듭니다. Agent Assist 콘솔을 사용하여 대화 프로필을 만드는 것이 좋습니다.
콘솔에서 만들기
- 생성형 지식 지원 추천 유형을 사용 설정하고 이전 단계의 데이터 스토어 에이전트에 연결합니다. 이를 통해 데이터 스토어 상담사가 사전에 검색어 및 답변 제안을 제공하고 상담사의 수동 검색어에 답변할 수 있습니다.
- 선택사항: 대화에 관한 추천 검색어 모두 표시 체크박스를 사용하면 기술 문서에서 답변을 찾을 수 없는 경우에도 데이터 스토어 에이전트가 이러한 모든 검색어를 표시하도록 할 수 있습니다. 이는 진행 중인 대화에서 가져올 수 있는 쿼리를 테스트하기 위한 것입니다.
- 선택사항: 사전 예방적 답변 비동기식 로드 체크박스를 사용하여 검색어 추천만 가져옵니다. 추천 검색어를 SearchKnowledge API에 수동으로 제출하고 Agent Assist 콘솔 시뮬레이터 및 UI 모듈에 자동으로 제출할 수 있습니다.
API에서 만들기
다음 단계에서는 HumanAgentAssistantConfig 객체로 ConversationProfile을 만듭니다. Agent Assist 콘솔을 사용하여 이러한 작업을 수행할 수도 있습니다.
대화 프로필을 만들려면 ConversationProfile 리소스에서 create 메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION_ID: 위치의 ID입니다.
- AGENT_ID: 이전 단계의 데이터 스토어 상담사 ID
{ "displayName": "my-conversation-profile-display-name", "humanAgentAssistantConfig": { "humanAgentSuggestionConfig": { "featureConfigs": [ { "suggestionFeature": { "type": "KNOWLEDGE_ASSIST" }, "queryConfig": { "dialogflowQuerySource": { "agent": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID" } }, "enableQuerySuggestionWhenNoAnswer": false, } ] } } }
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
자세한 내용은 Vertex AI Agent Builder Python API 참고 문서를 확인하세요.
Vertex AI Agent Builder에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
사용자 참여자 만들기
사용자 및 상담사 참여자를 대화에 추가하여 추천을 확인합니다. 먼저 대화에 사용자 참여자를 추가합니다.
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
자세한 내용은 Vertex AI Agent Builder Python API 참고 문서를 확인하세요.
Vertex AI Agent Builder에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
상담사-참여자 만들기
대화에 상담사 참여자를 추가합니다.
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
자세한 내용은 Vertex AI Agent Builder Python API 참고 문서를 확인하세요.
Vertex AI Agent Builder에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
상담사의 메시지 추가 및 분석
참여자가 대화에 메시지를 입력할 때마다 처리를 위해 해당 메시지를 API에 전송해야 합니다. 데이터 스토어 에이전트는 상담사 및 사용자 메시지 분석을 기반으로 추천을 제공합니다. 다음 예시에서는 상담사가 'What can I do for 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
자세한 내용은 Vertex AI Agent Builder Python API 참고 문서를 확인하세요.
Vertex AI Agent Builder에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
추천을 위한 사용자 메시지 추가
상담사의 응답에 대해 사용자가 '언제 반품 환불을 받을 수 있나요?'라고 묻는 경우 이번에는 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
자세한 내용은 Vertex AI Agent Builder Python API 참고 문서를 확인하세요.
Vertex AI Agent Builder에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
대화 완료
대화가 끝나면 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
자세한 내용은 Vertex AI Agent Builder Python API 참고 문서를 확인하세요.
Vertex AI Agent Builder에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
시뮬레이터
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", ] } } } }
메타데이터
지식 문서에 metadata를 구성하면 생성형 지식 지원과 사전 생성형 지식 지원 모두 응답과 함께 문서의 메타데이터를 반환합니다.
예를 들어 메타데이터를 사용하여 기술 문서가 내부 비공개 도움말인지 외부 공개 도움말인지 표시할 수 있습니다. Agent Assist 시뮬레이터와 UI 모듈 모두에서 생성형 지식 지원과 사전 예방적 생성형 지식 지원 모두 특정 키의 문서 메타데이터 값을 자동으로 표시합니다.
gka_source_label
: 추천 카드에 값이 직접 표시됩니다.gka_source_tooltip
: 값이struct
유형인 경우 소스 링크 위로 커서를 가져가면 값이 펼쳐지고 도움말에 표시됩니다.
지식 문서에 다음과 같은 메타데이터가 있는 경우 추천 카드에 소스가 External Doc
로 표시되고 도움말에 doc_visibility: public doc
가 추가됩니다.
메타데이터:
None
{
"title": "Public Sample Doc",
"gka_source_label": "External Doc",
"gka_source_tooltip": {
"doc_visibility": "public doc"
}
}
언어 지원
지원되는 언어의 전체 목록을 참고하세요.