13 writes to Usage
Microsoft.Extensions.AI (2)
ChatCompletion\ChatResponse{T}.cs (1)
48Usage = response.Usage;
ChatCompletion\FunctionInvokingChatClient.cs (1)
305response.Usage = totalUsage;
Microsoft.Extensions.AI.Abstractions (1)
ChatCompletion\ChatResponseExtensions.cs (1)
306(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.AzureAIInference (1)
AzureAIInferenceChatClient.cs (1)
135Usage = usage,
Microsoft.Extensions.AI.OpenAI (2)
OpenAIChatClient.cs (1)
494response.Usage = FromOpenAIUsage(tokenUsage);
OpenAIResponsesChatClient.cs (1)
97Usage = ToUsageDetails(openAIResponse),
Microsoft.Extensions.AI.Tests (5)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (2)
29Usage = new(), 112Usage = new(),
ChatCompletion\DistributedCachingChatClientTest.cs (1)
63Usage = new()
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
1034return new ChatResponse(message) { Usage = usage };
ChatCompletion\OpenTelemetryChatClientTests.cs (1)
45Usage = new UsageDetails
111 references to Usage
Microsoft.Extensions.AI (7)
ChatCompletion\ChatResponse{T}.cs (1)
48Usage = response.Usage;
ChatCompletion\FunctionInvokingChatClient.cs (3)
266if (response.Usage is not null) 270totalUsage.Add(response.Usage); 274totalUsage = response.Usage;
ChatCompletion\OpenTelemetryChatClient.cs (3)
352if (_tokenUsageHistogram.Enabled && response?.Usage is { } usage) 401if (response.Usage?.InputTokenCount is long inputTokens) 406if (response.Usage?.OutputTokenCount is long outputTokens)
Microsoft.Extensions.AI.Abstractions (2)
ChatCompletion\ChatResponse.cs (2)
111if (AdditionalProperties is not null || Usage is not null) 118if (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); 200Assert.NotNull(response.Usage); 201Assert.Equal(42, response.Usage.TotalTokenCount);
Microsoft.Extensions.AI.AzureAIInference.Tests (16)
AzureAIInferenceChatClientTests.cs (16)
164Assert.NotNull(response.Usage); 165Assert.Equal(8, response.Usage.InputTokenCount); 166Assert.Equal(9, response.Usage.OutputTokenCount); 167Assert.Equal(17, response.Usage.TotalTokenCount); 1013Assert.NotNull(response.Usage); 1014Assert.Equal(42, response.Usage.InputTokenCount); 1015Assert.Equal(15, response.Usage.OutputTokenCount); 1016Assert.Equal(57, response.Usage.TotalTokenCount); 1147Assert.NotNull(response.Usage); 1148Assert.Equal(42, response.Usage.InputTokenCount); 1149Assert.Equal(15, response.Usage.OutputTokenCount); 1150Assert.Equal(57, response.Usage.TotalTokenCount); 1261Assert.NotNull(response.Usage); 1262Assert.Equal(61, response.Usage.InputTokenCount); 1263Assert.Equal(16, response.Usage.OutputTokenCount); 1264Assert.Equal(77, response.Usage.TotalTokenCount);
Microsoft.Extensions.AI.Evaluation (1)
EvaluationMetricExtensions.cs (1)
160if (response.Usage is UsageDetails usage)
Microsoft.Extensions.AI.Evaluation.Reporting (8)
ChatTurnDetails.cs (2)
27/// <see langword="null"/> if usage details were not available via <see cref="ChatResponse.Usage"/>. 63/// Returns <see langword="null"/> if usage details were not available via <see cref="ChatResponse.Usage"/>.
ResponseCachingChatClient.cs (4)
48usage: response.Usage, 78usage: response.Usage, 98usage: value.Usage, 120usage: response.Usage,
SimpleChatClient.cs (2)
44usage: response.Usage)); 81usage: response.Usage));
Microsoft.Extensions.AI.Integration.Tests (6)
ChatClientIntegrationTests.cs (6)
124Assert.True(response.Usage?.InputTokenCount > 1); 125Assert.True(response.Usage?.OutputTokenCount > 1); 126Assert.Equal(response.Usage?.InputTokenCount + response.Usage?.OutputTokenCount, response.Usage?.TotalTokenCount); 383if (response.Usage is { } finalUsage)
Microsoft.Extensions.AI.OpenAI.Tests (52)
OpenAIChatClientTests.cs (40)
171Assert.NotNull(response.Usage); 172Assert.Equal(8, response.Usage.InputTokenCount); 173Assert.Equal(9, response.Usage.OutputTokenCount); 174Assert.Equal(17, response.Usage.TotalTokenCount); 183}, response.Usage.AdditionalCounts); 829Assert.NotNull(response.Usage); 830Assert.Equal(42, response.Usage.InputTokenCount); 831Assert.Equal(15, response.Usage.OutputTokenCount); 832Assert.Equal(57, response.Usage.TotalTokenCount); 841}, response.Usage.AdditionalCounts); 926Assert.NotNull(response.Usage); 927Assert.Equal(42, response.Usage.InputTokenCount); 928Assert.Equal(15, response.Usage.OutputTokenCount); 929Assert.Equal(57, response.Usage.TotalTokenCount); 938}, response.Usage.AdditionalCounts); 1024Assert.NotNull(response.Usage); 1025Assert.Equal(42, response.Usage.InputTokenCount); 1026Assert.Equal(15, response.Usage.OutputTokenCount); 1027Assert.Equal(57, response.Usage.TotalTokenCount); 1036}, response.Usage.AdditionalCounts); 1135Assert.NotNull(response.Usage); 1136Assert.Equal(61, response.Usage.InputTokenCount); 1137Assert.Equal(16, response.Usage.OutputTokenCount); 1138Assert.Equal(77, response.Usage.TotalTokenCount); 1148}, response.Usage.AdditionalCounts); 1219Assert.NotNull(response.Usage); 1220Assert.Equal(61, response.Usage.InputTokenCount); 1221Assert.Equal(16, response.Usage.OutputTokenCount); 1222Assert.Equal(77, response.Usage.TotalTokenCount); 1232}, response.Usage.AdditionalCounts); 1477Assert.NotNull(response.Usage); 1478Assert.Equal(42, response.Usage.InputTokenCount); 1479Assert.Equal(15, response.Usage.OutputTokenCount); 1480Assert.Equal(57, response.Usage.TotalTokenCount); 1489}, response.Usage.AdditionalCounts); 1592Assert.NotNull(response.Usage); 1593Assert.Equal(8513, response.Usage.InputTokenCount); 1594Assert.Equal(56, response.Usage.OutputTokenCount); 1595Assert.Equal(8569, response.Usage.TotalTokenCount); 1604}, response.Usage.AdditionalCounts);
OpenAIConversionTests.cs (4)
206Assert.NotNull(response.Usage); 207Assert.Equal(1, response.Usage.InputTokenCount); 208Assert.Equal(2, response.Usage.OutputTokenCount); 209Assert.Equal(3, response.Usage.TotalTokenCount);
OpenAIResponseClientTests.cs (8)
165Assert.NotNull(response.Usage); 166Assert.Equal(26, response.Usage.InputTokenCount); 167Assert.Equal(10, response.Usage.OutputTokenCount); 168Assert.Equal(36, response.Usage.TotalTokenCount); 592Assert.NotNull(response.Usage); 593Assert.Equal(26, response.Usage.InputTokenCount); 594Assert.Equal(10, response.Usage.OutputTokenCount); 595Assert.Equal(36, response.Usage.TotalTokenCount);
Microsoft.Extensions.AI.Tests (11)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (2)
92Assert.Same(expectedResponse.Usage, response.Usage); 153Assert.Same(expectedResponse.Usage, response.Usage);
ChatCompletion\DistributedCachingChatClientTest.cs (8)
795Assert.Equal(expected.Usage?.InputTokenCount, actual.Usage?.InputTokenCount); 796Assert.Equal(expected.Usage?.OutputTokenCount, actual.Usage?.OutputTokenCount); 797Assert.Equal(expected.Usage?.TotalTokenCount, actual.Usage?.TotalTokenCount); 798Assert.Equal(expected.Usage?.AdditionalCounts, actual.Usage?.AdditionalCounts);
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
1079var actualUsage = result.Usage!;