15 writes to Usage
Microsoft.Extensions.AI (2)
ChatCompletion\ChatResponse{T}.cs (1)
46Usage = response.Usage;
ChatCompletion\FunctionInvokingChatClient.cs (1)
429response.Usage = totalUsage;
Microsoft.Extensions.AI.Abstractions (1)
ChatCompletion\ChatResponseExtensions.cs (1)
626(response.Usage ??= new()).Add(usage.Details);
Microsoft.Extensions.AI.Abstractions.Tests (3)
ChatCompletion\ChatResponseTests.cs (3)
70response.Usage = usage; 94Usage = new UsageDetails(), 131Usage = new UsageDetails(),
Microsoft.Extensions.AI.OpenAI (2)
OpenAIChatClient.cs (1)
594response.Usage = FromOpenAIUsage(tokenUsage);
OpenAIResponsesChatClient.cs (1)
146Usage = ToUsageDetails(responseResult),
Microsoft.Extensions.AI.OpenAI.Tests (1)
OpenAIConversionTests.cs (1)
1530Usage = new UsageDetails
Microsoft.Extensions.AI.Tests (6)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (2)
29Usage = new(), 106Usage = new(),
ChatCompletion\DistributedCachingChatClientTest.cs (1)
64Usage = new()
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (1)
2038return new ChatResponse(output) { Usage = usage };
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
2381return new ChatResponse(message) { Usage = usage };
ChatCompletion\OpenTelemetryChatClientTests.cs (1)
45Usage = new UsageDetails
159 references to Usage
Microsoft.Extensions.AI (9)
ChatCompletion\ChatResponse{T}.cs (1)
46Usage = response.Usage;
ChatCompletion\FunctionInvokingChatClient.cs (3)
390if (response.Usage is not null) 394totalUsage.Add(response.Usage); 398totalUsage = response.Usage;
ChatCompletion\OpenTelemetryChatClient.cs (5)
417if (_tokenUsageHistogram.Enabled && response?.Usage is { } usage) 466if (response.Usage?.InputTokenCount is long inputTokens) 471if (response.Usage?.OutputTokenCount is long outputTokens) 476if (response.Usage?.CachedInputTokenCount is long cachedInputTokens) 481if (response.Usage?.ReasoningTokenCount is long reasoningTokens)
Microsoft.Extensions.AI.Abstractions (2)
ChatCompletion\ChatResponse.cs (2)
125if (AdditionalProperties is not null || Usage is not null) 132if (Usage is { } usage)
Microsoft.Extensions.AI.Abstractions.Tests (13)
ChatCompletion\ChatResponseTests.cs (8)
68Assert.Null(response.Usage); 71Assert.Same(usage, response.Usage); 112Assert.NotNull(result.Usage); 150Assert.NotNull(result.Usage); 217Assert.NotNull(result.Usage); 218Assert.Equal(10, result.Usage.InputTokenCount); 219Assert.Equal(20, result.Usage.OutputTokenCount); 220Assert.Equal(30, result.Usage.TotalTokenCount);
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (5)
44Assert.NotNull(response.Usage); 45Assert.Equal(5, response.Usage.InputTokenCount); 46Assert.Equal(7, response.Usage.OutputTokenCount); 813Assert.NotNull(response.Usage); 814Assert.Equal(42, response.Usage.TotalTokenCount);
Microsoft.Extensions.AI.Evaluation (1)
EvaluationMetricExtensions.cs (1)
162if (response.Usage is UsageDetails usage)
Microsoft.Extensions.AI.Evaluation.Reporting (9)
ChatTurnDetails.cs (3)
42/// Returns <see langword="null"/> if usage details were not available via <see cref="ChatResponse.Usage"/>. 75/// <see langword="null"/> if usage details were not available via <see cref="ChatResponse.Usage"/>. 114/// <see langword="null"/> if usage details were not available via <see cref="ChatResponse.Usage"/>.
ResponseCachingChatClient.cs (4)
56usage: response.Usage, 90usage: response.Usage, 114usage: value.Usage, 140usage: response.Usage,
SimpleChatClient.cs (2)
51usage: response.Usage)); 92usage: response.Usage));
Microsoft.Extensions.AI.Integration.Tests (6)
ChatClientIntegrationTests.cs (6)
123Assert.True(response.Usage?.InputTokenCount > 1); 124Assert.True(response.Usage?.OutputTokenCount > 1); 125Assert.Equal(response.Usage?.InputTokenCount + response.Usage?.OutputTokenCount, response.Usage?.TotalTokenCount); 382if (response.Usage is { } finalUsage)
Microsoft.Extensions.AI.OpenAI (4)
MicrosoftExtensionsAIChatExtensions.cs (3)
69(int?)response.Usage?.OutputTokenCount ?? 0, 70(int?)response.Usage?.InputTokenCount ?? 0, 71(int?)response.Usage?.TotalTokenCount ?? 0);
MicrosoftExtensionsAIResponsesExtensions.cs (1)
107Usage = OpenAIResponsesChatClient.ToResponseTokenUsage(response.Usage),
Microsoft.Extensions.AI.OpenAI.Tests (103)
OpenAIChatClientTests.cs (56)
172Assert.NotNull(response.Usage); 173Assert.Equal(8, response.Usage.InputTokenCount); 174Assert.Equal(9, response.Usage.OutputTokenCount); 175Assert.Equal(17, response.Usage.TotalTokenCount); 176Assert.Equal(13, response.Usage.CachedInputTokenCount); 177Assert.Equal(90, response.Usage.ReasoningTokenCount); 184}, response.Usage.AdditionalCounts); 878Assert.NotNull(response.Usage); 879Assert.Equal(42, response.Usage.InputTokenCount); 880Assert.Equal(15, response.Usage.OutputTokenCount); 881Assert.Equal(57, response.Usage.TotalTokenCount); 882Assert.Equal(13, response.Usage.CachedInputTokenCount); 883Assert.Equal(90, response.Usage.ReasoningTokenCount); 890}, response.Usage.AdditionalCounts); 975Assert.NotNull(response.Usage); 976Assert.Equal(42, response.Usage.InputTokenCount); 977Assert.Equal(15, response.Usage.OutputTokenCount); 978Assert.Equal(57, response.Usage.TotalTokenCount); 979Assert.Equal(13, response.Usage.CachedInputTokenCount); 980Assert.Equal(90, response.Usage.ReasoningTokenCount); 987}, response.Usage.AdditionalCounts); 1073Assert.NotNull(response.Usage); 1074Assert.Equal(42, response.Usage.InputTokenCount); 1075Assert.Equal(15, response.Usage.OutputTokenCount); 1076Assert.Equal(57, response.Usage.TotalTokenCount); 1077Assert.Equal(13, response.Usage.CachedInputTokenCount); 1078Assert.Equal(90, response.Usage.ReasoningTokenCount); 1085}, response.Usage.AdditionalCounts); 1184Assert.NotNull(response.Usage); 1185Assert.Equal(61, response.Usage.InputTokenCount); 1186Assert.Equal(16, response.Usage.OutputTokenCount); 1187Assert.Equal(77, response.Usage.TotalTokenCount); 1188Assert.Equal(13, response.Usage.CachedInputTokenCount); 1189Assert.Equal(90, response.Usage.ReasoningTokenCount); 1197}, response.Usage.AdditionalCounts); 1269Assert.NotNull(response.Usage); 1270Assert.Equal(61, response.Usage.InputTokenCount); 1271Assert.Equal(16, response.Usage.OutputTokenCount); 1272Assert.Equal(77, response.Usage.TotalTokenCount); 1273Assert.Equal(13, response.Usage.CachedInputTokenCount); 1274Assert.Equal(90, response.Usage.ReasoningTokenCount); 1282}, response.Usage.AdditionalCounts); 1527Assert.NotNull(response.Usage); 1528Assert.Equal(42, response.Usage.InputTokenCount); 1529Assert.Equal(15, response.Usage.OutputTokenCount); 1530Assert.Equal(57, response.Usage.TotalTokenCount); 1531Assert.Equal(20, response.Usage.CachedInputTokenCount); 1532Assert.Equal(90, response.Usage.ReasoningTokenCount); 1539}, response.Usage.AdditionalCounts); 1647Assert.NotNull(response.Usage); 1648Assert.Equal(8513, response.Usage.InputTokenCount); 1649Assert.Equal(56, response.Usage.OutputTokenCount); 1650Assert.Equal(8569, response.Usage.TotalTokenCount); 1651Assert.Equal(0, response.Usage.CachedInputTokenCount); 1652Assert.Equal(0, response.Usage.ReasoningTokenCount); 1659}, response.Usage.AdditionalCounts);
OpenAIConversionTests.cs (8)
899Assert.NotNull(response.Usage); 900Assert.Equal(1, response.Usage.InputTokenCount); 901Assert.Equal(2, response.Usage.OutputTokenCount); 902Assert.Equal(3, response.Usage.TotalTokenCount); 930Assert.NotNull(response.Usage); 931Assert.Equal(1, response.Usage.InputTokenCount); 932Assert.Equal(2, response.Usage.OutputTokenCount); 933Assert.Equal(3, response.Usage.TotalTokenCount);
OpenAIResponseClientTests.cs (39)
169Assert.NotNull(response.Usage); 170Assert.Equal(26, response.Usage.InputTokenCount); 171Assert.Equal(10, response.Usage.OutputTokenCount); 172Assert.Equal(36, response.Usage.TotalTokenCount); 1023Assert.NotNull(response.Usage); 1024Assert.Equal(18, response.Usage.InputTokenCount); 1025Assert.Equal(53, response.Usage.OutputTokenCount); 1026Assert.Equal(71, response.Usage.TotalTokenCount); 1486Assert.NotNull(response.Usage); 1487Assert.Equal(26, response.Usage.InputTokenCount); 1488Assert.Equal(10, response.Usage.OutputTokenCount); 1489Assert.Equal(36, response.Usage.TotalTokenCount); 1752Assert.NotNull(response.Usage); 1753Assert.Equal(542, response.Usage.InputTokenCount); 1754Assert.Equal(72, response.Usage.OutputTokenCount); 1755Assert.Equal(614, response.Usage.TotalTokenCount); 2140Assert.NotNull(response.Usage); 2141Assert.Equal(1329, response.Usage.InputTokenCount); 2142Assert.Equal(123, response.Usage.OutputTokenCount); 2143Assert.Equal(1452, response.Usage.TotalTokenCount); 2551Assert.NotNull(response.Usage); 2552Assert.Equal(1420, response.Usage.InputTokenCount); 2553Assert.Equal(149, response.Usage.OutputTokenCount); 2554Assert.Equal(1569, response.Usage.TotalTokenCount); 2748Assert.NotNull(response.Usage); 2749Assert.Equal(500, response.Usage.InputTokenCount); 2750Assert.Equal(50, response.Usage.OutputTokenCount); 2751Assert.Equal(550, response.Usage.TotalTokenCount); 3734Assert.NotNull(response.Usage); 3735Assert.Equal(219, response.Usage.InputTokenCount); 3736Assert.Equal(50, response.Usage.OutputTokenCount); 3737Assert.Equal(269, response.Usage.TotalTokenCount); 5620Assert.NotNull(response.Usage); 5621Assert.Null(response.Usage.AdditionalCounts); 5622Assert.Equal(50, response.Usage.InputTokenCount); 5623Assert.Equal(25, response.Usage.OutputTokenCount); 5624Assert.Equal(75, response.Usage.TotalTokenCount); 5625Assert.Equal(10, response.Usage.CachedInputTokenCount); 5626Assert.Equal(5, response.Usage.ReasoningTokenCount);
Microsoft.Extensions.AI.Tests (12)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (2)
86Assert.Same(expectedResponse.Usage, response.Usage); 147Assert.Same(expectedResponse.Usage, response.Usage);
ChatCompletion\DistributedCachingChatClientTest.cs (8)
793Assert.Equal(expected.Usage?.InputTokenCount, actual.Usage?.InputTokenCount); 794Assert.Equal(expected.Usage?.OutputTokenCount, actual.Usage?.OutputTokenCount); 795Assert.Equal(expected.Usage?.TotalTokenCount, actual.Usage?.TotalTokenCount); 796Assert.Equal(expected.Usage?.AdditionalCounts, actual.Usage?.AdditionalCounts);
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (1)
2051var actualUsage = result.Usage!;
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
2396var actualUsage = result.Usage!;