Overview
The Cohere provider integrates Cohere’s reranking API with LlamaIndex.TS to improve the relevance of search results. Reranking is a powerful technique to reorder retrieved documents based on their relevance to a query.Installation
Basic Usage
Constructor Options
string
required
Cohere API key (no environment variable default - must be provided)
number
default:2
Number of top results to return after reranking
string
default:"rerank-english-v2.0"
Cohere rerank model to use
string
Optional custom API endpoint URL
number
Request timeout in seconds
Supported Models
Rerank Models
rerank-english-v2.0: General-purpose English reranking (default)rerank-multilingual-v2.0: Multilingual reranking supportrerank-english-v3.0: Latest English modelrerank-multilingual-v3.0: Latest multilingual model
With Query Engine
With Retriever
Multilingual Reranking
Custom Base URL
Configuration
Environment Variables
How Reranking Works
- Initial Retrieval: Your retriever fetches top-K documents (e.g., 10-20)
- Reranking: Cohere’s model re-scores each document for relevance
- Top-N Selection: Returns only the most relevant N documents
- Score Update: Updates each node’s score to the relevance score
Performance Tips
- Retrieve more, rerank to fewer: Retrieve 10-20 documents, rerank to top 3-5
- Use for complex queries: Most beneficial when semantic search alone isn’t sufficient
- Choose right model: v3.0 models offer better quality, v2.0 is faster
- Set appropriate timeout: For large document sets, increase timeout
Error Handling
Use Cases
- Improve RAG quality: Rerank retrieved documents before sending to LLM
- Multi-stage retrieval: First pass with embeddings, second pass with reranking
- Cross-lingual search: Use multilingual models for queries in different languages
- Semantic search refinement: Improve relevance beyond vector similarity
Best Practices
- Always provide a query: Reranking requires a query string to work
- Retrieve enough candidates: Aim for 10-20 initial results for best reranking
- Don’t over-rerank: Top 3-5 results usually sufficient for most use cases
- Handle empty results: Check if initial retrieval returns documents
- Monitor costs: Reranking adds API costs, use judiciously