Files
rag-from-scratch/step-7/README.md
T
davide a5f8b8d119 step-7: add check_env.py, README, update requirements
- check_env.py: verifica ollama, embedding model, LLM model, chromadb
- Rileva qualsiasi modello embedding/LLM installato (non lista fissa)
- step-7/README.md: guida installazione/disinstallazione Ollama, modelli, chromadb
- requirements.txt: aggiunge chromadb per step-8
2026-04-14 07:54:04 +02:00

3.6 KiB

Step 7 — Verifica ambiente

Prima di procedere con la vettorizzazione (step 8) devi avere installato:

  • Ollama — server locale per LLM e embedding
  • un modello di embedding (es. nomic-embed-text, bge-m3)
  • un modello LLM (es. qwen3.5:4b, qwen3:4b)
  • chromadb — libreria Python per il vector store

1. Installa Ollama

curl -fsSL https://ollama.com/install.sh | sh

Verifica che il servizio sia attivo:

ollama list

Disinstalla Ollama

# Ferma e rimuovi il servizio systemd
sudo systemctl stop ollama
sudo systemctl disable ollama
sudo rm /etc/systemd/system/ollama.service
sudo systemctl daemon-reload

# Rimuovi il binario
sudo rm /usr/local/bin/ollama

# Rimuovi modelli e dati (opzionale — occupa spazio su disco)
# I modelli sono salvati sotto l'utente di sistema "ollama", non nella tua home
sudo rm -rf /usr/share/ollama

# Rimuovi l'utente e il gruppo di sistema creati dall'installer (opzionale)
sudo userdel ollama
sudo groupdel ollama

2. Scarica i modelli

Modello di embedding

Per testo in italiano usa bge-m3 — addestrato su 100+ lingue, gestisce l'italiano meglio dei modelli English-first:

ollama pull bge-m3

Alternativa leggera (principalmente inglese, ~274 MB):

ollama pull nomic-embed-text
Modello Dim Dimensione Lingue
bge-m3 1024 ~1.2 GB 100+ lingue incl. IT
nomic-embed-text 768 ~274 MB principalmente EN
mxbai-embed-large 1024 ~670 MB principalmente EN
all-minilm 384 ~46 MB principalmente EN

Modello LLM

Scegli in base alla RAM disponibile:

ollama pull qwen3.5:4b   # consigliato per 8 GB RAM
Modello RAM consigliata Note
qwen3:8b ≥ 10 GB ottima qualità, troppo stretto su 8 GB
qwen3.5:4b ≥ 5 GB buon bilanciamento, consigliato per 8 GB
qwen3:4b ≥ 5 GB alternativa stabile
phi4-mini ≥ 4 GB ottimo per instruction following
qwen3:1.7b ≥ 3 GB leggero, qualità base

Se usi un modello diverso da qwen3.5:4b, aggiorna la costante LLM_MODEL in step-9/rag.py.

Disinstalla un modello

ollama rm qwen3.5:4b
ollama rm nomic-embed-text

Per vedere tutti i modelli installati:

ollama list

3. Installa chromadb nel venv

source .venv/bin/activate
pip install chromadb

Aggiorna anche requirements.txt:

pip freeze | grep chromadb >> requirements.txt

Disinstalla chromadb

source .venv/bin/activate

# Rimuovi il pacchetto e le dipendenze non più necessarie
pip uninstall chromadb -y
pip autoremove 2>/dev/null || pip uninstall $(pip-autoremove chromadb -l 2>/dev/null) -y 2>/dev/null

# Rimuovi i dati del vector store (opzionale — occupa spazio su disco)
rm -rf chroma_db/

pip autoremove richiede il pacchetto pip-autoremove (pip install pip-autoremove). In alternativa, elimina e ricrea il venv per una pulizia completa:

deactivate
rm -rf .venv
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

4. Verifica tutto

source .venv/bin/activate
python step-7/check_env.py

Output atteso se tutto è a posto:

✅ ollama trovato nel PATH
✅ ollama risponde correttamente
✅ modello embedding trovato: nomic-embed-text:latest
✅ modello LLM trovato: qwen3.5:4b

✅ chromadb importabile

✅ Ambiente pronto — procedi con la vettorizzazione:
   python step-8/ingest.py --stem <nome>

Prossimo step

python step-8/ingest.py --stem nietzsche