8 types derived from AIContent
Microsoft.Extensions.AI.Abstractions (6)
Contents\DataContent.cs (1)
29public class DataContent : AIContent
Contents\FunctionCallContent.cs (1)
17public sealed class FunctionCallContent : AIContent
Contents\FunctionResultContent.cs (1)
16public sealed class FunctionResultContent : AIContent
Contents\TextContent.cs (1)
13public sealed class TextContent : AIContent
Contents\UriContent.cs (1)
19public class UriContent : AIContent
Contents\UsageContent.cs (1)
14public class UsageContent : AIContent
Microsoft.Extensions.AI.Abstractions.Tests (2)
Contents\AIContentTests.cs (1)
34private sealed class DerivedAIContent : AIContent;
Utilities\AIJsonUtilitiesTests.cs (1)
446private class DerivedAIContent : AIContent
89 references to AIContent
Microsoft.Extensions.AI (4)
ChatCompletion\FunctionInvokingChatClient.cs (2)
431IList<AIContent> content, [NotNullWhen(true)] ref List<FunctionCallContent>? functionCalls) 648var contents = new List<AIContent>(results.Length);
ChatCompletion\OpenTelemetryChatClient.cs (2)
510private AssistantEvent CreateAssistantEvent(IEnumerable<AIContent> contents) 531private string? GetMessageContent(IEnumerable<AIContent> contents)
Microsoft.Extensions.AI.Abstractions (30)
ChatCompletion\ChatMessage.cs (5)
16private IList<AIContent>? _contents; 37public ChatMessage(ChatRole role, IList<AIContent>? contents) 78public IList<AIContent> Contents 99/// <summary>Gets a <see cref="AIContent"/> object to display in the debugger display.</summary> 101private AIContent? ContentForDebuggerDisplay => _contents is { Count: > 0 } ? _contents[0] : null;
ChatCompletion\ChatResponseExtensions.cs (7)
52/// contiguous <see cref="AIContent"/> items where applicable, e.g. multiple 78/// contiguous <see cref="AIContent"/> items where applicable, e.g. multiple 101/// message boundaries, as well as coalescing contiguous <see cref="AIContent"/> items where applicable, e.g. multiple 129/// message boundaries, as well as coalescing contiguous <see cref="AIContent"/> items where applicable, e.g. multiple 161CoalesceTextContent((List<AIContent>)response.Messages[i].Contents); 198foreach (var content in update.Contents) 257private static void CoalesceTextContent(List<AIContent> contents)
ChatCompletion\ChatResponseUpdate.cs (5)
36private IList<AIContent>? _contents; 58public ChatResponseUpdate(ChatRole? role, IList<AIContent>? contents) 83public IList<AIContent> Contents 132/// <summary>Gets a <see cref="AIContent"/> object to display in the debugger display.</summary> 134private AIContent? ContentForDebuggerDisplay => _contents is { Count: > 0 } ? _contents[0] : null;
Contents\AIContent.cs (2)
19/// Initializes a new instance of the <see cref="AIContent"/> class. 27/// If an <see cref="AIContent"/> is created to represent some underlying object from another object
Contents\AIContentExtensions.cs (3)
15/// <summary>Internal extensions for working with <see cref="AIContent"/>.</summary> 19public static string ConcatText(this IEnumerable<AIContent> contents) 21if (contents is IList<AIContent> list)
Utilities\AIJsonUtilities.cs (7)
26/// Adds a custom content type to the polymorphic configuration for <see cref="AIContent"/>. 35where TContent : AIContent 44/// Adds a custom content type to the polymorphic configuration for <see cref="AIContent"/>. 50/// <exception cref="ArgumentException"><paramref name="contentType"/> is a built-in content type or does not derived from <see cref="AIContent"/>.</exception> 58if (!typeof(AIContent).IsAssignableFrom(contentType)) 163if (contentType.Assembly == typeof(AIContent).Assembly) 171if (typeInfo.Type == typeof(AIContent))
Utilities\AIJsonUtilities.Defaults.cs (1)
110[JsonSerializable(typeof(AIContent))]
Microsoft.Extensions.AI.Abstractions.Tests (12)
ChatCompletion\ChatMessageTests.cs (6)
71message = new(ChatRole.User, (IList<AIContent>?)null); 75message = new ChatMessage(ChatRole.User, Array.Empty<AIContent>()); 86List<AIContent> content = []; 168Assert.IsType<List<AIContent>>(new ChatMessage().Contents); 177List<AIContent> contents = []; 237IList<AIContent> items =
ChatCompletion\ChatResponseUpdateTests.cs (1)
47IList<AIContent> newList = [new TextContent("text")];
Utilities\AIJsonUtilitiesTests.cs (5)
372AIContent c = new DerivedAIContent { DerivedValue = 42 }; 376AIContent? deserialized = JsonSerializer.Deserialize<AIContent>(json, options); 399Assert.Throws<ArgumentException>(() => options.AddAIContentType<AIContent>("discriminator")); 410AIContent c = new DerivedAIContent();
Microsoft.Extensions.AI.AzureAIInference (5)
AzureAIInferenceChatClient.cs (5)
429foreach (AIContent item in input.Contents) 473foreach (var content in input.Contents) 490/// <summary>Converts a list of <see cref="AIContent"/> to a list of <see cref="ChatMessageContentItem"/>.</summary> 491private static List<ChatMessageContentItem> GetContentParts(IList<AIContent> contents) 496foreach (var content in contents)
Microsoft.Extensions.AI.AzureAIInference.Tests (2)
AzureAIInferenceChatClientTests.cs (2)
156[new ChatMessage(ChatRole.User, "hello".Select(c => (AIContent)new TextContent(c.ToString())).ToList())] : 228[new ChatMessage(ChatRole.User, "hello".Select(c => (AIContent)new TextContent(c.ToString())).ToList())] :
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (1)
SerializationChainingTests.cs (1)
32Contents = new List<AIContent>
Microsoft.Extensions.AI.Integration.Tests (1)
ReducingChatClientTests.cs (1)
158foreach (AIContent content in message.Contents)
Microsoft.Extensions.AI.Ollama (2)
OllamaChatClient.cs (2)
253List<AIContent> contents = []; 396foreach (var item in content.Contents)
Microsoft.Extensions.AI.OpenAI (17)
OpenAIAssistantClient.cs (1)
294foreach (AIContent content in chatMessage.Contents)
OpenAIModelMapper.ChatCompletion.cs (7)
35List<AIContent> allContents = []; 39foreach (AIContent content in message.Contents) 90if (ToAIContent(contentPart) is AIContent aiContent) 556/// <summary>Creates an <see cref="AIContent"/> from a <see cref="ChatMessageContentPart"/>.</summary> 558/// <returns>The constructed <see cref="AIContent"/>, or null if the content part could not be converted.</returns> 559private static AIContent? ToAIContent(ChatMessageContentPart contentPart) 561AIContent? aiContent = null;
OpenAIModelMapper.ChatMessage.cs (7)
144foreach (AIContent item in input.Contents) 172foreach (var content in input.Contents) 196private static List<AIContent> FromOpenAIChatContent(IList<ChatMessageContentPart> openAiMessageContentParts) 198List<AIContent> contents = []; 220/// <summary>Converts a list of <see cref="AIContent"/> to a list of <see cref="ChatMessageContentPart"/>.</summary> 221private static List<ChatMessageContentPart> ToOpenAIChatContent(IList<AIContent> contents) 224foreach (var content in contents)
OpenAIModelMappers.StreamingChatCompletion.cs (2)
31foreach (var content in update.Contents) 120if (ToAIContent(contentPart) is AIContent aiContent)
Microsoft.Extensions.AI.OpenAI.Tests (4)
OpenAISerializationTests.cs (4)
49AIContent content = Assert.Single(message.Contents); 82AIContent content = Assert.Single(message.Contents); 114AIContent content = Assert.Single(message.Contents); 568List<AIContent> contents = [new TextContent($"Streaming update {i}")];
Microsoft.Extensions.AI.Tests (11)
ChatCompletion\DistributedCachingChatClientTest.cs (6)
616if (typeInfo.Type == typeof(AIContent)) 736var expectedItem = expectedMessage.Contents[itemIndex]; 737var actualItem = actualMessage.Contents[itemIndex]; 770var expectedItemItem = expectedItem.Contents[itemIndex]; 771var actualItemItem = actualItem.Contents[itemIndex]; 817public class CustomAIContent1(string text, DateTime date) : AIContent
ChatCompletion\FunctionInvokingChatClientTests.cs (5)
235IEnumerable<AIContent> content = finalChat.SelectMany(m => m.Contents); 660var expectedItem = expectedMessage.Contents[j]; 661var chatItem = chatMessage.Contents[j]; 751var expectedItem = expectedMessage.Contents[j]; 752var chatItem = chatMessage.Contents[j];