CatsuCatsu Docs

Overview

Overview of all 11 supported embedding providers

Catsu supports 11 major embedding providers with a unified, consistent API.

Supported Providers

ProviderModelsKey FeaturesEnvironment Variable
Voyage AI11Domain-specific, multimodal, quantizationVOYAGE_API_KEY
OpenAI3Industry standard, MatryoshkaOPENAI_API_KEY
Cohere5Multilingual, truncationCOHERE_API_KEY
Gemini1Long context, MatryoshkaGEMINI_API_KEY
Jina AI6Multimodal, code-specific, long contextJINA_API_KEY
Mistral AI2Code-optimized, quantizationMISTRAL_API_KEY
Nomic2Long text handling, MatryoshkaNOMIC_API_KEY
Cloudflare7Edge inference, BGE modelsCLOUDFLARE_API_KEY
DeepInfra16Open-source models, Qwen3DEEPINFRA_API_KEY
Mixed Bread4Multilingual, quantizationMIXEDBREAD_API_KEY
Together AI7Open-source, long contextTOGETHERAI_API_KEY

For detailed model information including pricing and benchmarks, visit the Models Catalog.

Feature Comparison

Input Type Support

Providers that support input_type="query" or input_type="document":

  • ✅ Voyage AI, Cohere, Gemini, Jina AI, Mistral AI, Nomic, Mixed Bread
  • ❌ OpenAI, Cloudflare, DeepInfra, Together AI (parameter ignored)

Matryoshka Embeddings (dimensions)

Providers that support custom embedding dimensions:

  • ✅ Voyage AI, Gemini, Jina AI, Mistral AI (select models), Nomic, OpenAI (text-embedding-3), DeepInfra (Qwen3), Mixed Bread
  • ❌ Cohere, Cloudflare, Together AI

Quantization Support

Providers that support binary or int8 embeddings:

  • ✅ Voyage AI (voyage-3.5), Mistral AI (codestral-embed-2505), Mixed Bread
  • Partial: Jina AI, OpenAI
  • ❌ Most other providers (float only)

Quick Examples

Using Different Providers

import catsu

client = catsu.Client()

# Voyage AI
voyage_response = client.embed(model="voyage-3", input="Text")

# OpenAI
openai_response = client.embed(model="text-embedding-3-small", input="Text")

# Cohere
cohere_response = client.embed(model="embed-v4.0", input="Text")

Provider-Specific Features

# Voyage AI with domain-specific model
finance = client.embed(model="voyage-finance-2", input="Financial text")

# Jina AI with multimodal
multimodal = client.embed(model="jina-embeddings-v4", input="Text with image support")

# Gemini with long context (2048 tokens)
long_text = client.embed(model="gemini-embedding-001", input="Very long document...")

# Mistral with code optimization
code = client.embed(model="codestral-embed-2505", input="def hello(): pass")

Choosing a Provider

Consider these factors:

  • Use case: General retrieval, code search, multilingual, etc.
  • Features needed: input_type, dimensions, quantization
  • Cost: varies significantly by provider
  • Performance: latency and throughput requirements
  • Context length: maximum input tokens

See Best Practices: Model Selection for detailed guidance.

Explore detailed documentation for each provider:

On this page