From c6032f7ddefa175faf72d8cb68caddc7fd6b61bc Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Thu, 5 Dec 2024 12:16:52 -0800 Subject: [PATCH] Update OpenAI dependency to 2.1.0 --- eng/packages/General.props | 3 ++- .../OpenAIChatClient.cs | 27 +++++++------------ .../OpenAIChatClientTests.cs | 12 +++++++++ 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/eng/packages/General.props b/eng/packages/General.props index ff2c3010128..10542a2561a 100644 --- a/eng/packages/General.props +++ b/eng/packages/General.props @@ -11,12 +11,13 @@ - + + diff --git a/src/Libraries/Microsoft.Extensions.AI.OpenAI/OpenAIChatClient.cs b/src/Libraries/Microsoft.Extensions.AI.OpenAI/OpenAIChatClient.cs index cf8daec75ef..da7f93c9da5 100644 --- a/src/Libraries/Microsoft.Extensions.AI.OpenAI/OpenAIChatClient.cs +++ b/src/Libraries/Microsoft.Extensions.AI.OpenAI/OpenAIChatClient.cs @@ -356,29 +356,20 @@ private static UsageDetails ToUsageDetails(ChatTokenUsage tokenUsage) if (tokenUsage.InputTokenDetails is ChatInputTokenUsageDetails inputDetails) { - if (inputDetails.AudioTokenCount is int audioTokenCount) - { - destination.AdditionalCounts.Add( - $"{nameof(ChatTokenUsage.InputTokenDetails)}.{nameof(ChatInputTokenUsageDetails.AudioTokenCount)}", - audioTokenCount); - } + destination.AdditionalCounts.Add( + $"{nameof(ChatTokenUsage.InputTokenDetails)}.{nameof(ChatInputTokenUsageDetails.AudioTokenCount)}", + inputDetails.AudioTokenCount); - if (inputDetails.CachedTokenCount is int cachedTokenCount) - { - destination.AdditionalCounts.Add( - $"{nameof(ChatTokenUsage.InputTokenDetails)}.{nameof(ChatInputTokenUsageDetails.CachedTokenCount)}", - cachedTokenCount); - } + destination.AdditionalCounts.Add( + $"{nameof(ChatTokenUsage.InputTokenDetails)}.{nameof(ChatInputTokenUsageDetails.CachedTokenCount)}", + inputDetails.CachedTokenCount); } if (tokenUsage.OutputTokenDetails is ChatOutputTokenUsageDetails outputDetails) { - if (outputDetails.AudioTokenCount is int audioTokenCount) - { - destination.AdditionalCounts.Add( - $"{nameof(ChatTokenUsage.OutputTokenDetails)}.{nameof(ChatOutputTokenUsageDetails.AudioTokenCount)}", - audioTokenCount); - } + destination.AdditionalCounts.Add( + $"{nameof(ChatTokenUsage.OutputTokenDetails)}.{nameof(ChatOutputTokenUsageDetails.AudioTokenCount)}", + outputDetails.AudioTokenCount); destination.AdditionalCounts.Add( $"{nameof(ChatTokenUsage.OutputTokenDetails)}.{nameof(ChatOutputTokenUsageDetails.ReasoningTokenCount)}", diff --git a/test/Libraries/Microsoft.Extensions.AI.OpenAI.Tests/OpenAIChatClientTests.cs b/test/Libraries/Microsoft.Extensions.AI.OpenAI.Tests/OpenAIChatClientTests.cs index 986ebefd518..927063e7706 100644 --- a/test/Libraries/Microsoft.Extensions.AI.OpenAI.Tests/OpenAIChatClientTests.cs +++ b/test/Libraries/Microsoft.Extensions.AI.OpenAI.Tests/OpenAIChatClientTests.cs @@ -201,7 +201,9 @@ public async Task BasicRequestResponse_NonStreaming() Assert.Equal(17, response.Usage.TotalTokenCount); Assert.Equal(new Dictionary { + { "InputTokenDetails.AudioTokenCount", 0 }, { "InputTokenDetails.CachedTokenCount", 13 }, + { "OutputTokenDetails.AudioTokenCount", 0 }, { "OutputTokenDetails.ReasoningTokenCount", 90 } }, response.Usage.AdditionalCounts); @@ -492,7 +494,9 @@ public async Task MultiPartSystemMessage_NonStreaming() Assert.Equal(57, response.Usage.TotalTokenCount); Assert.Equal(new Dictionary { + { "InputTokenDetails.AudioTokenCount", 0 }, { "InputTokenDetails.CachedTokenCount", 13 }, + { "OutputTokenDetails.AudioTokenCount", 0 }, { "OutputTokenDetails.ReasoningTokenCount", 90 } }, response.Usage.AdditionalCounts); @@ -589,7 +593,9 @@ public async Task EmptyAssistantMessage_NonStreaming() Assert.Equal(57, response.Usage.TotalTokenCount); Assert.Equal(new Dictionary { + { "InputTokenDetails.AudioTokenCount", 0 }, { "InputTokenDetails.CachedTokenCount", 13 }, + { "OutputTokenDetails.AudioTokenCount", 0 }, { "OutputTokenDetails.ReasoningTokenCount", 90 } }, response.Usage.AdditionalCounts); @@ -699,7 +705,9 @@ public async Task FunctionCallContent_NonStreaming() Assert.Equal(new Dictionary { + { "InputTokenDetails.AudioTokenCount", 0 }, { "InputTokenDetails.CachedTokenCount", 13 }, + { "OutputTokenDetails.AudioTokenCount", 0 }, { "OutputTokenDetails.ReasoningTokenCount", 90 } }, response.Usage.AdditionalCounts); @@ -817,7 +825,9 @@ public async Task FunctionCallContent_Streaming() Assert.Equal(new Dictionary { + { "InputTokenDetails.AudioTokenCount", 0 }, { "InputTokenDetails.CachedTokenCount", 0 }, + { "OutputTokenDetails.AudioTokenCount", 0 }, { "OutputTokenDetails.ReasoningTokenCount", 90 } }, usage.Details.AdditionalCounts); } @@ -954,7 +964,9 @@ public async Task AssistantMessageWithBothToolsAndContent_NonStreaming() Assert.Equal(57, response.Usage.TotalTokenCount); Assert.Equal(new Dictionary { + { "InputTokenDetails.AudioTokenCount", 0 }, { "InputTokenDetails.CachedTokenCount", 20 }, + { "OutputTokenDetails.AudioTokenCount", 0 }, { "OutputTokenDetails.ReasoningTokenCount", 90 } }, response.Usage.AdditionalCounts);