GeniusResultAnswer : champ d’application

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 9 minutes de lecture
  • L’API GeniusResultAnswer fournit des méthodes pour créer un objet de réponse dans les scripts de processeur d’une configuration de résultat Genius. Les réponses créées avec cette API définissent les demandes de recherche ou les cartes de paires clé-valeur qui peuvent renseigner les cartes de réponse de résultat Genius.

    Vous pouvez renseigner l’objet de réponse avec les détails de la requête récupérés à partir du contexte de la configuration de résultat Genius à l’aide de l’API GeniusResultContext .

    Les méthodes d’API GeniusResultAnswer que vous devez appeler pour créer votre objet de réponse dépendent du champ de Recherche IA formulaire de configuration de résultat Genius que vous utilisez pour votre script :
    • Si vous écrivez un script dans un champ de configuration de AI Search request processor résultat Genius, vous devez appeler la méthode setTable() et l’une des méthodes setSearchPhrase(),addSearchPhrases() ou setEncodedQuery( ). Toutes les autres méthodes sont facultatives, à l’exception de addDataMap(), qui n’est pas pertinente pour ce cas d’utilisation.
    • Si vous écrivez un script dans un champ de AI Search response processor configuration de résultat Genius, vous devez invoquer la méthode addDataMap(). Aucune autre méthode n’est pertinente pour ce cas d’utilisation.
    Utilisez cette API dans les scripts côté serveur Résultat Genius avec l’identificateur d’espace de noms sn_ais. Pour plus d’informations sur la logique de scripting pour les résultats Genius, consultez Créer une configuration de résultat Genius.

    GeniusResultAnswer – addDataMap(Carte d’objets)

    Définit une réponse de résultat Genius avec des champs de paire clé-valeur arbitraires dans le script de votre configuration de AI Search response processor résultat Genius. Vous pouvez utiliser n’importe quelle API publique Now Platform pour générer ces champs.

    Remarque :
    Lors de l’écriture d’un script dans un champ de configuration de AI Search response processor résultat Genius, vous devez appeler cette méthode. Si vous n’appelez pas cette méthode, le résultat Genius ne renvoie aucune réponse lorsqu’il est déclenché.

    Vous pouvez ajouter plusieurs cartes de champs à un seul AI Search response processor script en appelant cette méthode plusieurs fois. Chaque carte de champs remplit une carte de réponse de résultat Genius distincte.

    Tableau 1. Paramètres
    Nom Type Description
    carte Objet

    Définit un ensemble arbitraire de champs de paires clé-valeur à ajouter à la réponse de la requête de recherche à partir de Recherche IA. Toutes les valeurs de champ doivent être des chaînes.

    {
      "fieldName1": String,
      "fieldName2": String
    }
    Tableau 2. Renvoie
    Type Description
    Booléen

    Marqueur indiquant si l’invocation de la méthode a réussi.

    Valeurs valides :
    • true : l’invocation de la méthode a réussi.
    • false : échec de l’invocation de la méthode.

    Ce AI Search response processor script ajoute des champs de paire clé-valeur d’URL et de titre personnalisés à l’objet de réponse pour l’affichage sur une carte de réponse de résultat 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)

    Ajoute des termes à la requête de recherche définie dans le script de configuration de AI Search request processor votre résultat Genius.

    Remarque :
    Lorsque vous écrivez un script dans un champ de configuration de AI Search request processor résultat Genius, vous devez appeler la méthode setTable() et l’une des méthodes setSearchPhrase(),addSearchPhrases() ou setEncodedQuery( ). Si vous n’appelez pas les deux méthodes requises, votre résultat Genius ne renvoie aucune réponse lorsqu’il est déclenché.
    Tableau 3. Paramètres
    Nom Type Description
    Expressions de recherche Tableau

    Tableau de chaînes arbitraires à ajouter en tant que termes de recherche pour la requête de recherche définie dans le script de configuration de AI Search request processor résultat Genius. Recherche IA traite ces termes de recherche comme s’ils étaient séparés par l’opérateur OR.

    Exemple :
    [
      "Term": String,
      "Quoted phrase": String
    ]
    Tableau 4. Renvoie
    Type Description
    Booléen

    Marqueur indiquant si l’invocation de la méthode a réussi.

    Valeurs valides :
    • true : l’invocation de la méthode a réussi.
    • false : échec de l’invocation de la méthode.

    Ce AI Search request processor script construit une requête de recherche pour les enregistrements de la table Utilisateur [sys_user] qui contiennent les termes Beth ou Anglin.

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

    GeniusResultAnswer – setEncodedQuery(Requête de chaîne)

    Spécifie une requête de recherche codée dans le script de votre configuration de AI Search request processor résultat Genius. Les résultats de cette requête de recherche codée s’affichent sous forme de cartes de réponse de résultat Genius.

    Remarque :
    Lors de l’écriture d’un script dans un champ de AI Search request processor configuration de résultat Genius, vous devez appeler la méthode setTable() et l’une des méthodes setSearchPhrase(),addSearchPhrases() ou setEncodedQuery( ). Si vous n’appelez pas les deux méthodes requises, votre résultat Genius ne renvoie aucune réponse lorsqu’il est déclenché.
    Tableau 5. Paramètres
    Nom Type Description
    query Chaîne Requête de recherche codée à envoyer à Recherche IA partir du script de configuration de AI Search request processor résultat Genius.
    Tableau 6. Renvoie
    Type Description
    Booléen

    Marqueur indiquant si l’invocation de la méthode a réussi.

    Valeurs valides :
    • true : l’invocation de la méthode a réussi.
    • false : échec de l’invocation de la méthode.

    Ce AI Search request processor script construit une requête de recherche codée par rapport à la table Utilisateur [sys_user]. La requête finale réunit plusieurs sous-requêtes générées à partir d’entités détectées dans la requête de recherche d’origine de l’utilisateur.

    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)

    Limite le nombre maximum de résultats renvoyés pour la requête de recherche définie dans le script de votre configuration de AI Search request processor résultat Genius. Par défaut, la requête de recherche renvoie jusqu’à trois résultats.

    Tableau 7. Paramètres
    Nom Type Description
    searchLimit (en anglais seulement) Numéro

    Valeur entière positive correspondant au nombre maximal de résultats de recherche à renvoyer pour la requête de recherche définie dans le script de configuration de AI Search request processor résultats Genius. Les valeurs supérieures à 3 n’ont aucun effet.

    Par défaut : 3

    Tableau 8. Renvoie
    Type Description
    Booléen

    Marqueur indiquant si l’invocation de la méthode a réussi.

    Valeurs valides :
    • true : l’invocation de la méthode a réussi.
    • false : échec de l’invocation de la méthode.

    Ce AI Search request processor script recherche les enregistrements de la table Élément de catalogue [sc_cat_item] qui contiennent le terme ordinateur portable et renvoie un maximum de deux résultats.

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

    GeniusResultAnswer – setSearchPhrase(String searchPhrase)

    Spécifie les termes de la requête de recherche définie dans le script de configuration de AI Search request processor résultat Genius.

    Remarque :
    Lors de l’écriture d’un script dans un champ de AI Search request processor configuration de résultat Genius, vous devez appeler la méthode setTable() et l’une des méthodes setSearchPhrase(),addSearchPhrases() ou setEncodedQuery( ). Si vous n’appelez pas les deux méthodes requises, votre résultat Genius ne renvoie aucune réponse lorsqu’il est déclenché.
    Tableau 9. Paramètres
    Nom Type Description
    Expression de recherche Chaîne

    Termes à utiliser pour la requête de recherche définie dans le script de configuration de AI Search request processor résultat Genius.

    Si vous souhaitez conserver les termes de recherche de la requête qui a déclenché la configuration de résultat Genius, définissez ce paramètre sur la valeur String renvoyée par la méthode GeniusResultContext.getOriginalSearchPhrase().

    Tableau 10. Renvoie
    Type Description
    Booléen

    Marqueur indiquant si l’invocation de la méthode a réussi.

    Valeurs valides :
    • true : l’invocation de la méthode a réussi.
    • false : échec de l’invocation de la méthode.

    Ce AI Search request processor script construit une requête de recherche pour les enregistrements de la table Utilisateur [sys_user] qui contiennent le terme Anglin.

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

    GeniusResultAnswer – setTable(Table de chaînes)

    Limite la requête de recherche définie dans le script d’une configuration de AI Search request processor résultat Genius à une table spécifique. La requête renvoie uniquement les résultats de recherche de la table spécifiée sous forme de cartes de réponses de résultats Genius.

    Remarque :
    Lors de l’écriture d’un script dans un champ de configuration de AI Search request processor résultats Genius, vous devez appeler cette méthode et l’une des méthodes setSearchPhrase(),addSearchPhrases() ou setEncodedQuery( ). Si vous n’appelez pas les deux méthodes requises, votre résultat Genius ne renvoie aucune réponse lorsqu’il est déclenché.
    Tableau 11. Paramètres
    Nom Type Description
    table Chaîne Now Platform Nom de table. Seuls les enregistrements indexés de cette table sont renvoyés en tant que résultats pour la requête de recherche définie dans le script de configuration de AI Search request processor résultat Genius.
    Tableau 12. Renvoie
    Type Description
    Booléen

    Marqueur indiquant si l’invocation de la méthode a réussi.

    Valeurs valides :
    • true : l’invocation de la méthode a réussi.
    • false : échec de l’invocation de la méthode.

    Ce AI Search request processor script construit une requête de recherche pour les enregistrements de la table Utilisateur [sys_user] qui contiennent le terme Anglin.

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

    GeniusResultAnswer – spellCheck(Correcteur orthographique booléen)

    Indique si la correction automatique de la gestion des fautes de frappe (vérification orthographique) doit être effectuée pour la requête de recherche définie dans un script de configuration de AI Search request processor résultat Genius.

    Si vous n’appelez pas cette méthode dans le script de votre configuration de AI Search request processor résultat Genius, la requête de recherche définie hérite du marqueur de gestion des erreurs de frappe de la requête de recherche qui déclenche la configuration de résultat Genius.

    Tableau 13. Paramètres
    Nom Type Description
    Spellcheck Booléen

    Marqueur indiquant si la correction automatique de la gestion des fautes de frappe doit être effectuée ou non pour la requête de recherche définie dans le script de votre configuration de AI Search request processor résultat Genius.

    Valeurs valides :
    • true : correction automatique de la gestion des fautes de frappe pour la requête de recherche.
    • false : contourne la correction automatique de la gestion des fautes de frappe pour la requête de recherche.

    Valeur par défaut : true

    Tableau 14. Renvoie
    Type Description
    Néant

    Ce AI Search request processor script désactive la correction automatique de la gestion des fautes de frappe pour sa requête de recherche par rapport à la table Utilisateur [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;
    }