This is an automated email from the ASF dual-hosted git repository.
amoghdesai pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new ee97bc60bde Clarify why `EmbedByTypeResponseEmbeddings` return type is
ommitted (#51517)
ee97bc60bde is described below
commit ee97bc60bdea5cffb7cc42cff1996fe5d7523287
Author: Amogh Desai <[email protected]>
AuthorDate: Mon Jun 9 14:03:33 2025 +0530
Clarify why `EmbedByTypeResponseEmbeddings` return type is ommitted (#51517)
---
providers/cohere/src/airflow/providers/cohere/hooks/cohere.py | 6 ++++++
.../cohere/src/airflow/providers/cohere/operators/embedding.py | 8 ++++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/providers/cohere/src/airflow/providers/cohere/hooks/cohere.py
b/providers/cohere/src/airflow/providers/cohere/hooks/cohere.py
index bfaba2d658a..ccfdd4b178e 100644
--- a/providers/cohere/src/airflow/providers/cohere/hooks/cohere.py
+++ b/providers/cohere/src/airflow/providers/cohere/hooks/cohere.py
@@ -100,6 +100,12 @@ class CohereHook(BaseHook):
embedding_types=["float"],
request_options=self.request_options,
)
+ # NOTE: Return type `EmbedByTypeResponseEmbeddings` was removed
temporarily due to limitations
+ # in XCom serialization/deserialization of complex types like Cohere
embeddings and Pydantic models.
+ #
+ # Tracking issue: https://github.com/apache/airflow/issues/50867
+ # Once that issue is resolved, XCom (de)serialization of such types
will be supported and
+ # we can safely restore the `EmbedByTypeResponseEmbeddings` return
type here.
if response.embeddings.float_ is None:
raise ValueError("Embeddings response is missing float_ field")
return response.embeddings.float_
diff --git
a/providers/cohere/src/airflow/providers/cohere/operators/embedding.py
b/providers/cohere/src/airflow/providers/cohere/operators/embedding.py
index 1504858fc21..a196ca624f5 100644
--- a/providers/cohere/src/airflow/providers/cohere/operators/embedding.py
+++ b/providers/cohere/src/airflow/providers/cohere/operators/embedding.py
@@ -93,6 +93,10 @@ class CohereEmbeddingOperator(BaseOperator):
def execute(self, context: Context) -> list[list[float]]:
"""Embed texts using Cohere embed services."""
embedding_response = self.hook.create_embeddings(self.input_text)
-
- # Extract just the embeddings list, which is serializable
+ # NOTE: Return type `EmbedByTypeResponseEmbeddings` was removed
temporarily due to limitations
+ # in XCom serialization/deserialization of complex types like Cohere
embeddings and Pydantic models.
+ #
+ # Tracking issue: https://github.com/apache/airflow/issues/50867
+ # Once that issue is resolved, XCom (de)serialization of such types
will be supported, and
+ # we can safely restore the `EmbedByTypeResponseEmbeddings` return
type here.
return embedding_response