Skip to content

Commit 1b5ffe4

Browse files
authored
openai[patch]: run _tokenize in background thread in async embedding invocations (#31312)
1 parent f164561 commit 1b5ffe4

File tree

1 file changed

+4
-1
lines changed
  • libs/partners/openai/langchain_openai/embeddings

1 file changed

+4
-1
lines changed

libs/partners/openai/langchain_openai/embeddings/base.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import openai
99
import tiktoken
1010
from langchain_core.embeddings import Embeddings
11+
from langchain_core.runnables.config import run_in_executor
1112
from langchain_core.utils import from_env, get_pydantic_field_names, secret_from_env
1213
from pydantic import BaseModel, ConfigDict, Field, SecretStr, model_validator
1314
from typing_extensions import Self
@@ -525,7 +526,9 @@ async def _aget_len_safe_embeddings(
525526

526527
_chunk_size = chunk_size or self.chunk_size
527528
client_kwargs = {**self._invocation_params, **kwargs}
528-
_iter, tokens, indices = self._tokenize(texts, _chunk_size)
529+
_iter, tokens, indices = await run_in_executor(
530+
None, self._tokenize, texts, _chunk_size
531+
)
529532
batched_embeddings: list[list[float]] = []
530533
for i in range(0, len(tokens), _chunk_size):
531534
response = await self.async_client.create(

0 commit comments

Comments
 (0)