Faire chercher votre IA dans vos propres documents
Vous posez une question à votre IA sur votre propre activité, et elle invente : elle répond à côté, cite des choses qui n'existent pas. Normal : elle n'a aucun accès à vos documents. Vos transcripts, vos cours, vos notes, votre offre, votre FAQ dorment dans des fichiers qu'elle ne lit jamais.
Cette masterclass installe pgvector dans votre base Supabase : la recherche par le sens, directement dans la base que vous avez déjà, sans payer Pinecone ni aucun service vectoriel en plus. À la fin, votre IA cherche dans vos propres contenus et les cite, au lieu d'inventer.
Ce que cet exercice ne peut pas casser
Tout se passe dans votre base Supabase, sans toucher à l'existant : l'extension s'active en une ligne, la table est nouvelle, et le premier document inséré est un document factice. Vous prouvez que le pipeline répond avant de verser quoi que ce soit de réel, et vous commencez par dix documents, pas mille.
Ce que vous saurez faire à la fin
- Activer pgvector dans votre base Supabase en une commande, et savoir ce que ça change.
- Monter la chaîne complète : table de documents, index HNSW, fonction de recherche par similarité.
- Prouver que le pipeline répond avec un document factice avant d'y verser vos vrais contenus.
- Faire chercher votre IA dans vos propres documents au lieu de la laisser inventer.
- Niveau membre· le prompt prêt à coller qui génère votre socle pgvector complet : le SQL de la table, l'index, la fonction de recherche et le script d'ingestion.
Six blocs, chacun s'appuie sur le précédent. Une seule règle traverse tout : la même dimension de vecteur partout.
Six blocs, toujours dans le même ordre
Le socle se monte comme une colonne : extension, table, index, fonction, test, puis seulement l'ingestion. Chaque bloc s'appuie sur le précédent, et une règle traverse tout : la même dimension de vecteur partout, de la table au script d'ingestion. C'est l'oubli de cette règle, ou un test sauté, qui casse la plupart des pipelines.
1Activez l'extension vectordoute : « est-ce que je vais casser ma base ? »
Une ligne dans le SQL Editor de Supabase : CREATE EXTENSION IF NOT EXISTS vector; Elle apprend à PostgreSQL à stocker et comparer des vecteurs, c'est tout. Rien d'autre ne change dans votre base, vos tables existantes ne bougent pas.
2Créez la table des documentsdoute : « quelles colonnes, au juste ? »
Cinq colonnes suffisent : un identifiant, le texte, les métadonnées au format JSONB (source, titre, date, type), la colonne vecteur à la dimension de votre moteur, et la date de création. La dimension choisie ici engage tout le reste : 1024 pour Voyage AI, 1536 pour OpenAI par exemple, et la même partout ensuite.
3Posez l'index de vitesse (HNSW)doute : « à quoi sert un index ici ? »
L'index HNSW se pose sur la colonne vecteur. Sans lui, chaque recherche compare votre question à tous les documents un par un ; avec lui, la recherche reste rapide quand vos contenus s'accumulent.
4Créez la fonction de recherchedoute : « comment l'IA va-t-elle chercher ? »
Une fonction de recherche par similarité, en distance cosinus : elle prend un vecteur de requête et un nombre de résultats, et renvoie les documents les plus proches avec leur score. C'est elle que votre IA appellera pour trouver, par le sens, le passage qui répond.
5Testez avec un document facticedoute : « comment savoir si ça marche ? »
Insérez un document bidon, puis cherchez dessus. Si le pipeline répond, il est prouvé de bout en bout : vous pouvez verser vos vrais contenus. Jamais l'inverse : on ne déverse pas mille documents dans un pipeline qui n'a jamais répondu.
6Ingérez vos contenus, dix d'aborddoute : « et mes centaines de fichiers ? »
Le script d'ingestion lit un dossier de fichiers texte, transforme chaque fichier en vecteur via votre moteur, et insère le tout dans la table. Commencez par dix documents, posez votre question test, vérifiez la réponse attendue. Quand le critère de réussite passe, versez le reste.
À vous de jouer : posez votre socle
Prenez une feuille (et le SQL Editor de Supabase pour la dernière tâche). C'est exactement la matière que le prompt attend.
Le résultat, en 30 secondes
À partir de votre seul socle (moteur, dimension, contenus, métadonnées, critère de réussite), le prompt sort tout dans l'ordre d'exécution : les blocs SQL commentés en français, le script d'ingestion, et la checklist finale avant de verser vos vrais contenus.
Récapitulatif : Voyage AI, 1024 dimensions, 80 transcripts et une FAQ. Bloc 1 : l'extension. Bloc 2 : la table documents, chaque colonne commentée. Bloc 3 : l'index HNSW. Bloc 4 : la fonction de recherche en distance cosinus, avec la façon de l'appeler. Bloc 5 : le test factice. Puis le script d'ingestion commenté, et la checklist en cinq points avant de verser les vrais contenus.
Le prompt prêt à coller
# RÔLE Tu es un ingénieur data senior, spécialiste de PostgreSQL, de pgvector et des bases vectorielles, qui sait expliquer simplement à un non-technicien. Tu ne t'appuies QUE sur ce que je te donne. Ce qui manque, tu me le demandes, tu ne l'inventes pas. Si une décision technique dépend d'une info que je n'ai pas fournie (dimension du vecteur, moteur d'embedding), tu me poses la question au lieu de choisir à ma place. # CONTEXTE Je veux installer pgvector dans ma base Supabase pour que mon IA cherche dans mes propres documents au lieu d'inventer. Je ne suis pas ingénieur, j'avance pas à pas. Mon socle (si je l'ai, sinon je te le donne en mode interview) :
Le prompt génère votre socle pgvector complet à partir de votre matière : le SQL de la table, l'index, la fonction de recherche et le script d'ingestion. Et si vous partez de zéro, il passe en mode interview et vous pose les questions point par point. Laissez votre email, je vous l'envoie.
Vérifiez que c'est à vous
Vous avez créé votre table avec une colonne vecteur de 1536 dimensions. Plus tard, votre script d'ingestion vectorise vos fichiers avec un moteur qui sort des vecteurs de 1024. Que se passe-t-il, et que fallait-il faire ?
D'abord avec vos mots, sans regarder les options :
Expliquez-le pour l'ancrer
En une phrase, à un confrère qui n'y connaît rien : pourquoi son IA invente-t-elle, et qu'est-ce que pgvector change ? Si vous savez le dire sans jargon, c'est à vous.
Ce que vous savez faire maintenant
- Activer pgvector dans Supabase et savoir ce que l'extension change, et ne change pas, dans votre base.
- Monter le socle dans le bon ordre : extension, table, index HNSW, fonction de recherche, test, ingestion.
- Tenir les deux règles qui sauvent le pipeline : la même dimension de vecteur partout, et un document factice avant les vrais contenus.
La même dimension de vecteur partout : table, index, fonction, ingestion.