refactor: elimina step-7 e step-9, consolida script alla root

- step-9/: config.py, rag.py, retrieve.py → root;
  test_ollama.py → ollama/
- step-7/: eliminata, già coperta da ollama/
- sys.path aggiornati in rag.py, retrieve.py, ingest.py,
  check_env.py (step-7 e ollama)
- Riferimenti step-9/config.py → config.py in tutti i file
This commit is contained in:
2026-04-17 18:50:31 +02:00
parent 865bd58101
commit ce3823dc47
8 changed files with 605 additions and 20 deletions
+8 -8
View File
@@ -15,14 +15,14 @@ salva in ChromaDB (vector store persistente su disco).
## Configurazione modello
Il modello di embedding viene letto da **`step-9/config.py`**:
Il modello di embedding viene letto da **`config.py`**:
```python
# step-9/config.py
# config.py
EMBED_MODEL = "nomic-embed-text" # ← cambia qui
```
> Il modello scelto qui deve corrispondere a quello usato in step-9.
> Il modello scelto qui deve corrispondere a quello usato in rag.py.
> Se lo cambi dopo aver già vettorizzato, devi rieseguire step-8 con `--force`.
---
@@ -54,7 +54,7 @@ distanza coseno. La directory è ignorata da git (generata automaticamente).
## Modelli supportati
Stessi modelli raccomandati nel [README di step-7](../step-7/README.md).
Stessi modelli raccomandati nel [README di ollama](../ollama/README.md).
Il modello deve essere scaricato in Ollama prima di eseguire questo script
(`ollama pull <modello>`).
@@ -81,16 +81,16 @@ Prima scelta: `qwen3-embedding:0.6b`.
`qwen3-embedding` + `qwen3.5` condividono tokenizer e spazio semantico —
il retrieval è più coerente rispetto a modelli di famiglie diverse.
### Coerenza tra step-8 e step-9
### Coerenza tra ingest e retrieval
**`EMBED_MODEL` deve essere identico in step-8 e step-9.**
ChromaDB memorizza i vettori generati con un certo modello. Se step-9 usa un
**`EMBED_MODEL` deve essere identico in `ingest.py` e `rag.py`.**
ChromaDB memorizza i vettori generati con un certo modello. Se `rag.py` usa un
modello diverso per la query di ricerca, gli spazi vettoriali non corrispondono
e il retrieval restituisce risultati casuali — senza alcun errore visibile.
**Dopo aver cambiato `EMBED_MODEL`, riesegui sempre con `--force`.**
Senza `--force` lo script salta la collection già esistente — i vecchi vettori
(generati col modello precedente) restano e continuano a essere usati da step-9.
(generati col modello precedente) restano e continuano a essere usati da `rag.py`.
```bash
# Cambio modello → ricrea sempre la collection