Overview
This guide covers best practices for getting the most out of Perplexity’s Embeddings API, including dimension reduction, batch processing, RAG patterns, and error handling.Matryoshka Dimension Reduction
Perplexity embeddings support Matryoshka representation learning, allowing you to reduce embedding dimensions while maintaining quality. This enables faster similarity search and reduced storage costs.Trade-off: Lower dimensions = faster search + less storage, but slightly lower quality. Start with full dimensions and reduce if needed.
Encoding Formats
Control precision and size of embedding outputs:| Format | Description | Decoded Size | Similarity Metric | Use Case |
|---|---|---|---|---|
base64_int8 | Base64-encoded signed int8 (-128 to 127) | dimensions bytes | Cosine similarity | Default, good balance of quality and size |
base64_binary | Base64-encoded packed bits (1 bit per dimension, LSB first) | dimensions / 8 bytes | Hamming distance | Maximum compression for large-scale retrieval |
Similarity Metrics
Perplexity embedding models produce unnormalized embeddings. Choosing the correct similarity metric is critical for accurate retrieval.int8 Embeddings (base64_int8)
Compare using cosine similarity. If your vector database does not support cosine similarity natively, convert the embeddings to float32 and L2-normalize them before storing:
Binary Embeddings (base64_binary)
Compare using Hamming distance. Binary embeddings encode each dimension as a single bit, so the natural distance metric is the number of differing bits between two vectors.
Most vector databases (Pinecone, Weaviate, Qdrant, Milvus) support cosine similarity as a distance metric. Verify your database’s configuration before indexing embeddings.
RAG Pattern
Combine embeddings with Perplexity’s Agentic Research API for retrieval-augmented generation:Batch Processing
Process large datasets efficiently with async batching:Error Handling
Tips
Match models
Always use the same embedding model for both queries and documents to ensure consistent similarity scores.
Use cosine similarity
Perplexity embeddings are unnormalized. Always use cosine similarity for
base64_int8 and Hamming distance for base64_binary. If your vector DB only supports inner product, L2-normalize the embeddings before storing.Cache embeddings
Store computed embeddings in a vector database. Never recompute embeddings for the same text.
Use Matryoshka wisely
Start with full dimensions for best quality. Reduce dimensions only if you need faster search or smaller storage.
Related Resources
Quickstart
Get started with basic embeddings functionality.
Contextualized Embeddings
Document-aware embeddings for chunks with shared context.
API Reference
Complete Embeddings API documentation.
SDK Guide
Perplexity SDK features and best practices.