6594033673
- 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
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
chromadbinstallato (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>).