Mon moteur de recherche répondait « c’est pas faux »

Mon moteur de recherche répondait « c’est pas faux »

21 octobre 20265 min de lecture
0

Les prototypes que je livre à mes clients ont des chatbots qui lisent leurs documents, des recherches qui trouvent une offre dès la deuxième lettre, et au moins un lecteur de musique. Pendant ce temps, mon propre site n’avait pas de recherche du tout. Pas une loupe, pas un champ, rien.

Il vivait sa meilleure vie de Skyblog : une liste d’articles du plus récent au plus ancien, et il ne manquait qu’un « lâchez vos com’s » clignotant pour compléter le tableau. Pour retrouver un article sur le RAG écrit en mars, il fallait faire défiler la page en plissant les yeux, ou passer par Google, qui connaissait mon blog mieux que moi.

Les cordonniers et leurs chaussures

Les étiquettes, elles, se reproduisaient en secret. Chaque article en inventait de nouvelles, si bien qu’elles avaient fini par être plus nombreuses que les articles eux-mêmes. Aucune ne servait à rien, puisqu’on ne pouvait pas cliquer dessus.

Le blog avait grossi sans que je le remarque. Une quinzaine d’articles, qui vont du RAG à une brasserie artisanale, forment une pile où l’on cherche à tâtons. Et le visiteur qui arrive par un article sur les agents IA n’a aucune raison de deviner qu’il en existe d’autres sur le même sujet.

Le manque était assez gênant pour que la recherche passe avant l’article qui la raconte : elle est en ligne depuis une semaine.

Une loupe, enfin

Un soir, j’ai donc offert une loupe à mon blog. J’ai choisi Pagefind, un petit moteur qui construit son index au moment où le site est généré. Aucun serveur de recherche à faire tourner : l’index est un ensemble de fichiers statiques que le navigateur interroge lui-même.

La loupe est dans l’en-tête de chaque page, et s’ouvre aussi avec Ctrl+K, comme dans Notion, parce que mon blog a de l’ambition. Les résultats arrivent rangés par type de page, avec la miniature de chaque article.

Les étiquettes ont été regroupées en quelques sujets, comme le RAG, les agents ou la sécurité. Un clic sur un sujet affiche tous les articles qui en parlent. Et si ce que vous tapez ressemble à un sujet, la recherche propose d’ouvrir le blog filtré.

Une quinzaine d’articles, soigneusement indexés, avec miniatures : Google n’a qu’à bien se tenir.

Le syndrome Perceval

Premier essai, je tape « capgemini ». Le moteur réfléchit une fraction de seconde et me propose huit articles, qui ont tous en commun de contenir le mot « ça ». Le nom Capgemini n’apparaissait nulle part sur le site, mais mon moteur n’allait pas s’arrêter à ce genre de détail. Pour « java », il m’a sorti tous les « j’avais » du blog, avec la même assurance.

Dans Kaamelott, quand Perceval ne comprend pas un mot, il répond « c’est pas faux » et il passe à la suite. Mon moteur de recherche avait adopté la même philosophie, en version serviable.

L’explication tient en une ligne de sa mécanique. Quand Pagefind ne trouve pas le mot exact, il raccourcit le terme et cherche les mots qui commencent pareil. « capgemini » devient « capgem », puis « cap », puis « ca », et une fois les accents mis de côté, « ca » trouve « ça ». C’est utile pour retrouver « agents » en tapant « agent », et comique dès que le mot cherché n’existe nulle part.

Apprendre à dire « rien »

J’ai passé une bonne partie de la soirée à lui apprendre la phrase la plus difficile du monde : « je n’ai rien trouvé ».

Un résultat n’est gardé que si chaque mot tapé ressemble à un mot de la page. Il faut un début commun presque aussi long que le terme cherché, avec deux lettres de marge pour les pluriels et les terminaisons. « agents » retrouve encore « agent » et « agentique », « capgemini » ne retrouve plus « ça ».

Un mot du texte peut être collé à son voisin : « l’IA », « j’avais », ou « JavaScript », qu’il faut couper en deux sans perdre le mot entier, sinon « javascript » ne trouve plus rien. Il fallait aussi une règle pour les saisies trop courtes : la recherche attend trois lettres avant de se prononcer, ce qui lui évite de répondre à « a » en proposant l’intégralité du site.

Perceval dans un chatbot

Sur mon blog, le syndrome Perceval prête à sourire : huit articles sur « ça », personne n’est dupe. La liste de résultats est sous vos yeux, vous voyez que le moteur se trompe.

Dans un chatbot branché sur les documents d’une entreprise, le même défaut ne se voit plus. Le moteur remonte les passages les moins mauvais, faute de bons, et le modèle de langage en tire une réponse bien tournée. Personne ne voit les huit « ça » qui l’ont nourrie.

Une bonne partie de mon travail sur les chatbots de mes clients consiste donc à leur faire dire « je ne sais pas », et à le tester avec des questions dont la réponse n’existe pas dans les documents. Perceval, lui, n’a jamais suivi ce cours-là.

Et vous, avez-vous déjà posé à votre outil interne une question dont vous saviez qu’il n’avait pas la réponse, pour voir ce qu’il dit ?

La loupe est en haut de chaque page. Tapez « capgemini » : il trouve maintenant un article, celui-ci.

Cet article vous a plu ?

Et chez vous ?

Un projet IA en tête, ou une question sur cet article ?

Je vous propose d’en parler lors d’un premier échange. Il me permettra de comprendre votre contexte et d’être plus pertinent dans ma réponse.

Suggestions