27 instantiations of TextReasoningContent
Microsoft.Extensions.AI.Abstractions (1)
ChatCompletion\ChatResponseExtensions.cs (1)
296TextReasoningContent content = new(MergeText(contents, start, end))
Microsoft.Extensions.AI.Abstractions.Tests (20)
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (16)
692new() { Contents = [new TextReasoningContent("D")] }, 693new() { Contents = [new TextReasoningContent("E")] }, 694new() { Contents = [new TextReasoningContent("F")] }, 697new() { Contents = [new TextReasoningContent("I")] }, 698new() { Contents = [new TextReasoningContent("J")] }, 700new() { Contents = [new TextReasoningContent("L")] }, 703new() { Contents = [new TextReasoningContent("O")] }, 704new() { Contents = [new TextReasoningContent("P")] }, 727new() { Contents = [new TextReasoningContent("A") { ProtectedData = "1" }] }, 728new() { Contents = [new TextReasoningContent("B") { ProtectedData = "2" }] }, 729new() { Contents = [new TextReasoningContent("C")] }, 730new() { Contents = [new TextReasoningContent("D")] }, 731new() { Contents = [new TextReasoningContent("E") { ProtectedData = "3" }] }, 732new() { Contents = [new TextReasoningContent("F") { ProtectedData = "4" }] }, 733new() { Contents = [new TextReasoningContent("G")] }, 734new() { Contents = [new TextReasoningContent("H")] },
Contents\AIContentTests.cs (1)
68new TextReasoningContent("reasoning text"),
Contents\TextReasoningContentTests.cs (3)
17TextReasoningContent c = new(text); 27TextReasoningContent c = new(null); 62var content = new TextReasoningContent("reasoning text") { ProtectedData = "protected" };
Microsoft.Extensions.AI.OpenAI (3)
OpenAIChatClient.cs (2)
400responseUpdate.Contents.Add(new TextReasoningContent(reasoningText)); 526returnMessage.Contents.Add(new TextReasoningContent(reasoningText));
OpenAIResponsesChatClient.cs (1)
932TextReasoningContent content = new(text)
Microsoft.Extensions.AI.Tests (3)
ChatCompletion\OpenTelemetryChatClientTests.cs (3)
407new TextReasoningContent("This is reasoning"), 423yield return new() { Contents = [new TextReasoningContent("This is reasoning")] }; 445new TextReasoningContent("User reasoning"),
62 references to TextReasoningContent
Microsoft.Extensions.AI (2)
Common\OtelMessageSerializer.cs (1)
73case TextReasoningContent trc when !string.IsNullOrWhiteSpace(trc.Text):
Realtime\OpenTelemetryRealtimeClientSession.cs (1)
534case TextReasoningContent trc when !string.IsNullOrEmpty(trc.Text):
Microsoft.Extensions.AI.Abstractions (9)
ChatCompletion\ChatResponseExtensions.cs (4)
290Coalesce<TextReasoningContent>( 296TextReasoningContent content = new(MergeText(contents, start, end)) 304Debug.Assert(contents[i] is TextReasoningContent { ProtectedData: null }, "Expected all but the last to have a null ProtectedData"); 308if (((TextReasoningContent)contents[end - 1]).ProtectedData is { } protectedData)
Contents\AIContent.cs (1)
18[JsonDerivedType(typeof(TextReasoningContent), typeDiscriminator: "reasoning")]
Contents\TextReasoningContent.cs (4)
13/// <see cref="TextReasoningContent"/> is distinct from <see cref="TextContent"/>. <see cref="TextReasoningContent"/> 21/// Initializes a new instance of the <see cref="TextReasoningContent"/> class. 44/// sent back to the provider and not displayed to the user. It's possible for a <see cref="TextReasoningContent"/> to contain
Microsoft.Extensions.AI.Abstractions.Tests (21)
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (14)
711Assert.Equal("DEF", Assert.IsType<TextReasoningContent>(message.Contents[1]).Text); 713Assert.Equal("IJ", Assert.IsType<TextReasoningContent>(message.Contents[3]).Text); 715Assert.Equal("L", Assert.IsType<TextReasoningContent>(message.Contents[5]).Text); 717Assert.Equal("OP", Assert.IsType<TextReasoningContent>(message.Contents[7]).Text); 741Assert.Equal("A", Assert.IsType<TextReasoningContent>(message.Contents[0]).Text); 742Assert.Equal("1", ((TextReasoningContent)message.Contents[0]).ProtectedData); 744Assert.Equal("B", Assert.IsType<TextReasoningContent>(message.Contents[1]).Text); 745Assert.Equal("2", ((TextReasoningContent)message.Contents[1]).ProtectedData); 747Assert.Equal("CDE", Assert.IsType<TextReasoningContent>(message.Contents[2]).Text); 748Assert.Equal("3", ((TextReasoningContent)message.Contents[2]).ProtectedData); 750Assert.Equal("F", Assert.IsType<TextReasoningContent>(message.Contents[3]).Text); 751Assert.Equal("4", ((TextReasoningContent)message.Contents[3]).ProtectedData); 753Assert.Equal("GH", Assert.IsType<TextReasoningContent>(message.Contents[4]).Text); 754Assert.Null(((TextReasoningContent)message.Contents[4]).ProtectedData);
Contents\TextReasoningContentTests.cs (7)
17TextReasoningContent c = new(text); 27TextReasoningContent c = new(null); 62var content = new TextReasoningContent("reasoning text") { ProtectedData = "protected" }; 65var deserializedContent = JsonSerializer.Deserialize<TextReasoningContent>(json, AIJsonUtilities.DefaultOptions); 89var reasoning = Assert.IsType<TextReasoningContent>(result);
Microsoft.Extensions.AI.OpenAI (4)
OpenAIResponsesChatClient.cs (4)
928/// <summary>Creates a <see cref="TextReasoningContent"/>, stashing the reasoning item's id (when available) 930private static TextReasoningContent CreateReasoningContent(string? text, string? protectedData, string? itemId, object? rawRepresentation = null) 932TextReasoningContent content = new(text) 1551case TextReasoningContent reasoningContent:
Microsoft.Extensions.AI.OpenAI.Tests (26)
OpenAIChatClientTests.cs (3)
1919var reasoning = message.Contents.OfType<TextReasoningContent>().Single(); 1972string reasoningText = string.Concat(updates.SelectMany(u => u.Contents).OfType<TextReasoningContent>().Select(r => r.Text));
OpenAIConversionTests.cs (2)
1311TextReasoningContent? reasoningContent = message.Contents.OfType<TextReasoningContent>().FirstOrDefault();
OpenAIResponseClientIntegrationTests.cs (12)
712var reasoningContent = response1.Messages 714.OfType<TextReasoningContent>() 735var deserializedReasoning = deserializedHistory 737.OfType<TextReasoningContent>() 750foreach (var reasoning in deserializedHistory 752.OfType<TextReasoningContent>() 794var reasoningContent = response1.Messages 796.OfType<TextReasoningContent>() 816var deserializedReasoning = deserializedHistory 818.OfType<TextReasoningContent>() 831foreach (var reasoning in deserializedHistory 833.OfType<TextReasoningContent>()
OpenAIResponseClientTests.cs (9)
328var reasoning = Assert.IsType<TextReasoningContent>(updates[i].Contents.Single()); 460var reasoning = Assert.IsType<TextReasoningContent>(u.Contents.Single()); 465var allReasoningText = string.Concat(reasoningUpdates.Select(u => u.Contents.OfType<TextReasoningContent>().First().Text)); 567var reasoningContents = updates.SelectMany(u => u.Contents).OfType<TextReasoningContent>().ToList(); 574var coalescedReasoning = assistantMessage.Contents.OfType<TextReasoningContent>().Single(); 909Assert.Single(responseMessage.Contents, content => content is TextReasoningContent);