Rapports publics

À propos

rix rassemble les rapports publiés par les institutions publiques françaises, en extrait le texte page par page et permet d'y chercher de trois manières : par mots, par le sens, ou en posant une question.

Conçu et réalisé par Clément Pavie--Routaboul et Alban Melget.

Ce que contient l'index

SourceDocuments retenusDocuments
SénatRapports d'information, commissions d'enquête, OPECST (1958 →)3 886
Assemblée nationaleRapports d'information (XIVe → XVIIe législature)1 404

352 419 pages indexées en texte intégral · 472 500 passages vectorisés pour la recherche sémantique. Seuls les rapports d'information (ou leur équivalent pour chaque institution) sont retenus : pas de textes de loi, d'arrêts ni de communiqués.

Comment ça marche

Chaque institution a son connecteur, qui sait où trouver la liste officielle de ses rapports (données ouvertes quand elles existent, plan du site sinon). Tout le reste de la chaîne est commun : un nouveau connecteur suffit pour ajouter une institution.

flowchart TB
    C["Connecteurs, un par institution
Sénat · Assemblée nationale"] C --> CAT[(Catalogue)] CAT --> F[Téléchargement des PDF] F --> X[Extraction du texte, page par page] X --> E[Année et auteurs] E --> D[Catégories : modèle de décision] E --> V[Vecteurs : embeddings] X --> I[(Index plein texte)] D --> I V --> VS[(Index sémantique)] I --> UI[Recherche : web et ligne de commande] VS --> UI
  1. Catalogue. Chaque connecteur liste les rapports de son institution avec titre, date, auteurs, organe et lien officiel.
  2. Téléchargement et extraction. Les PDF sont téléchargés poliment (une requête par seconde et par site, reprises automatiques) puis leur texte est extrait page par page, pour pouvoir renvoyer vers la page exacte.
  3. Année et auteurs. Repris des métadonnées de la source, ou lus sur la page de couverture quand ils manquent.
  4. Catégories. Un modèle de décision lit le titre, le résumé et le début du rapport et donne une probabilité pour chacun des 20 domaines de politique publique ; un rapport reçoit tous les domaines au-dessus d'un seuil.
  5. Vecteurs. Chaque page est transformée en vecteur par un modèle d'embedding, calculé une fois pour toutes à l'avance.
  6. Incrémental. Chaque étape ne traite que ce qui est nouveau : un document déjà catégorisé ou vectorisé n'est jamais renvoyé aux modèles.

Les trois modes de recherche

Texte
Recherche par mots (accents ignorés, expressions exactes, OR, exclusion, préfixes), classement BM25 ; chaque résultat pointe vers les pages où les mots apparaissent.
Sémantique
La requête est transformée en vecteur et comparée à tous les passages : on trouve les pages qui parlent du sujet même sans employer les mêmes mots.
Intelligente
Pour une question, un modèle de langage prépare plusieurs recherches sémantiques, puis ne garde que les extraits qui y répondent. Les extraits sont rendus tels qu'ils figurent dans les rapports : aucun texte n'est rédigé par le modèle.
sequenceDiagram
    actor U as Utilisateur
    participant L as Modèle de langage
    participant V as Index sémantique
    U->>L: question
    L-->>U: 2 à 5 recherches sémantiques
    loop pour chaque recherche (en parallèle)
      U->>V: recherche
      V-->>U: 4 meilleurs passages
      U->>L: question + 4 passages
      L-->>U: numéros des passages qui répondent
    end
    Note over U: seuls ces passages sont affichés,
tels quels, avec rapport et page

L'agent de contre-argumentation

L'agent lit un argumentaire et cherche ses points faibles, comme le ferait un contradicteur bien informé : affirmations non justifiées, liens de cause à effet non établis, raisonnements circulaires, mots employés dans des sens différents. Il lui oppose ensuite quelques contre-arguments, appuyés sur des passages des rapports publics cités mot pour mot. Il ne cherche pas à prouver que la conclusion est fausse, seulement à montrer où l'argumentaire gagnerait à être mieux étayé.

  1. Propositions. Le modèle découpe le texte en propositions et en liens (« donc », « car »…), en notant le type de lien affirmé : simple lien, corrélation ou causalité. Chaque citation est vérifiée mot pour mot par le programme.
  2. Mots clés. Les mots qui portent le raisonnement sont définis à l'aide du Wiktionnaire, pour repérer les glissements de sens.
  3. Structure. Le programme, sans modèle, lit le graphe de l'argumentaire : la thèse, les dogmes (propositions affirmées sans justification) et les cercles (raisonnements circulaires).
  4. Vérification dans les rapports. Chaque dogme et chaque lien est confronté aux rapports par des recherches sémantiques, en parallèle : le lien est-il appuyé, seulement corrélé, ou contredit par les sources ?
  5. Contre-arguments. Un contradicteur rédige quelques objections. Le programme vérifie que chaque passage cité existe et que chaque chiffre figure dans un passage cité ; ce qui ne passe pas est renvoyé pour correction, puis écarté.
  6. Rapport. Les propositions, le graphe de l'argumentaire, les contre-arguments et la liste numérotée des sources, chacune avec son lien officiel.

L'analyse et les contre-arguments sont rédigés par un modèle de langage (deepseek/deepseek-v4.1-flash) et signalés comme tels ; seuls les passages cités sont repris tels quels des rapports. Une analyse prend en général 5 à 15 minutes et fait plusieurs dizaines d'appels à des modèles payants : leur nombre est limité par analyse, par connexion et par jour. Le texte soumis n'est gardé qu'en mémoire, une heure au plus (voir la politique de confidentialité).

Modèles et outils

Limites