Skip to main content

ELSIE

ltr-bert-sir-client

Python client for ELSIE

PyPI npm Docker Model Space GitHub License

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

  1. Bi-encoder weights, metrics, and offline LTRBertSIR inference at s-m-quadri/ltr-bert-sir on Hugging Face
  2. Interactive ELSIE demo and REST API at s-m-quadri/sir-elsie on Hugging Face Spaces
  3. JavaScript and TypeScript client at @s-m-quadri/ltr-bert-sir-client on npm
  4. Python client (this package) at ltr-bert-sir-client on PyPI
  5. TypeScript source at ltr-bert-sir-client-js on GitHub
  6. Python source at ltr-bert-sir-client-py on GitHub
  7. Self-hosted ELSIE API at smquadri/ltr-bert-sir-elsie on Docker Hub
  8. Next.js frontend at sir-elsie on GitHub

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.

Metadata

Release files for ltr-bert-sir-client 0.2.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ltr-bert-sir-client 0.2.6
File Size Uploaded
ltr_bert_sir_client-0.2.6.tar.gz 120.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ltr-bert-sir-client 0.2.6
File Interpreter ABI Platform
ltr_bert_sir_client-0.2.6-py3-none-any.whl Python 3 none any Details

Total release size: 136.3 kB

Release files / ltr_bert_sir_client-0.2.6.tar.gz

Download URL ltr_bert_sir_client-0.2.6.tar.gz
Size 120.7 kB
Tags Source
SHA-256 checksum
How to use checksums
ca885f110d528693d180b441518566916000389ec2d105bfd6c910920c77644b
BLAKE2b-256 checksum
How to use checksums
3d5d6574fc681da31f461efad348d8aca4d1940059d89d915a805237b7e8daee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / ltr_bert_sir_client-0.2.6-py3-none-any.whl

Download URL ltr_bert_sir_client-0.2.6-py3-none-any.whl
Size 15.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2ae77bad84b001ee34dc8654d5aa3fd1880ef1849bc052e00c8aa4a4506d8921
BLAKE2b-256 checksum
How to use checksums
e9b367edafddb36e03c1b9fd2977d3c52b915480c8cba5fee568a22899369d02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.2.6 This release

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page