Skip to content

Commit 42991a9

Browse files
gabrielspmoreirasosahiboliu61
authored
Adding dataset_name argument to pipelines index() method (#1665)
Co-authored-by: sosahi <syousefisahi@nvidia.com> Co-authored-by: boliu61 <36865621+boliu61@users.noreply.github.com>
1 parent 4e15d81 commit 42991a9

4 files changed

Lines changed: 31 additions & 8 deletions

File tree

retrieval-bench/src/retrieval_bench/cli/evaluate.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,15 +199,15 @@ def _run_evaluation(
199199

200200
# Cache-only mode: build corpus embeddings and exit without running queries.
201201
if cache_only:
202-
pipeline.dataset_name = dataset_name
203-
pipeline.index(corpus_ids=corpus_ids, corpus_images=corpus_images, corpus_texts=corpus_texts)
202+
pipeline.index(
203+
corpus_ids=corpus_ids, corpus_images=corpus_images, corpus_texts=corpus_texts, dataset_name=dataset_name
204+
)
204205
print("Corpus embeddings cached. Exiting (--cache-only).")
205206
return
206207

207208
# Evaluate
208209
print("\nRunning evaluation...")
209210
try:
210-
pipeline.dataset_name = dataset_name
211211
trace_run_name_eff = trace_run_name or default_trace_run_name(pipeline)
212212
results = evaluate_retrieval(
213213
pipeline=pipeline,

retrieval-bench/src/retrieval_bench/pipeline_evaluation/evaluator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def _filtered_run_for_query(qid: str, run_q: Any) -> Any:
9191
return out
9292

9393
# Dataset context (for trace directory layout).
94-
dataset_name_eff = dataset_name or getattr(pipeline, "dataset_name", None) or "unknown_dataset"
94+
dataset_name_eff = dataset_name or "unknown_dataset"
9595

9696
# Trace run name: always enabled; default is <PipelineClass>__<model_short>.
9797
trace_run_name_eff = trace_run_name or default_trace_run_name(pipeline)

retrieval-bench/src/retrieval_bench/pipelines/agentic.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,7 @@ def __init__(
253253
self.retriever_top_k = int(retriever_top_k)
254254
self.num_concurrent = max(1, int(num_concurrent))
255255
self._backend_kwargs = dict(backend_kwargs)
256+
self._dataset_name = None
256257

257258
# Resolve os.environ/... convention for base_url.
258259
if base_url and str(base_url).strip().startswith("os.environ/"):
@@ -288,6 +289,14 @@ def __init__(
288289
print("Error: CUDA is not available. This pipeline requires a GPU.")
289290
sys.exit(1)
290291

292+
@property
293+
def dataset_name(self):
294+
return self._dataset_name
295+
296+
@dataset_name.setter
297+
def dataset_name(self, value: str):
298+
self._dataset_name = value
299+
291300
# -----------------------------------------------------------------------
292301
# Async query loop
293302
# -----------------------------------------------------------------------
@@ -525,10 +534,13 @@ async def _process_query(q_idx: int, qid: str, query_text: Any) -> None:
525534
# Main entry point
526535
# -----------------------------------------------------------------------
527536

528-
def index(self, corpus_ids: List[str], corpus_images: List[Any], corpus_texts: List[str]) -> None:
537+
def index(
538+
self, corpus_ids: List[str], corpus_images: List[Any], corpus_texts: List[str], dataset_name: str = None
539+
) -> None:
529540
super().index(corpus_ids=corpus_ids, corpus_images=corpus_images, corpus_texts=corpus_texts)
530541

531-
dataset_name = self.dataset_name
542+
if dataset_name is not None:
543+
self.dataset_name = dataset_name
532544
task_key = infer_bright_task_key(dataset_name)
533545

534546
corpus = [{"image": img, "markdown": md} for img, md in zip(corpus_images, corpus_texts)]

retrieval-bench/src/retrieval_bench/pipelines/dense.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,21 @@ def __init__(self, *, backend: str, top_k: int = 100, **kwargs: Any) -> None:
5151
print("Error: CUDA is not available. This pipeline requires a GPU.")
5252
sys.exit(1)
5353

54-
def index(self, corpus_ids: List[str], corpus_images: List[Any], corpus_texts: List[str]) -> None:
54+
@property
55+
def dataset_name(self):
56+
return self._dataset_name
57+
58+
@dataset_name.setter
59+
def dataset_name(self, value: str):
60+
self._dataset_name = value
61+
62+
def index(
63+
self, corpus_ids: List[str], corpus_images: List[Any], corpus_texts: List[str], dataset_name: str = None
64+
) -> None:
5565
super().index(corpus_ids=corpus_ids, corpus_images=corpus_images, corpus_texts=corpus_texts)
5666

57-
dataset_name = self.dataset_name
67+
if dataset_name is not None:
68+
self.dataset_name = dataset_name
5869
task_key = infer_bright_task_key(dataset_name)
5970

6071
corpus = [{"image": img, "markdown": md} for img, md in zip(corpus_images, corpus_texts)]

0 commit comments

Comments
 (0)