GeniusResultAnswer - com escopo

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 9 min. de leitura
  • A API GeniusResultAnswer fornece métodos para criar um objeto de resposta em scripts do processador de uma configuração de resultado do Genius. As respostas criadas com esta API definem solicitações de pesquisa ou mapas de par de chave-valor que podem preencher cartões de resposta de resultado do Genius.

    Você pode preencher o objeto de resposta com detalhes da consulta recuperados do contexto da configuração de resultado do Genius usando a API GeniusResultContext.

    Os métodos da API GeniusResultAnswer que você precisa invocar para criar seu objeto de resposta dependem de qual campo de formulário Pesquisa com IA Configuração de resultado do Genius você está usando para o script:
    • Se você estiver criando scripts em um campo AI Search request processor da configuração de resultado do Genius, precisará invocar o método setTable() e um dos métodos setSearchPhrase(), addSearchPhrases()ou setEncodedQuery(). Todos os outros métodos são opcionais, exceto addDataMap(), que não é relevante para este caso de uso.
    • Se você estiver criando scripts em um campo AI Search response processor da configuração de resultado do Genius, precisará invocar o método addDataMap(). Nenhum outro método é relevante para este caso de uso.
    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.

    GeniusResultAnswer – addDataMap(mapa de objeto)

    Define uma resposta de resultado do Genius com campos de par de chave-valor arbitrários no script AI Search response processor da configuração de resultado do Genius. Você pode utilizar qualquer API Now Platform pública para gerar esses campos.

    Nota:
    Ao criar scripts em um campo AI Search response processor da configuração de resultado do Genius, você precisa invocar este método. Se você não invocar este método, o resultado do Genius não retornará respostas quando acionado.

    Você pode adicionar vários mapas de campo a um único script AI Search response processor invocando este método mais de uma vez. Cada mapa de campo preenche um cartão de resposta de resultado do Genius separado.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    mapa Objeto

    Define um conjunto arbitrário de campos de par de chave-valor para adição à resposta da consulta de pesquisa de Pesquisa com IA. Todos os valores de campo devem ser cadeias de caracteres.

    {
      "fieldName1": String,
      "fieldName2": String
    }
    Tabela 2. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se a invocação do método foi bem-sucedida.

    Valores válidos:
    • verdadeiro: a invocação do método foi bem-sucedida.
    • falso: falha na invocação do método.

    Este script AI Search response processor adiciona campos personalizados de título e par de chave-valor de URL ao objeto de resposta para exibição em um cartão de resposta de resultado do Genius.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      var customFieldMap = {
        "title": "My custom Genius Result answer",
        "url": "https://example.com/myGeniusResultLink"
      }
    
      answer.addDataMap(customFieldMap);
    
      return answer;
    }

    GeniusResultAnswer – addSearchPhrases(Array searchPhrases)

    Adiciona termos à consulta de pesquisa definida no script AI Search request processor da configuração de resultado do Genius.

    Nota:
    Ao criar scripts em um campo de configuração de resultado do Genius AI Search request processor, você deve invocar o método setTable() e um dos métodos setSearchPhrase(), addSearchPhrases()ou setEncodedQuery(). Se você não invocar os dois métodos necessários, o resultado do Genius não retornará respostas quando acionado.
    Tabela 3. Parâmetros
    Nome Tipo Descrição
    frases de pesquisa Matriz

    Matriz de cadeias de caracteres arbitrárias a serem adicionadas como termos de pesquisa para a consulta de pesquisa definida no script AI Search request processor da configuração de resultado do Genius. Pesquisa com IA trata esses termos de pesquisa como se fossem separados pelo operador OR.

    Exemplo:
    [
      "Term": String,
      "Quoted phrase": String
    ]
    Tabela 4. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se a invocação do método foi bem-sucedida.

    Valores válidos:
    • verdadeiro: a invocação do método foi bem-sucedida.
    • falso: falha na invocação do método.

    Este script AI Search request processor constrói uma consulta de pesquisa para registros na tabela Usuário [sys_user] que contém os termos Beth ou Anglin.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sys_user');
      answer.addSearchPhrases(['Beth','Anglin']);
    
      return answer;
    }

    GeniusResultAnswer – setEncodedQuery(cadeia de caracteres consulta)

    Especifica uma consulta de pesquisa codificada no script AI Search request processor da configuração de resultado do Genius. Os resultados desta consulta de pesquisa codificada são exibidos como cartões de resposta de resultado do Genius.

    Nota:
    Ao criar scripts em um campo de configuração de resultado do Genius AI Search request processor, você precisa invocar o método setTable() e um dos métodos setSearchPhrase(), addSearchPhrases()ou setEncodedQuery(). Se você não invocar os dois métodos necessários, o resultado do Genius não retornará respostas quando acionado.
    Tabela 5. Parâmetros
    Nome Tipo Descrição
    consulta Cadeia de caracteres Consulta de pesquisa codificada a ser enviada para Pesquisa com IA a partir do script AI Search request processor da configuração de resultado do Genius.
    Tabela 6. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se a invocação do método foi bem-sucedida.

    Valores válidos:
    • verdadeiro: a invocação do método foi bem-sucedida.
    • falso: falha na invocação do método.

    Este script AI Search request processor constrói uma consulta de pesquisa codificada em relação à tabela Usuário [sys_user]. A consulta final une várias subconsultas geradas a partir de entidades detectadas na consulta de pesquisa original do usuário.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sys_user');
      answer.setSearchLimit(2);
      answer.spellCheck(false);
      var queries = [];
      var matchingSegments;
      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('personName')) {
              matchingSegments = entities[i]['matchingSegments'];
              for (var j = 0; j < matchingSegments.length; j++)
                answer.addSearchPhrases([matchingSegments[j]['value']]);
            } else if (entities[i]['name'].endsWith('cityLocation')) {
              matchingSegments = entities[i]['matchingSegments'];
              if (matchingSegments && matchingSegments.length > 0)
                queries.push('location.nameLIKE' + matchingSegments[0]['value']);
            } else if (entities[i]['name'].endsWith('departmentName')) {
              matchingSegments = entities[i]['matchingSegments'];
              if (matchingSegments && matchingSegments.length > 0)
                queries.push('department.nameLIKE' + matchingSegments[0]['value']);
            } else if (entities[i]['name'].endsWith('jobTitle')) {
              matchingSegments = entities[i]['matchingSegments'];
              if (matchingSegments && matchingSegments.length > 0)
                queries.push('titleLIKE' + matchingSegments[0]['value']);
            }
          }
        }
      }
    
      if (queries.length > 0)
        answer.setEncodedQuery(queries.join('^'));
    
      return answer;
    }

    GeniusResultAnswer – setSearchLimit(Number searchLimit)

    Limita o número máximo de resultados retornados para a consulta de pesquisa definida no script AI Search request processor da configuração de resultado do Genius. Por padrão, a consulta de pesquisa retorna até três resultados.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    limite de pesquisa Número

    Valor inteiro positivo para o número máximo de resultados de pesquisa a serem retornados para a consulta de pesquisa definida no script AI Search request processor da configuração de resultado do Genius. Valores acima de 3 não têm efeito.

    Padrão: 3

    Tabela 8. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se a invocação do método foi bem-sucedida.

    Valores válidos:
    • verdadeiro: a invocação do método foi bem-sucedida.
    • falso: falha na invocação do método.

    Este script AI Search request processor pesquisa registros da tabela Item do catálogo [sc_cat_item] que contém o termo laptop e retorna no máximo dois resultados.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sc_cat_item');
      answer.setSearchPhrase('laptop');
      answer.setSearchLimit(2);
    
      return answer;
    }

    GeniusResultAnswer – setSearchPhrase(cadeia de caracteres searchPhrase)

    Especifica termos para a consulta de pesquisa definida no script AI Search request processor da configuração de resultado do Genius.

    Nota:
    Ao criar scripts em um campo de configuração de resultado do Genius AI Search request processor, você precisa invocar o método setTable() e um dos métodos setSearchPhrase(), addSearchPhrases()ou setEncodedQuery(). Se você não invocar os dois métodos necessários, o resultado do Genius não retornará respostas quando acionado.
    Tabela 9. Parâmetros
    Nome Tipo Descrição
    frase de pesquisa Cadeia de caracteres

    Termos a serem usados para a consulta de pesquisa definida no script AI Search request processor da configuração de resultado do Genius.

    Se você quiser reter os termos de pesquisa da consulta que acionou a configuração de resultado do Genius, defina este parâmetro com o valor de cadeia de caracteres retornado pelo método GeniusResultContext.getOriginalSearchPhrase().

    Tabela 10. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se a invocação do método foi bem-sucedida.

    Valores válidos:
    • verdadeiro: a invocação do método foi bem-sucedida.
    • falso: falha na invocação do método.

    Este script AI Search request processor constrói uma consulta de pesquisa para registros da tabela Usuário [sys_user] que contém o termo Anglin.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sys_user');
      answer.setSearchPhrase('Anglin');
    
      return answer;
    }

    GeniusResultAnswer – setTable(cadeia de caracteres da tabela)

    Limita a consulta de pesquisa definida em um script AI Search request processor de configuração de resultado do Genius a uma tabela específica. A consulta retorna somente resultados de pesquisa da tabela especificada como cartões de resposta de resultado do Genius.

    Nota:
    Ao criar scripts em um campo de configuração de resultado do Genius AI Search request processor, você precisa invocar este método e um dos métodos setSearchPhrase(), addSearchPhrases()ou setEncodedQuery(). Se você não invocar os dois métodos necessários, o resultado do Genius não retornará respostas quando acionado.
    Tabela 11. Parâmetros
    Nome Tipo Descrição
    tabela Cadeia de caracteres Now Platform nome da tabela. Somente registros indexados nesta tabela são retornados como resultados para a consulta de pesquisa definida no script AI Search request processor da configuração de resultado do Genius.
    Tabela 12. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se a invocação do método foi bem-sucedida.

    Valores válidos:
    • verdadeiro: a invocação do método foi bem-sucedida.
    • falso: falha na invocação do método.

    Este script AI Search request processor constrói uma consulta de pesquisa para registros da tabela Usuário [sys_user] que contém o termo Anglin.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sys_user');
      answer.setSearchPhrase('Anglin');
    
      return answer;
    }

    GeniusResultAnswer – spokeCheck (booliano SpletCheck)

    Especifica se a correção automática de erros de digitação (verificação ortográfica) deve ser executada para a consulta de pesquisa definida em um script AI Search request processor de configuração de resultado do Genius.

    Se você não invocar este método no script AI Search request processor da configuração de resultado do Genius, a consulta de pesquisa definida herdará o sinalizador de manipulação de erro de digitação da consulta de pesquisa que aciona a configuração de resultado do Genius.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    Verificação ortográfica Booliano

    Sinalizador que indica se a correção automática de erros de digitação deve ser executada para a consulta de pesquisa definida no script AI Search request processor da configuração de resultado do Genius.

    Valores válidos:
    • verdadeiro: executa a correção automática de erros de digitação para a consulta de pesquisa.
    • falso: ignorar erro de digitação ao lidar com correção automática para a consulta de pesquisa.

    Padrão: verdadeiro

    Tabela 14. Retorna
    Tipo Descrição
    Nenhum(a)

    Este script AI Search request processor desabilita a correção automática de erros de digitação para sua consulta de pesquisa em relação à tabela Usuário [sys_user].

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sys_user');
      answer.setSearchLimit(2);
      answer.spellCheck(false);
      var queries = [];
      var matchingSegments;
      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('personName')) {
              matchingSegments = entities[i]['matchingSegments'];
              for (var j = 0; j < matchingSegments.length; j++)
                answer.addSearchPhrases([matchingSegments[j]['value']]);
            } else if (entities[i]['name'].endsWith('cityLocation')) {
              matchingSegments = entities[i]['matchingSegments'];
              if (matchingSegments && matchingSegments.length > 0)
                queries.push('location.nameLIKE' + matchingSegments[0]['value']);
            } else if (entities[i]['name'].endsWith('departmentName')) {
              matchingSegments = entities[i]['matchingSegments'];
              if (matchingSegments && matchingSegments.length > 0)
                queries.push('department.nameLIKE' + matchingSegments[0]['value']);
            } else if (entities[i]['name'].endsWith('jobTitle')) {
              matchingSegments = entities[i]['matchingSegments'];
              if (matchingSegments && matchingSegments.length > 0)
                queries.push('titleLIKE' + matchingSegments[0]['value']);
            }
          }
        }
      }
    
      if (queries.length > 0)
        answer.setEncodedQuery(queries.join('^'));
    
      return answer;
    }