Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Voyage AI

Voyage AI provides state-of-the-art text embeddings optimized for retrieval and RAG pipelines. The voyage-3-large model consistently ranks in the top tier of the MTEB leaderboard. Voyage also offers domain-specific models for code and finance.

Setup

[dependencies]
synaptic = { version = "0.4", features = ["voyage"] }

Get an API key from dash.voyageai.com.

Usage

use synaptic::voyage::{VoyageConfig, VoyageEmbeddings, VoyageModel};
use synaptic::core::Embeddings;

let config = VoyageConfig::new("your-api-key", VoyageModel::Voyage3Large);
let embeddings = VoyageEmbeddings::new(config);

// Embed documents for RAG
let docs = embeddings.embed_documents(&["Rust is fast.", "Memory safety matters."]).await?;

// Embed a query
let query_vec = embeddings.embed_query("What is Rust?").await?;

Available Models

Enum VariantAPI Model IDDimensionsBest For
Voyage3Largevoyage-3-large1024Best quality (recommended)
Voyage3voyage-31024Balanced quality/speed
Voyage3Litevoyage-3-lite512Fastest, cheapest
VoyageCode3voyage-code-31024Code retrieval
VoyageFinance2voyage-finance-21024Finance documents

With Vector Store

use synaptic::voyage::{VoyageConfig, VoyageEmbeddings, VoyageModel};
use synaptic::vectorstores::InMemoryVectorStore;
use synaptic::core::{Document, VectorStore};

let config = VoyageConfig::new("your-api-key", VoyageModel::Voyage3);
let embeddings = VoyageEmbeddings::new(config);
let store = InMemoryVectorStore::new();

let docs = vec![
    Document::new("doc-1", "Rust provides memory safety without garbage collection."),
    Document::new("doc-2", "Zero-cost abstractions enable high performance."),
];

store.add_documents(docs, &embeddings).await?;
let results = store.similarity_search("memory safety", 2, &embeddings).await?;