Files
rag-from-scratch/step-8
davide 6594033673 feat(step-7,8): leggi modello da config.py, allinea EMBED_MODELS al README
- step-8/ingest.py: rimuove EMBED_MODEL e OLLAMA_URL hardcoded;
  li importa da step-9/config.py (fonte di verita unica)
- step-7/check_env.py: aggiorna EMBED_MODELS con tutti i modelli
  del README (aggiunge qwen3-embedding, nomic-embed-text-v2-moe,
  paraphrase-multilingual); mostra il modello configurato in config.py
  e verifica proprio quello, non un qualsiasi modello embedding
- step-8/README.md: creato
2026-04-14 18:22:14 +02:00
..

Step 8 — Vettorizzazione

Legge i chunk prodotti da step-6, genera gli embedding tramite Ollama e li salva in ChromaDB (vector store persistente su disco).


Prerequisiti

  • Step-6 completato (esiste step-6/<stem>/chunks.json)
  • Ollama attivo con il modello di embedding scaricato
  • chromadb installato (pip install -r requirements.txt)

Configurazione modello

Il modello di embedding viene letto da step-9/config.py:

# step-9/config.py
EMBED_MODEL = "nomic-embed-text"   # ← cambia qui

Il modello scelto qui deve corrispondere a quello usato in step-9. Se lo cambi dopo aver già vettorizzato, devi rieseguire step-8 con --force.


Uso

# Vettorizza un singolo documento
python step-8/ingest.py --stem <nome>

# Vettorizza tutti i documenti trovati in step-6/
python step-8/ingest.py

# Sovrascrive una collection già esistente
python step-8/ingest.py --stem <nome> --force

# Override modello (senza modificare config.py)
python step-8/ingest.py --stem <nome> --model bge-m3

Output

I vettori vengono salvati in chroma_db/<stem>/ come collection ChromaDB con distanza coseno. La directory è ignorata da git (generata automaticamente).


Modelli supportati

Stessi modelli raccomandati nel README di step-7. Il modello deve essere scaricato in Ollama prima di eseguire questo script (ollama pull <modello>).