TruthifyApplication web / IA

Truthify extrait des affirmations d’un texte, leur attribue un niveau de fiabilité estimé et permet de retrouver les passages concernés dans le contenu original.

Vue d’ensemble

Explorer la fiabilité d’un texte, argument par argument

Le problèmeUne suite d’affirmations est difficile à examiner sans perdre le fil du texte, surtout lorsqu’elle est longue ou issue d’une vidéo.

La solutionTruthify segmente le contenu, soumet ses extraits à un modèle OpenAI, puis affiche des cartes argumentées, des notes sur dix et un repérage dans le texte.

Workflow utilisateur

Texte ou transcription

Coller un texte ou saisir une URL YouTube ; si la transcription échoue, une saisie manuelle reste possible. Deux modes de saisie réunis dans l’interface d’analyse.

1 / 4: Saisir le contenu. Étape précédente / Étape suivante

Architecture technique

Le client React appelle une route SSE Next.js, qui orchestre un service d’analyse OpenAI et conserve résultats et cache dans PostgreSQL via Prisma.

Interface React

React

Saisie, progression et lecture des résultats
Requête et flux SSE

API SSE Next.js

Next.js

Gestion du flux, cache et persistance
Segments à analyser

Service d’analyse

TypeScript

Découpage, prompts et normalisation des notes
Prompts et réponses

API OpenAI

OpenAI

Extraction et évaluation des affirmations
  • Interface React: React. Saisie, progression et lecture des résultats Requête et flux SSE.
  • API SSE Next.js: Next.js. Gestion du flux, cache et persistance Segments à analyser.
  • Service d’analyse: TypeScript. Découpage, prompts et normalisation des notes Prompts et réponses.
  • API OpenAI: OpenAI. Extraction et évaluation des affirmations

Défis techniques

01

Analyser des textes volumineux

Contrainte

Un appel unique serait sensible à la longueur du texte et à la durée du traitement.

La solution

Découpage en segments chevauchés, avec limites explicites de taille et de nombre de segments.

02

Rendre le traitement lisible

Contrainte

L’analyse de plusieurs segments produit ses résultats à des moments différents.

La solution

Route Server-Sent Events et hook React pour exposer l’avancement et les nouvelles affirmations.

03

Relier les scores au texte

Contrainte

Une évaluation isolée perd son contexte si l’utilisateur ne retrouve pas le passage d’origine.

La solution

Recherche des positions de chaque extrait et surlignage interactif relié aux cartes de résultats.

04

Récupérer les transcriptions YouTube

Contrainte

L’accès aux transcriptions dépend de sources externes et peut échouer selon la vidéo.

La solution

Récupération en cascade via plusieurs stratégies, cache des transcriptions et saisie manuelle du texte en cas d’échec.

Stack technique principale

Next.jsReactTypeScriptTailwind CSSOpenAI APIPostgreSQLStripeBetter Auth

Résultats et enseignements

Interface d’analyse progressive

Parcours de saisie, progression des segments, score global et cartes d’évaluation reliées au texte.

Persistance et réutilisation

Analyses enregistrées avec Prisma dans PostgreSQL et cache fondé sur une empreinte du texte normalisé.

Socle de gestion du service

Authentification par lien magique, espace de compte, sessions Stripe et traitement de webhooks signés.