diff --git a/libs/core/langchain_core/messages/__init__.py b/libs/core/langchain_core/messages/__init__.py index 183aff7fae7..97171f56b16 100644 --- a/libs/core/langchain_core/messages/__init__.py +++ b/libs/core/langchain_core/messages/__init__.py @@ -9,6 +9,9 @@ if TYPE_CHECKING: from langchain_core.messages.ai import ( AIMessage, AIMessageChunk, + InputTokenDetails, + OutputTokenDetails, + UsageMetadata, ) from langchain_core.messages.base import ( BaseMessage, @@ -87,10 +90,12 @@ __all__ = ( "HumanMessage", "HumanMessageChunk", "ImageContentBlock", + "InputTokenDetails", "InvalidToolCall", "MessageLikeRepresentation", "NonStandardAnnotation", "NonStandardContentBlock", + "OutputTokenDetails", "PlainTextContentBlock", "ReasoningContentBlock", "RemoveMessage", @@ -104,6 +109,7 @@ __all__ = ( "ToolCallChunk", "ToolMessage", "ToolMessageChunk", + "UsageMetadata", "VideoContentBlock", "_message_from_dict", "convert_to_messages", @@ -145,6 +151,7 @@ _dynamic_imports = { "HumanMessageChunk": "human", "NonStandardAnnotation": "content", "NonStandardContentBlock": "content", + "OutputTokenDetails": "ai", "PlainTextContentBlock": "content", "ReasoningContentBlock": "content", "RemoveMessage": "modifier", @@ -154,12 +161,14 @@ _dynamic_imports = { "SystemMessage": "system", "SystemMessageChunk": "system", "ImageContentBlock": "content", + "InputTokenDetails": "ai", "InvalidToolCall": "tool", "TextContentBlock": "content", "ToolCall": "tool", "ToolCallChunk": "tool", "ToolMessage": "tool", "ToolMessageChunk": "tool", + "UsageMetadata": "ai", "VideoContentBlock": "content", "AnyMessage": "utils", "MessageLikeRepresentation": "utils", diff --git a/libs/core/langchain_core/messages/ai.py b/libs/core/langchain_core/messages/ai.py index 00e30c04f8d..595f522299d 100644 --- a/libs/core/langchain_core/messages/ai.py +++ b/libs/core/langchain_core/messages/ai.py @@ -48,10 +48,10 @@ class InputTokenDetails(TypedDict, total=False): } ``` - !!! version-added "Added in version 0.3.9" - May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" + """ audio: int @@ -83,6 +83,8 @@ class OutputTokenDetails(TypedDict, total=False): } ``` + May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" """ diff --git a/libs/core/tests/unit_tests/messages/test_imports.py b/libs/core/tests/unit_tests/messages/test_imports.py index 4999c74cdc7..263be79bfd3 100644 --- a/libs/core/tests/unit_tests/messages/test_imports.py +++ b/libs/core/tests/unit_tests/messages/test_imports.py @@ -55,6 +55,9 @@ EXPECTED_ALL = [ "convert_to_openai_data_block", "convert_to_openai_image_block", "convert_to_openai_messages", + "UsageMetadata", + "InputTokenDetails", + "OutputTokenDetails", ] diff --git a/libs/core/tests/unit_tests/prompts/__snapshots__/test_chat.ambr b/libs/core/tests/unit_tests/prompts/__snapshots__/test_chat.ambr index 919317e2696..9446bc21c56 100644 --- a/libs/core/tests/unit_tests/prompts/__snapshots__/test_chat.ambr +++ b/libs/core/tests/unit_tests/prompts/__snapshots__/test_chat.ambr @@ -680,9 +680,9 @@ } ``` - !!! version-added "Added in version 0.3.9" - May also hold extra provider-specific keys. + + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ 'audio': dict({ @@ -798,6 +798,8 @@ } ``` + May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ @@ -2092,9 +2094,9 @@ } ``` - !!! version-added "Added in version 0.3.9" - May also hold extra provider-specific keys. + + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ 'audio': dict({ @@ -2210,6 +2212,8 @@ } ``` + May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ diff --git a/libs/core/tests/unit_tests/runnables/__snapshots__/test_graph.ambr b/libs/core/tests/unit_tests/runnables/__snapshots__/test_graph.ambr index 01d0f84e7f8..8891c8aac3d 100644 --- a/libs/core/tests/unit_tests/runnables/__snapshots__/test_graph.ambr +++ b/libs/core/tests/unit_tests/runnables/__snapshots__/test_graph.ambr @@ -1104,9 +1104,9 @@ } ``` - !!! version-added "Added in version 0.3.9" - May also hold extra provider-specific keys. + + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ 'audio': dict({ @@ -1222,6 +1222,8 @@ } ``` + May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ diff --git a/libs/core/tests/unit_tests/runnables/__snapshots__/test_runnable.ambr b/libs/core/tests/unit_tests/runnables/__snapshots__/test_runnable.ambr index 60cc70dfcdb..8cee28625f5 100644 --- a/libs/core/tests/unit_tests/runnables/__snapshots__/test_runnable.ambr +++ b/libs/core/tests/unit_tests/runnables/__snapshots__/test_runnable.ambr @@ -2627,9 +2627,9 @@ } ``` - !!! version-added "Added in version 0.3.9" - May also hold extra provider-specific keys. + + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ 'audio': dict({ @@ -2744,6 +2744,8 @@ } ``` + May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ @@ -4082,9 +4084,9 @@ } ``` - !!! version-added "Added in version 0.3.9" - May also hold extra provider-specific keys. + + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ 'audio': dict({ @@ -4199,6 +4201,8 @@ } ``` + May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ @@ -5568,9 +5572,9 @@ } ``` - !!! version-added "Added in version 0.3.9" - May also hold extra provider-specific keys. + + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ 'audio': dict({ @@ -5685,6 +5689,8 @@ } ``` + May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ @@ -6929,9 +6935,9 @@ } ``` - !!! version-added "Added in version 0.3.9" - May also hold extra provider-specific keys. + + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ 'audio': dict({ @@ -7046,6 +7052,8 @@ } ``` + May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ @@ -8426,9 +8434,9 @@ } ``` - !!! version-added "Added in version 0.3.9" - May also hold extra provider-specific keys. + + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ 'audio': dict({ @@ -8543,6 +8551,8 @@ } ``` + May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ @@ -9832,9 +9842,9 @@ } ``` - !!! version-added "Added in version 0.3.9" - May also hold extra provider-specific keys. + + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ 'audio': dict({ @@ -9949,6 +9959,8 @@ } ``` + May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ @@ -11237,9 +11249,9 @@ } ``` - !!! version-added "Added in version 0.3.9" - May also hold extra provider-specific keys. + + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ 'audio': dict({ @@ -11354,6 +11366,8 @@ } ``` + May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ @@ -12684,9 +12698,9 @@ } ``` - !!! version-added "Added in version 0.3.9" - May also hold extra provider-specific keys. + + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ 'audio': dict({ @@ -12801,6 +12815,8 @@ } ``` + May also hold extra provider-specific keys. + !!! version-added "Added in version 0.3.9" ''', 'properties': dict({ diff --git a/libs/langchain_v1/langchain/messages/__init__.py b/libs/langchain_v1/langchain/messages/__init__.py index 014a27df396..9ebe98c81f2 100644 --- a/libs/langchain_v1/langchain/messages/__init__.py +++ b/libs/langchain_v1/langchain/messages/__init__.py @@ -21,10 +21,12 @@ from langchain_core.messages import ( FileContentBlock, HumanMessage, ImageContentBlock, + InputTokenDetails, InvalidToolCall, MessageLikeRepresentation, NonStandardAnnotation, NonStandardContentBlock, + OutputTokenDetails, PlainTextContentBlock, ReasoningContentBlock, RemoveMessage, @@ -36,6 +38,7 @@ from langchain_core.messages import ( ToolCall, ToolCallChunk, ToolMessage, + UsageMetadata, VideoContentBlock, trim_messages, ) @@ -52,10 +55,12 @@ __all__ = [ "FileContentBlock", "HumanMessage", "ImageContentBlock", + "InputTokenDetails", "InvalidToolCall", "MessageLikeRepresentation", "NonStandardAnnotation", "NonStandardContentBlock", + "OutputTokenDetails", "PlainTextContentBlock", "ReasoningContentBlock", "RemoveMessage", @@ -67,6 +72,7 @@ __all__ = [ "ToolCall", "ToolCallChunk", "ToolMessage", + "UsageMetadata", "VideoContentBlock", "trim_messages", ] diff --git a/libs/langchain_v1/uv.lock b/libs/langchain_v1/uv.lock index 41d6066b33e..b9bc5cb1741 100644 --- a/libs/langchain_v1/uv.lock +++ b/libs/langchain_v1/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.10.0, <4.0.0" resolution-markers = [ "python_full_version >= '3.13' and platform_python_implementation == 'PyPy'", @@ -1743,7 +1743,7 @@ wheels = [ [[package]] name = "langchain-core" -version = "1.0.0" +version = "1.0.1" source = { editable = "../core" } dependencies = [ { name = "jsonpatch" },