GeniusResultContext - com escopo

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 8 min. de leitura
  • A API GeniusResultContext fornece métodos para recuperar informações de consulta de pesquisa do contexto de uma configuração de resultado do Genius.

    Você pode usar detalhes da consulta de pesquisa recuperados com esta API para preencher objetos de resposta de resultado do Genius criados com a API GeniusResultAnswer.

    Use esta API em scripts do lado do servidor de resultado do Genius com o identificador de namespace sn_ais. Para obter mais informações sobre lógica de script para resultados do Genius, consulte Criar uma nova configuração de resultado do Genius.

    GeniusResultContext – getMatchingDocuments()

    Recupera documentos de resultado de pesquisa da consulta de pesquisa que aciona sua configuração de resultado do Genius.

    Use este método em um script do processador de resposta da configuração de resultado do Genius para recuperar valores de campos de documentos de resultado de pesquisa retornados pela consulta de pesquisa que aciona o resultado do Genius. Você pode preencher as respostas de resultado do Genius com campos dos documentos de resultado da pesquisa usando métodos de API GeniusResultAnswer.
    Nota:
    Este método não retorna resultados quando invocado em um script AI Search request processor, já que o script é executado antes que Pesquisa com IA calcule resultados para a consulta de pesquisa de acionamento. Não use este método em seus scripts do processador de solicitações.
    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 2. Retorna
    Tipo Descrição
    [Matriz]

    Matriz de objetos em que cada objeto representa um documento de resultado de pesquisa que correspondeu à consulta de pesquisa.

    Tipo de dados: matriz

    [
      {
        ".score": Number,
        ".table": "String",
        ".text": "String",
        ".title": "String",
        ".url": "String",
        "class_name": "String",
        "sys_id": "String",
        "<field_name>": <field_value>
      }
    ]
    Nota:
    Dependendo da consulta de pesquisa, alguns dos campos de índice Pesquisa com IA do documento de resultado da pesquisa podem aparecer no objeto, além dos pares de nome-valor listados.
    [Matriz]..pontuação

    Pontuação de relevância calculada para o documento de resultado da pesquisa no contexto da consulta de pesquisa.

    Tipo de dados: número

    Nota:
    O nome deste par nome-valor começa com um ponto para diferenciá-lo do campo comum de pontuação do índice Pesquisa com IA.
    [Matriz]..tabela

    Nome da tabela Now Platform a partir da qual o documento de resultado da pesquisa foi indexado.

    Tipo de dados: cadeia de caracteres

    Nota:
    O nome deste par nome-valor começa com um ponto para diferenciá-lo do campo comum da tabela de índice Pesquisa com IA.
    [Matriz]..texto

    Texto indexado do documento de resultado da pesquisa.

    Tipo de dados: cadeia de caracteres

    Nota:
    O nome deste par nome-valor começa com um ponto para diferenciá-lo do campo comum de texto do índice Pesquisa com IA.
    [Matriz]..título

    Título indexado do documento de resultado da pesquisa.

    Tipo de dados: cadeia de caracteres

    Nota:
    O nome deste par nome-valor começa com um ponto para diferenciá-lo do campo comum de título do índice Pesquisa com IA.
    [Matriz]..url

    URL do documento de resultado da pesquisa.

    Tipo de dados: cadeia de caracteres

    Nota:
    O nome deste par nome-valor começa com um ponto para diferenciá-lo do campo comum de URL do índice Pesquisa com IA.
    [Matriz].class_name

    A classe secundária à qual o documento de resultado da pesquisa pertence. Para obter mais informações sobre classes secundárias de tabela, consulte Table extension and classes.

    Tipo de dados: cadeia de caracteres

    [Matriz].sys_id

    Sys_id do documento de resultado da pesquisa.

    Tipo de dados: cadeia de caracteres

    [Matriz].<field_name>

    Pesquisa com IA campo de índice do documento de resultado da pesquisa.

    Tipo de dados: o tipo de dados do campo de índice Pesquisa com IA.

    Este script AI Search response processor recupera até três documentos de resultado de pesquisa correspondentes à consulta de pesquisa e verifica se algum deles é da tabela Conhecimento [kb_knowledge]. Se encontrar um documento de resultado de pesquisa na tabela Conhecimento, a função adicionará os campos desse documento ao objeto GeniusResultAnswer para que a IU possa exibi-los para o usuário.

    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()

    Recupera os termos de pesquisa originais da consulta de pesquisa que aciona a configuração de resultado do Genius.

    Você pode usar termos de pesquisa recuperados para preencher respostas de resultado do Genius usando métodos de API GeniusResultAnswer.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    Cadeia de caracteres

    Termos originais da consulta de pesquisa.

    Tipo de dados: cadeia de caracteres

    Este script AI Search request processor obtém os termos originais da consulta de pesquisa e os usa como termos de consulta para uma nova pesquisa de snippet.

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

    GeniusResultContext – getPredictionResult()

    Recupera NLU resultados de previsão do modelo para a consulta de pesquisa que aciona a configuração de resultado do Genius.

    Use este método em um script de processador de resposta ou solicitação de configuração de resultado do Genius para recuperar a intenção detectada para a consulta de pesquisa de acionamento. Você pode preencher as respostas de resultado do Genius com detalhes da intenção detectada usando métodos de API GeniusResultAnswer.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    [Matriz]

    Matriz de objetos em que cada objeto representa um resultado de previsão de intenção de modelo NLU para a consulta de pesquisa.

    Tipo de dados: matriz

    [
      {
        "intentName": "String",
        "result": {Object},
        "solutionName": "String"
      }
    ]
    [Matriz].IntentName

    Nome da intenção do modelo NLU detectada na consulta de pesquisa.

    Tipo de dados: cadeia de caracteres

    [Matriz].resultado

    Objeto que representa o resultado da previsão de intenção do modelo NLU para a consulta de pesquisa.

    Tipo de dados: objeto

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

    Objeto que contém metadados da aplicação de pesquisa que produziu o resultado da previsão.

    Tipo de dados: objeto

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

    Contexto de idioma para a aplicação Now Platform que produziu o resultado da previsão.

    Tipo de dados: cadeia de caracteres

    [Matriz].result.application.type

    Tipo da aplicação Now Platform que produziu o resultado da previsão.

    Tipo de dados: cadeia de caracteres

    [Matriz].result.result

    Objeto que inclui detalhes do resultado da previsão de intenção do modelo NLU.

    Tipo de dados: objeto

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

    Matriz de objetos em que cada objeto representa uma entidade de intenção de modelo NLU detectada na consulta de pesquisa.

    Tipo de dados: matriz

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

    Matriz de objetos na qual cada objeto representa um segmento correspondente da entidade NLU detectada.

    Tipo de dados: matriz

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

    Sinalizador que indica se o segmento de correspondência de entidade NLU representa uma correspondência exata para o valor da entidade.

    [Matriz].result.result.entities.matchingSegments.meta

    Objeto que contém campos de par de chave-valor que representam metadados para o segmento de correspondência de entidade NLU.

    Tipo de dados: objeto

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

    Valor de cadeia de caracteres do segmento correspondente à entidade NLU.

    Tipo de dados: cadeia de caracteres

    [Array].result.result.entities.name

    Nome da entidade NLU detectada, no formato entity:[NLU_model].[intent].[entity_type].

    Tipo de dados: cadeia de caracteres

    [Array].result.result.entities.parts

    Matriz de objetos em que cada objeto representa uma parte da entidade NLU encontrada no resultado da previsão.

    Tipo de dados: matriz

    "parts": [
      {
        "meta": {Object},
        "value": "String"
      }
    ]
    [Matriz].result.result.entities.parts.meta

    Objeto que contém campos de par de chave-valor que representam metadados da parte da entidade NLU.

    Tipo de dados: objeto

    "meta": {
      "augmentedBy": "String",
      "colMeta:name": "String",
      "compositionStrategy": "String",
      "fieldName": "String",
      "searchPreProcessors": "String",
      "SUB_PHRASE.penalty": "String",
      "tableName": "String"
    }
    [Matriz].result.result.entities.parts.value

    Valor da cadeia de caracteres da parte da entidade NLU.

    Tipo de dados: cadeia de caracteres

    [Matriz].result.result.entities.score

    Pontuação numérica de 0 a 1 indicando confiança para a entidade NLU detectada.

    Tipo de dados: número

    [Matriz].result.result.entities.startingPosition

    Índice numérico para a posição do caractere na consulta de pesquisa em que a entidade NLU detectada começa.

    Tipo de dados: número

    [Matriz].result.result.entities.value

    Valor de cadeia de caracteres de NLU detectado na consulta de pesquisa.

    Tipo de dados: cadeia de caracteres

    [Matriz].result.result.intentName

    Nome da intenção do modelo NLU detectada na consulta de pesquisa.

    Tipo de dados: cadeia de caracteres

    [Matriz].result.result.intents

    Matriz de objetos em que cada objeto representa uma intenção de modelo NLU aninhada detectada na consulta de pesquisa.

    Os objetos de intenção aninhados incluem os mesmos nomes de parâmetro e tipos de dados que o objeto de intenção do modelo primário NLU.

    Tipo de dados: matriz

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

    Nome do modelo NLU que produziu o resultado da previsão.

    Tipo de dados: cadeia de caracteres

    [Matriz].result.result.score

    Pontuação numérica de 0 a 1 indicando confiança para o resultado da previsão do modelo NLU.

    Tipo de dados: número

    [Matriz].result.solutionLabel

    Rótulo para o modelo NLU que produziu o resultado da previsão.

    Tipo de dados: cadeia de caracteres

    [Matriz].result.solutionName

    Nome do modelo NLU que produziu o resultado da previsão.

    Tipo de dados: cadeia de caracteres

    [Matriz].result.solutionType

    Digite para o modelo NLU que produziu o resultado da previsão.

    Tipo de dados: cadeia de caracteres

    [Matriz].result.type

    Tipo de resultado da previsão.

    Tipo de dados: cadeia de caracteres

    [Matriz].result.version

    Versão do modelo NLU que produziu o resultado da previsão.

    Tipo de dados: número

    [Matriz].solutionName

    Nome do modelo NLU que produziu o resultado da previsão.

    Tipo de dados: cadeia de caracteres

    Este script AI Search request processor verifica se a consulta de pesquisa inclui um resultado de previsão do modelo NLU. Quando encontra um resultado de previsão, ele adiciona os segmentos correspondentes de todas as entidades catalogItem detectadas como termos de pesquisa.

    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;
    }