# OpenAIEmbeddings

> **Class** in `langchain_openai`

📖 [View in docs](https://reference.langchain.com/python/langchain-openai/embeddings/base/OpenAIEmbeddings)

OpenAI embedding model integration.

## Signature

```python
OpenAIEmbeddings()
```

## Description

**Setup:**

Install `langchain_openai` and set environment variable `OPENAI_API_KEY`.

```bash
pip install -U langchain_openai
export OPENAI_API_KEY="your-api-key"
```

Key init args — embedding params:
    model:
        Name of OpenAI model to use.
    dimensions:
        The number of dimensions the resulting output embeddings should have.
        Only supported in `'text-embedding-3'` and later models.

Key init args — client params:
    api_key:
        OpenAI API key.
    organization:
        OpenAI organization ID. If not passed in will be read
        from env var `OPENAI_ORG_ID`.
    max_retries:
        Maximum number of retries to make when generating.
    request_timeout:
        Timeout for requests to OpenAI completion API

See full list of supported init args and their descriptions in the params section.

**Instantiate:**

```python
from langchain_openai import OpenAIEmbeddings

embed = OpenAIEmbeddings(
    model="text-embedding-3-large"
    # With the `text-embedding-3` class
    # of models, you can specify the size
    # of the embeddings you want returned.
    # dimensions=1024
)
```

**Embed single text:**

```python
input_text = "The meaning of life is 42"
vector = embeddings.embed_query("hello")
print(vector[:3])
```
```python
[-0.024603435769677162, -0.007543657906353474, 0.0039630369283258915]
```

**Embed multiple texts:**

```python
vectors = embeddings.embed_documents(["hello", "goodbye"])
# Showing only the first 3 coordinates
print(len(vectors))
print(vectors[0][:3])
```
```python
2
[-0.024603435769677162, -0.007543657906353474, 0.0039630369283258915]
```

**Async:**

```python
await embed.aembed_query(input_text)
print(vector[:3])

# multiple:
# await embed.aembed_documents(input_texts)
```
```python
[-0.009100092574954033, 0.005071679595857859, -0.0029193938244134188]
```

!!! note "OpenAI-compatible APIs (e.g. OpenRouter, Ollama, vLLM)"

When using a non-OpenAI provider, set
`check_embedding_ctx_length=False` to send raw text instead of tokens
(which many providers don't support), and optionally set
`encoding_format` to `'float'` to avoid base64 encoding issues:

```python
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(
    model="...",
    base_url="...",
    check_embedding_ctx_length=False,
)
```

## Extends

- `BaseModel`
- `Embeddings`

## Properties

- `client`
- `async_client`
- `model`
- `dimensions`
- `deployment`
- `openai_api_version`
- `openai_api_base`
- `openai_api_type`
- `openai_proxy`
- `embedding_ctx_length`
- `openai_api_key`
- `openai_organization`
- `allowed_special`
- `disallowed_special`
- `chunk_size`
- `max_retries`
- `request_timeout`
- `headers`
- `tiktoken_enabled`
- `tiktoken_model_name`
- `show_progress_bar`
- `model_kwargs`
- `skip_empty`
- `default_headers`
- `default_query`
- `retry_min_seconds`
- `retry_max_seconds`
- `http_client`
- `http_async_client`
- `check_embedding_ctx_length`
- `model_config`

## Methods

- [`build_extra()`](https://reference.langchain.com/python/langchain-openai/embeddings/base/OpenAIEmbeddings/build_extra)
- [`validate_environment()`](https://reference.langchain.com/python/langchain-openai/embeddings/base/OpenAIEmbeddings/validate_environment)
- [`embed_documents()`](https://reference.langchain.com/python/langchain-openai/embeddings/base/OpenAIEmbeddings/embed_documents)
- [`aembed_documents()`](https://reference.langchain.com/python/langchain-openai/embeddings/base/OpenAIEmbeddings/aembed_documents)
- [`embed_query()`](https://reference.langchain.com/python/langchain-openai/embeddings/base/OpenAIEmbeddings/embed_query)
- [`aembed_query()`](https://reference.langchain.com/python/langchain-openai/embeddings/base/OpenAIEmbeddings/aembed_query)

---

[View source on GitHub](https://github.com/langchain-ai/langchain/blob/8fec4e7ceee2c368b068c49f9fed453276e210e7/libs/partners/openai/langchain_openai/embeddings/base.py#L86)