자연어 이해를 사용한 필터링

이 페이지에서는 자연어 이해를 적용하여 검색어의 필터를 자동으로 만들고 반환되는 결과의 품질을 개선하는 방법을 설명합니다.

이 기능은 정형 데이터 스토어에 연결된 검색 앱에서 사용할 수 있습니다.

자연어 쿼리 이해 정보

정형 데이터가 포함된 일반 검색 앱이 있는 경우 사용자의 자연어 쿼리가 필터링된 쿼리로 형식이 다시 지정될 수 있습니다. 이렇게 하면 쿼리 문자열에서 단어를 검색하는 것보다 더 나은 품질의 검색 결과를 얻을 수 있습니다.

자연어 쿼리 이해를 사용하면 자체 필터 표현식을 작성하는 것보다 쉽고 유연합니다. 필터 표현식을 작성하는 방법에 관한 자세한 내용은 정형 또는 비정형 데이터의 일반 검색 필터링을 참조하세요.

이 기능은 예시를 통해 설명하는 것이 가장 좋습니다.

예: 쿼리에서 필드 추출

이 자연어 쿼리 이해 기능은 호텔 검색의 예시를 통해 설명됩니다.

호텔 사이트의 정형 데이터 스토어에 대한 다음 쿼리를 살펴보겠습니다. '1박에 300달러 이하로 반려견을 동반할 수 있고, 무료 Wi-Fi가 제공되는 가족 친화적인 4성급 이상 호텔을 찾아 줘.'

자연어 쿼리 이해가 없으면 검색 앱은 쿼리에 있는 단어가 포함된 문서를 찾습니다.

자연어 쿼리 이해와 적절한 정형 데이터를 사용하면 쿼리의 일부 자연어를 필터로 대체하여 검색을 더 효과적으로 수행할 수 있습니다. 정형 데이터에 star_rating (숫자), price(숫자), amenities (문자열) 필드가 있는 경우 쿼리를 다음 필터와 잔여 쿼리로 다시 작성할 수 있습니다.

  • 자연어 쿼리에서 추출된 필터:

    {
        "star_rating": ≥4,
        "price": ≤300,
        "amenities": "Wifi", "Pets Allowed"
    }
    
  • 필터가 추출된 후 재구성된 잔여 쿼리:

    family-friendly

예: 위치정보 필터 사용

이 예시는 이전 예시와 비슷하지만 추출된 필터의 특별한 종류인 위치정보 필터가 포함되어 있습니다. Vertex AI Search는 쿼리에서 위치를 인식하고 위치에 대한 근접성 필터를 생성할 수 있는 기능이 있습니다.

주 전역의 비즈니스 사이트에서 다음과 같은 쿼리를 실행해보세요. '샌프란시스코에 있는 4성급 이상의 세련되고 스타일리시한 호텔을 찾아 줘.'

자연어 쿼리 이해 및 위치정보 필터를 사용하면 검색이 필터 및 잔여 쿼리로 재구성됩니다.

  • 자연어 쿼리에서 추출된 필터로, 별표 평점이 4점 이상이고 샌프란시스코 반경 10km 이내에 있는 숙박 시설을 검색합니다.

    {
        "star_rating": ≥4,
        "location": GEO_DISTANCE(\"San Francisco, CA\", 10000)
    }
    

    이 예시에서 GEO_DISTANCE는 주소이지만 다른 쿼리에서는 원래 쿼리에 주소가 포함되어 있더라도 위도와 경도로 작성될 수 있습니다.

  • 필터가 추출된 후 재구성된 잔여 쿼리:

    chic and stylish in San Francisco

    위치정보 필터가 적용되었지만 장소 이름은 잔여 쿼리에 남아 있습니다. 이는 star_rating과 같은 다른 필터와는 다릅니다.

제한사항

자연어 쿼리 이해에는 다음과 같은 제한사항이 적용됩니다.

  • 자연어 쿼리 이해는 혼합 검색 앱에는 적용할 수 없습니다. 혼합 검색 앱에서 자연어 쿼리 이해를 사용하려고 하면 오류가 발생합니다.

  • 자연어 쿼리 이해는 정형 데이터 스토어를 사용하는 일반 검색 앱에서만 작동합니다.

  • 자연어 쿼리 이해를 사용하면 지연 시간이 증가하므로 지연 시간이 문제가 되는 경우 사용하지 않는 것이 좋습니다.

  • 위치정보의 경우 위치를 명시적으로 설명해야 합니다. '근처' 또는 '집'과 같은 위치는 사용할 수 없습니다.

  • 위치정보의 반경은 10km이며 구성할 수 없습니다.

시작하기 전에

자연어 쿼리 이해를 사용하기 전에 사용하려는 앱에 연결된 정형 데이터 스토어에 이를 사용 설정해야 합니다.

자연어 쿼리 이해를 사용 설정하려면 다음 단계를 따르세요.

REST

  1. 데이터 스토어 ID를 찾습니다. 데이터 스토어 ID가 이미 있는 경우 다음 단계로 건너뜁니다.

    1. Google Cloud 콘솔에서 Agent Builder 페이지로 이동하고 탐색 메뉴에서 데이터 스토어를 클릭합니다.

      데이터 스토어 페이지로 이동

    2. 데이터 스토어 이름을 클릭합니다.

    3. 데이터 스토어의 데이터 페이지에서 데이터 스토어 ID를 가져옵니다.

  2. 다음 curl 명령어를 실행합니다.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID?update_mask=natural_language_query_understanding_config.mode" \
    -d '{
          "naturalLanguageQueryUnderstandingConfig": {
            "mode": "ENABLED"
          }
        }'
    
    • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
    • DATA_STORE_ID: Vertex AI Search 데이터 스토어의 ID입니다.
  3. 각 데이터 스토어에 대해 1단계와 2단계를 반복합니다.

  4. 약 24시간 동안 기다립니다.

    데이터 스토어가 준비되기 전에 자연어 쿼리 이해를 사용하려고 하면 filterExtractionConditionDISABLED로 설정된 것과 동일한 응답이 반환됩니다.

검색: 자연어 쿼리를 필터로 변환

자연어로 쿼리를 검색하고 자연어 쿼리에 최적화된 결과를 가져오려면 다음 단계를 따르세요.

REST

  1. search 메서드를 호출하는 다음 curl 명령어를 실행합니다.

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
            "query": "QUERY",
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED"
            }
          }'
    

    다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
    • APP_ID: 쿼리할 Vertex AI Search 앱의 ID입니다. 앱이 구조화된 데이터가 포함된 데이터 스토어에 연결되어 있어야 합니다. 앱이 혼합 검색 앱일 수 없습니다.
    • QUERY: 쿼리가 자연어로 작성되어 있습니다.

검색: 쿼리의 위치를 위치정보 필터로 변환

자연어로 쿼리를 검색하고 위치와의 근접성 등 자연어 쿼리에 최적화된 결과를 가져오려면 다음 단계를 따르세요.

REST

  1. search 메서드를 호출하는 다음 curl 명령어를 실행합니다.

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
            "query": "QUERY",
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED",
              "geoSearchQueryDetectionFieldNames": ["GEO_FIELD_NAME_1", "GEO_FIELD_NAME_N"]"
            }
          }'
    

    다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
    • APP_ID: 쿼리할 Vertex AI Search 앱의 ID입니다. 앱이 구조화된 데이터가 포함된 데이터 스토어에 연결되어 있어야 합니다. 앱이 혼합 검색 앱일 수 없습니다.
    • QUERY: 쿼리가 자연어로 작성되어 있습니다.
    • GEO_FIELD_NAME_1, GEO_FIELD_NAME_N: geolocation 유형의 값 목록입니다. 값 유형이 geolocation이 아니면 이 필드는 무시됩니다.