Files
rag-from-scratch/config.py
T
davide 98a8eaa9fb docs/fix: aggiorna README e fix ingest per embedding robusto
README riscritto per rispecchiare la pipeline attuale:
- rimossi riferimenti a Stage 1, md_optimizer, fix_chunks
- pipeline semplificata: MinerU .md → chunker → ingest → rag
- tabelle parametri aggiornate (SKIP_HEADINGS, SKIP_PRE_HEADING,
  MERGE_SHORT_PARAGRAPHS, EMBED_MAX_CHARS al posto dei vecchi)
- struttura repo corretta

ingest.py: strip tag HTML ed entità prima dell'embedding per evitare
HTTP 500 da Ollama su chunk con tabelle HTML grezze; aggiunto
EMBED_MAX_CHARS (default 6000) in config.py.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 14:29:06 +02:00

60 lines
3.3 KiB
Python

# ─── Configurazione RAG ───────────────────────────────────────────────────────
#
# Modifica questo file per cambiare i parametri della pipeline.
#
# Uso:
# python rag.py --stem nietzsche
# ──────────────────────────────────────────────────────────────────────────────
# ── Retrieval ─────────────────────────────────────────────────────────────────
# Numero di chunk da recuperare per ogni domanda.
# Valori più alti = più contesto, risposte potenzialmente più complete,
# ma prompt più lunghi e generazione più lenta.
TOP_K = 6
# ── Generazione ───────────────────────────────────────────────────────────────
# Temperatura del modello LLM.
# 0.0 = completamente deterministico (stessa risposta ad ogni run)
# 0.7 = più creativo e vario
TEMPERATURE = 0.2
# Disabilita il "thinking" (ragionamento interno) nei modelli Qwen3/Qwen3.5.
# True = risposta diretta, più veloce
# False = ragionamento interno abilitato (più lento ma potenzialmente più accurato)
NO_THINK = True
# ── Embedding ─────────────────────────────────────────────────────────────────
# Modello di embedding usato da Ollama.
# Deve corrispondere al modello usato durante la vettorizzazione (ingest.py).
# Se cambi questo, devi rieseguire ingest.py con --force.
EMBED_MODEL = "nomic-embed-text"
# Caratteri massimi inviati al modello di embedding.
# Il testo viene troncato SOLO per il vettore; il documento completo
# rimane in ChromaDB. nomic-embed-text: 8192 token ≈ 6000 char sicuri.
EMBED_MAX_CHARS: int = 6000
# ── Ollama ────────────────────────────────────────────────────────────────────
# URL del server Ollama (default: locale sulla porta 11434).
OLLAMA_URL = "http://localhost:11434"
# Modello LLM. Scegli in base alla RAM disponibile (vedi README).
OLLAMA_MODEL = "qwen3.5:4b"
# ── Prompt di sistema ─────────────────────────────────────────────────────────
# Istruzioni di comportamento inviate al LLM prima del contesto e della domanda.
# Modifica per cambiare il tono, la lingua, il grado di libertà interpretativa
# o le condizioni di fallback ("non so rispondere").
SYSTEM_PROMPT = (
"Sei un assistente che risponde usando il contesto fornito. "
"Sintetizza e interpreta liberamente i passaggi del contesto per rispondere alla domanda. "
"Se il contesto contiene informazioni pertinenti, anche indirette, usale per costruire una risposta. "
"Solo se il contesto è completamente irrilevante, rispondi: "
"\"Non trovo questa informazione nel documento.\""
)