서빙 구성 만들기

이 페이지에서는 서빙 구성을 만드는 방법을 설명합니다. 서빙 구성이란 Search 결과 또는 Recommendations 결과를 생성하는 데 사용되는 모델 또는 제어 모음을 연결하는 제공 항목입니다.

시작하기 전에

Recommendations와 Search 서빙 구성의 요구사항과 옵션은 서로 다릅니다.

  • Recommendations 서빙 구성에는 모델이 필요합니다. 기존 모델을 새 서빙 구성에 연결하려면 사용할 모델의 ID를 가져옵니다(ServingConfig.create 메서드 사용 시 필요).

    콘솔을 사용하여 서빙 구성을 만드는 경우 기존 모델을 연결하는 대신 만들기 프로세스 중에 새 모델을 만들 수 있습니다.

    모델 유형이 동일한 경우 나중에 모델을 전환할 수 있습니다.

  • 검색에서는 서빙 컨트롤을 사용할 수 있지만 필수는 아닙니다. 기존 컨트롤을 새 서빙 구성에 연결하려면 사용할 컨트롤의 ID를 가져옵니다.

    콘솔을 사용하여 서빙 구성을 만드는 경우, 생성 프로세스 중에 새 컨트롤을 만들 수도 있습니다.

    만든 후에 서빙 컨트롤을 전환하거나 서빙 구성에 추가할 수 있습니다.

서빙 구성 만들기

다음을 사용하여 서빙 구성을 만들 수 있습니다.

카탈로그당 최대 100개의 서빙 구성이 허용됨

기존 게재위치가 있거나 새 게재위치를 만들면 각 게재위치와 연결된 서빙 구성이 자동으로 생성됩니다. 서빙 구성을 만들어도 해당 게재위치가 생성되지 않습니다. 서빙 구성을 삭제하면 해당 게재위치가 삭제되고 해당 배치가 삭제됩니다.

콘솔에서 서빙 구성 만들기

Search for Retail 콘솔의 서빙 구성 페이지에서 새 서빙 구성을 추가합니다.

새 서빙 구성을 만들려면 다음 안내를 따르세요.

  1. Search for Retail 콘솔에서 서빙 구성 페이지로 이동합니다.

    서빙 구성 페이지로 이동

  2. 서빙 구성 만들기를 클릭합니다.

    권장사항

    1. 서빙 구성이 사용될 제품으로 Recommendation을 선택합니다.

    2. 서빙 구성의 이름을 입력합니다.

      이름은 1,024자(영숫자 문자 기준) 이하여야 하고 영숫자, 밑줄, 하이픈, 공백만 포함할 수 있습니다.

    3. 선택사항: 필요한 경우 ID를 업데이트합니다.

      ID는 제공한 이름에서 생성되며 프로젝트 전체에서 고유해야 합니다. 50자(영문 기준) 이하여야 하며 공백을 포함할 수 없습니다.

    4. 이 서빙 구성에서 추천을 제공할 모델을 선택하거나 만듭니다.

      새 모델 생성에 대해 자세히 알아보세요.

    5. 선택한 모델에서 사용 가능한 경우 가격 재순위가 추천 결과에 영향을 미칠 정도를 선택합니다.

      가격 재순위를 사용하면 추천 확률이 비슷한 추천 제품이 높은 가격순으로 정렬됩니다. 항목 순서를 지정할 때 관련성도 사용되므로 가격 재순위를 사용 설정하는 것은 가격을 기준으로 정렬하는 것과는 다릅니다.

    6. 규칙 기반 다각화를 사용할지 또는 데이터 기반 다각화를 사용할지 선택합니다.

      • 규칙 기반: 규칙 기반 다각화는 단일 예측 요청에서 반환된 결과가 제품 카탈로그의 여러 카테고리에 속하는지 여부에 영향을 줍니다.

      • 데이터 기반: 데이터 기반 다각화는 머신러닝을 사용하여 예측 결과에서 카테고리 다양성과 관련성의 균형을 맞춥니다.

      자세한 내용은 다각화를 참고하세요.

    7. 추천 결과의 다각화 정도를 선택합니다.

    8. 이 서빙 구성에 유사한 항목 모델을 선택한 경우 카테고리 일치를 사용 설정할지 여부를 선택합니다.

      카테고리 일치가 사용 설정된 경우 하나 이상의 카테고리를 컨텍스트 제품과 공유하는 결과만 제품 결과로 반환됩니다. 카테고리 일치는 가격, 재고, 필터 태그와 같은 다른 필터링 옵션과 함께 사용할 수 있습니다.

    1. 서빙 구성 만들기 페이지에서 서빙 구성이 사용될 제품으로 Search를 선택합니다.
    2. 서빙 구성의 이름을 입력합니다.

      이름은 1,024자(영숫자 문자 기준) 이하여야 하고 영숫자, 밑줄, 하이픈, 공백만 포함할 수 있습니다.
    3. 선택사항: 필요한 경우 ID를 업데이트합니다.

      ID는 개발자가 제공한 이름에서 생성되며 프로젝트 전체에서 고유해야 합니다. 50자(영문 기준) 이하여야 하며 공백을 포함할 수 없습니다.
    4. 계속을 클릭합니다.
    5. 이 서빙 구성에 동적 패싯 생성을 사용 설정할지 여부를 선택합니다.
    6. 검색을 최적화할 서빙 컨트롤을 선택하거나 만듭니다.

      컨트롤에 대한 자세한 내용은 컨트롤 만들기 및 관리를 참조하세요.
  3. 만들기를 클릭하여 새 구성을 만듭니다.

    새로운 구성이 서빙 구성 페이지에 표시됩니다.

    구성이 검색 요청에 사용할 수 있게 될 때까지 몇 분 정도 걸릴 수 있습니다. 추천에는 바로 사용할 수 있습니다.

  4. 선택사항: 서빙 구성 페이지에서 서빙 구성 이름을 클릭하고 평가 탭으로 이동하여 이 구성에 반환될 제품을 미리 봅니다.

    평가 미리보기를 사용하면 구성이 예상대로 작동하는지 확인하는 데 도움이 될 수 있습니다.

ServingConfig.create를 사용하여 서빙 구성 만들기

ServingConfig.create API 메서드를 사용하여 서빙 구성을 만들 수 있습니다. 이 메서드에 대한 API 참고 문서는 ServingConfig.create를 참조하세요.

Recommendations 또는 Search의 서빙 구성을 만드는지 여부에 따라 사용하는 필드가 달라집니다.

ServingConfig 필드에 대한 자세한 내용은 ServingConfigs API 참조를 확인하세요.

권장사항

서빙 구성 ID와 요청 본문에 포함된 ServingConfig 인스턴스를 사용하여 ServingConfig.create 요청을 수행합니다.

  • servingConfigId: (필수사항) ServingConfig의 ID를 만듭니다. 이 값은 4~63자(영문 기준)여야 합니다. 유효한 문자는 /[a-z][0-9]-_/입니다.
  • displayName: (필수사항) Search for Retail 콘솔에 표시되는 인간이 읽을 수 있는 ServingConfig 이름입니다.
  • modelID: (필수사항) 서빙 시 사용할 모델의 ID입니다.
  • priceRerankingLevel: (선택사항) 가격 재순위가 추천 결과에 영향을 미칠 정도를 설정합니다. 허용되는 값은 no-price-reranking(설정되지 않은 경우 기본값), low-price-raranking, medium-price-reranking, high-price-reranking입니다.
  • diversityLevel: (선택사항) 추천 결과의 다각화 정도를 설정합니다. 허용되는 값은 no-diversity(기본값), low-diversity, medium-diversity, high-diversity, auto-diversity입니다. diversityLevel이 설정되지 않으면 다양성이 사용 중지됩니다.
  • diversityType: (선택사항) 제품 카테고리를 기준으로 추천 결과를 다양화하려면 RULE_BASED_DIVERSITY로 설정합니다. 제품 메타데이터 학습을 통해 관련성과 카테고리 다양성의 균형을 맞추는 추천을 다양화하려면 DATA_DRIVEN_DIVERSITY로 설정합니다. diversityLevel이 설정되어 있지만 diversityType이 설정되지 않은 경우 diversityType은 기본적으로 규칙 기반이 됩니다. 자세한 내용은 다각화를 참조하세요.
  • enableCategoryFilterLevel: (선택사항) 유사 항목 모델에 카테고리 필터를 추가할지 여부를 설정합니다. 허용되는 값은 relaxed-category-match(설정되지 않은 경우 기본값) 및 no-category-match입니다.
  • solutionTypes: (필수사항) Recommendations 서빙 구성의 경우 SOLUTION_TYPE_RECOMMENDATION으로 설정합니다.
curl -X POST \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     --data '{
              "displayName": "DISPLAY_NAME",
              "modelId": "MODEL_ID",
              "priceRerankingLevel": "PRICE_RERANKING_LEVEL",
              "diversityType": "DIVERSITY_TYPE",
              "diversityLevel": "DIVERSITY_LEVEL",
              "enableCategoryFilterLevel": "CATEGORY_FILTER_LEVEL",
              "solutionTypes": [ "SOLUTION_TYPE_RECOMMENDATION" ]
            }' \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/servingConfigs?servingConfigId=SERVING_CONFIG_ID"
  

검색

서빙 구성 ID와 요청 본문에 포함된 ServingConfig 인스턴스를 사용하여 ServingConfig.create 요청을 수행합니다.

  • servingConfigId: (필수사항) ServingConfig의 ID를 만듭니다. 이 값은 4~63자(영문 기준)여야 합니다. 유효한 문자는 /[a-z][0-9]-_/입니다.
  • displayName: (필수사항) Search for Retail 콘솔에 표시되는 인간이 읽을 수 있는 ServingConfig 이름입니다.
  • facetControlIds: 선택사항. FacetSpec만 설정된 컨트롤의 ID입니다.
  • dynamicFacetSpec.mode: (선택사항) DynamicFacet 기능의 모드입니다. 허용되는 값은 DISABLED(설정되지 않은 경우 기본값) 및 ENABLED입니다.
  • boostControlIds: (선택사항) 부스트 서빙 컨트롤의 ID입니다.
  • filterControlIds: (선택사항) 필터 서빙 컨트롤의 ID입니다.
  • redirectControlIds: (선택사항) 리디렉션 서빙 컨트롤의 ID입니다.
  • twowaySynonymsControlIds: (선택사항) 양방향 동의어 서빙 컨트롤의 ID입니다.
  • onewaySynonymsControlIds: (선택사항) 단방향 동의어 서빙 컨트롤의 ID입니다.
  • doNotAssociateControlIds: (선택사항) 연관 금지 서빙 컨트롤의 ID입니다.
  • replacementControlIds: (선택사항) 대체 서빙 컨트롤의 ID입니다.
  • ignoreControlIds: (선택사항) 무시 서빙 컨트롤의 ID입니다.
  • solutionTypes: (필수사항) Search 서빙 구성의 경우 SOLUTION_TYPE_SEARCH로 설정합니다.
curl -X POST \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     --data '{
              "displayName": DISPLAY_NAME,
              "facetControlIds": [
                "FACET_CONTROL_ID_1",
                "FACET_CONTROL_ID_2"
              ],
              "dynamicFacetSpec": {
                "mode": "DYNAMIC_FACET_MODE"
              },
              "boostControlIds": [
                "BOOST_CONTROL_ID_1",
                "BOOST_CONTROL_ID_2"
              ],
              "filterControlIds": [
                "FILTER_CONTROL_ID_1",
                "FILTER_CONTROL_ID_2"
              ],
              "redirectControlIds": [
                "REDIRECT_CONTROL_ID_1",
                "REDIRECT_CONTROL_ID_2"
              ],
              "twowaySynonymsControlIds": [
                "TWO_WAY_SYNONYM_CONTROL_ID_1",
                "TWO_WAY_SYNONYM_CONTROL_ID_2"
              ],
              "onewaySynonymsControlIds": [
                "ONE_WAY_SYNONYM_CONTROL_ID_1",
                "ONE_WAY_SYNONYM_CONTROL_ID_2"
              ],
              "doNotAssociateControlIds": [
                "DO_NOT_ASSOCIATE_CONTROL_ID_1",
                "DO_NOT_ASSOCIATE_CONTROL_ID_2"
              ],
              "replacementControlIds": [
                "REPLACEMENT_CONTROL_ID_1",
                "REPLACEMENT_CONTROL_ID_2"
              ],
              "ignoreControlIds": [
                "IGNORE_CONTROL_ID_1",
                "IGNORE_CONTROL_ID_2"
              ],
              "solutionTypes": [ "SOLUTION_TYPE_SEARCH" ]
    }' \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/servingConfigs?servingConfigId=SERVING_CONFIG_ID"
  

다음 단계