60 lines
1.4 KiB
Markdown
60 lines
1.4 KiB
Markdown
|
|
# 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
|
||
|
|
- `chromadb` installato (`pip install -r requirements.txt`)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Configurazione modello
|
||
|
|
|
||
|
|
Il modello di embedding viene letto da **`step-9/config.py`**:
|
||
|
|
|
||
|
|
```python
|
||
|
|
# 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
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 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](../step-7/README.md).
|
||
|
|
Il modello deve essere scaricato in Ollama prima di eseguire questo script
|
||
|
|
(`ollama pull <modello>`).
|