10 writes to AdditionalCounts
Microsoft.Extensions.AI.Abstractions (1)
UsageDetails.cs (1)
136AdditionalCounts = new(countsToAdd);
Microsoft.Extensions.AI.Abstractions.Tests (4)
UsageDetailsTests.cs (4)
44AdditionalCounts = new() { ["custom"] = 100 } 155AdditionalCounts = new() { ["key1"] = 10, ["key2"] = 20 } 160AdditionalCounts = new() { ["key2"] = 30, ["key3"] = 40 } 185AdditionalCounts = new() { ["custom"] = 100 }
Microsoft.Extensions.AI.OpenAI (2)
OpenAIChatClient.cs (1)
729AdditionalCounts = [],
OpenAIImageGenerator.cs (1)
144ud.AdditionalCounts ??= [];
Microsoft.Extensions.AI.Tests (3)
ChatCompletion\DistributedCachingChatClientTest.cs (1)
69AdditionalCounts = new() { ["someValue"] = 1_234_567 }
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (1)
2015AdditionalCounts = new() { ["firstValue"] = value, ["secondValue"] = value },
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
2264AdditionalCounts = new() { ["firstValue"] = value, ["secondValue"] = value },
41 references to AdditionalCounts
Microsoft.Extensions.AI.Abstractions (5)
UsageDetails.cs (5)
132if (usage.AdditionalCounts is { } countsToAdd) 134if (AdditionalCounts is null) 142AdditionalCounts[kvp.Key] = AdditionalCounts.TryGetValue(kvp.Key, out var existingValue) ? 202if (AdditionalCounts is { } additionalCounts)
Microsoft.Extensions.AI.Abstractions.Tests (13)
Contents\UsageContentTests.cs (1)
30Assert.Null(c.Details.AdditionalCounts);
UsageDetailsTests.cs (12)
27Assert.Null(details.AdditionalCounts); 56Assert.NotNull(details.AdditionalCounts); 57Assert.Equal(100, details.AdditionalCounts["custom"]); 165Assert.NotNull(details1.AdditionalCounts); 166Assert.Equal(10, details1.AdditionalCounts["key1"]); 167Assert.Equal(50, details1.AdditionalCounts["key2"]); 168Assert.Equal(40, details1.AdditionalCounts["key3"]); 201Assert.NotNull(deserialized.AdditionalCounts); 202Assert.Equal(100, deserialized.AdditionalCounts["custom"]); 261Assert.NotNull(result.AdditionalCounts); 262Assert.Single(result.AdditionalCounts); 263Assert.Equal(100, result.AdditionalCounts["custom"]);
Microsoft.Extensions.AI.OpenAI (4)
OpenAIChatClient.cs (1)
732var counts = destination.AdditionalCounts;
OpenAIImageGenerator.cs (2)
145ud.AdditionalCounts.Add($"{nameof(usage.InputTokenDetails)}.{nameof(inputDetails.ImageTokenCount)}", inputDetails.ImageTokenCount); 146ud.AdditionalCounts.Add($"{nameof(usage.InputTokenDetails)}.{nameof(inputDetails.TextTokenCount)}", inputDetails.TextTokenCount);
OpenAIResponsesChatClient.cs (1)
1665if (usageDetails.AdditionalCounts is { } additionalCounts)
Microsoft.Extensions.AI.OpenAI.Tests (11)
OpenAIChatClientTests.cs (10)
184}, response.Usage.AdditionalCounts); 272}, usage.Details.AdditionalCounts); 858}, response.Usage.AdditionalCounts); 955}, response.Usage.AdditionalCounts); 1053}, response.Usage.AdditionalCounts); 1165}, response.Usage.AdditionalCounts); 1250}, response.Usage.AdditionalCounts); 1366}, usage.Details.AdditionalCounts); 1507}, response.Usage.AdditionalCounts); 1627}, response.Usage.AdditionalCounts);
OpenAIResponseClientTests.cs (1)
5621Assert.Null(response.Usage.AdditionalCounts);
Microsoft.Extensions.AI.Tests (8)
ChatCompletion\DistributedCachingChatClientTest.cs (2)
796Assert.Equal(expected.Usage?.AdditionalCounts, actual.Usage?.AdditionalCounts);
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (3)
1998Assert.Equal(2, actualUsage.AdditionalCounts!.Count); 1999Assert.Equal(expectedTotalTokenCounts, actualUsage.AdditionalCounts["firstValue"]); 2000Assert.Equal(expectedTotalTokenCounts, actualUsage.AdditionalCounts["secondValue"]);
ChatCompletion\FunctionInvokingChatClientTests.cs (3)
2247Assert.Equal(2, actualUsage.AdditionalCounts!.Count); 2248Assert.Equal(expectedTotalTokenCounts, actualUsage.AdditionalCounts["firstValue"]); 2249Assert.Equal(expectedTotalTokenCounts, actualUsage.AdditionalCounts["secondValue"]);