fix(rag): exclure hermes/builtin de l'index funk-docs

Les rapports auto-générés par hermes-auto-improve (admin/hermes/builtin/,
"ne pas éditer") représentaient ~84% des points de la collection et noyaient
la vraie doc → rag-query remontait du bruit. On les élague à l'ingestion
(os.walk), surchargeable via RAG_EXCLUDE. Collection re-bâtie : 403 points
propres (0 builtin), rag-query remonte de nouveau les bons documents.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
alkatrazz 2026-06-19 21:12:56 +02:00
parent 577d61ebaa
commit e811e862ae

View file

@ -19,6 +19,13 @@ COLLECTION = os.environ.get("RAG_COLLECTION", "funk-docs")
VECTOR_DIM = 4096
CHUNK_MAX = 2000
# Dossiers (relatifs à docs_dir) exclus de l'index : rapports auto-générés par
# hermes-auto-improve (méta-commentaires sur la doc, pas de la connaissance) — ils
# noyaient la vraie doc (~84% des points). Surchargeable via RAG_EXCLUDE (séparé par ":").
EXCLUDE_DIRS = [
p for p in os.environ.get("RAG_EXCLUDE", "hermes/builtin").split(":") if p
]
def _request(method, url, data=None):
body = json.dumps(data).encode() if data is not None else None
@ -95,9 +102,15 @@ def point_id(file_path, section):
def ingest(docs_dir):
ensure_collection()
excluded = {os.path.normpath(os.path.join(docs_dir, p)) for p in EXCLUDE_DIRS}
md_files = []
for root, dirs, files in os.walk(docs_dir):
dirs[:] = sorted(d for d in dirs if not d.startswith('.'))
# élague les dossiers cachés et exclus (ex. hermes/builtin)
dirs[:] = sorted(
d for d in dirs
if not d.startswith('.')
and os.path.normpath(os.path.join(root, d)) not in excluded
)
for f in sorted(files):
if f.endswith('.md'):
md_files.append(os.path.join(root, f))