From e5ace314f3253a7165c5d910130ff0b8bad41b5b Mon Sep 17 00:00:00 2001 From: Kaxil Naik Date: Fri, 26 Jun 2026 23:55:41 +0100 Subject: [PATCH] Update OpenAI provider to OpenAI Python SDK 2.x Raise the openai[datalib] floor to >=2.37.0 so the provider builds against the current 2.x SDK line, and refresh stale default models (gpt-3.5-turbo -> gpt-4o-mini, text-embedding-ada-002 -> text-embedding-3-small). --- providers/openai/README.rst | 2 +- providers/openai/docs/index.rst | 2 +- providers/openai/pyproject.toml | 2 +- .../openai/src/airflow/providers/openai/hooks/openai.py | 6 +++--- .../openai/src/airflow/providers/openai/operators/openai.py | 2 +- providers/openai/tests/system/openai/example_openai.py | 6 +++--- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/providers/openai/README.rst b/providers/openai/README.rst index a3c4ba53ac55d..5d78147fb2dce 100644 --- a/providers/openai/README.rst +++ b/providers/openai/README.rst @@ -57,7 +57,7 @@ PIP package Version required ========================================== ================== ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` -``openai[datalib]`` ``>=1.66.0`` +``openai[datalib]`` ``>=2.37.0`` ========================================== ================== Cross provider package dependencies diff --git a/providers/openai/docs/index.rst b/providers/openai/docs/index.rst index 70ba43a0a9bf3..7883d87efdd8b 100644 --- a/providers/openai/docs/index.rst +++ b/providers/openai/docs/index.rst @@ -98,7 +98,7 @@ PIP package Version required ========================================== ================== ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` -``openai[datalib]`` ``>=1.66.0`` +``openai[datalib]`` ``>=2.37.0`` ========================================== ================== Cross provider package dependencies diff --git a/providers/openai/pyproject.toml b/providers/openai/pyproject.toml index 489e9c69c4973..5e2f97bd29e83 100644 --- a/providers/openai/pyproject.toml +++ b/providers/openai/pyproject.toml @@ -61,7 +61,7 @@ requires-python = ">=3.10" dependencies = [ "apache-airflow>=2.11.0", "apache-airflow-providers-common-compat>=1.12.0", - "openai[datalib]>=1.66.0", + "openai[datalib]>=2.37.0", ] [dependency-groups] diff --git a/providers/openai/src/airflow/providers/openai/hooks/openai.py b/providers/openai/src/airflow/providers/openai/hooks/openai.py index c245bd10ca06a..dd98b23984865 100644 --- a/providers/openai/src/airflow/providers/openai/hooks/openai.py +++ b/providers/openai/src/airflow/providers/openai/hooks/openai.py @@ -129,7 +129,7 @@ def create_chat_completion( | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam ], - model: str = "gpt-3.5-turbo", + model: str = "gpt-4o-mini", **kwargs: Any, ) -> list[ChatCompletionMessage]: """ @@ -141,7 +141,7 @@ def create_chat_completion( response = self.conn.chat.completions.create(model=model, messages=messages, **kwargs) return response.choices - def create_assistant(self, model: str = "gpt-3.5-turbo", **kwargs: Any) -> Assistant: + def create_assistant(self, model: str = "gpt-4o-mini", **kwargs: Any) -> Assistant: """ Create an OpenAI assistant using the given model. @@ -297,7 +297,7 @@ def modify_run(self, thread_id: str, run_id: str, **kwargs: Any) -> Run: def create_embeddings( self, text: str | list[str] | list[int] | list[list[int]], - model: str = "text-embedding-ada-002", + model: str = "text-embedding-3-small", **kwargs: Any, ) -> list[float]: """ diff --git a/providers/openai/src/airflow/providers/openai/operators/openai.py b/providers/openai/src/airflow/providers/openai/operators/openai.py index 574d7fb85d857..192986ab456f8 100644 --- a/providers/openai/src/airflow/providers/openai/operators/openai.py +++ b/providers/openai/src/airflow/providers/openai/operators/openai.py @@ -54,7 +54,7 @@ def __init__( self, conn_id: str, input_text: str | list[str] | list[int] | list[list[int]], - model: str = "text-embedding-ada-002", + model: str = "text-embedding-3-small", embedding_kwargs: dict | None = None, **kwargs: Any, ): diff --git a/providers/openai/tests/system/openai/example_openai.py b/providers/openai/tests/system/openai/example_openai.py index f8df2bd60248f..6cbbe2b47f32c 100644 --- a/providers/openai/tests/system/openai/example_openai.py +++ b/providers/openai/tests/system/openai/example_openai.py @@ -78,7 +78,7 @@ def task_to_store_input_text_in_xcom(): task_id="embedding_using_xcom_data", conn_id="openai_default", input_text=task_to_store_input_text_in_xcom(), - model="text-embedding-ada-002", + model="text-embedding-3-small", ) OpenAIEmbeddingOperator( @@ -90,13 +90,13 @@ def task_to_store_input_text_in_xcom(): input_kwarg1="input_kwarg1_value", input_kwarg2="input_kwarg2_value", ), - model="text-embedding-ada-002", + model="text-embedding-3-small", ) OpenAIEmbeddingOperator( task_id="embedding_using_text", conn_id="openai_default", input_text=texts, - model="text-embedding-ada-002", + model="text-embedding-3-small", ) # [END howto_operator_openai_embedding]