Ocultando resultados XX encontrados com IA - ativado por padrão

Estou experimentando usar IA em nosso fórum de discussão e, até agora, é muito bom (ótimo trabalho, pessoal), realmente leva em consideração a intenção do usuário e fornece resultados muito relevantes.

O problema que vejo é que os resultados estão ocultos por padrão

Não consigo encontrar nenhuma configuração para habilitar isso por padrão, como o administrador faz isso? O verdadeiro poder é habilitar esse recurso por padrão e se afastar da pesquisa semântica, que pode ser imprevisível.

Curiosamente, tentei pesquisar neste fórum usando IA e não consegui obter nenhuma resposta relevante.

2 curtidas

Bem, a IA ainda o encontrou na seção Tópicos Relacionados:

Sim, eu vi essa página, mas não vejo nada lá que fale sobre como habilitar os resultados de pesquisa de IA por padrão para todos. Estou perdendo alguma coisa aqui?

Talvez eu tenha entendido mal :slight_smile:. Pensei que você quisesse dizer ‘habilitar o recurso’ em vez de ‘habilitar o botão de alternância’. Se você estiver se referindo ao botão de alternância, acho que não há como fazer isso.

Nós acabamos de torná-lo um alternador por padrão quando a pesquisa de página inteira não tem resultados, e em seguida o tornaremos um anexo automático de resultados de IA na pesquisa rápida do cabeçalho quando houver poucos ou nenhum resultado.

Não há configuração para alterná-lo sempre automaticamente na pesquisa de página inteira, pois isso causaria Frontend developers: stop moving things that I’m about to click on | by Stephen Jayakar | Medium

5 curtidas

Esse é um ótimo começo. Seria bom ter uma opção para priorizar quais resultados queremos mostrar como a primeira escolha (extensão da lógica que acabou de ser implementada). Busca por IA ou busca semântica nativa. No meu caso, a IA produz resultados muito mais relevantes ao pesquisar.

A ideia aqui é que os tokens já são consumidos para executar a busca de IA, então por que não mostrar os resultados se eles forem mais apropriados. Muitos usuários ainda desconfiam da IA, então não ativam a opção, mas acabam com resultados de pesquisa enganosos (semânticos) e não percebem. Deixe os administradores decidirem o que é melhor para os padrões de suas comunidades.

4 curtidas

Como uma solução temporária, se alguém precisar habilitar o botão de alternância por padrão, você pode adicionar este script ao seu tema (coloquei-o sob <body>) que basicamente procura por uma alteração nos resultados da pesquisa de IA e, em seguida, alterna os resultados de IA para habilitados. Este não é o código mais limpo, talvez @awesomerobot tenha uma maneira mais elegante de fazer isso.

<script type="text/javascript">
    // ESTE SCRIPT É PARA HABILITAR O TOGGLE PARA INCLUIR RESULTADOS DE PESQUISA DE IA APÓS A CONCLUSÃO DA PESQUISA - EXCLUA QUANDO HOUVER UMA OPÇÃO NATIVA PARA HABILITAR ISSO POR PADRÃO
    console.log('Script carregado. Procurando continuamente por .semantic-search__searching e gerenciando o observador.');

    let searchObserver = null; // Variável para manter a instância do observador

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

      if (searchStatusContainer) {
        // Se o contêiner for encontrado
        if (!searchObserver) {
            // Se um observador não estiver em execução, inicie um
            console.log('.semantic-search__searching encontrado. Iniciando observação.');

            searchObserver = new MutationObserver(function(mutations) {
              //console.log('Mutação detectada em .semantic-search__searching:', mutations);
              mutations.forEach(function(mutation) {
                // Verifique mutações relevantes dentro do contêiner observado
                if (mutation.type === 'characterData') {
                  //console.log('Tipo de mutação relevante detectado. Tentando acionar a funcionalidade do botão de alternância. ' + 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) { // Se o toggle NÃO estiver atualmente habilitado
                        // Acione um evento de clique para ativar a funcionalidade associada
                        currentToggleButton.click();
                        console.log('Evento de clique do botão de alternância acionado.');
                      } else {
                        console.log('Botão de alternância já habilitado.');
                      }
                  } else {
                    // Este caso pode acontecer se o botão de alternância for removido enquanto o contêiner ainda estiver presente
                    console.log('Botão de alternância não encontrado ao tentar acionar a funcionalidade.');
                  }
                }
              });
            });

            const config = { childList: true, subtree: true, characterData: true, attributes: true };
            searchObserver.observe(searchStatusContainer, config);
            console.log('MutationObserver iniciado em .semantic-search__searching.');
        } else {
            // Contêiner encontrado e observador já está ativo para ele
            //console.log('.semantic-search__searching encontrado, observador já ativo.');
        }
      } else {
        // Se o contêiner NÃO for encontrado
        if (searchObserver) {
            // Se um observador estava em execução anteriormente, significa que o contêiner foi removido
            console.log('.semantic-search__searching removido. Desconectando observador.');
            searchObserver.disconnect(); // Pare de observar
            searchObserver = null; // Redefina a variável do observador
        } else {
            // Contêiner não encontrado e nenhum observador ativo (estado correto)
            //console.log('.semantic-search__searching ainda não encontrado.');
        }
      }
    }

    // Use um intervalo para verificar periodicamente a existência do contêiner
    const containerCheckInterval = setInterval(observeSearchContainer, 500); // Verifique a cada 500 milissegundos
</script>

Movi isto para Feature, pois parece ser uma conversa em aberto sobre como melhorar este recurso.