From 0b91774263c4a394d7946b48212e17529b435250 Mon Sep 17 00:00:00 2001 From: ccurme Date: Wed, 31 Dec 2025 16:30:52 -0500 Subject: [PATCH] fix(xai): stream usage metadata by default (#34531) --- libs/partners/xai/langchain_xai/chat_models.py | 5 +++++ .../tests/integration_tests/test_chat_models_standard.py | 1 - .../__snapshots__/test_chat_models_standard.ambr | 1 + libs/partners/xai/tests/unit_tests/test_chat_models.py | 8 ++++++++ libs/partners/xai/uv.lock | 4 ++-- 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/libs/partners/xai/langchain_xai/chat_models.py b/libs/partners/xai/langchain_xai/chat_models.py index 28dc7ea0cbf..6c9bfc433bb 100644 --- a/libs/partners/xai/langchain_xai/chat_models.py +++ b/libs/partners/xai/langchain_xai/chat_models.py @@ -526,6 +526,11 @@ class ChatXAI(BaseChatOpenAI): # type: ignore[override] **client_params, **async_specific, ) + + # Enable streaming usage metadata by default + if self.stream_usage is not False: + self.stream_usage = True + return self @model_validator(mode="after") diff --git a/libs/partners/xai/tests/integration_tests/test_chat_models_standard.py b/libs/partners/xai/tests/integration_tests/test_chat_models_standard.py index 9b7871d6ac2..35c95b40d2e 100644 --- a/libs/partners/xai/tests/integration_tests/test_chat_models_standard.py +++ b/libs/partners/xai/tests/integration_tests/test_chat_models_standard.py @@ -35,7 +35,6 @@ class TestXAIStandard(ChatModelIntegrationTests): return { "model": MODEL_NAME, "rate_limiter": rate_limiter, - "stream_usage": True, } @pytest.mark.xfail( diff --git a/libs/partners/xai/tests/unit_tests/__snapshots__/test_chat_models_standard.ambr b/libs/partners/xai/tests/unit_tests/__snapshots__/test_chat_models_standard.ambr index 6f1cd18c2e2..7ee2cbfafdd 100644 --- a/libs/partners/xai/tests/unit_tests/__snapshots__/test_chat_models_standard.ambr +++ b/libs/partners/xai/tests/unit_tests/__snapshots__/test_chat_models_standard.ambr @@ -13,6 +13,7 @@ 'request_timeout': 60.0, 'stop': list([ ]), + 'stream_usage': True, 'temperature': 0.0, 'xai_api_base': 'https://api.x.ai/v1/', 'xai_api_key': dict({ diff --git a/libs/partners/xai/tests/unit_tests/test_chat_models.py b/libs/partners/xai/tests/unit_tests/test_chat_models.py index ee34cc5c7a0..11c62d7072d 100644 --- a/libs/partners/xai/tests/unit_tests/test_chat_models.py +++ b/libs/partners/xai/tests/unit_tests/test_chat_models.py @@ -134,3 +134,11 @@ def test_convert_dict_to_message_tool() -> None: expected_output = ToolMessage(content="foo", tool_call_id="bar") assert result == expected_output assert _convert_message_to_dict(expected_output) == message + + +def test_stream_usage_metadata() -> None: + model = ChatXAI(model=MODEL_NAME) + assert model.stream_usage is True + + model = ChatXAI(model=MODEL_NAME, stream_usage=False) + assert model.stream_usage is False diff --git a/libs/partners/xai/uv.lock b/libs/partners/xai/uv.lock index b39c7233d20..467b8dcb175 100644 --- a/libs/partners/xai/uv.lock +++ b/libs/partners/xai/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 2 requires-python = ">=3.10.0, <4.0.0" resolution-markers = [ "python_full_version >= '3.13' and platform_python_implementation == 'PyPy'", @@ -621,7 +621,7 @@ wheels = [ [[package]] name = "langchain-core" -version = "1.2.4" +version = "1.2.5" source = { editable = "../../core" } dependencies = [ { name = "jsonpatch" },