From 0c10ff6418bffc16e0a140684ac945173f8fc044 Mon Sep 17 00:00:00 2001 From: ccurme Date: Thu, 12 Jun 2025 23:38:41 -0400 Subject: [PATCH] openai[patch]: handle annotation change in openai==1.82.0 (#31597) https://github.com/openai/openai-python/pull/2372/files#diff-91cfd5576e71b4b72da91e04c3a029bab50a72b5f7a2ac8393fca0a06e865fb3 --- .../openai/langchain_openai/chat_models/base.py | 14 ++++++-------- libs/partners/openai/uv.lock | 8 ++++---- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/libs/partners/openai/langchain_openai/chat_models/base.py b/libs/partners/openai/langchain_openai/chat_models/base.py index a9935e68dd1..9d649a7b8e2 100644 --- a/libs/partners/openai/langchain_openai/chat_models/base.py +++ b/libs/partners/openai/langchain_openai/chat_models/base.py @@ -3540,14 +3540,12 @@ def _convert_responses_chunk_to_generation_chunk( {"type": "text", "text": chunk.delta, "index": chunk.content_index} ) elif chunk.type == "response.output_text.annotation.added": - content.append( - { - "annotations": [ - chunk.annotation.model_dump(exclude_none=True, mode="json") - ], - "index": chunk.content_index, - } - ) + if isinstance(chunk.annotation, dict): + # Appears to be a breaking change in openai==1.82.0 + annotation = chunk.annotation + else: + annotation = chunk.annotation.model_dump(exclude_none=True, mode="json") + content.append({"annotations": [annotation], "index": chunk.content_index}) elif chunk.type == "response.created": response_metadata["id"] = chunk.response.id elif chunk.type == "response.completed": diff --git a/libs/partners/openai/uv.lock b/libs/partners/openai/uv.lock index 9d259c42c7d..7695add1eef 100644 --- a/libs/partners/openai/uv.lock +++ b/libs/partners/openai/uv.lock @@ -479,7 +479,7 @@ wheels = [ [[package]] name = "langchain-core" -version = "0.3.64" +version = "0.3.65" source = { editable = "../../core" } dependencies = [ { name = "jsonpatch" }, @@ -994,7 +994,7 @@ wheels = [ [[package]] name = "openai" -version = "1.81.0" +version = "1.86.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -1006,9 +1006,9 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1c/89/a1e4f3fa7ca4f7fec90dbf47d93b7cd5ff65924926733af15044e302a192/openai-1.81.0.tar.gz", hash = "sha256:349567a8607e0bcffd28e02f96b5c2397d0d25d06732d90ab3ecbf97abf030f9", size = 456861 } +sdist = { url = "https://files.pythonhosted.org/packages/ec/7a/9ad4a61f1502f0e59d8c27fb629e28a63259a44d8d31cd2314e1534a2d9f/openai-1.86.0.tar.gz", hash = "sha256:c64d5b788359a8fdf69bd605ae804ce41c1ce2e78b8dd93e2542e0ee267f1e4b", size = 468272 } wheels = [ - { url = "https://files.pythonhosted.org/packages/02/66/bcc7f9bf48e8610a33e3b5c96a5a644dad032d92404ea2a5e8b43ba067e8/openai-1.81.0-py3-none-any.whl", hash = "sha256:1c71572e22b43876c5d7d65ade0b7b516bb527c3d44ae94111267a09125f7bae", size = 717529 }, + { url = "https://files.pythonhosted.org/packages/58/c1/dfb16b3432810fc9758564f9d1a4dbce6b93b7fb763ba57530c7fc48316d/openai-1.86.0-py3-none-any.whl", hash = "sha256:c8889c39410621fe955c230cc4c21bfe36ec887f4e60a957de05f507d7e1f349", size = 730296 }, ] [[package]]