Skip to main content

llama-index postprocessor voyageai-rerank integration

Project description

LlamaIndex Postprocessor Integration: VoyageAI Rerank

This package provides the VoyageAI Rerank integration for LlamaIndex, enabling powerful re-ranking of search results using VoyageAI's state-of-the-art reranker models.

Installation

pip install llama-index-postprocessor-voyageai-rerank

Setup

Get Your API Key

Sign up for a VoyageAI account and obtain your API key from the VoyageAI Dashboard.

Set Environment Variable

export VOYAGE_API_KEY="your-api-key-here"

Usage

Basic Usage

from llama_index.core import VectorStoreIndex, Document
from llama_index.postprocessor.voyageai_rerank import VoyageAIRerank

# Create documents and index
documents = [
    Document(text="Python is a high-level programming language."),
    Document(text="Machine learning is a branch of artificial intelligence."),
    Document(text="Deep learning uses neural networks with multiple layers."),
]
index = VectorStoreIndex.from_documents(documents)

# Create reranker
reranker = VoyageAIRerank(
    model="rerank-2.5",  # Model to use
    api_key="your-api-key",  # Optional if VOYAGE_API_KEY is set
    top_n=2,  # Return top 2 results
)

# Use with retriever
retriever = index.as_retriever(
    similarity_top_k=5, node_postprocessors=[reranker]
)

nodes = retriever.retrieve("What is machine learning?")
for i, node in enumerate(nodes):
    print(f"{i+1}. Score: {node.score:.4f} - {node.text[:60]}...")

Use with Query Engine

from llama_index.core import VectorStoreIndex, Document
from llama_index.postprocessor.voyageai_rerank import VoyageAIRerank

# Setup
documents = [
    Document(text="LlamaIndex is a data framework for LLM applications."),
    Document(text="VoyageAI provides state-of-the-art embedding models."),
    Document(text="Rerankers improve search quality by re-scoring results."),
]
index = VectorStoreIndex.from_documents(documents)

# Create reranker
reranker = VoyageAIRerank(model="rerank-2.5", top_n=3)

# Use with query engine
query_engine = index.as_query_engine(
    similarity_top_k=5, node_postprocessors=[reranker]
)

response = query_engine.query("How do rerankers work?")
print(response)

Combined with VoyageAI Embeddings

from llama_index.core import VectorStoreIndex, Document, Settings
from llama_index.embeddings.voyageai import VoyageEmbedding
from llama_index.postprocessor.voyageai_rerank import VoyageAIRerank

# Use VoyageAI for both embeddings and reranking
Settings.embed_model = VoyageEmbedding(model_name="voyage-3.5")

documents = [
    Document(text="Python is a programming language."),
    Document(text="Machine learning uses data to improve performance."),
    Document(text="Neural networks are inspired by the human brain."),
]
index = VectorStoreIndex.from_documents(documents)

# Rerank results
reranker = VoyageAIRerank(model="rerank-2.5", top_n=2)

query_engine = index.as_query_engine(
    similarity_top_k=5, node_postprocessors=[reranker]
)

response = query_engine.query("What is machine learning?")
print(response)

Available Models

VoyageAI offers several reranker models optimized for different use cases:

Current Models

  • rerank-2.5: Latest generalist model with 32K context length, instruction-following, and multilingual capabilities (recommended)
  • rerank-2.5-lite: Optimized for both speed and accuracy, 32K context, multilingual support
  • rerank-2: Earlier generation model with stable performance
  • rerank-2-lite: Faster variant of rerank-2

Legacy Models

  • rerank-1: Original reranker model
  • rerank-lite-1: Lightweight variant

For the latest models, see the VoyageAI Reranker documentation.

Configuration Options

Parameter Type Default Description
model str Required The reranker model to use
api_key str (optional) None VoyageAI API key (falls back to VOYAGE_API_KEY environment var)
top_n int (optional) None Number of top results to return. If None, returns all reranked
truncation bool True Whether to auto-truncate documents to fit within token limits

Deprecated:

  • top_k: Use top_n instead

How Rerankers Work

Rerankers use cross-encoder models to jointly process query-document pairs, providing more accurate relevance scores than embedding-based similarity alone. They work in two stages:

  1. Initial Retrieval: Vector search retrieves top-k candidates based on embedding similarity
  2. Re-ranking: The reranker model scores each query-document pair and re-orders results by relevance

This two-stage approach balances speed (fast vector search) with accuracy (precise reranking).

Features

  • State-of-the-art Models: Access to VoyageAI's latest reranker models
  • Easy Integration: Drop-in compatibility with LlamaIndex retrievers and query engines
  • Flexible Configuration: Control number of results and truncation behavior
  • Multilingual Support: Works with multiple languages (rerank-2.5 models)
  • 32K Context: Handle long documents with 32,000 token context window
  • Auto-truncation: Automatically handles documents exceeding token limits

Context Length Limits

Model Max Query Tokens Max Document Tokens Total Context
rerank-2.5 8,000 Per document 32,000
rerank-2.5-lite 8,000 Per document 32,000
rerank-2 8,000 Per document 4,000
rerank-2-lite 8,000 Per document 4,000

The reranker can process up to 1,000 documents per request.

Environment Variables

Variable Description
VOYAGE_API_KEY VoyageAI API key (required)

Best Practices

  1. Use appropriate top_n: Set top_n to limit results to the most relevant documents
  2. Balance initial retrieval: Retrieve more candidates (e.g., similarity_top_k=10) than you need, then use reranker to select the best
  3. Choose the right model: Use rerank-2.5 for best quality, rerank-2.5-lite for speed
  4. Enable truncation: Keep truncation=True (default) to handle long documents gracefully

Examples

Example 1: Basic Reranking

from llama_index.postprocessor.voyageai_rerank import VoyageAIRerank

reranker = VoyageAIRerank(model="rerank-2.5", top_n=3)

Example 2: Without Top-N Filtering

# Return all reranked results
reranker = VoyageAIRerank(model="rerank-2.5")

Example 3: With Custom API Key

reranker = VoyageAIRerank(
    model="rerank-2.5", api_key="your-custom-key", top_n=5
)

Additional Information

For more information about VoyageAI rerankers:

License

This project is licensed under the MIT License.

Project details


Download files

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

Source Distribution

Built Distribution

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

File details

Details for the file llama_index_postprocessor_voyageai_rerank-0.5.0.tar.gz.

File metadata

  • Download URL: llama_index_postprocessor_voyageai_rerank-0.5.0.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for llama_index_postprocessor_voyageai_rerank-0.5.0.tar.gz
Algorithm Hash digest
SHA256 1d06a89d9dd3110c28b1ce2b49abce4d639ef59a19e9480c24664e3b7933463e
MD5 1a4bffabc3c2979a33731c01ee3e132e
BLAKE2b-256 a4de9689744daae8ca15e5ddc7058f635b360931261a38985e6d510999a696eb

See more details on using hashes here.

File details

Details for the file llama_index_postprocessor_voyageai_rerank-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: llama_index_postprocessor_voyageai_rerank-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for llama_index_postprocessor_voyageai_rerank-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 50da49fd90433ac69272d189f0cdc0dd73d5a39d5041f8cf07fdfb534c20b4b6
MD5 62f64c4e26bd89a281dee07062f96556
BLAKE2b-256 821568fd1bf1b395a9a9ba8b198aa21c58384104eb6d3655431b109e6e91c974

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