0Pricing
AI Agents · Leçon

Construire un RAG naïf avec FAISS ou Chroma

Écrivez 40 lignes de Python : générez l’embedding de la requête, récupérez les K segments les plus proches, insérez-les dans le prompt et interrogez le LLM.

Construire un RAG naïf avec FAISS ou Chroma est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Un RAG en 40 lignes

Vous disposez maintenant de tous les éléments. Nous allons les assembler pour créer un RAG naïf fonctionnel sur un petit ensemble de documents.

Step 1: Install

# pip install openai chromadb

Step 2: Sample Corpus

docs = [
    'Python is a high-level interpreted programming language created by Guido van Rossum in 1991.',
    'Pizza is a savory dish of Italian origin consisting of a round flat base of dough.',
    'The Eiffel Tower is a wrought-iron lattice tower in Paris, France, completed in 1889.',
    'NumPy is a Python library used for working with arrays and numerical computing.',
    'The Great Wall of China is a series of fortifications built across northern China.'
]
print(f"Loaded {len(docs)} documents")
for i, d in enumerate(docs):
    print(f"{i+1}. {d[:50]}...")

Step 3: Set Up Chroma

import chromadb
from openai import OpenAI

client = chromadb.Client()
collection = client.create_collection('demo')
openai_client = OpenAI()

Step 4: Embed and Store

embed_response = openai_client.embeddings.create(
    model='text-embedding-3-small',
    input=docs
)
vectors = [d.embedding for d in embed_response.data]

collection.add(
    ids=[f'd{i}' for i in range(len(docs))],
    embeddings=vectors,
    documents=docs
)

Step 5: Embed the Query

query = 'Tell me about Python programming'
query_vec = openai_client.embeddings.create(
    model='text-embedding-3-small',
    input=query
).data[0].embedding

Step 6: Retrieve Top-K

results = collection.query(
    query_embeddings=[query_vec],
    n_results=2
)
retrieved = results['documents'][0]
print(retrieved)
# ['Python is a high-level...', 'NumPy is a Python library...']

Step 7: Build the RAG Prompt

context = '\n'.join(f'- {chunk}' for chunk in retrieved)
prompt = f'''
Using only the context below, answer the question. If unknown, say so.

Context:
{context}

Question: {query}
'''

Step 8: Call the LLM

response = openai_client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': prompt}],
    temperature=0,
)
print(response.choices[0].message.content)

Alternative avec FAISS

Si vous souhaitez une solution entièrement locale sans serveur de base de données, FAISS est encore plus simple :

import faiss
import numpy as np

index = faiss.IndexFlatIP(1536)  # inner product, normalised vectors
index.add(np.array(vectors).astype('float32'))

D, I = index.search(np.array([query_vec]).astype('float32'), k=2)
retrieved = [docs[i] for i in I[0]]

Limites de ce RAG naïf

  • Aucune segmentation — fonctionne uniquement pour les documents courts
  • Aucun reclassement
  • Aucun filtrage par métadonnées
  • Aucune évaluation

Nous corrigerons tout cela dans des cours ultérieurs.

Coût par requête

Pour chaque requête que vous effectuez :

  • 1 appel de vectorisation (environ 0,00002 $)
  • 1 complétion conversationnelle avec environ 500 jetons de contexte (environ 0,0001 $)

Total : environ un centième de centime par question.

Mettez en production, puis itérez

Ce RAG de 40 lignes surpasse déjà la plupart des agents conversationnels sans contexte pour les questions-réponses factuelles sur vos données. Mettez-le en production, observez comment les utilisateurs le mettent à l’épreuve, puis ajoutez des techniques avancées là où elles sont les plus utiles.

Les K premiers résultats du RAG naïf

Que signifie la récupération des K premiers résultats ?

Récapitulatif

Vous avez construit un RAG. Nous allons maintenant découvrir les bases de données vectorielles capables de dépasser les limites d’un seul ordinateur portable.

Questions Fréquemment Posées

La leçon « Construire un RAG naïf avec FAISS ou Chroma » est-elle gratuite ?

Oui — le texte complet de « Construire un RAG naïf avec FAISS ou Chroma » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Construire un RAG naïf avec FAISS ou Chroma » ?

Écrivez 40 lignes de Python : générez l’embedding de la requête, récupérez les K segments les plus proches, insérez-les dans le prompt et interrogez le LLM. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Agents ?

Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Construire un RAG naïf avec FAISS ou Chroma » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?

Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Ce que RAG permet de résoudre (date de connaissance, hallucinations)
  2. Stratégies de découpage (fixe, par phrase, sémantique)
  3. Indexer un ensemble de documents
  4. Construire un RAG naïf avec FAISS ou Chroma
← Retour à AI Agents