13 writes to Usage
Microsoft.Extensions.AI (2)
ChatCompletion\ChatResponse{T}.cs (1)
48Usage = response.Usage;
ChatCompletion\FunctionInvokingChatClient.cs (1)
296response.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)
476response.Usage = FromOpenAIUsage(tokenUsage);
OpenAIResponseChatClient.cs (1)
96Usage = ToUsageDetails(openAIResponse),
Microsoft.Extensions.AI.Tests (5)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (2)
29Usage = new(), 112Usage = new(),
ChatCompletion\DistributedCachingChatClientTest.cs (1)
61Usage = new()
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
961return new ChatResponse(message) { Usage = usage };
ChatCompletion\OpenTelemetryChatClientTests.cs (1)
45Usage = new UsageDetails
119 references to Usage
Microsoft.Extensions.AI (7)
ChatCompletion\ChatResponse{T}.cs (1)
48Usage = response.Usage;
ChatCompletion\FunctionInvokingChatClient.cs (3)
257if (response.Usage is not null) 261totalUsage.Add(response.Usage); 265totalUsage = 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)
50usage: response.Usage, 80usage: response.Usage, 100usage: value.Usage, 122usage: response.Usage,
SimpleChatClient.cs (2)
44usage: response.Usage)); 81usage: response.Usage));
Microsoft.Extensions.AI.Integration.Tests (6)
ChatClientIntegrationTests.cs (6)
117Assert.True(response.Usage?.InputTokenCount > 1); 118Assert.True(response.Usage?.OutputTokenCount > 1); 119Assert.Equal(response.Usage?.InputTokenCount + response.Usage?.OutputTokenCount, response.Usage?.TotalTokenCount); 343if (response.Usage is { } finalUsage)
Microsoft.Extensions.AI.Ollama.Tests (16)
OllamaChatClientTests.cs (16)
128Assert.NotNull(response.Usage); 129Assert.Equal(11, response.Usage.InputTokenCount); 130Assert.Equal(10, response.Usage.OutputTokenCount); 131Assert.Equal(21, response.Usage.TotalTokenCount); 297Assert.NotNull(response.Usage); 298Assert.Equal(36, response.Usage.InputTokenCount); 299Assert.Equal(55, response.Usage.OutputTokenCount); 300Assert.Equal(91, response.Usage.TotalTokenCount); 385Assert.NotNull(response.Usage); 386Assert.Equal(170, response.Usage.InputTokenCount); 387Assert.Equal(19, response.Usage.OutputTokenCount); 388Assert.Equal(189, response.Usage.TotalTokenCount); 482Assert.NotNull(response.Usage); 483Assert.Equal(106, response.Usage.InputTokenCount); 484Assert.Equal(8, response.Usage.OutputTokenCount); 485Assert.Equal(114, response.Usage.TotalTokenCount);
Microsoft.Extensions.AI.OpenAI.Tests (44)
OpenAIChatClientTests.cs (40)
176Assert.NotNull(response.Usage); 177Assert.Equal(8, response.Usage.InputTokenCount); 178Assert.Equal(9, response.Usage.OutputTokenCount); 179Assert.Equal(17, response.Usage.TotalTokenCount); 188}, response.Usage.AdditionalCounts); 788Assert.NotNull(response.Usage); 789Assert.Equal(42, response.Usage.InputTokenCount); 790Assert.Equal(15, response.Usage.OutputTokenCount); 791Assert.Equal(57, response.Usage.TotalTokenCount); 800}, response.Usage.AdditionalCounts); 885Assert.NotNull(response.Usage); 886Assert.Equal(42, response.Usage.InputTokenCount); 887Assert.Equal(15, response.Usage.OutputTokenCount); 888Assert.Equal(57, response.Usage.TotalTokenCount); 897}, response.Usage.AdditionalCounts); 983Assert.NotNull(response.Usage); 984Assert.Equal(42, response.Usage.InputTokenCount); 985Assert.Equal(15, response.Usage.OutputTokenCount); 986Assert.Equal(57, response.Usage.TotalTokenCount); 995}, response.Usage.AdditionalCounts); 1094Assert.NotNull(response.Usage); 1095Assert.Equal(61, response.Usage.InputTokenCount); 1096Assert.Equal(16, response.Usage.OutputTokenCount); 1097Assert.Equal(77, response.Usage.TotalTokenCount); 1107}, response.Usage.AdditionalCounts); 1178Assert.NotNull(response.Usage); 1179Assert.Equal(61, response.Usage.InputTokenCount); 1180Assert.Equal(16, response.Usage.OutputTokenCount); 1181Assert.Equal(77, response.Usage.TotalTokenCount); 1191}, response.Usage.AdditionalCounts); 1436Assert.NotNull(response.Usage); 1437Assert.Equal(42, response.Usage.InputTokenCount); 1438Assert.Equal(15, response.Usage.OutputTokenCount); 1439Assert.Equal(57, response.Usage.TotalTokenCount); 1448}, response.Usage.AdditionalCounts); 1551Assert.NotNull(response.Usage); 1552Assert.Equal(8513, response.Usage.InputTokenCount); 1553Assert.Equal(56, response.Usage.OutputTokenCount); 1554Assert.Equal(8569, response.Usage.TotalTokenCount); 1563}, response.Usage.AdditionalCounts);
OpenAIResponseClientTests.cs (4)
170Assert.NotNull(response.Usage); 171Assert.Equal(26, response.Usage.InputTokenCount); 172Assert.Equal(10, response.Usage.OutputTokenCount); 173Assert.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)
725Assert.Equal(expected.Usage?.InputTokenCount, actual.Usage?.InputTokenCount); 726Assert.Equal(expected.Usage?.OutputTokenCount, actual.Usage?.OutputTokenCount); 727Assert.Equal(expected.Usage?.TotalTokenCount, actual.Usage?.TotalTokenCount); 728Assert.Equal(expected.Usage?.AdditionalCounts, actual.Usage?.AdditionalCounts);
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
1006var actualUsage = result.Usage!;