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
+2 -2
View File
@@ -57,7 +57,7 @@ Alternative supportate:
- `bge-m3`
- `nomic-embed-text`
Se cambi embedding model rispetto a quello usato in step-8, riesegui ingest con `--force` e aggiorna `EMBED_MODEL` in `step-9/config.py`.
Se cambi embedding model rispetto a quello usato in step-8, riesegui ingest con `--force` e aggiorna `EMBED_MODEL` in `config.py`.
### Modello LLM (consigliato per 8 GB RAM)
@@ -65,7 +65,7 @@ Se cambi embedding model rispetto a quello usato in step-8, riesegui ingest con
ollama pull qwen3.5:4b
```
Se usi un modello diverso, aggiorna `OLLAMA_MODEL` in `step-9/config.py`.
Se usi un modello diverso, aggiorna `OLLAMA_MODEL` in `config.py`.
### Disinstalla un modello
+2 -4
View File
@@ -22,7 +22,7 @@ from pathlib import Path
# ─── Lista canonica di modelli embedding supportati ───────────────────────────
# Ordine: prima scelta → ultima scelta (come da README step-7)
# Ordine: prima scelta → ultima scelta (come da ollama/README.md)
EMBED_MODELS = [
"qwen3-embedding",
"nomic-embed-text-v2-moe",
@@ -60,9 +60,7 @@ def _parse_ollama_models(raw_output: str) -> list[str]:
return models
# ─── Modelli configurati in config.py ─────────────────────────────────────────
# Per spostare config.py alla root: cambia solo la riga qui sotto.
sys.path.insert(0, str(Path(__file__).parent.parent / "step-9"))
sys.path.insert(0, str(Path(__file__).parent.parent))
try:
from config import EMBED_MODEL as CONFIGURED_EMBED, OLLAMA_MODEL as CONFIGURED_LLM
except Exception:
+66
View File
@@ -0,0 +1,66 @@
#!/usr/bin/env python3
"""
Test chat locale Ollama — senza RAG, senza ChromaDB.
Uso: python ollama/test_ollama.py
"""
import json
import sys
import urllib.error
import urllib.request
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent))
import config as _cfg
OLLAMA_URL = _cfg.OLLAMA_URL
MODEL = _cfg.OLLAMA_MODEL
TEMPERATURE = _cfg.TEMPERATURE
NO_THINK = _cfg.NO_THINK
def chat(prompt: str) -> str:
payload = json.dumps({
"model": MODEL,
"prompt": prompt,
"stream": False,
"think": not NO_THINK,
"options": {"temperature": TEMPERATURE},
}).encode()
req = urllib.request.Request(
f"{OLLAMA_URL}/api/generate",
data=payload,
headers={"Content-Type": "application/json"},
method="POST",
)
with urllib.request.urlopen(req, timeout=300) as resp:
return json.loads(resp.read())["response"].strip()
def main() -> int:
print(f"─── Chat Ollama ──────────────────────────────── (exit per uscire)")
print(f" Modello : {MODEL}")
print(f" Thinking : {'off' if NO_THINK else 'on'}")
print()
while True:
try:
user = input("Tu: ").strip()
except (EOFError, KeyboardInterrupt):
print("\nUscita.")
break
if not user:
continue
if user.lower() == "exit":
break
try:
reply = chat(user)
print(f"\nAssistente: {reply}\n")
except (urllib.error.URLError, OSError) as e:
print(f"❌ Errore: {e}")
return 0
if __name__ == "__main__":
sys.exit(main())