Projets

Ce que Datooine construit en dehors des missions clients : un outil open source publié, un produit en construction, des talks et des articles.

Open source · Licence MIT

recto

Apprendre par cœur avec des flashcards, dans le terminal, dans l’esprit d’Anki.

Un deck ne contient que des paires question / réponse. À l’import, un modèle écrit des variantes de chaque carte : la question posée à l’envers quand ça a du sens, et quelques reformulations. Chaque révision en pose une au hasard, si bien que vous apprenez la connaissance, pas une formulation.

Vous tapez la réponse, le modèle la note et dit ce qui manquait, et FSRS décide quand la carte revient.

# Python 3.12+ et une clé OpenAI$ uv tool install recto$ export OPENAI_API_KEY=...$ recto # Le modèle est configurable$ export RECTO_MODEL=gpt-5.4-mini

Comment ça marche

Le LLM fait ce qu’il fait bien, l’algorithme fait le reste.

  • 1

    Import d’un deck

    Un fichier TOML de questions et de réponses, ou l’un des cinq decks d’exemple.

  • 2

    Génération des variantes

    Le modèle écrit, pour chaque carte, la question inversée et quelques reformulations.

  • 3

    Révision

    Chaque révision pose une variante tirée au hasard. Vous tapez votre réponse.

  • 4

    Correction

    Le modèle note la réponse et explique ce qui manquait, en suivant les consignes du deck.

  • 5

    Planification

    FSRS, un algorithme de répétition espacée, décide quand la carte revient.

Ce que ce projet montre

Un petit projet, construit comme un projet client.

Le LLM à sa place

Reformuler et corriger, c’est du langage : un modèle le fait bien. Planifier des révisions est un problème déjà résolu : FSRS le fait mieux, de façon déterministe et testable.

Le modèle derrière une interface

Le générateur de variantes et le correcteur sont des ports. PydanticAI n’est qu’un adaptateur : changer de modèle ou de fournisseur ne touche pas au métier.

Testé sans mocks

Les cas d’usage tournent sur un dépôt en mémoire, un faux générateur, un faux correcteur et une horloge fixe. L’interface est testée en headless avec le Pilot de Textual, SQLite contre un vrai fichier.

Livré comme un vrai produit

La CI construit le paquet à chaque push. Chaque tag de version publie sur PyPI par trusted publishing et crée une release GitHub.

Sous le capot

Un deck est un simple fichier TOML. Les consignes optionnelles sont transmises au modèle quand il écrit les variantes et corrige les réponses.

[deck]name = "Vins"description = "Cépages, appellations et régions viticoles françaises"instructions = "Sois exigeant sur les appellations, tolérant sur l'orthographe des cépages." [[cards]]id = "chablis-cepage"question = "Quel cépage domine les vins blancs de Chablis ?"answer = "Chardonnay"
src/recto/  domain/      cartes, variantes, notes, mémoire FSRS  ports/       dépôt de decks, générateur, correcteur, horloge  use_cases/   une classe par action  adapters/    SQLite, PydanticAI, fichiers TOML, horloge  tui/         écrans Textual, qui n’appellent que les cas d’usage  container.py le seul endroit où les adaptateurs rejoignent les ports
Stack Python uv Textual PydanticAI OpenAI SQLite FSRS Ruff ty GitHub Actions PyPI

En construction · Accès sur invitation

FactUp Live

Du fact-checking en direct : les affirmations sont vérifiées pendant qu’elles sont prononcées.

FactUp Live écoute une conversation et la transcrit en direct, en français ou en anglais. Les affirmations vérifiables (chiffres, dates, déclarations) sont repérées automatiquement, puis confrontées au web : chacune reçoit un verdict, une explication et ses sources.

Le point de départ, c’est la loi de Brandolini : réfuter une affirmation fausse demande bien plus d’énergie que de la lancer. L’idée est de ramener la vérification à la vitesse de la parole.

Le produit est en cours de construction, et l’accès se fait sur invitation pour le moment.

Échelle de verdicts

  • Vrai
  • Plutôt vrai
  • Plutôt faux
  • Faux
  • Invérifiable

Loi de Brandolini

« La quantité d’énergie nécessaire pour réfuter du baratin est d’un ordre de grandeur supérieure à celle nécessaire pour le produire. »
Alberto Brandolini, 2013
  1. 01

    Enregistrer

    Un débat, une interview, un conseil municipal : la transcription s’affiche en direct.

  2. 02

    Repérer

    Seules les affirmations vérifiables sont retenues. Les opinions restent hors du périmètre.

  3. 03

    Vérifier

    Chaque affirmation est confrontée au web : verdict, explication et sources citées.

  4. 04

    Publier

    La transcription vérifiée devient une page publique, à partager en un lien.

Les principes

Les mêmes exigences que pour un projet IA client, sur un problème où la moindre erreur se voit tout de suite.

Pas de verdict sans preuve

Chaque verdict s’appuie sur des sources récupérées et citées. Jamais de « fais-moi confiance ».

Seulement ce qui se vérifie

Chiffres, dates, déclarations : seules les affirmations qui méritent une vérification sont retenues, les opinions sont laissées de côté.

À la vitesse de la parole

Transcription et vérification se font en direct, pendant que la discussion continue. Un verdict qui arrive trois heures plus tard ne sert plus à rien.

Un projet IA à construire avec la même rigueur ?

Parlons de votre contexte, de vos données et de ce qui doit arriver en production.