From c146a5726247555a756a7c3879e7d0309d5b59e9 Mon Sep 17 00:00:00 2001 From: David-Wu1119 <133224895+David-Wu1119@users.noreply.github.com> Date: Thu, 3 Sep 2026 11:00:20 -0400 Subject: [PATCH] Fix two NameErrors in the e2e-rag reference implementation evaluation.py branched on an undefined `has_reranker` when printing reranked results, so verbose output raised NameError whenever reranking had run. Bind it once from the same condition the reranking step uses and share it, rather than repeating the attribute chain. reference_SUT_datasetup.py called log.warning() from the ImportError handler for BeautifulSoup, but `log` is only created after that try/except. A missing bs4 therefore raised NameError instead of the intended warning, so the graceful HAVE_HTML fallback never worked. Move the logging setup above the import attempt. --- e2e-rag/evaluation.py | 6 ++++-- e2e-rag/reference_SUT_datasetup.py | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/e2e-rag/evaluation.py b/e2e-rag/evaluation.py index 226f7d3d29..60d7d35b1a 100644 --- a/e2e-rag/evaluation.py +++ b/e2e-rag/evaluation.py @@ -141,8 +141,10 @@ def evaluate_retrieval_query(rag_db, query: str, expected_urls: List[str], # Step 2: Apply reranking if enabled and reranker is available reranking_time = 0.0 - if not no_rerank and hasattr( - rag_db, '_reranker_model') and rag_db._reranker_model is not None: + has_reranker = ( + getattr(rag_db, '_reranker_model', None) is not None + ) + if not no_rerank and has_reranker: # Safety check: If no results retrieved, skip reranking if not results: if verbose: diff --git a/e2e-rag/reference_SUT_datasetup.py b/e2e-rag/reference_SUT_datasetup.py index 7190e7a683..240ec7f648 100644 --- a/e2e-rag/reference_SUT_datasetup.py +++ b/e2e-rag/reference_SUT_datasetup.py @@ -37,6 +37,9 @@ from text_splitter import split_into_fixed_passages from utils import get_device_config, load_url_mapping, get_base_filename +logging.basicConfig(level=logging.INFO) +log = logging.getLogger("DatasetupSUT") + # Import HTML extractor try: from bs4 import BeautifulSoup @@ -46,9 +49,6 @@ HAVE_HTML = False log.warning("BeautifulSoup not available - HTML processing disabled") -logging.basicConfig(level=logging.INFO) -log = logging.getLogger("DatasetupSUT") - class DatasetupSUT: """