다음은 API에 대화형 제품 필터링을 통합하는 방법에 관한 개발자 가이드입니다.
관리자 환경
API 또는 상거래를 위한 Search 콘솔에서 생성형 질문과 대화형 제품 필터링을 직접 관리하고 상거래를 위한 Search 콘솔의 데이터 품질 및 평가 섹션에서 설정합니다.
Cloud 콘솔
소매업체는 이 콘솔을 사용하여 대화형 제품 필터링 환경에서 생성형 질문을 관리할 수 있습니다. 대화형 제품 필터링에서 생성형 질문을 사용하는 방법에 대해 자세히 알아보세요.
생성형 질문 서비스 사용 단계
데이터 요구사항을 충족합니다.
수동 질문 재정의를 구성합니다.
기능을 사용 설정합니다.
미리보기 및 테스트합니다.
데이터 요구사항
검색 데이터가 대화형 제품 필터링을 사용할 준비가 되었는지 확인하려면 콘솔의 대화형 제품 필터링 및 탐색 또는 데이터 품질 > 대화에서 범위 검사 탭으로 이동합니다.
대화형 제품 필터링을 사용 설정하려면 특정 데이터 요구사항을 충족해야 합니다.
이는 다음과 같습니다.
- 일일 검색어 1,000개: 이 첫 번째 기준점에 도달하면 입력과 출력을 평가하는 대화 계획이 생성됩니다.
- 입력: 이벤트의 필터 수
- 출력: 대화형 범위
- 25% 의 대화형 범위: 상거래를 위한 Vertex AI Search 모델에서 계산되는 대화형 범위는 질문이 하나인 검색어의 비율을 의미합니다. 빈도별로 가중치가 적용된 검색어의 25%(볼륨 기준)에는 일치하는 첫 번째 질문이 하나 이상 있어야 합니다.
아직 대화형 범위가 25%는 아니지만 첫 번째 기본 요건인 일일 검색어 1,000개를 충족하는 경우 출력 및 입력에 각각 차단 및 권장사항 확인이 적용되기 시작합니다. 여기서 Vertex AI Search for Commerce는 사용자 이벤트 적용 필터가 25% 대화형 범위 기준점에 도달하기 위해 얼마나 많은 비율로 증가해야 하는지 계산하기 시작합니다. 업로드된 필터가 많을수록 도달 범위가 높아집니다.
대화 준비 상태를 확인하려면 다음 안내를 따르세요.
- 커머스를 위한 Vertex AI Search 콘솔의 데이터 품질 페이지에서 대화 탭으로 이동합니다. 이를 통해 검색어의 최소 25% 에 후속 질문이 하나 이상 포함되어 있는지 확인하는 중요한 검토 사항과 대화 범위 목표를 달성하기 위해 유효한 필터가 적용된 사용자 이벤트의 비율이 어느 정도여야 하는지에 대한 권장사항 검토 사항을 확인할 수 있습니다.
그림 4. 대화형 준비 상태 확인
유효한 필터가 있는 사용자 이벤트가 충분히 포함된 중요한 검사를 통과하면 다음 단계로 진행합니다.
생성형 질문이 제공되는 방식을 관리하려면 Vertex AI Search for Commerce 콘솔의 대화형 제품 필터링 및 탐색 페이지로 이동하세요.
생성형 질문 관리
생성형 AI는 시스템 속성과 커스텀 속성의 이름과 값을 모두 사용하여 카탈로그의 색인 생성 가능한 모든 속성에 관한 질문을 작성합니다. 이러한 질문은 LLM에 의해 생성되며 검색 환경을 개선하는 것을 목표로 합니다. 예를 들어 가구 유형의 경우 값이 실내 또는 실외일 수 있으며 AI는 어떤 유형의 가구를 찾고 있는지에 관한 질문을 종합합니다.
각 패싯에는 생성된 질문이 하나씩 있습니다. 과거 검색 이벤트 데이터의 과거 사용자 이벤트와 패싯 참여도를 기반으로 예상되는 질문 출현 빈도에 따라 질문이 정렬됩니다. AI는 먼저 상단의 질문을 살펴본 다음 속성별로 관련성을 찾습니다. 질문 목록은 한 번 생성됩니다. 새 속성이 추가되면 2시간 후에 목록에 반영됩니다.
커머스를 위한 Search 콘솔의 대화형 검색 및 탐색 페이지로 이동합니다.
대화형 검색 및 탐색 페이지로 이동합니다.AI 생성 질문 관리 탭에서 검색어로 가중치를 부여한 사용 빈도별로 정렬된 모든 질문을 볼 수 있습니다. 여기서 사용 빈도란 일반적인 검색어와 함께 표시되는 빈도를 의미합니다. 순위는
GenerativeQuestionConfig
구성의 빈도 필드를 사용합니다. 이 필드는 AI 생성 질문을 사용 빈도별로 정렬하는 역할을 합니다.필터 옵션을 사용하여 질문을 필터링할 수 있습니다.
각 속성에 대한 질문 표시를 사용 설정하려면 체크박스를 선택합니다.
각 행 끝에 있는 edit 아이콘을 클릭하여 각 질문의 수정 패널을 엽니다.
일괄 수정하려면 다음 단계를 따르세요.
대화에 포함하거나 제외할 질문 옆의 체크박스를 선택하거나 선택 해제합니다.
목록 상단에 표시되는 add대화에서 허용 또는 remove대화에서 허용 안 함 버튼을 클릭합니다. 또는 개별 질문을 수정하려면 edit 아이콘을 클릭하고 열리는 창에서 대화에서 허용 옆의 체크박스를 선택 해제하거나 다시 선택합니다.
그림 5. AI 생성 질문을 각각 수정합니다.
대화형 제품 필터링에서 생성형 질문 사용
생성형 질문 서비스 API는 LLM 출력의 잠재적 불일치를 완화하는 컨트롤을 제공합니다. 이는 콘솔에서 관리할 수 있습니다. 여기에서 소매업체는 사용 설정 상태를 전환하고 트리거하는 데 필요한 최소 제품 수를 설정하여 대화형 제품 필터링을 구성할 수도 있습니다.
질문 자체, 가능한 답변, 해당 질문이 대화에서 허용되는지 여부를 지정하여 질문을 정의할 수 있습니다. 개별 질문은 LLM에 의해 생성되거나 소매업체에 의해 재정의될 수 있습니다. 이 콘솔은 AI 생성 질문 검토를 지원하므로 소매업체는 질문을 재정의하거나 대화형 상태를 전환할 수 있습니다. 질문을 일괄 수정할 수도 있습니다.
개별 질문 수정
제어 기능을 사용하여 개별 질문을 선별할 수도 있습니다. 대화형 제품 필터링을 사용 설정하기 전에 이 작업을 수행하는 것이 좋습니다.
각 질문에는 두 가지 옵션이 있습니다. 마지막 열에서 edit 아이콘을 클릭하여 사용자에게 표시되는 질문 패널에 액세스합니다.
- 모든 검색어에 대해 질문 사용 중지: 질문이 기본적으로 사용 설정됩니다. 대화에서 허용 옆의 체크박스를 선택 해제하거나 다시 선택합니다. 이 옵션을 선택하면 질문이 완전히 건너뛰어집니다. 질문이 검색된 속성과 관련이 없거나 어떤 식으로든 부적절한 것으로 오해될 수 있는 경우 소매업체는 질문을 완전히 사용 중지할 수 있습니다(예: '어떤 드레스 사이즈를 찾고 계신가요?'와 같은 질문은 쇼핑객의 체중을 캐묻는 것으로 인식될 수 있음).
- 질문 재작성: 창에서 AI 생성 질문, 질문이 연결된 속성, 해당 속성의 값을 확인할 수 있습니다. 연필을 클릭하여 다시 작성합니다.
대화형 필터링 사용 설정하기
콘솔에서 생성형 AI 질문을 수정한 후 대화형 제품 필터링을 사용 설정할 수 있습니다.
대화형 제품 필터링을 사용 설정하려면 상거래를 위한 Search 콘솔의 대화형 제품 필터링 및 탐색 페이지로 이동합니다.
커머스를 위한 Search 콘솔의 대화형 검색 및 탐색 페이지로 이동합니다.
대화형 검색 및 탐색 페이지로 이동합니다.질문이 생성되기 전에 검색에서 반환할 카탈로그의 최소 제품 수를 고려하세요. 이 숫자는 2보다 클 수는 있지만 2보다 작을 수는 없습니다. 한 페이지에 한 행이 대화를 트리거하는 데 적절한 경우가 많습니다.
번호를 구성하고 전환 버튼을 사용으로 전환합니다. 일치하는 제품이 숫자보다 적으면 필터링됩니다.
그림 6. 스위치를 대화형 검색 사용 설정으로 전환합니다.
이 페이지에서는 차단 및 권장사항 확인의 상태에 대한 정보를 확인할 수 있습니다. 후속 질문이 하나 이상 포함된 검색어가 충분히 있으면 이제 사이트에서 대화형 검색을 사용할 수 있습니다.
평가 및 테스트
평가에서는 테스트 검색을 실행하고 표시된 패싯을 기준으로 질문을 테스트하여 서빙 환경을 미리 볼 수 있습니다. 콘솔의 이 부분에서는 대화형 제품 필터링을 통한 서빙 환경의 미리보기를 제공합니다.
평가하고 테스트하려면 다음 단계를 따르세요. 커머스를 위한 Search 콘솔의 평가 페이지에 있는 검색 또는 탐색 탭의 평가 섹션
커머스를 위한 Search 콘솔에서 평가 페이지로 이동합니다.
평가 페이지로 이동검색 또는 찾아보기를 클릭합니다.
검색 평가 필드에 검색에 업로드한 카탈로그를 기반으로 적절한 테스트 검색어를 입력합니다(예: 카탈로그가 의류 항목으로 구성된 경우 신발).
검색 미리보기를 클릭하여 검색 결과를 확인합니다.
그림 7. 결과를 미리 봅니다.
대화형 제품 필터링을 사용 설정한 경우 생성형 질문이 사용 설정됩니다.
Generative Question API
이 섹션에서는 생성형 질문 API를 사용하여 UI에 Conversational API를 통합하고, 생성형 질문을 관리하고, 사이트에서 기능을 제공하는 방법을 설명합니다.
API 통합
객체:
- GenerativeQuestionsFeatureConfig
- GenerativeQuestionConfig
- GenerativeQuestions Service
- UpdateGenerativeQuestionsFeatureConfiguration
- UpdateGenerativeQuestionConfig
- ListGenerativeQuestionConfigs
- GetGenerativeQuestionFeatureConfig
- BatchUpdateGenerativeQuestionConfigs
이 기능을 통합하는 핵심은 question
리소스를 정의하는 것입니다. 여기에는 질문 자체와 해당 질문이 대화에서 허용되는지 여부가 포함됩니다. 질문은 기본적으로 LLM에 의해 생성되지만 관리자가 재정의할 수 있습니다.
대화형 제품 필터링 사용 설정
객체:
- GenerativeQuestionsFeatureConfig
이 객체는 생성형 질문 기능을 사용 설정하여 대화형 제품 필터링의 전반적인 서빙 환경을 관리하기 위한 제어 구성 파일입니다. GenerativeQuestionsFeatureConfig
는 GET 메서드를 사용하여 프로젝트와 연결된 카탈로그에서 속성 정보와 속성을 색인화할 수 있는지 여부를 가져옵니다.
feature_enabled
스위치는 서빙 시 질문이 사용되는지 여부를 결정합니다. 이는 콘솔에서 최상위 전환 버튼을 관리합니다.
게재 환경
대화형 제품 필터링은 여러 차례에 걸쳐 대화를 진행하여 사용자의 참여를 유도하는 것을 기반으로 합니다. 따라서 대화형 제품 필터링이 작동하려면 적어도 두 번째 응답이 필요합니다. 사용자에게 후속 질문이 제시되고 응답에 추천 답변이 표시되며, 사용자는 답변을 입력하거나 추천 답변 (객관식 옵션)을 클릭하여 이 후속 질문에 응답할 수 있습니다.
객관식 옵션은 필터링을 사용하여 검색어 범위를 좁히는 패싯 (이벤트 유형 필터)처럼 백그라운드에서 작동합니다. 백그라운드에서 사용자가 객관식 응답을 클릭하면 검색어에 필터가 적용됩니다. 대화형 객관식을 사용하여 필터를 적용하는 것은 동적 패싯이나 타일을 사용하여 동일한 필터를 적용하는 것과 동일합니다.
기능으로 사용 설정된 서비스
생성형 질문 서비스 (service GenerativeQuestionService{...}
)는 LLM 생성 질문을 관리하는 데 사용됩니다. 상위 객체는 카탈로그이며, 여기에서 정보를 검색하여 특정 카탈로그의 질문을 반환합니다. 이 서비스는 전체 생성형 질문 기능 상태를 관리하고, 개별 또는 일괄적으로 변경하고, 질문을 사용 설정 또는 사용 중지하는 데 사용됩니다. Service API와 상호작용하려면 데이터 요구사항이 충족되어야 하며, 질문을 관리하기 전에 먼저 초기화해야 합니다.
이 서비스는 두 가지 핸들러 세트를 사용하여 기능 수준 및 질문 수준 구성 파일과 상호작용합니다.
GenerativeQuestionsFeatureConfig
핸들러 (기능 수준):- 업데이트: 최소 제품을 변경하고 필드를 사용 설정할 수 있습니다.
- Get 객체를 반환합니다.
GenerativeQuestion Config 핸들러(질문 수준):
- 목록 지정된 카탈로그의 모든 질문을 반환합니다.
- 업데이트 개별 질문 관리를 실행합니다.
- 일괄 업데이트 그룹화된 질문 관리를 실행합니다.
서비스는 초기 검색어를 기반으로 의미상 적절한 질문을 반환합니다.
후속 질문은 LLM 모델에 의해 생성되며 재정의할 수 있습니다. 질문은 검색 이벤트 기록을 호출하여 고객이 사용할 가능성에 따라 표시됩니다. 검색 이벤트 기록이 없으면 대체는 상거래 검색 로그에 있습니다.
이전 검색어에 따라 다른 질문이 생성됩니다. 고정된 가중치는 없습니다. LLM 생성 질문을 구동하는 AI는 검색어를 학습하여 모든 검색어에 대한 가중치를 변경합니다. 예를 들어 '셔츠'는 카테고리에 매우 큰 가중치를 부여하지만 'XL 빨간색 셔츠'는 카테고리, 사이즈, 색상에 가중치를 부여합니다.
서빙 환경 구성
대화형 필터링 구성 API를 검색 API와 통합하여 서빙 환경을 구성합니다.
기능의 구성 API ConversationalFilteringSpec
은 Conversational API 위에 있습니다. API를 병렬로 호출하거나 다음 순서로 호출할 수 있습니다.
- Conversational API
- Search API
ConversationalFilteringSpec
: 이 선택사항 필드는ConversationalSearchRequest
에 추가되었지만 대화형 필터링 기능을 사용하려면 필수입니다. 이 필드는SearchRequest
필드, 검색어, 필터를 재사용합니다. 또한 최초 검색어 이후 사용자에게 제공되는 후속 질문을 사용 설정하는 필드와 클라이언트와 서버 간의 대화 상태를 유지하는 `conversation_id` 도 포함되어 있습니다.ConversationalFilteringResult
: proto 파일에는ConversationalSearchResponse
의 대화형 CRS 플로우에 반환하는 데 필요한 추가 정보가 포함되어 있습니다. 여기에는conversation_id
,refined_query
,additional_filters
,follow_up_question
,suggested_answers
이 포함됩니다.
대화형 흐름 API를 사용하는 사용자 여정
사용자가 초기 검색어로 검색을 시작하고 mode
플래그를 CONVERSATIONAL_FILTER_ONLY
로 설정합니다. 그러면 사용자가 답변을 선택하고 user_answer
필드를 사용하여 API로 다시 전송됩니다.
Conversational API는 응답에 additional_filter
필드를 제공합니다. 사용자는 이러한 필터를 Search API 후속 요청에 적용해야 합니다. 검색 결과는 사용자의 입력을 기반으로 하며 새로운 후속 질문을 제공하여 후속 검색어를 프롬프트하고 사용자가 소매업체 웹사이트에서 원하는 항목을 찾을 때까지 여러 차례 대화를 이어갑니다.
웹사이트에서 대화형 제품 필터링이 사용 설정되었다고 가정하면 사용자 경험과 이후 상거래를 위한 Vertex AI Search와의 상호작용은 다음 경로를 따릅니다.
- 1단계: 사용자가 Search API와 Conversational API 모두에 첫 번째 질문을 합니다. Search API는 검색 결과만 반환합니다. Conversational API는 추천 답변과 후속 질문을 반환합니다. 동일한 쿼리 또는
page_category
에 대해 Search API를 호출하고 검색 결과를 가져옵니다. - 2단계: 요청된 후속 대화가 대화형 검색으로 전송됩니다. 올바른 대화 필터링 모드로 Conversational API를 호출합니다.
- 3단계: 검색 결과만 포함된 초기 검색 응답 대화형 API는 추천 답변과 후속 질문을 반환하여 질문을 구체화합니다.
- 사용자 선택: 사용자가 객관식을 선택합니다.
- 선택한 답변 필터가 대화형 API로 전송됩니다.
- Conversation 및 Search API가 적용된 필터로 실행됩니다.
사용자의 첫 번째 질문으로 대화가 시작됨
첫 번째 쿼리는 사용자가 Vertex AI Search for commerce에서 대화를 시작하고 검색창에 dress
를 입력하는 경우입니다.
dress
를 쿼리로 설정하여 다음 검색 요청을 만들어 Search API에 요청을 보냅니다 (실제 쿼리가 무엇이든 상관없음).
대화형 제품 필터링의 일환으로 검색 API 요청이 변경되지는 않습니다.
다음과 같이 하여 Conversational API에 요청을 보냅니다.
dress
를 쿼리 (또는 실제 쿼리)로 설정하여 대화형 검색 요청을 만듭니다.대화형 응답을 받으려면
mode
을CONVERSATIONAL_FILTER_ONLY
로 설정합니다.DISABLED
으로 설정된 경우 후속 질문이 제공되지 않습니다.대화형 검색 요청에서
SearchParams
를 채웁니다. 검색 매개변수는 Search API 호출과 동일해야 합니다.
그러면 Conversational API의 응답은 다음과 같습니다.
대답으로 해야 할 일:
conversation_id
: 이 ID는 브라우저 세션 저장소에 저장할 수 있으며 서버와의 대화형 검색을 계속하는 데 사용할 수 있습니다. 한 명의 쇼핑객이 여러 개의 탭을 열어 놓고 여러 개의 대화를 진행할 수 있으므로conversation_id
는 대화를 추적하는 데 사용됩니다.refined_query
: 현재 쿼리를 식별합니다. 이 응답을 사용하여 Search API를 호출하여 제품 결과를 가져와야 합니다.followup_question
: 사용자에게 표시할 질문을 식별합니다.suggested_answers
: 사용자에게 표시해야 하는 객관식 답변의 순서가 지정된 목록입니다. 답변을 더 적게 표시하려면 처음 N개의 결과만 표시하세요. 목록은 결과가 표시되어야 하는 순서대로 정렬됩니다.
대화가 사용 설정된 초기 사용자 쿼리 전송
검색에서 대화 매개변수를 다시 보냄
대화형 제품 필터링은 지속적인 대화형 참여를 위해 다음과 같은 옵션을 제공하여 검색을 더 빠르게 세분화할 수 있습니다.
사용자 선택
사용자에게 검색 결과가 제공되면 사용자는 객관식 옵션을 선택할 수 있습니다.
이 코드 샘플은 사용자가 객관식 답변 yellow를 선택했으며,올바른 사용자 필터가 적용된 검색어를 다시 전송하여 새로운 대화형 요청이 Search API로 전송됨을 보여줍니다.
Conversational API에 요청을 보내려면 다음 단계를 따르세요.
- 세션 스토리지에서
conversation_id
를 복원합니다. mode
을CONVERSATIONAL_FILTER_ONLY
로 설정합니다.- 사용자가 선택한 항목에 대해
user_answer
를 설정합니다.
그러면 Conversational API의 응답은 다음과 같습니다.
대답으로 해야 할 일:
- Google 응답은 기본적으로 첫 번째 검색어에 대한 응답과 동일하지만
additional_filter
필드를 사용하여color = yellow
의 필터 체크박스를 선택할 수 있으며 사용자가 선택한 다른 필터에 추가해야 합니다. additional_filter
는 이 후속 질문과 후속 검색 요청에 대해 Google에 전송된 필터 필드 이벤트에도 추가해야 합니다. 검색 제품을 가져오기 위해 검색 요청에 적용해야 하며 후속 대화를 가져오기 위해 대화형 검색 요청에도 적용해야 합니다.refined_query
는 더 관련성 높은 제품을 가져오기 위해 Search API로 전송되어야 합니다.