14 writes to Usage
Microsoft.Extensions.AI (2)
ChatCompletion\ChatResponse{T}.cs (1)
46Usage = response.Usage;
ChatCompletion\FunctionInvokingChatClient.cs (1)
398response.Usage = totalUsage;
Microsoft.Extensions.AI.Abstractions (1)
ChatCompletion\ChatResponseExtensions.cs (1)
573(response.Usage ??= new()).Add(usage.Details);
Microsoft.Extensions.AI.Abstractions.Tests (2)
ChatCompletion\ChatResponseTests.cs (2)
70response.Usage = usage; 93Usage = new UsageDetails(),
Microsoft.Extensions.AI.OpenAI (2)
OpenAIChatClient.cs (1)
546response.Usage = FromOpenAIUsage(tokenUsage);
OpenAIResponsesChatClient.cs (1)
128Usage = ToUsageDetails(responseResult),
Microsoft.Extensions.AI.OpenAI.Tests (1)
OpenAIConversionTests.cs (1)
954Usage = 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)
1166return new ChatResponse(output) { Usage = usage };
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
1492return new ChatResponse(message) { Usage = usage };
ChatCompletion\OpenTelemetryChatClientTests.cs (1)
42Usage = new UsageDetails
148 references to Usage
Microsoft.Extensions.AI (7)
ChatCompletion\ChatResponse{T}.cs (1)
46Usage = response.Usage;
ChatCompletion\FunctionInvokingChatClient.cs (3)
359if (response.Usage is not null) 363totalUsage.Add(response.Usage); 367totalUsage = response.Usage;
ChatCompletion\OpenTelemetryChatClient.cs (3)
514if (_tokenUsageHistogram.Enabled && response?.Usage is { } usage) 563if (response.Usage?.InputTokenCount is long inputTokens) 568if (response.Usage?.OutputTokenCount is long outputTokens)
Microsoft.Extensions.AI.Abstractions (2)
ChatCompletion\ChatResponse.cs (2)
127if (AdditionalProperties is not null || Usage is not null) 134if (Usage is { } usage)
Microsoft.Extensions.AI.Abstractions.Tests (8)
ChatCompletion\ChatResponseTests.cs (3)
68Assert.Null(response.Usage); 71Assert.Same(usage, response.Usage); 110Assert.NotNull(result.Usage);
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (5)
45Assert.NotNull(response.Usage); 46Assert.Equal(5, response.Usage.InputTokenCount); 47Assert.Equal(7, response.Usage.OutputTokenCount); 814Assert.NotNull(response.Usage); 815Assert.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)
133Assert.True(response.Usage?.InputTokenCount > 1); 134Assert.True(response.Usage?.OutputTokenCount > 1); 135Assert.Equal(response.Usage?.InputTokenCount + response.Usage?.OutputTokenCount, response.Usage?.TotalTokenCount); 392if (response.Usage is { } finalUsage)
Microsoft.Extensions.AI.OpenAI (4)
MicrosoftExtensionsAIChatExtensions.cs (3)
65(int?)response.Usage?.OutputTokenCount ?? 0, 66(int?)response.Usage?.InputTokenCount ?? 0, 67(int?)response.Usage?.TotalTokenCount ?? 0);
MicrosoftExtensionsAIResponsesExtensions.cs (1)
105Usage = OpenAIResponsesChatClient.ToResponseTokenUsage(response.Usage),
Microsoft.Extensions.AI.OpenAI.Tests (99)
OpenAIChatClientTests.cs (56)
170Assert.NotNull(response.Usage); 171Assert.Equal(8, response.Usage.InputTokenCount); 172Assert.Equal(9, response.Usage.OutputTokenCount); 173Assert.Equal(17, response.Usage.TotalTokenCount); 174Assert.Equal(13, response.Usage.CachedInputTokenCount); 175Assert.Equal(90, response.Usage.ReasoningTokenCount); 182}, response.Usage.AdditionalCounts); 844Assert.NotNull(response.Usage); 845Assert.Equal(42, response.Usage.InputTokenCount); 846Assert.Equal(15, response.Usage.OutputTokenCount); 847Assert.Equal(57, response.Usage.TotalTokenCount); 848Assert.Equal(13, response.Usage.CachedInputTokenCount); 849Assert.Equal(90, response.Usage.ReasoningTokenCount); 856}, response.Usage.AdditionalCounts); 941Assert.NotNull(response.Usage); 942Assert.Equal(42, response.Usage.InputTokenCount); 943Assert.Equal(15, response.Usage.OutputTokenCount); 944Assert.Equal(57, response.Usage.TotalTokenCount); 945Assert.Equal(13, response.Usage.CachedInputTokenCount); 946Assert.Equal(90, response.Usage.ReasoningTokenCount); 953}, response.Usage.AdditionalCounts); 1039Assert.NotNull(response.Usage); 1040Assert.Equal(42, response.Usage.InputTokenCount); 1041Assert.Equal(15, response.Usage.OutputTokenCount); 1042Assert.Equal(57, response.Usage.TotalTokenCount); 1043Assert.Equal(13, response.Usage.CachedInputTokenCount); 1044Assert.Equal(90, response.Usage.ReasoningTokenCount); 1051}, response.Usage.AdditionalCounts); 1150Assert.NotNull(response.Usage); 1151Assert.Equal(61, response.Usage.InputTokenCount); 1152Assert.Equal(16, response.Usage.OutputTokenCount); 1153Assert.Equal(77, response.Usage.TotalTokenCount); 1154Assert.Equal(13, response.Usage.CachedInputTokenCount); 1155Assert.Equal(90, response.Usage.ReasoningTokenCount); 1163}, response.Usage.AdditionalCounts); 1234Assert.NotNull(response.Usage); 1235Assert.Equal(61, response.Usage.InputTokenCount); 1236Assert.Equal(16, response.Usage.OutputTokenCount); 1237Assert.Equal(77, response.Usage.TotalTokenCount); 1238Assert.Equal(13, response.Usage.CachedInputTokenCount); 1239Assert.Equal(90, response.Usage.ReasoningTokenCount); 1247}, response.Usage.AdditionalCounts); 1492Assert.NotNull(response.Usage); 1493Assert.Equal(42, response.Usage.InputTokenCount); 1494Assert.Equal(15, response.Usage.OutputTokenCount); 1495Assert.Equal(57, response.Usage.TotalTokenCount); 1496Assert.Equal(20, response.Usage.CachedInputTokenCount); 1497Assert.Equal(90, response.Usage.ReasoningTokenCount); 1504}, response.Usage.AdditionalCounts); 1607Assert.NotNull(response.Usage); 1608Assert.Equal(8513, response.Usage.InputTokenCount); 1609Assert.Equal(56, response.Usage.OutputTokenCount); 1610Assert.Equal(8569, response.Usage.TotalTokenCount); 1611Assert.Equal(0, response.Usage.CachedInputTokenCount); 1612Assert.Equal(0, response.Usage.ReasoningTokenCount); 1619}, response.Usage.AdditionalCounts);
OpenAIConversionTests.cs (8)
769Assert.NotNull(response.Usage); 770Assert.Equal(1, response.Usage.InputTokenCount); 771Assert.Equal(2, response.Usage.OutputTokenCount); 772Assert.Equal(3, response.Usage.TotalTokenCount); 800Assert.NotNull(response.Usage); 801Assert.Equal(1, response.Usage.InputTokenCount); 802Assert.Equal(2, response.Usage.OutputTokenCount); 803Assert.Equal(3, response.Usage.TotalTokenCount);
OpenAIResponseClientTests.cs (35)
167Assert.NotNull(response.Usage); 168Assert.Equal(26, response.Usage.InputTokenCount); 169Assert.Equal(10, response.Usage.OutputTokenCount); 170Assert.Equal(36, response.Usage.TotalTokenCount); 722Assert.NotNull(response.Usage); 723Assert.Equal(18, response.Usage.InputTokenCount); 724Assert.Equal(53, response.Usage.OutputTokenCount); 725Assert.Equal(71, response.Usage.TotalTokenCount); 1180Assert.NotNull(response.Usage); 1181Assert.Equal(26, response.Usage.InputTokenCount); 1182Assert.Equal(10, response.Usage.OutputTokenCount); 1183Assert.Equal(36, response.Usage.TotalTokenCount); 1447Assert.NotNull(response.Usage); 1448Assert.Equal(542, response.Usage.InputTokenCount); 1449Assert.Equal(72, response.Usage.OutputTokenCount); 1450Assert.Equal(614, response.Usage.TotalTokenCount); 1714Assert.NotNull(response.Usage); 1715Assert.Equal(1329, response.Usage.InputTokenCount); 1716Assert.Equal(123, response.Usage.OutputTokenCount); 1717Assert.Equal(1452, response.Usage.TotalTokenCount); 2127Assert.NotNull(response.Usage); 2128Assert.Equal(1420, response.Usage.InputTokenCount); 2129Assert.Equal(149, response.Usage.OutputTokenCount); 2130Assert.Equal(1569, response.Usage.TotalTokenCount); 3022Assert.NotNull(response.Usage); 3023Assert.Equal(219, response.Usage.InputTokenCount); 3024Assert.Equal(50, response.Usage.OutputTokenCount); 3025Assert.Equal(269, response.Usage.TotalTokenCount); 4652Assert.NotNull(response.Usage); 4653Assert.Null(response.Usage.AdditionalCounts); 4654Assert.Equal(50, response.Usage.InputTokenCount); 4655Assert.Equal(25, response.Usage.OutputTokenCount); 4656Assert.Equal(75, response.Usage.TotalTokenCount); 4657Assert.Equal(10, response.Usage.CachedInputTokenCount); 4658Assert.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)
1179var actualUsage = result.Usage!;
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
1507var actualUsage = result.Usage!;