Étude de cas sur l'IA en mode SaaS

TextGPT + IQR.Codes

Une plateforme qui transforme un fichier PDF — y compris les documents numérisés dans lesquels personne ne peut effectuer de recherche — en un support sur lequel les utilisateurs peuvent poser des questions, que ce soit via un chat en ligne, par SMS ou en scannant avec l'appareil photo de leur téléphone un code QR imprimé sur l'objet au sujet duquel ils posent la question.

  • IndustrieAI knowledge and support SaaS
  • ClientModezilla LLC, USA
  • RécupérationUnder a second at p95
  • ServicesProduct Design, Development, AI
TextGPT + IQR.Codes : plateforme de connaissances en IA

Aperçu

TextGPT + IQR.Codes sont deux produits intégrés dans un même pipeline, développés pour Modezilla LLC. TextGPT est destiné aux particuliers : il suffit de télécharger un document, de choisir un profil type et de poser des questions. IQR.Codes est la partie professionnelle : une entreprise y télécharge ses manuels et ses politiques, imprime un code QR, et chaque client qui le scanne entame une conversation dont les réponses sont déjà connues.

Le processus sous-jacent est le même dans les deux cas : importation, reconnaissance optique de caractères (OCR), découpage en segments, intégration, extraction, réponse accompagnée de références. Ce qui complique les choses, c'est l'état dans lequel le PDF est réellement fourni. Une exportation numérique propre est un problème résolu ; une photo d'une page tirée d'un manuel vieux de quinze ans ne l'est pas, et ce sont justement ces documents-là que les entreprises possèdent réellement.

Le reste de l'architecture découle de deux contraintes définies avant même l'écriture de la première ligne de code : une réponse doit être renvoyée en moins d'une seconde, et aucune organisation ne doit jamais avoir accès aux documents d'une autre. La seconde contrainte est assurée dans Postgres par la sécurité au niveau des lignes, plutôt que par un filtrage effectué par l'application.

  • Next.js 14
  • React 18
  • TypeScript
  • Tailwind CSS
  • shadcn/ui
  • Supabase
  • Postgres & pgvector
  • Vercel Serverless
  • Mistral AI
  • OpenAI Embeddings
  • Stripe Payments
  • Telnyx SMS

Vidéo du projet

textgpt + iqr.codesTéléchargez un fichier PDF. Obtenez un chatbot.

Présentation de TextGPT et d'IQR.Codes : depuis l'importation d'un PDF dans le tableau de bord jusqu'au moment où un client scanne un code imprimé et reçoit la réponse par SMS.

Fonctionnalités clés

  • Importation de fichiers PDF avec reconnaissance optique de caractères (OCR)

    Les documents sont importés tels quels, y compris les scans. Un traitement OCR et une étape de nettoyage sont effectués avant que les données n'atteignent l'analyseur syntaxique ; ainsi, une page photographiée devient consultable au lieu d'être ignorée.

  • Réponses accompagnées de références

    Un chat enrichi par la recherche qui fournit des réponses issues des documents mis en ligne et indique de quel document elles proviennent, plutôt que de se baser sur ce que le modèle croyait déjà savoir.

  • Canaux QR et SMS

    Un code scanné permet d'ouvrir un chat en ligne personnalisé ou une conversation par SMS. Aucune installation n'est nécessaire et aucun compte n'a besoin d'être créé ; de plus, grâce aux SMS, le client conserve l'historique de la conversation dans ses messages.

  • Multi-locataires par défaut

    Dans Postgres, chaque ligne et chaque fichier sont limités au périmètre d'une organisation, grâce à la sécurité au niveau des lignes et aux URL signées, plutôt qu'à un filtre au niveau de la couche applicative.

  • Abonnements et facturation

    Les niveaux d'abonnement Stripe déterminent les canaux auxquels un compte a accès et dans quelle mesure il peut les utiliser, avec un portail client permettant de gérer toutes les opérations après le premier paiement.

Le défi

La réponse se trouve dans le manuel. Le manuel est un document numérisé. Ce document numérisé ne permet pas d'effectuer des recherches, et personne ne va lire quarante pages pour trouver une seule ligne.

Les entreprises disposaient de documents contenant déjà toutes les réponses aux questions de leurs clients — manuels d’utilisation, conditions générales, fiches techniques, conditions de retour —, mais dans un format qui ne permettait aucune recherche. Lorsque ces documents étaient des photos de pages plutôt que des fichiers numériques, même une recherche en texte brut ne donnait aucun résultat. La solution de contournement consistait à créer une file d’attente pour le service client : quelqu’un devait relire le même PDF et retaper le même paragraphe, toute la journée, pendant que le client attendait la réponse.

  • Documents non consultables

    Ces informations existaient bien, sous forme de fichiers PDF — et les pires d'entre eux étaient des images de pages, où même une recherche textuelle ne donnait aucun résultat.

  • Des tensions à l'entrée

    Tout ce qui demandait au client d'installer une application ou de créer un compte le faisait fuir avant même qu'on ne lui pose la question.

  • Coût et isolation à grande échelle

    Le système devait rester rapide et peu coûteux, même avec des millions de documents, tout en garantissant qu'aucune organisation ne puisse consulter les documents d'une autre.

Notre solution

Un processus unique : importation, reconnaissance optique de caractères (OCR), découpage en segments, intégration, réponse.

Chaque document suit le même parcours. Il est téléchargé, soumis à une reconnaissance optique de caractères (OCR) si nécessaire, divisé en segments, intégré, puis stocké avec ses vecteurs dans Postgres. Une question est intégrée de la même manière et reçoit une réponse à partir des résultats obtenus, avec mention de la source. Ce pipeline unique alimente deux produits : TextGPT, destiné aux particuliers disposant d’un document, et IQR.Codes, destiné aux entreprises dont les clients posent des questions ; il existe deux moyens d’y accéder : le chat en ligne et les SMS, tous deux accessibles à partir d’un code imprimé sur l’emballage.

Un pipeline de bout en bout

Téléchargement, reconnaissance optique de caractères (OCR), segmentation, intégration, récupération, réponse avec références — avec des tentatives de rattrapage et des contrôles de qualité aux étapes où le système échoue en raison d'une entrée erronée, plutôt qu'à la fin du processus.

Deux produits, un seul moteur

TextGPT pour un usage personnel et IQR.Codes pour les entreprises, en partageant la couche d'ingestion et de récupération plutôt que de disposer chacun de sa propre copie.

Sécurisé et sans serveur

Supabase avec sécurité au niveau des lignes et pgvector, sur les fonctions serverless de Vercel. Les politiques à portée limitée et les URL signées font de l'isolation une propriété intrinsèque de la base de données.

Comment ça marche

TextGPT — un document et un personnage

The personal side of the platform: a chat window over whatever has been uploaded, with a persona that sets how the answers come back. The badge under the title is the one currently answering, and switching it is a sentence in the conversation rather than a trip to a settings page.

La fenêtre de discussion TextGPT avec le personnage du « docteur » actif, montrant une conversation dans laquelle l'assistant énumère les personnages qu'il peut incarner : conseiller financier, chef cuisinier, guide touristique, tuteur, coach et médecin.

IQR.Codes pour les entreprises

A team creates a product, drops in the PDF documentation, and optionally writes a system prompt that steers how the assistant answers about that one product. What comes out is a secure knowledge base and a QR code pointing at it — branded SMS or web chat, no support ticket in between.

Le tableau de bord IQR.Codes : un numéro vert partagé, le solde du compte et le forfait en cours affichés en haut de la page, ainsi qu'un formulaire « Créer un nouveau produit » comprenant une zone de glisser-déposer pour un fichier PDF, à côté des champs dédiés au nom du produit, à sa description et à une invite système facultative.

Gestion des codes QR

Every product has its own row, with codes to view, edit and download. That download is what actually gets printed — on packaging, on an event flyer, on a sticker beside the machine — so the customer with the question is one camera scan away from the answer.

Le tableau « Produits et codes QR », qui répertorie trois produits avec leurs dates de création, la mention « Prêt » pour chacun d'entre eux, ainsi que des codes QR et des boutons « Modifier » sur chaque ligne.

Une boîte de réception unique pour tous les canaux

Web chat and SMS land in the same log, with the message, the time, the direction and the delivery status on a single line. It is what turns the chatbot from something a business hopes is working into something it can audit — and what shows which questions customers keep asking.

L'écran « Journaux de messages » affiche dix messages du canal Web avec leur texte, leur horodatage, leur type (envoyé ou reçu) et leur statut de livraison, paginés de 1 à 10 sur 16.

Les formules et ce que chacune comprend

Three Stripe tiers, where the feature matrix is the product decision made visible. The entry plan is web chat reached from a printed code, the middle one adds SMS on a shared toll-free number, and the top one is a dedicated line for a brand that wants the number to be its own.

L'écran « Choisissez votre forfait », qui compare les formules IQR Flash à 20 dollars par mois, IQR Pro à 40 dollars et Enterprise à 100 dollars, au-dessus d'un tableau récapitulatif des fonctionnalités comprenant le chat en ligne à partir d'un code QR, la conversion QR-SMS, les numéros verts partagés et dédiés, ainsi que le routage basé sur l'IA.

Impact & résultats

Assez rapide pour répondre, assez rigoureux pour inspirer confiance.

La plateforme s'est appuyée sur des indicateurs chiffrés précis plutôt que sur des impressions : le temps nécessaire pour qu'un document soit indexé, le temps de réponse, le taux de réussite de la reconnaissance optique de caractères (OCR) sur un scan de mauvaise qualité, et l'étendue de l'accès aux données d'une organisation par une autre.

Importation de bout en bout d'un fichier PDF de 10 Mo
Récupération de vecteurs (p. 95)
Précision de l'OCR sur les numérisations
Isolation des données multi-locataires

Ce qu'il fallait résoudre

Extraction de texte à partir de fichiers PDF contenant des images

Solution: Une étape de prétraitement par OCR et un passage de nettoyage heuristique sont effectués avant que les données n'atteignent l'analyseur du LLM, le tout accompagné de tentatives répétées et de contrôles de qualité. C'est cette combinaison qui a permis de faire passer la précision sur des numérisations difficiles et de mauvaise qualité d'un niveau inutilisable à un niveau fiable.

Recherche en moins d'une seconde à grande échelle

Solution: Index pgvector optimisés, écritures par lots et similarité cosinus calculée sur des portées filtrées plutôt que sur l'ensemble du corpus — avec une mise en cache légère des métadonnées pour les requêtes récurrentes.

Isolation multi-locataires stricte

Solution: Un schéma imposé par RLS avec séparation des rôles de service, et Supabase Storage accessible uniquement via des URL signées dans le cadre de politiques à portée limitée. Les données organisationnelles sont séparées au niveau de la base de données, et non par le code qui les interroge.

Questions

Cette plateforme a été conçue, développée et gérée de A à Z par l'équipe d'experts de CodeMyPixel pour le compte de notre client, Modezilla LLC (États-Unis).

Vous disposez de documents que personne ne peut consulter ?

Transformons-les en réponses.