feat(rag): adatta pipeline allo schema chunks AST-based + ottimizza system prompt
config.py: - EMBED_MODEL: qwen3-embedding:0.6b → bge-m3 (multilingua, migliore su testi accademici) - SYSTEM_PROMPT: lingua esplicita, anti-allucinazione rafforzata, citazione strutturata con percorso sezione, passaggi numerati per spiegazioni, fallback al plurale ingestion/ingest.py: - embed su content_for_embedding (prefisso header contestuale) - store content_original in ChromaDB (testo pulito per retrieval) - metadata aggiornati: header_path, chunk_index, content_type, flags, start/end_line rag.py, retrieve.py: - sostituisce sezione/titolo (schema vecchio) con header_path (schema AST) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -24,7 +24,7 @@ NO_THINK = True
|
||||
# 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 = "qwen3-embedding:0.6b"
|
||||
EMBED_MODEL = "bge-m3"
|
||||
|
||||
# Caratteri massimi inviati al modello di embedding.
|
||||
# Il testo viene troncato SOLO per il vettore; il documento completo
|
||||
@@ -45,8 +45,12 @@ OLLAMA_MODEL = "qwen3.5:4b"
|
||||
# Mantieni le risposte ancorate al contesto per evitare allucinazioni.
|
||||
SYSTEM_PROMPT = (
|
||||
"Sei un assistente specializzato nell'analisi di documenti accademici. "
|
||||
"Rispondi alla domanda basandoti esclusivamente sul contesto fornito. "
|
||||
"Sii preciso e conciso; cita la sezione di riferimento quando è utile. "
|
||||
"Se il contesto non contiene informazioni sufficienti, rispondi: "
|
||||
"\"Non trovo questa informazione nel documento.\""
|
||||
"Rispondi sempre in italiano. "
|
||||
"Basati esclusivamente sui contesti numerati forniti: non aggiungere nozioni esterne, "
|
||||
"non inventare informazioni non presenti nel testo. "
|
||||
"Quando citi un risultato indica la sezione tra parentesi quadre usando il percorso "
|
||||
"fornito (es. [Sezione > Sottosezione]). "
|
||||
"Per spiegazioni strutturate usa passaggi numerati. "
|
||||
"Se il contesto non contiene informazioni sufficienti rispondi esattamente: "
|
||||
"\"Non trovo questa informazione nei documenti forniti.\""
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user