Masquer les résultats XX trouvés à l'aide de l'IA - activé par défaut

J’expérimente l’utilisation de l’IA sur notre forum de discussion et jusqu’à présent, c’est plutôt bien (excellent travail les gars), elle prend vraiment en compte l’intention de l’utilisateur et fournit des résultats très pertinents.

Le problème que je vois, c’est que les résultats sont masqués par défaut

Je ne trouve aucun paramètre pour activer cela par défaut, comment l’administrateur fait-il cela ? Le vrai pouvoir est d’activer cette fonctionnalité par défaut et de s’éloigner de la recherche sémantique qui peut être aléatoire.

Étonnamment, j’ai essayé de rechercher cela sur ce forum en utilisant l’IA et je n’ai pas pu obtenir de réponses pertinentes.

2 « J'aime »

Eh bien, l’IA l’a quand même trouvé dans la section Sujets connexes :

Oui, j’ai vu cette page, mais je n’y vois rien qui explique comment activer les résultats de recherche IA par défaut pour tout le monde. Est-ce que je manque quelque chose ici ?

Peut-être que je vous ai mal compris :slight_smile:. Je pensais que vous vouliez dire « activer la fonctionnalité » au lieu de « activer le bouton bascule ». Si vous faites référence au bouton bascule, je ne pense pas qu’il y ait un moyen de le faire.

Nous venons de le rendre basculable par défaut lorsque la recherche sur page complète n’a aucun résultat, et nous allons ensuite faire en sorte qu’elle ajoute automatiquement les résultats de l’IA lorsque la recherche rapide dans l’en-tête n’a aucun résultat ou peu de résultats.

Il n’y a pas de réglage pour le basculer toujours automatiquement sur la recherche sur page complète, car cela causerait Frontend developers: stop moving things that I’m about to click on | by Stephen Jayakar | Medium

5 « J'aime »

C’est un excellent début. Il serait intéressant d’avoir une option pour prioriser les résultats que nous souhaitons afficher comme premier choix (extension de la logique qui vient d’être implémentée). Recherche IA ou sémantique native. Dans mon cas, l’IA produit des résultats beaucoup plus pertinents lors de la recherche.

L’idée ici est que les tokens sont déjà consommés pour exécuter la recherche IA, alors pourquoi ne pas afficher les résultats s’ils sont plus appropriés. De nombreux utilisateurs se méfient encore de l’IA et ne basculent donc pas l’interrupteur, mais se retrouvent avec des résultats de recherche trompeurs (sémantiques) sans s’en rendre compte. Laissez les administrateurs décider de ce qui convient le mieux par défaut pour leur communauté.

4 « J'aime »

En guise de solution temporaire si quelqu’un a besoin d’activer le bouton bascule par défaut, vous pouvez ajouter ce script à votre thème (je l’ai placé sous <body>) qui recherche essentiellement un changement dans les résultats de recherche de l’IA, puis active les résultats de l’IA. Ce n’est pas le code le plus propre, peut-être que @awesomerobot a une manière plus élégante de le faire.

<script type="text/javascript">
    // CE SCRIPT EST DESTINÉ À ACTIVER LE BOUTON BASCULE POUR INCLURE LES RÉSULTATS DE RECHERCHE DE L'IA APRÈS LA FIN DE LA RECHERCHE - SUPPRIMER UNE FOIS QU'IL EXISTE UNE OPTION NATIVE POUR L'ACTIVER PAR DÉFAUT
    console.log('Script chargé. Recherche continue de .semantic-search__searching et gestion de l\'observateur.');

    let searchObserver = null; // Variable pour contenir l'instance de l'observateur

    function observeSearchContainer() {
      const searchStatusContainer = document.querySelector('.semantic-search__searching');

      if (searchStatusContainer) {
        // Si le conteneur est trouvé
        if (!searchObserver) {
            // Si un observateur ne fonctionne pas déjà, en démarrer un
            console.log('.semantic-search__searching trouvé. Démarrage de l\'observation.');

            searchObserver = new MutationObserver(function(mutations) {
              //console.log('Mutation détectée dans .semantic-search__searching:', mutations);
              mutations.forEach(function(mutation) {
                // Vérifier les mutations pertinentes dans le conteneur observé
                if (mutation.type === 'characterData') {
                  //console.log('Type de mutation pertinent détecté. Tentative de déclencher la fonctionnalité du bouton bascule. ' + mutation.type);
                  const currentToggleButton = document.querySelector('button.d-toggle-switch__checkbox.semantic-search__results-toggle');
                  if (currentToggleButton) {
                      const isCurrentlyEnabled = currentToggleButton.getAttribute('aria-checked') === 'true';
                      if (!isCurrentlyEnabled) { // Si le bouton bascule n\'est PAS actuellement activé
                        // Déclencher un événement de clic pour activer la fonctionnalité associée
                        currentToggleButton.click();
                        console.log('Événement de clic sur le bouton bascule déclenché.');
                      } else {
                        console.log('Le bouton bascule est déjà activé.');
                      }
                  } else {
                    // Ce cas peut se produire si le bouton bascule est supprimé pendant que le conteneur est toujours présent
                    console.log('Bouton bascule non trouvé lors de la tentative de déclenchement de la fonctionnalité.');
                  }
                }
              });
            });

            const config = { childList: true, subtree: true, characterData: true, attributes: true };
            searchObserver.observe(searchStatusContainer, config);
            console.log('MutationObserver démarré sur .semantic-search__searching.');
        } else {
            // Conteneur trouvé, et observateur déjà actif pour celui-ci
            //console.log('.semantic-search__searching trouvé, observateur déjà actif.');
        }
      } else {
        // Si le conteneur n'est PAS trouvé
        if (searchObserver) {
            // Si un observateur fonctionnait précédemment, cela signifie que le conteneur a été supprimé
            console.log('.semantic-search__searching supprimé. Déconnexion de l\'observateur.');
            searchObserver.disconnect(); // Arrêter l'observation
            searchObserver = null; // Réinitialiser la variable de l'observateur
        } else {
            // Conteneur non trouvé, et aucun observateur actif (état correct)
            //console.log('.semantic-search__searching non encore trouvé.');
        }
      }
    }

    // Utiliser un intervalle pour vérifier périodiquement l'existence du conteneur
    const containerCheckInterval = setInterval(observeSearchContainer, 500); // Vérifier toutes les 500 millisecondes
</script>

J’ai déplacé ceci dans Feature car il semble s’agir d’une conversation ouverte sur la manière d’améliorer cette fonctionnalité.