GeniusResultContext - 범위 지정됨

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 13분
  • GeniusResultContext API는 Genius Result 구성의 컨텍스트에서 검색 쿼리 정보를 검색하기 위한 메서드를 제공합니다.

    이 API로 검색된 검색 쿼리 상세 정보를 사용하여 GeniusResultAnswer API로 만든 Genius Result 응답 객체를 채울 수 있습니다.

    sn_ais 네임스페이스 식별자와 함께 Genius Result 서버 측 스크립트에서 이 API를 사용합니다. Genius 결과의 스크립팅 논리에 대한 자세한 내용은 새 Genius 결과 구성 만들기를 참조하십시오.

    GeniusResultContext - getMatchingDocuments()

    Genius 결과 구성을 트리거하는 검색 쿼리에서 검색 결과 문서를 검색합니다.

    Genius Result 구성의 응답 프로세서 스크립트에서 이 메서드를 사용하여 Genius 결과를 트리거하는 검색 쿼리에서 반환된 검색 결과 문서에서 필드 값을 검색합니다. GeniusResultAnswer API 메서드를 사용하여 검색 결과 문서의 필드로 Genius Result 답변을 채울 수 있습니다.
    주:
    트리거 검색 쿼리에 대한 결과를 계산하기 전에 스크립트가 실행되기 때문에 AI 검색 이 메서드는 스크립트에서 AI Search request processor 호출될 때 결과를 반환하지 않습니다. 요청 프로세서 스크립트에는 이 메서드를 사용하지 마십시오.
    표 1. 매개변수
    이름 유형 설명
    없음
    표 2. 반환
    유형 설명
    [배열]

    각 객체가 검색 쿼리와 일치하는 검색 결과 문서를 나타내는 객체의 배열입니다.

    데이터 유형: 배열

    [
      {
        ".score": Number,
        ".table": "String",
        ".text": "String",
        ".title": "String",
        ".url": "String",
        "class_name": "String",
        "sys_id": "String",
        "<field_name>": <field_value>
      }
    ]
    주:
    검색 쿼리에 따라 나열된 이름-값 쌍 외에 검색 결과 문서의 AI 검색 인덱스 필드 중 일부가 객체에 나타날 수 있습니다.
    [배열].. 점수

    검색 쿼리의 컨텍스트에서 검색 결과 문서에 대해 계산된 관련성 점수입니다.

    데이터 유형: 숫자

    주:
    이 이름-값 쌍의 이름은 인덱스의 점수 공통 필드와 AI 검색 구분하기 위해 마침표로 시작합니다.
    [배열].. 테이블

    ServiceNow AI Platform 검색 결과 문서가 인덱싱된 테이블의 이름입니다.

    데이터 유형: 문자열

    주:
    이 이름-값 쌍의 이름은 인덱스의 테이블 공통 필드와 AI 검색 구분하기 위해 마침표로 시작합니다.
    [배열].. 문자 메시지

    검색 결과 문서에서 인덱싱된 텍스트입니다.

    데이터 유형: 문자열

    주:
    이 이름-값 쌍의 이름은 인덱스의 텍스트 공통 필드와 AI 검색 구분하기 위해 마침표로 시작합니다.
    [배열].. 타이틀

    검색 결과 문서의 인덱싱된 제목입니다.

    데이터 유형: 문자열

    주:
    이 이름-값 쌍의 이름은 인덱스의 제목 공통 필드와 AI 검색 구분하기 위해 마침표로 시작합니다.
    [배열].. URL

    검색 결과 문서의 URL입니다.

    데이터 유형: 문자열

    주:
    이 이름-값 쌍의 이름은 인덱스의 URL 공통 필드와 AI 검색 구분하기 위해 마침표로 시작합니다.
    [배열].class_name

    검색 결과 문서가 속한 하위 클래스입니다. 테이블 하위 클래스에 대한 자세한 내용은 다음 문서를 참조하십시오 Table extension and classes.

    데이터 유형: 문자열

    [배열].sys_id

    검색 결과 문서에 대한 Sys_id입니다.

    데이터 유형: 문자열

    [배열].<field_name>

    AI 검색 검색 결과 문서의 인덱스 필드입니다.

    데이터 유형: 인덱스 필드의 데이터 유형입니다 AI 검색 .

    AI Search response processor 스크립트는 검색 쿼리와 일치하는 검색 결과 문서를 최대 3개까지 조회하고 그 중 지식[kb_knowledge] 테이블에서 나온 것이 있는지 확인합니다. Knowledge 테이블에서 검색 결과 문서를 찾으면 이 함수는 해당 문서의 필드를 GeniusResultAnswer 개체에 추가하여 UI에서 사용자에게 표시할 수 있도록 합니다.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
      var matchingDocuments = context.getMatchingDocuments();
      if (matchingDocuments.length > 1) {
        for (var i = 0; i < 3; i++) {
          var currentDocument = matchingDocuments[i];
          if (currentDocument['.table'] == 'kb_knowledge') {
            var gr = new GlideRecord("kb_knowledge");
            if (gr.get(currentDocument['sys_id'])) {
              answer.addDataMap({
                "number": currentDocument['number'],
                "url": currentDocument['.url'],
                "title": currentDocument['.title']
              });
            }
          }
          break;
        }
      }
      return answer;
    }

    GeniusResultContext – getOriginalSearchPhrase()

    Genius 결과 구성을 트리거하는 검색 쿼리에서 원래 검색어를 검색합니다.

    검색한 검색어를 사용하여 GeniusResultAnswer API 메서드를 사용하여 Genius Result 답변을 채울 수 있습니다.

    표 3. 매개변수
    이름 유형 설명
    없음
    표 4. 반환
    유형 설명
    문자열

    검색 쿼리의 원래 용어입니다.

    데이터 유형: 문자열

    AI Search request processor 스크립트는 검색 쿼리의 원래 용어를 가져와 새 스니펫 검색을 위한 쿼리 용어로 사용합니다.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      var searchPhrase = context.getOriginalSearchPhrase();
      answer.setSearchPhrase(searchPhrase);
      answer.snippetSearch(true);
    
      return answer;
    }

    GeniusResultContext – getPredictionResult()

    Genius 결과 구성을 트리거하는 검색 쿼리에 대한 모델 예측 결과를 검색합니다 NLU .

    Genius Result 구성의 요청 또는 응답 프로세서 스크립트에서 이 메서드를 사용하여 트리거 검색 쿼리에 대해 탐지된 의도를 검색합니다. GeniusResultAnswer API 메서드를 사용하여 탐지된 의도의 세부 정보로 Genius Result 답변을 채울 수 있습니다.

    표 5. 매개변수
    이름 유형 설명
    없음
    표 6. 반환
    유형 설명
    [배열]

    각 객체가 검색 쿼리에 대한 모델 의도 예측 결과를 나타내는 NLU 객체의 배열입니다.

    데이터 유형: 배열

    [
      {
        "intentName": "String",
        "result": {Object},
        "solutionName": "String"
      }
    ]
    [배열].intentName

    검색 쿼리에서 탐지된 모델 의도의 NLU 이름입니다.

    데이터 유형: 문자열

    [배열].result

    검색 쿼리에 대한 모델 의도 예측 결과를 나타내는 NLU 객체입니다.

    데이터 유형: 객체

    "result": {
      "application": {Object},
      "result": {Object},
      "solutionLabel": "String",
      "solutionName": "String",
      "solutionType": "String",
      "type": "String",
      "version": Number
    }
    [배열].result.application

    예측 결과를 생성한 검색 애플리케이션에 대한 메타데이터를 포함하는 객체입니다.

    데이터 유형: 객체

    "application": {
      "language": "String",
      "type": "String"
    }
    [배열].result.application.language

    예측 결과를 생성한 애플리케이션의 언어 컨텍스트 ServiceNow AI Platform 입니다.

    데이터 유형: 문자열

    [배열].result.application.type

    ServiceNow AI Platform 예측 결과를 생성한 애플리케이션의 유형입니다.

    데이터 유형: 문자열

    [배열].result.result

    모델 의도 예측 결과에 대한 NLU 상세 정보를 포함하는 객체입니다.

    데이터 유형: 객체

    "result": {
      "entities": [Array],
      "intentName": "String",
      "intents": [Array],
      "nluModelName": "String",
      "score": Number
    }
    [배열].result.result.entities

    각 객체가 검색 쿼리에서 탐지된 모델 의도 엔터티를 NLU 나타내는 객체의 배열입니다.

    데이터 유형: 배열

    "entities": [
      {
        "matchingSegments": [Array],
        "name": "String",
        "parts": [Array],
        "score": Number,
        "startingPosition": Number,
        "value": "String"
      }
    ]
    [배열].result.result.entities.matchingSegments

    각 개체가 탐지된 NLU 엔터티의 일치하는 세그먼트를 나타내는 개체의 배열입니다.

    데이터 유형: 배열

    "matchingSegments": [
      {
        "directMatch": Boolean
        "meta": {Object},
        "value": "String"
      }
    ]
    [배열].result.result.entities.matchingSegments.directMatch

    엔터티 일치 세그먼트가 NLU 엔터티 값과 정확히 일치하는지 여부를 나타내는 플래그입니다.

    [배열].result.result.entities.matchingSegments.meta

    엔터티 일치 세그먼트에 대한 NLU 메타데이터를 나타내는 키-값 쌍 필드를 포함하는 객체입니다.

    데이터 유형: 객체

    "meta": {
      "augmentedBy": "String",
      "colMeta:first_name": "String",
      "colMeta:last_name": "String",
      "compositionStrategy": "String",
      "fieldName": "String",
      "searchPreProcessors": "String",
      "SUB_PHRASE.penalty": "String",
      "tableName": "String"
    }
    [배열].result.result.entities.matchingSegments.value

    엔터티 일치 세그먼트의 NLU 문자열 값입니다.

    데이터 유형: 문자열

    [Array].result.result.entities.name

    탐지된 NLU 엔터티의 이름, in entity:[NLU_model].[ 의도]. [entity_type] 판.

    데이터 유형: 문자열

    [Array].result.result.entities.parts

    각 객체가 예측 결과에 있는 엔터티 파트를 NLU 나타내는 객체의 배열입니다.

    데이터 유형: 배열

    "parts": [
      {
        "meta": {Object},
        "value": "String"
      }
    ]
    [배열].결과.결과.엔터티.부품.메타

    엔터티 파트의 NLU 메타데이터를 나타내는 키-값 쌍 필드를 포함하는 객체입니다.

    데이터 유형: 객체

    "meta": {
      "augmentedBy": "String",
      "colMeta:name": "String",
      "compositionStrategy": "String",
      "fieldName": "String",
      "searchPreProcessors": "String",
      "SUB_PHRASE.penalty": "String",
      "tableName": "String"
    }
    [배열].결과.결과.엔터티.부품.값

    엔터티 파트의 NLU 문자열 값입니다.

    데이터 유형: 문자열

    [배열].result.result.entities.score

    0에서 1까지의 숫자 점수로, 탐지된 NLU 엔터티에 대한 신뢰도를 나타냅니다.

    데이터 유형: 숫자

    [배열].result.result.entities.startingPosition

    검색된 NLU 엔터티가 시작되는 검색 쿼리의 문자 위치에 대한 숫자 인덱스입니다.

    데이터 유형: 숫자

    [배열].결과.결과.엔터티.값

    검색 쿼리에서 탐지된 NLU 문자열 값입니다.

    데이터 유형: 문자열

    [배열].result.result.intentName

    검색 쿼리에서 탐지된 모델 의도의 NLU 이름입니다.

    데이터 유형: 문자열

    [배열].result.result.intents

    각 객체가 검색 쿼리에서 탐지된 중첩 NLU 된 모델 의도를 나타내는 객체의 배열입니다.

    중첩된 의도 객체에는 상위 NLU 모델 의도 객체와 동일한 매개변수 이름과 데이터형이 포함됩니다.

    데이터 유형: 배열

    "intents": [
      {
        "entities": [Array],
        "intentName": "String",
        "intents": [Array],
        "nluModelName": "String",
        "score": Number
      }
    ]
    [배열].result.result.nluModelName

    NLU 예측 결과를 생성한 모델의 이름입니다.

    데이터 유형: 문자열

    [배열].result.result.score

    모델 예측 결과에 대한 신뢰도를 나타내는 0에서 1까지의 숫자 점수입니다 NLU .

    데이터 유형: 숫자

    [array].result.solutionLabel

    NLU 예측 결과를 생성한 모델의 레이블입니다.

    데이터 유형: 문자열

    [array].result.solutionName

    NLU 예측 결과를 생성한 모델의 이름입니다.

    데이터 유형: 문자열

    [배열].result.solutionType

    NLU 예측 결과를 생성한 모델의 유형입니다.

    데이터 유형: 문자열

    [배열].result.type

    예측 결과의 유형입니다.

    데이터 유형: 문자열

    [배열].result.version

    NLU 예측 결과를 생성한 모델의 버전입니다.

    데이터 유형: 숫자

    [Array].solutionName

    NLU 예측 결과를 생성한 모델의 이름입니다.

    데이터 유형: 문자열

    AI Search request processor 스크립트는 검색 쿼리에 모델 예측 결과가 포함되어 NLU 있는지 확인합니다. 예측 결과를 찾으면 탐지된 모든 catalogItem 엔터티에서 일치하는 세그먼트를 검색어로 추가합니다.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sc_cat_item');
      answer.setSearchLimit(2);
      var predictionResult = context.getPredictionResult();
      if (predictionResult && predictionResult.length == 1) {
        var detail = predictionResult[0];
        if (detail['result'] && detail['result']['entities']) {
          var entities = detail['result']['entities'];
          for (var i = 0; i < entities.length; i++) {
            if (entities[i]['name'].endsWith('catalogItem')) {
              var matchingSegments = entities[i]['matchingSegments'];
              for (var j = 0; j < matchingSegments.length; j++)
                answer.addSearchPhrases([matchingSegments[j]['value']]);
            }
          }
        }
      }
    
      return answer;
    }