llama-index-jev
LlamaIndex reranker and selector using Jev Score and Choice answers, with configurable confidence handling.
# LlamaIndex + TypeSafe Jev
Drop-in LlamaIndex **reranker** and **router** powered by [TypeSafe Jev](https://typesafe.ai): typed `Score` / `Choice` answers, cheap compared to LLM-as-judge — not a Cohere or FlagEmbedding cross-encoder.
[](https://pypi.org/project/llama-index-postprocessor-jev/)
[](https://pypi.org/project/llama-index-selectors-jev/)
[](https://pypi.org/project/llama-index-postprocessor-jev/)
[](https://wiktorb2004.github.io/llama-index-jev/)
[](https://github.com/WiktorB2004/llama-index-jev/actions/workflows/ci.yml)
[](LICENSE)
[](https://pypi.org/project/llama-index-postprocessor-jev/)
Independent community project. **Not** affiliated with TypeSafe or LlamaIndex.
## Install
```bash
pip install llama-index-postprocessor-jev # JevRerank
pip install llama-index-selectors-jev # JevSingleSelector, JevMultiSelector
export TYPESAFE_API_KEY=... # or OPENROUTER_API_KEY + provider="openrouter"
```
## Quickstart
**Rerank** — score each retrieved passage, keep the top `n`:
```python
from llama_index.postprocessor.jev import JevRerank
reranker = JevRerank(top_n=5, mode="score")
# OpenRouter: JevRerank(provider="openrouter", top_n=5, mode="score")
query_engine = index.as_query_engine(node_postprocessors=[reranker])
```
**Select** — pick which query engine / tool handles the query:
```python
from llama_index.core.query_engine import RouterQueryEngine
from llama_index.selectors.jev import JevSingleSelector
engine = RouterQueryEngine(
selector=JevSingleSelector(),
query_engine_tools=[weather_tool, docs_tool],
)
```
Docs: [wiktorb2004.github.io/llama-index-jev](https://wiktorb2004.github.io/llama-index-jev/). Paste-and-run walkthroughs (OpenRouter, mock embeddings / MockLLM so you do not need an OpenAI key): [`examples/`](exam