14 writes to Usage
Microsoft.Extensions.AI (2)
ChatCompletion\ChatResponse{T}.cs (1)
46Usage = response.Usage;
ChatCompletion\FunctionInvokingChatClient.cs (1)
407response.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)
577response.Usage = FromOpenAIUsage(tokenUsage);
OpenAIResponsesChatClient.cs (1)
133Usage = ToUsageDetails(responseResult),
Microsoft.Extensions.AI.OpenAI.Tests (1)
OpenAIConversionTests.cs (1)
999Usage = 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)
1258return new ChatResponse(output) { Usage = usage };
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
2160return new ChatResponse(message) { Usage = usage };
ChatCompletion\OpenTelemetryChatClientTests.cs (1)
42Usage = new UsageDetails
149 references to Usage
Microsoft.Extensions.AI (8)
ChatCompletion\ChatResponse{T}.cs (1)
46Usage = response.Usage;
ChatCompletion\FunctionInvokingChatClient.cs (3)
368if (response.Usage is not null) 372totalUsage.Add(response.Usage); 376totalUsage = response.Usage;
ChatCompletion\OpenTelemetryChatClient.cs (4)
637if (_tokenUsageHistogram.Enabled && response?.Usage is { } usage) 686if (response.Usage?.InputTokenCount is long inputTokens) 691if (response.Usage?.OutputTokenCount is long outputTokens) 696if (response.Usage?.CachedInputTokenCount is long cachedInputTokens)
Microsoft.Extensions.AI.Abstractions (2)
ChatCompletion\ChatResponse.cs (2)
128if (AdditionalProperties is not null || Usage is not null) 135if (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)
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)
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)
69(int?)response.Usage?.OutputTokenCount ?? 0, 70(int?)response.Usage?.InputTokenCount ?? 0, 71(int?)response.Usage?.TotalTokenCount ?? 0);
MicrosoftExtensionsAIResponsesExtensions.cs (1)
108Usage = OpenAIResponsesChatClient.ToResponseTokenUsage(response.Usage),
Microsoft.Extensions.AI.OpenAI.Tests (99)
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); 846Assert.NotNull(response.Usage); 847Assert.Equal(42, response.Usage.InputTokenCount); 848Assert.Equal(15, response.Usage.OutputTokenCount); 849Assert.Equal(57, response.Usage.TotalTokenCount); 850Assert.Equal(13, response.Usage.CachedInputTokenCount); 851Assert.Equal(90, response.Usage.ReasoningTokenCount); 858}, response.Usage.AdditionalCounts); 943Assert.NotNull(response.Usage); 944Assert.Equal(42, response.Usage.InputTokenCount); 945Assert.Equal(15, response.Usage.OutputTokenCount); 946Assert.Equal(57, response.Usage.TotalTokenCount); 947Assert.Equal(13, response.Usage.CachedInputTokenCount); 948Assert.Equal(90, response.Usage.ReasoningTokenCount); 955}, response.Usage.AdditionalCounts); 1041Assert.NotNull(response.Usage); 1042Assert.Equal(42, response.Usage.InputTokenCount); 1043Assert.Equal(15, response.Usage.OutputTokenCount); 1044Assert.Equal(57, response.Usage.TotalTokenCount); 1045Assert.Equal(13, response.Usage.CachedInputTokenCount); 1046Assert.Equal(90, response.Usage.ReasoningTokenCount); 1053}, response.Usage.AdditionalCounts); 1152Assert.NotNull(response.Usage); 1153Assert.Equal(61, response.Usage.InputTokenCount); 1154Assert.Equal(16, response.Usage.OutputTokenCount); 1155Assert.Equal(77, response.Usage.TotalTokenCount); 1156Assert.Equal(13, response.Usage.CachedInputTokenCount); 1157Assert.Equal(90, response.Usage.ReasoningTokenCount); 1165}, response.Usage.AdditionalCounts); 1236Assert.NotNull(response.Usage); 1237Assert.Equal(61, response.Usage.InputTokenCount); 1238Assert.Equal(16, response.Usage.OutputTokenCount); 1239Assert.Equal(77, response.Usage.TotalTokenCount); 1240Assert.Equal(13, response.Usage.CachedInputTokenCount); 1241Assert.Equal(90, response.Usage.ReasoningTokenCount); 1249}, response.Usage.AdditionalCounts); 1494Assert.NotNull(response.Usage); 1495Assert.Equal(42, response.Usage.InputTokenCount); 1496Assert.Equal(15, response.Usage.OutputTokenCount); 1497Assert.Equal(57, response.Usage.TotalTokenCount); 1498Assert.Equal(20, response.Usage.CachedInputTokenCount); 1499Assert.Equal(90, response.Usage.ReasoningTokenCount); 1506}, response.Usage.AdditionalCounts); 1609Assert.NotNull(response.Usage); 1610Assert.Equal(8513, response.Usage.InputTokenCount); 1611Assert.Equal(56, response.Usage.OutputTokenCount); 1612Assert.Equal(8569, response.Usage.TotalTokenCount); 1613Assert.Equal(0, response.Usage.CachedInputTokenCount); 1614Assert.Equal(0, response.Usage.ReasoningTokenCount); 1621}, response.Usage.AdditionalCounts);
OpenAIConversionTests.cs (8)
814Assert.NotNull(response.Usage); 815Assert.Equal(1, response.Usage.InputTokenCount); 816Assert.Equal(2, response.Usage.OutputTokenCount); 817Assert.Equal(3, response.Usage.TotalTokenCount); 845Assert.NotNull(response.Usage); 846Assert.Equal(1, response.Usage.InputTokenCount); 847Assert.Equal(2, response.Usage.OutputTokenCount); 848Assert.Equal(3, response.Usage.TotalTokenCount);
OpenAIResponseClientTests.cs (35)
169Assert.NotNull(response.Usage); 170Assert.Equal(26, response.Usage.InputTokenCount); 171Assert.Equal(10, response.Usage.OutputTokenCount); 172Assert.Equal(36, response.Usage.TotalTokenCount); 829Assert.NotNull(response.Usage); 830Assert.Equal(18, response.Usage.InputTokenCount); 831Assert.Equal(53, response.Usage.OutputTokenCount); 832Assert.Equal(71, response.Usage.TotalTokenCount); 1291Assert.NotNull(response.Usage); 1292Assert.Equal(26, response.Usage.InputTokenCount); 1293Assert.Equal(10, response.Usage.OutputTokenCount); 1294Assert.Equal(36, response.Usage.TotalTokenCount); 1558Assert.NotNull(response.Usage); 1559Assert.Equal(542, response.Usage.InputTokenCount); 1560Assert.Equal(72, response.Usage.OutputTokenCount); 1561Assert.Equal(614, response.Usage.TotalTokenCount); 1825Assert.NotNull(response.Usage); 1826Assert.Equal(1329, response.Usage.InputTokenCount); 1827Assert.Equal(123, response.Usage.OutputTokenCount); 1828Assert.Equal(1452, response.Usage.TotalTokenCount); 2238Assert.NotNull(response.Usage); 2239Assert.Equal(1420, response.Usage.InputTokenCount); 2240Assert.Equal(149, response.Usage.OutputTokenCount); 2241Assert.Equal(1569, response.Usage.TotalTokenCount); 3134Assert.NotNull(response.Usage); 3135Assert.Equal(219, response.Usage.InputTokenCount); 3136Assert.Equal(50, response.Usage.OutputTokenCount); 3137Assert.Equal(269, response.Usage.TotalTokenCount); 4883Assert.NotNull(response.Usage); 4884Assert.Null(response.Usage.AdditionalCounts); 4885Assert.Equal(50, response.Usage.InputTokenCount); 4886Assert.Equal(25, response.Usage.OutputTokenCount); 4887Assert.Equal(75, response.Usage.TotalTokenCount); 4888Assert.Equal(10, response.Usage.CachedInputTokenCount); 4889Assert.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)
1271var actualUsage = result.Usage!;
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
2175var actualUsage = result.Usage!;