GeniusResultContext : champ d’application

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 8 minutes de lecture
  • L’API GeniusResultContext fournit des méthodes pour récupérer les informations des requêtes de recherche dans le contexte d’une configuration de résultat Genius.

    Vous pouvez utiliser les détails de la requête de recherche récupérés avec cette API pour renseigner les objets de réponse de résultat Genius créés avec l’API GeniusResultAnswer .

    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.

    GeniusResultContext : getMatchingDocuments()

    Récupère les documents des résultats de recherche à partir de la requête de recherche qui déclenche votre configuration de résultat Genius.

    Utilisez cette méthode dans le script de processeur de réponses d’une configuration de résultat Genius pour récupérer les valeurs de champ à partir des documents de résultats de recherche renvoyés par la requête de recherche qui déclenche votre résultat Genius. Vous pouvez renseigner les réponses de résultats Genius avec des champs issus des documents de résultats de recherche à l’aide des méthodes de l’API GeniusResultAnswer .
    Remarque :
    Cette méthode ne renvoie aucun résultat lorsqu’elle est invoquée dans un AI Search request processor script, car le script est exécuté avant Recherche IA de calculer les résultats pour le déclenchement de la requête de recherche. N’utilisez pas cette méthode dans vos scripts de processeur de requêtes.
    Tableau 1. Paramètres
    Nom Type Description
    Aucun
    Tableau 2. Renvoie
    Type Description
    [Tableau]

    Tableau d’objets dans lequel chaque objet représente un document de résultat de recherche qui correspond à la requête de recherche.

    Type de données : tableau

    [
      {
        ".score": Number,
        ".table": "String",
        ".text": "String",
        ".title": "String",
        ".url": "String",
        "class_name": "String",
        "sys_id": "String",
        "<field_name>": <field_value>
      }
    ]
    Remarque :
    Selon la requête de recherche, certains des champs d’index du document de résultats de Recherche IA recherche peuvent apparaître dans l’objet en plus des paires nom-valeur répertoriées.
    [Tableau].. Score

    Score de pertinence calculé pour le document de résultats de recherche dans le contexte de la requête de recherche.

    Type de données : nombre

    Remarque :
    Le nom de cette paire nom-valeur commence par un point pour la distinguer du champ commun de score de l’indexRecherche IA.
    [Tableau].. Table

    Nom de la Now Platform table à partir de laquelle le document de résultats de recherche a été indexé.

    Type de données : chaîne

    Remarque :
    Le nom de cette paire nom-valeur commence par un point pour la distinguer du champ commun de la table de l’indexRecherche IA.
    [Tableau].. Texte

    Texte indexé à partir du document de résultats de recherche.

    Type de données : chaîne

    Remarque :
    Le nom de cette paire nom-valeur commence par un point pour la distinguer du champ commun de texte de l’indexRecherche IA.
    [Tableau].. Titre

    Titre indexé pour le document de résultats de recherche.

    Type de données : chaîne

    Remarque :
    Le nom de cette paire nom-valeur commence par un point pour la distinguer du champ commun title de l’indexRecherche IA.
    [Tableau].. Url

    URL du document de résultats de recherche.

    Type de données : chaîne

    Remarque :
    Le nom de cette paire nom-valeur commence par un point pour la distinguer du champ commun url de l’indexRecherche IA.
    [Tableau].class_name

    Classe enfant à laquelle appartient le document de résultats de recherche. Pour plus d’informations sur les classes enfants de table, reportez-vous à Table extension and classes.

    Type de données : chaîne

    [tableau].sys_id

    Sys_id du document de résultats de recherche.

    Type de données : chaîne

    [tableau].&lt;field_name>

    Recherche IA Champ d’index du document de résultats de recherche.

    Type de données : type de données du champ d’index Recherche IA .

    Ce AI Search response processor script récupère jusqu’à trois documents de résultats de recherche correspondant à la requête de recherche et vérifie si l’un d’eux provient de la table Connaissances [kb_knowledge]. Si elle trouve un document de résultats de recherche dans la table Connaissances, la fonction ajoute les champs de ce document à l’objet GeniusResultAnswer afin que l’interface utilisateur puisse les afficher à l’utilisateur.

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

    Récupère les termes de recherche d’origine à partir de la requête de recherche qui déclenche votre configuration de résultat Genius.

    Vous pouvez utiliser les termes de recherche récupérés pour renseigner les réponses de résultat Genius à l’aide des méthodes de l’API GeniusResultAnswer .

    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    Type Description
    Chaîne

    Termes d’origine de la requête de recherche.

    Type de données : chaîne

    Ce AI Search request processor script récupère les termes d’origine de la requête de recherche et les utilise comme termes de requête pour une nouvelle recherche d’extrait.

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

    GeniusResultContext – getPredictionResult()

    Récupère les résultats de prédiction du NLU modèle pour la requête de recherche qui déclenche votre configuration de résultat Genius.

    Utilisez cette méthode dans un script de processeur de demande ou de réponse de configuration de résultat Genius pour récupérer l’intention détectée pour le déclenchement de la requête de recherche. Vous pouvez renseigner les réponses de résultat Genius avec les détails de l’intention détectée à l’aide des méthodes de l’API GeniusResultAnswer .

    Tableau 5. Paramètres
    Nom Type Description
    Aucun
    Tableau 6. Renvoie
    Type Description
    [Tableau]

    Tableau d’objets dans lequel chaque objet représente un résultat de prédiction d’intention NLU de modèle pour la requête de recherche.

    Type de données : tableau

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

    Nom de l’intention NLU du modèle détectée dans la requête de recherche.

    Type de données : chaîne

    [tableau].result

    Objet représentant le résultat de prédiction d’intention NLU du modèle pour la requête de recherche.

    Type de données : objet

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

    Objet contenant les métadonnées pour l’application de recherche qui a produit le résultat de prédiction.

    Type de données : objet

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

    Contexte linguistique de l’application Now Platform qui a produit le résultat de prédiction.

    Type de données : chaîne

    [tableau].result.application.type

    Type de l’application Now Platform qui a produit le résultat de prédiction.

    Type de données : chaîne

    [tableau].résultat.résultat

    Objet incluant les détails du résultat de prédiction d’intention du NLU modèle.

    Type de données : objet

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

    Tableau d’objets dans lequel chaque objet représente une NLU entité d’intention de modèle détectée dans la requête de recherche.

    Type de données : tableau

    "entities": [
      {
        "matchingSegments": [Array],
        "name": "String",
        "parts": [Array],
        "score": Number,
        "startingPosition": Number,
        "value": "String"
      }
    ]
    [tableau].résultat.result.entités.matchingSegments

    Tableau d’objets dans lequel chaque objet représente un segment correspondant de l’entité détectée NLU .

    Type de données : tableau

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

    Marqueur indiquant si le segment correspondant à l’entité NLU représente une correspondance exacte pour la valeur de l’entité.

    [tableau].result.result.entities.matchingSegments.meta

    Objet contenant des champs de paire clé-valeur représentant les métadonnées pour le segment correspondant à l’entité NLU .

    Type de données : objet

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

    Valeur de chaîne du segment correspondant à l’entité NLU .

    Type de données : chaîne

    [tableau].result.result.entities.name

    Nom de l’entité détectée NLU , dans l’entité : [NLU_model].[ intention]. [entity_type] Format.

    Type de données : chaîne

    [tableau].result.result.entités.parties

    Tableau d’objets dans lequel chaque objet représente une partie de l’entité NLU trouvée dans le résultat de prédiction.

    Type de données : tableau

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

    Objet contenant des champs de paire clé-valeur représentant les métadonnées pour la NLU partie entité.

    Type de données : objet

    "meta": {
      "augmentedBy": "String",
      "colMeta:name": "String",
      "compositionStrategy": "String",
      "fieldName": "String",
      "searchPreProcessors": "String",
      "SUB_PHRASE.penalty": "String",
      "tableName": "String"
    }
    [tableau].résultat.résultat.entités.parties.valeur

    Valeur de chaîne de la partie de l’entité NLU .

    Type de données : chaîne

    [tableau].result.result.entities.score

    Score numérique compris entre 0 et 1, indiquant la confiance envers l’entité détectée NLU .

    Type de données : nombre

    [tableau].résultat.résultat.entités.startingPosition

    Index numérique pour la position du caractère dans la requête de recherche à laquelle l’entité détectée NLU commence.

    Type de données : nombre

    [tableau].résultat.résultat.entités.valeur

    Valeur de chaîne de la détectée NLU dans la requête de recherche.

    Type de données : chaîne

    [tableau].result.result.intentName

    Nom de l’intention NLU du modèle détectée dans la requête de recherche.

    Type de données : chaîne

    [tableau].result.result.intents

    Tableau d’objets dans lequel chaque objet représente une intention de modèle imbriquée détectée NLU dans la requête de recherche.

    Les objets d’intention imbriqués comprennent les mêmes noms de paramètres et types de données que l’objet d’intention du modèle parent NLU .

    Type de données : tableau

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

    Nom du modèle qui a produit le résultat de NLU prédiction.

    Type de données : chaîne

    [tableau].result.result.score

    Score numérique compris entre 0 et 1 indiquant la confiance envers le résultat de prédiction du NLU modèle.

    Type de données : nombre

    [tableau].result.solutionLabel

    Étiquette du NLU modèle qui a produit le résultat de prédiction.

    Type de données : chaîne

    [tableau].result.solutionName

    Nom du NLU modèle qui a produit le résultat de prédiction.

    Type de données : chaîne

    [tableau].result.solutionType

    Type du NLU modèle qui a produit le résultat de prédiction.

    Type de données : chaîne

    [tableau].result.type

    Type du résultat de prédiction.

    Type de données : chaîne

    [tableau].result.version

    Version du modèle qui a produit le NLU résultat de prédiction.

    Type de données : nombre

    [tableau].solutionName

    Nom du modèle qui a produit le résultat de NLU prédiction.

    Type de données : chaîne

    Ce AI Search request processor script vérifie si la requête de recherche inclut un résultat de prédiction de NLU modèle. Lorsqu’il trouve un résultat de prédiction, il ajoute les segments correspondants de toutes les entités catalogItem détectées en tant que termes de recherche.

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