7 types derived from AIContent
Microsoft.Extensions.AI.Abstractions (5)
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)
11public sealed class TextContent : 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)
377private class DerivedAIContent : AIContent
75 references to AIContent
Microsoft.Extensions.AI (2)
ChatCompletion\ChatCompletion{T}.cs (1)
120var content = choice?.Contents.Count == 1 ? choice.Contents[0] : null;
ChatCompletion\FunctionInvokingChatClient.cs (1)
614var contents = new AIContent[results.Length];
Microsoft.Extensions.AI.Abstractions (27)
ChatCompletion\ChatMessage.cs (3)
14private IList<AIContent>? _contents; 36IList<AIContent> contents) 94public IList<AIContent> Contents
ChatCompletion\StreamingChatCompletionUpdate.cs (2)
43private IList<AIContent>? _contents; 84public IList<AIContent> Contents
ChatCompletion\StreamingChatCompletionUpdateExtensions.cs (8)
28/// <see langword="true"/> to attempt to coalesce contiguous <see cref="AIContent"/> items, where applicable, 29/// into a single <see cref="AIContent"/>, in order to reduce the number of individual content items that are included in 55/// <see langword="true"/> to attempt to coalesce contiguous <see cref="AIContent"/> items, where applicable, 56/// into a single <see cref="AIContent"/>, in order to reduce the number of individual content items that are included in 99new(default, new List<AIContent>()); 108foreach (var content in update.Contents) 192CoalesceTextContent((List<AIContent>)entry.Value.Contents); 200private static void CoalesceTextContent(List<AIContent> contents)
Contents\AIContent.cs (2)
18/// Initializes a new instance of the <see cref="AIContent"/> class. 26/// If an <see cref="AIContent"/> is created to represent some underlying object from another object
Contents\AIContentExtensions.cs (4)
14/// <summary>Internal extensions for working with <see cref="AIContent"/>.</summary> 18public static T? FindFirst<T>(this IList<AIContent> contents) 19where T : AIContent 34public static string ConcatText(this IList<AIContent> contents)
Utilities\AIJsonUtilities.cs (7)
16/// Adds a custom content type to the polymorphic configuration for <see cref="AIContent"/>. 25where TContent : AIContent 34/// Adds a custom content type to the polymorphic configuration for <see cref="AIContent"/>. 40/// <exception cref="ArgumentException"><paramref name="contentType"/> is a built-in content type or does not derived from <see cref="AIContent"/>.</exception> 48if (!typeof(AIContent).IsAssignableFrom(contentType)) 58if (contentType.Assembly == typeof(AIContent).Assembly) 66if (typeInfo.Type == typeof(AIContent))
Utilities\AIJsonUtilities.Defaults.cs (1)
111[JsonSerializable(typeof(AIContent))]
Microsoft.Extensions.AI.Abstractions.Tests (11)
ChatCompletion\ChatMessageTests.cs (5)
60Assert.Throws<ArgumentNullException>("contents", () => new ChatMessage(ChatRole.User, (IList<AIContent>)null!)); 69List<AIContent> content = []; 193Assert.IsType<List<AIContent>>(new ChatMessage().Contents); 202List<AIContent> contents = []; 262IList<AIContent> items =
ChatCompletion\StreamingChatCompletionUpdateTests.cs (1)
48IList<AIContent> newList = [new TextContent("text")];
Utilities\AIJsonUtilitiesTests.cs (5)
324AIContent c = new DerivedAIContent { DerivedValue = 42 }; 328AIContent? deserialized = JsonSerializer.Deserialize<AIContent>(json, options); 351Assert.Throws<ArgumentException>(() => options.AddAIContentType<AIContent>("discriminator")); 362AIContent c = new DerivedAIContent();
Microsoft.Extensions.AI.AzureAIInference (5)
AzureAIInferenceChatClient.cs (5)
406foreach (AIContent item in input.Contents) 439foreach (var content in input.Contents) 456/// <summary>Converts a list of <see cref="AIContent"/> to a list of <see cref="ChatMessageContentItem"/>.</summary> 457private static List<ChatMessageContentItem> GetContentParts(IList<AIContent> contents) 462foreach (var content in contents)
Microsoft.Extensions.AI.AzureAIInference.Tests (2)
AzureAIInferenceChatClientTests.cs (2)
151[new ChatMessage(ChatRole.User, "hello".Select(c => (AIContent)new TextContent(c.ToString())).ToList())] : 218[new ChatMessage(ChatRole.User, "hello".Select(c => (AIContent)new TextContent(c.ToString())).ToList())] :
Microsoft.Extensions.AI.Ollama (2)
OllamaChatClient.cs (2)
247List<AIContent> contents = []; 390foreach (var item in content.Contents)
Microsoft.Extensions.AI.OpenAI (16)
OpenAIAssistantClient.cs (1)
281foreach (AIContent content in chatMessage.Contents)
OpenAIModelMapper.ChatCompletion.cs (6)
41foreach (AIContent content in chatCompletion.Message.Contents) 90if (ToAIContent(contentPart) is AIContent aiContent) 565/// <summary>Creates an <see cref="AIContent"/> from a <see cref="ChatMessageContentPart"/>.</summary> 567/// <returns>The constructed <see cref="AIContent"/>, or null if the content part could not be converted.</returns> 568private static AIContent? ToAIContent(ChatMessageContentPart contentPart) 570AIContent? 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 chatCompletionUpdate.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); 594List<AIContent> contents = [new TextContent($"Streaming update {i}")];
Microsoft.Extensions.AI.Tests (6)
ChatCompletion\FunctionInvokingChatClientTests.cs (6)
248IEnumerable<AIContent> content = finalChat.SelectMany(m => m.Contents); 317IEnumerable<AIContent> content = finalChat.SelectMany(m => m.Contents); 755var expectedItem = expectedMessage.Contents[j]; 756var chatItem = chatMessage.Contents[j]; 844var expectedItem = expectedMessage.Contents[j]; 845var chatItem = chatMessage.Contents[j];