zvec_db.rerankers.cross_encoder.openai_encoder

OpenAI-compatible API reranker using /classify endpoint for encoder models.

Classes

OpenAIEncoderReranker(query[, topn, ...])

Cross-encoder reranker using the /classify endpoint for encoder models.

class zvec_db.rerankers.cross_encoder.openai_encoder.OpenAIEncoderReranker(query, topn=10, base_url='http://localhost:8000/v1', api_key=None, model='BAAI/bge-reranker-v2-m3', num_classes=None, timeout=30.0, rerank_field=None, fusion_score_weight=1.0, separator=' ', truncate_prompt_tokens=None)[source]

Cross-encoder reranker using the /classify endpoint for encoder models.

Uses vLLM’s /classify endpoint for encoder models (BERT, RoBERTa). Computes expected value score from class probabilities: E[score] = sum(prob_i * i) / (num_classes - 1)

Parameters:
  • query (str) – Query for reranking. Required.

  • topn (int) – Number of top documents to return. Defaults to 10.

  • base_url (str) – API base URL. Defaults to “http://localhost:8000/v1”.

  • api_key (Optional[str]) – API key. Defaults to None.

  • model (str) – Model identifier. Defaults to “BAAI/bge-reranker-v2-m3”.

  • num_classes (Optional[int]) – Number of classes. Auto-detected if None.

  • timeout (float) – HTTP timeout in seconds. Defaults to 30.0.

  • rerank_field (Optional[str]) – Document field for scoring.

  • fusion_score_weight (float) – Cross-encoder vs fusion weight. Default 1.0.

  • separator (str) – Query-document separator. Defaults to “ “.

  • truncate_prompt_tokens (Optional[int]) – Max tokens for truncation.

Example

>>> from zvec_db.rerankers.cross_encoder import OpenAIEncoderReranker
>>> reranker = OpenAIEncoderReranker(
...     query="machine learning",
...     num_classes=2,
...     base_url="http://localhost:8000",
... )
>>> results = reranker.rerank({"bm25": docs})

Note: Requires vLLM with /classify endpoint enabled.

__init__(query, topn=10, base_url='http://localhost:8000/v1', api_key=None, model='BAAI/bge-reranker-v2-m3', num_classes=None, timeout=30.0, rerank_field=None, fusion_score_weight=1.0, separator=' ', truncate_prompt_tokens=None)[source]
Parameters:
  • query (str)

  • topn (int)

  • base_url (str)

  • api_key (str | None)

  • model (str)

  • num_classes (int | None)

  • timeout (float)

  • rerank_field (str | None)

  • fusion_score_weight (float)

  • separator (str)

  • truncate_prompt_tokens (int | None)

property api_key
property base_url
property model
property num_classes
property separator
property timeout
property truncate_prompt_tokens