step-9: add dynamic epilog and improve argparse help text
- description spiega scopo e prerequisiti - help di --stem rimosso riferimento al documento specifico - epilog mostra sintassi del loop interattivo - epilog lista le collection ChromaDB disponibili a runtime
This commit is contained in:
+40
-3
@@ -180,10 +180,47 @@ def run_loop(collection: chromadb.Collection) -> None:
|
|||||||
|
|
||||||
# ─── Entry point ──────────────────────────────────────────────────────────────
|
# ─── Entry point ──────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
def _build_epilog() -> str:
|
||||||
|
lines = [
|
||||||
|
"Uso:",
|
||||||
|
" python step-9/rag.py --stem <nome>",
|
||||||
|
"",
|
||||||
|
"Loop interattivo:",
|
||||||
|
" <domanda> risposta basata sul documento",
|
||||||
|
" <domanda> -v risposta + chunk recuperati con score di similarità",
|
||||||
|
" exit termina",
|
||||||
|
]
|
||||||
|
if CHROMA_DIR.exists():
|
||||||
|
try:
|
||||||
|
client = chromadb.PersistentClient(path=str(CHROMA_DIR))
|
||||||
|
names = [c.name for c in client.list_collections()]
|
||||||
|
if names:
|
||||||
|
lines += ["", f"Collection disponibili: {', '.join(names)}"]
|
||||||
|
else:
|
||||||
|
lines += ["", "Nessuna collection trovata — eseguire prima: python step-8/ingest.py"]
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
return "\n".join(lines)
|
||||||
|
|
||||||
|
|
||||||
def main() -> int:
|
def main() -> int:
|
||||||
parser = argparse.ArgumentParser(description="Step 9 — Pipeline RAG interattiva")
|
parser = argparse.ArgumentParser(
|
||||||
parser.add_argument("--stem", required=True,
|
description=(
|
||||||
help="Nome della collection ChromaDB (es. nietzsche)")
|
"Step 9 — Pipeline RAG interattiva\n\n"
|
||||||
|
"Risponde a domande in linguaggio naturale su un documento\n"
|
||||||
|
"indicizzato in ChromaDB da step-8/ingest.py."
|
||||||
|
),
|
||||||
|
epilog=_build_epilog(),
|
||||||
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--stem",
|
||||||
|
required=True,
|
||||||
|
help=(
|
||||||
|
"Nome della collection ChromaDB da interrogare. "
|
||||||
|
"Le collection vengono create da: python step-8/ingest.py --stem <nome>"
|
||||||
|
),
|
||||||
|
)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
print("─── Step 9 — Pipeline RAG ────────────────────────────────────────────\n")
|
print("─── Step 9 — Pipeline RAG ────────────────────────────────────────────\n")
|
||||||
|
|||||||
Reference in New Issue
Block a user