# 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 ```bash curl -fsSL https://ollama.com/install.sh | sh ``` Verifica che il servizio sia attivo: ```bash ollama list ``` ### Disinstalla Ollama ```bash # 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: ```bash ollama pull bge-m3 ``` Alternativa leggera (principalmente inglese, ~274 MB): ```bash 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: ```bash 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 ```bash ollama rm qwen3.5:4b ollama rm nomic-embed-text ``` Per vedere tutti i modelli installati: ```bash ollama list ``` --- ## 3. Installa chromadb nel venv ```bash source .venv/bin/activate pip install chromadb ``` Aggiorna anche `requirements.txt`: ```bash pip freeze | grep chromadb >> requirements.txt ``` ### Disinstalla chromadb ```bash 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: > ```bash > deactivate > rm -rf .venv > python -m venv .venv > source .venv/bin/activate > pip install -r requirements.txt > ``` --- ## 4. Verifica tutto ```bash 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 ``` --- ## Prossimo step ```bash python step-8/ingest.py --stem nietzsche ```