Comment fonctionne la recherche hybride de Pyxaura
Quand vous posez une question, Pyxaura ne se contente pas d'une simple recherche par mot-clé, ni
d'une pure recherche par similarité de sens. Les deux approches ont des angles morts opposés — les
combiner donne des résultats plus fiables que chacune prise seule.
Deux façons de chercher, deux angles morts différents
- Recherche sémantique (par similarité de sens, "embeddings") : excellente pour comprendre qu'une question formulée différemment du document vise la même idée ("délai de remboursement" ≈ "politique de retour sous 30 jours"). Angle mort : les identifiants exacts (référence produit, numéro de contrat) sont souvent mal représentés — pour un modèle de similarité, deux codes qui diffèrent d'un seul caractère peuvent sembler "proches" alors qu'ils désignent des choses totalement différentes.
- Recherche lexicale (mots-clés,
full-text search) : excellente pour retrouver un terme exact, un code, un nom propre. Angle mort : elle rate les reformulations (une question qui n'utilise aucun des mots exacts du document ne remonte rien, même si le document y répond parfaitement).
Pyxaura combine les deux résultats via une fusion RRF (Reciprocal Rank Fusion) : les documents
bien classés par l'une des deux méthodes remontent en tête, même s'ils ne le sont pas par l'autre.
Le pipeline complet, étape par étape
- Routage : la question est d'abord orientée vers les sources les plus susceptibles de contenir la réponse, plutôt que de chercher indistinctement partout dans un compte qui contiendrait des dizaines de sources sans rapport entre elles.
- Recherche semantique + lexicale en parallèle, sur les sources routées.
- Correspondance exacte prioritaire : si la question contient un code/référence identifiable (SKU, numéro...), le fragment qui le contient exactement est injecté en tête des résultats — ni le sémantique ni le lexical pur ne garantissent cette correspondance de façon fiable.
- Reformulations alternatives (optionnel) : la question est reformulée automatiquement de plusieurs façons pour élargir la couverture sans que vous ayez à reformuler vous-même.
- Reranking : un modèle dédié à l'évaluation de pertinence reclasse le pool de résultats obtenu, pour ne garder que les fragments réellement utiles à la question posée avant de les transmettre au modèle de génération de réponse.
Toutes ces étapes s'exécutent en quelques centaines de millisecondes, de façon transparente pour
vous — vous posez une question en langage naturel, sans avoir à choisir entre "recherche mot-clé"
ou "recherche sémantique".
/search vs /query : deux usages différents
L'API expose ce moteur de retrieval de deux façons (voir la
référence API) :
/search— retourne directement les fragments pertinents (extraits + sources), sans génération de réponse par un modèle de langage. Rapide, peu coûteux : utile pour construire votre propre interface de résultats, ou pour un usage MCP léger depuis un éditeur de code./query— utilise le même retrieval, puis génère une réponse rédigée en langage naturel avec citations numérotées, en s'appuyant sur les fragments trouvés. C'est ce qu'utilise l'interface de chat Pyxaura.
Pourquoi cela compte pour vous
Concrètement, cela signifie que vous pouvez poser une question dans vos propres mots, sans
deviner le vocabulaire exact utilisé dans vos documents — tout en gardant la garantie qu'une
référence précise (contrat, code produit) sera retrouvée avec exactitude si elle existe dans vos
sources indexées.