Comment ça marche

De l'article brut publié sur PubMed jusqu'au résultat classé que vous voyez dans la recherche — les quatre étapes du pipeline X-Med.

Vous cherchez plutôt à tester ? ← Retour à la recherche

1

Récupérer les articles

La source principale est le FTP de la NLM(la bibliothèque de médecine américaine), qui publie l'intégralité de PubMed sous forme de fichiers compressés .xml.gz :

  • un socle annuel (« baseline ») de ~1 455 fichiers, chargé une fois ;
  • des mises à jour quotidiennes (1 à 3 fichiers/jour) avec les nouveaux articles et les corrections.

On garde la trace des fichiers déjà traités dans une table ftp_state pour ne jamais retraiterdeux fois le même, et on vérifie l'intégrité de chaque fichier par sa somme MD5avant de l'ouvrir.

Une seconde source, l'API E-utilities de PubMed, sert aux recherches ponctuelles « à la demande » — à ne pas confondre avec le flux bulk quotidien ci-dessus.

2

Analyser (parser) chaque article

Un fichier .xml.gzpeut contenir des dizaines de milliers d'articles. On le lit en streaming(lecture au fil de l'eau, article par article, sans tout charger en mémoire) : pour chaque <PubmedArticle>on extrait le titre, le résumé (abstract), les auteurs, la revue, l'année, les identifiants (PMID, DOI) et les tags MeSH (le vocabulaire médical normalisé de PubMed).

On en déduit automatiquement un niveau de preuve(de 1 = le plus solide à 4) à partir du type d'étude annoncé :

  • Niv. 1 méta-analyse, revue systématique, essai randomisé contrôlé ;
  • Niv. 2 essai clinique, étude de cohorte, comparative ;
  • Niv. 3 séries / rapports de cas ;
  • Niv. 4 le reste (éditorial, lettre, opinion…).

Tout est rangé dans la table articles. C'est aussi à ce moment qu'on calcule l'embeddingde l'article (voir étape 3).

3

Trouver les bons articles & les scorer

Impossible (et hors de prix) de demander à une IA d'analyser les ~4 000 articles publiés chaque jour. On procède donc en deux temps : un tri rapide et grossier, puis un tri fin et coûteux uniquement sur les survivants.

a. Le pré-filtre rapide (gratuit, en base)

Deux manières complémentaires de mesurer si un article « colle » :

  • Par mots / tags MeSH : recherche plein-texte classique. Le moteur classe les articles par un score ts_rank (à quel point les mots de la requête sont présents et rares dans le texte).
  • Par le sens (embeddings) : chaque article et chaque requête sont transformés en un vecteur — une liste de nombres qui résume le sens. Deux textes proches par le sens ont des vecteurs proches. On mesure cette proximité par la similarité cosinus(entre 0 et 1). C'est ce qui permet de retrouver un article anglais à partir d'une phrase en français, ou de rattraper les synonymes cliniques.

Modèles d'embedding utilisés : bge-m3 (1024 dimensions, multilingue FR/EN) et MedCPT (768 dimensions, spécialisé biomédical). La recherche du site combine les deux approches (texte + sens) par une fusion appelée RRF, qui mélange les classements plutôt que les scores bruts.

b. Rang vs « match » : comment lire les résultats

Dans la page de recherche, le chiffre qui compte est le rang(#1, #2, #3…) : c'est l'ordre de pertinence, fiable dans tous les cas. La barre de match du mode « Par sens » indique la pertinence relative au meilleur résultat de la page — ce n'est pas un pourcentage de certitude. (Le score de fusion brut, lui, est un petit nombre technique sans signification directe pour un lecteur.)

c. Le scoring fin par IA (Claude)

Seuls les quelques dizaines de candidats retenus par le pré-filtre sont envoyés à Claude, qui, pour le profil précis d'un médecin, attribue un score de pertinence de 0 à 1, rédige un résumé traduit en français et signale les articles prioritaires. Pour maîtriser le coût, la partie « profil médecin » du prompt est mise en cache (elle ne change pas d'un article à l'autre).

4

Envoyer le digest

Les articles les mieux scorés deviennent un email personnalisé (résumé + lien PubMed), envoyé via le service Resend. Chaque envoi est journalisé pour ne pas renvoyer deux fois le même article à un médecin.

← Retour à la recherche