Skip to main content

Overview

The OpenAIEmbedder provides embeddings using OpenAI’s text-embedding models, including the latest text-embedding-3-small and text-embedding-3-large models.

Installation

The OpenAI SDK is included by default.

Basic Usage

Configuration

OpenAIEmbedderConfig

str
default:"'text-embedding-3-small'"
OpenAI embedding model to use. Options:
  • text-embedding-3-small (default, 1536 dims)
  • text-embedding-3-large (3072 dims)
  • text-embedding-ada-002 (legacy, 1536 dims)
int
default:"1024"
Output embedding dimensionality. Truncates native dimensions to this size.
str | None
default:"None"
OpenAI API key. If not provided, uses OPENAI_API_KEY environment variable.
str | None
default:"None"
Custom API endpoint for OpenAI-compatible services.

Constructor

OpenAIEmbedderConfig | None
default:"None"
Configuration object. If None, creates default config.
AsyncOpenAI | AsyncAzureOpenAI | None
default:"None"
Optional pre-configured client. If not provided, creates AsyncOpenAI from config. Supports both AsyncOpenAI and AsyncAzureOpenAI instances.

Supported Models

  • Native dimensions: 1536
  • Cost: $0.02 / 1M tokens
  • Best for: General purpose, cost-effective

text-embedding-3-large

  • Native dimensions: 3072
  • Cost: $0.13 / 1M tokens
  • Best for: High-quality embeddings, better performance

text-embedding-ada-002 (Legacy)

  • Native dimensions: 1536
  • Cost: $0.10 / 1M tokens
  • Best for: Backwards compatibility

Methods

create()

Generate a single embedding vector.
Parameters:
  • input_data (str | list[str] | Iterable[int] | Iterable[Iterable[int]]): Input to embed
Returns: list[float] - Embedding vector

create_batch()

Generate embeddings for multiple texts in a single API call.
Parameters:
  • input_data_list (list[str]): List of texts to embed
Returns: list[list[float]] - List of embedding vectors

Dimension Truncation

OpenAI models return embeddings in their native dimensions, which are truncated to embedding_dim:
Implementation:

Using with Azure OpenAI

The embedder supports Azure OpenAI through the client parameter:
For Azure, use your deployment name as the embedding_model, not the base model name.
Alternatively, use the dedicated AzureOpenAIEmbedderClient (see Azure OpenAI Embedder).

Custom Base URL

Use OpenAI-compatible embedding services:

Batch Processing Best Practices

Optimal Batch Sizes

OpenAI recommends batching for efficiency:

Large Dataset Processing

For very large datasets, chunk the input:

With Progress Tracking

Input Types

The embedder accepts various input formats:

Error Handling

Example: Document Embedding

Performance Comparison

Use with Graphiti