Repository navigation
Releases: hotchpotch/jev-reranker
Releases · hotchpotch/jev-reranker
Release list
v0.1.2
Released: 2026-09-21
Performance
- Reuse exact listwise group length estimates for budget checks and detailed
request records. Pointwise and pairwise requests also reuse their preflight
estimate when recording details. - Cache exact tokenizer counts across calls on a reranker instance, with LRU
eviction bounded to 2,048 strings and 4,000,000 retained Unicode code points.
Oversized strings are counted without being retained. The cache stores text
and counts in memory; it does not write them to disk. Keep a supplied tokenizer
and its encoding configuration unchanged while using the instance. - Reuse the initial document tokenization when truncating a newly counted
document. Decoded text is still checked against the configured length limit. - These changes preserve exact serialized-payload counting, document order,
split budgets, and scoring prompts. They do not approximate request lengths
by adding document lengths. Customlength_fncalls are not memoized.
v0.1.1
Released: 2026-09-21
- The default listwise relevance preset now stores its evaluation rubric once
per request and uses shorter per-document references to reduce repeated prompt
text. Its scoring rules combine evidence usefulness with retrieval relevance
and explicit anchors for partial and supporting facts. Scores, request groups,
and filtering decisions can change; the default threshold remains 0.2.
Custom prompts, pointwise relevance, and the ordinary reranking preset retain
their existing request formats. - The evaluation script now uses all queries in the selected dataset split by
default. Use--query-limit Nto
evaluate at most N queries in sorted query-ID order. - The evaluation script accepts
--split-state-budgetand
--split-request-budgetto adjust Jev request grouping estimates without
changing the candidate count or per-document length limit.
v0.1.0
Released: 2026-09-19
Relevance filtering and reranking
- Add
JevReranker.rerank()andrelevance_rerank(), with async equivalents
a_rerank()anda_relevance_rerank(). All return aresultsenvelope with
original document indices, scores, and optional text. - Provide listwise and pointwise evidence-selection prompts. Relevance filtering
defaults to threshold 0.2; ordinary reranking defaults to 0.0. Threshold equality
is included, ties preserve input order, and outputtop_kapplies after filtering. - Support ordinary pairwise ranking for relative-comparison experiments. Relevance
filtering supports listwise and pointwise only. - Accept custom instruction dictionaries per instance or call. Per-call overrides
are isolated from concurrent calls.
Input handling and execution
- Default to character counting with a 4000-character document prefix limit.
Support optional tokenizers, custom length counters, and configurable budgets.
Automatically raise a supplied tokenizer's maximum-length metadata when needed;
this does not extend an embedding model's context. - Split long listwise candidate lists and repartition failed chunks after API
context-limit errors. Preserve original document text in results. - Use
httpxandasynciofor bounded concurrency, transient-error retries, and
cancellation cleanup. Each call closes its HTTP client automatically; ordinary
usage needs no context manager or explicit shutdown. - Support caller-owned clients and transports for advanced integrations. Borrowed
clients require async methods on one event loop. - Read authentication and model settings from explicit arguments, environment
variables, or.env. Validate requests and responses; failures never become
fabricated zero scores. - Include optional execution details with every candidate's score, selection
counts, prompts, model information, lengths, usage, retries, and splits—even
when no document passes the threshold. - Keep optional shutdown safe with active calls and multiple shutdown waiters,
without occupying executor threads while waiting.
Evaluation and distribution
- Add
examples/eval.pyfor compatible 50-query Nano-set benchmarks, defaulting
to NanoBEIR-en / NanoHotpotQA. Support
full hybrid pools by default or fixed-size pools containing every labeled
positive, with deterministic shuffling and nDCG@10. - Evaluate relevance thresholds with document removal and positive retention
statistics, distinguishing filtering errors from missing retrieval candidates. - Compare Jev with local Sentence Transformers CrossEncoders using the same
candidate selection and metrics. Providetokenizer,sentence-transformers,
andallextras while keeping base runtime dependencies minimal. - Add offline coverage and opt-in multilingual live tests for sync and async APIs.
Validate wheel installation without tokenizer dependencies. - Document public usage, evaluation, and release procedures. Generate GitHub
Release notes from versioned Markdown and attach the distributions published
to PyPI.
v0.0.1
v0.0.1
Released: 2026-09-19
初回のパッケージ公開です。reranker の機能はまだ実装されていません。
- Python 3.11 以上に対応する
jev_rerankerパッケージの雛形を追加。 - uv による依存管理と、公開後1週間の cooldown を設定。
- pytest・ruff・ty・tox による開発用の検査を整備。
- GitHub Actions による検査、ビルド、PyPI Trusted Publishing を設定。
- wheel とソース配布物を PyPI および GitHub Release に公開。