a5f8b8d119
- 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
169 lines
3.6 KiB
Markdown
169 lines
3.6 KiB
Markdown
# 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 <nome>
|
|
```
|
|
|
|
---
|
|
|
|
## Prossimo step
|
|
|
|
```bash
|
|
python step-8/ingest.py --stem nietzsche
|
|
```
|