0Pricing
AI Agents · Lezione

Creare un RAG ingenuo con FAISS o Chroma

Scriva 40 righe di Python: generi l'embedding della query, recuperi i chunk più vicini, li inserisca nel prompt e interroghi l'LLM.

Creare un RAG ingenuo con FAISS o Chroma è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

Un RAG in 40 righe

Ora dispone di tutti gli elementi. Li assembleremo in un RAG naive funzionante su un piccolo insieme di documenti.

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)

Alternativa con FAISS

Se desidera una soluzione completamente locale senza un server DB, FAISS è ancora più semplice:

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]]

Limiti di questo RAG naive

  • Nessuna suddivisione in chunk: funziona solo per documenti brevi
  • Nessun riordinamento
  • Nessun filtraggio dei metadati
  • Nessuna valutazione

Risolveremo tutti questi aspetti nei corsi successivi.

Costo per query

Per ogni query che esegue:

  • 1 chiamata per l'embedding (~$0.00002)
  • 1 completamento chat con ~500 token di contesto (~$0.0001)

Totale: circa un centesimo ogni 100 domande.

Metta in produzione e iteri

Questo RAG di 40 righe è già migliore della maggior parte dei chatbot senza contesto nel rispondere a domande fattuali sui Suoi dati. Lo metta in produzione, osservi come gli utenti lo mettono in difficoltà, poi aggiunga tecniche avanzate dove servono di più.

Top-K nel RAG ingenuo

Che cosa significa il recupero "top-K"?

Riepilogo

Ha creato un RAG. Ora vediamo i database vettoriali che permettono di portarlo oltre un singolo laptop.

Domande Frequenti

La lezione «Creare un RAG ingenuo con FAISS o Chroma» è gratuita?

Sì — il testo completo di «Creare un RAG ingenuo con FAISS o Chroma» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.

Cosa imparerò in «Creare un RAG ingenuo con FAISS o Chroma»?

Scriva 40 righe di Python: generi l'embedding della query, recuperi i chunk più vicini, li inserisca nel prompt e interroghi l'LLM. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Agents?

Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Creare un RAG ingenuo con FAISS o Chroma»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Agents?

Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Cosa risolve RAG (limite di conoscenza e allucinazioni)
  2. Strategie di chunking (fisso, per frasi, semantico)
  3. Indicizzare un insieme di documenti
  4. Creare un RAG ingenuo con FAISS o Chroma
← Torna a AI Agents