Skip to main content

ltr-bert-sir-client

Python client for the ELSIE semantic information retrieval API. The API is served by the sir-elsie Hugging Face Space and implements the hybrid retrieval stack associated with the ltr-bert-sir bi-encoder checkpoint: BM25 first stage, pool-restricted LTR-BERT scoring, optional cross-encoder reranking, and library management for long-text corpora.

Authors: Syed Minnatullah Quadri, Vrishali A. Chakkarwar
License: Apache-2.0

Related resources

Resource Description URL
Model Weights, metrics, offline LTRBertSIR huggingface.co/s-m-quadri/ltr-bert-sir
Demo Space (ELSIE) Interactive UI and REST API huggingface.co/spaces/s-m-quadri/sir-elsie
JavaScript client (npm) Companion package npmjs.com/package/@s-m-quadri/ltr-bert-sir-client
Python client (PyPI) This package pypi.org/project/ltr-bert-sir-client
Source (TypeScript) Companion repository github.com/s-m-quadri/ltr-bert-sir-client-js
Source (Python) This repository github.com/s-m-quadri/ltr-bert-sir-client-py
Docker image Self-hosted ELSIE API hub.docker.com/r/smquadri/ltr-bert-sir-elsie

Background

Long-document ad hoc retrieval on MS MARCO is typically staged: a lexical first stage (here BM25@100) defines a candidate pool; a bi-encoder scores only within that pool; scores are fused (linear blend with alpha = 0.85 by default) or passed to a cross-encoder on a short shortlist. The Hub model repository documents the fine-tuned LTR-BERT bi-encoder and offline scoring. This package targets the live HTTP API exposed by the ELSIE Space: search, collection ingest, seed libraries, qrels upload, batch evaluation, and library export.

Default base URL (DEFAULT_SIR_API_URL):

https://huggingface.co/spaces/s-m-quadri/sir-elsie

Pass a different origin to SirClient(...) when the FastAPI app runs locally, via Docker, or elsewhere.

Installation

pip install ltr-bert-sir-client

Requirements: Python 3.10 or newer. Depends on httpx for HTTP.

Configuration

from ltr_bert_sir_client import SirClient, DEFAULT_SIR_API_URL

sir = SirClient(DEFAULT_SIR_API_URL, timeout=120.0)

Use the context manager to close the underlying HTTP client:

with SirClient() as sir:
    print(sir.health())

Search modes

API mode UI label First stage Neural stage Notes
bm25 Fast BM25 none No embedding index required
blend Hybrid BM25@bm25_k LTR-BERT fusion Default; needs encoded collection
semantic Dense semantic pool LTR-BERT Semantic-first variant
ce_cascade Precise Hybrid pool LTR-BERT + MiniLM CE Reranks top ce_top_k
ce_only CE-only CE on pool MiniLM CE Cross-encoder without blend shortcut

Search bodies accept query, optional collection_id, mode, k, bm25_k, ce_top_k, and alpha. Responses include hits, ms, optional trace, and optional eval when qrels are loaded.

API overview

The SirClient class mirrors the Space REST surface (parity with the JavaScript client).

Area Methods
Health and defaults health(), ranking_config()
Collections list_collections(), get_collection(), create_collection(), import_collection(), delete_collection(), cancel_collection()
Ingest and index ingest_file(), ingest_url(), encode(), progress()
Search and documents search(), get_document()
Statistics stats(), clear_stats(), stats_export_url()
Seeds list_seeds(), get_seed(), load_seed(), index_seed(), seed_alice()
Qrels and evaluation qrels_status(), upload_qrels(), delete_qrels(), export_qrels(), annotate_qrels(), evaluate()
Library library_config(), set_library_config(), index_all(), library_status(), import_library(), export_library(), export_library_with_config(), library_export_url()
Binary export export_url(), export_collection(), download()

Additional modules:

Module Role
ltr_bert_sir_client.format bytes_fmt, mode_label, progress_label, and related display helpers
ltr_bert_sir_client.hints Tooltip strings aligned with ELSIE
ltr_bert_sir_client.collections dedupe_collections, duplicate_collections, collections_by_seed
ltr_bert_sir_client.ui write_demo(), theme_css() for a standalone HTML demo

Usage

from ltr_bert_sir_client import SirClient

with SirClient() as sir:
    health = sir.health()
    cols = sir.list_collections()
    cid = cols["collections"][0]["id"]
    result = sir.search(
        {
            "query": "alice rabbit hole curious dream",
            "collection_id": cid,
            "mode": "blend",
            "k": 10,
        }
    )
    for hit in result["hits"]:
        print(hit["title"], hit["score"])

Batch evaluation when qrels are present:

metrics = sir.evaluate(
    cid,
    mode="blend",
    k=100,
    bm25_k=100,
    ce_top_k=32,
)

Generate a minimal browser demo:

from ltr_bert_sir_client.ui import write_demo

write_demo("./demo", "https://huggingface.co/spaces/s-m-quadri/sir-elsie")

Citation

Bibliographies and publication details are on the ltr-bert-sir model card on Hugging Face. Cite MS MARCO when using bundled evaluation qrels or MS MARCO-derived training described there.

License

Apache-2.0. MS MARCO remains under Microsoft research terms when used through the API or bundled seeds.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ltr_bert_sir_client-0.2.2.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ltr_bert_sir_client-0.2.2-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file ltr_bert_sir_client-0.2.2.tar.gz.

File metadata

  • Download URL: ltr_bert_sir_client-0.2.2.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for ltr_bert_sir_client-0.2.2.tar.gz
Algorithm Hash digest
SHA256 48a8ffe60be4bd431cf79a84aaaf73714941fd1b7bf9958de1a73074b76c540a
MD5 c5cd4ca5157af97ae3d84da9aaaeb389
BLAKE2b-256 a7be6a71ee1d07a127b5c46f0377b4bf54035a8381bdde4a3e2ce17bc213a7ee

See more details on using hashes here.

File details

Details for the file ltr_bert_sir_client-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for ltr_bert_sir_client-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 da801d75fb830e64ac284813e41045f3346e4e018854ec5ca27da1767b07900b
MD5 5b8aa9e725b496b76ff0ec95e82d968e
BLAKE2b-256 6128e80f68218b27a3292326d652960acf52bfd1769698e4066f796f69beccc6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page