11 writes to Contents
Microsoft.Extensions.AI (1)
ChatCompletion\FunctionInvokingChatClient.cs (1)
295clone.Contents = clone.Contents.Where(c => c is not FunctionCallContent).ToList();
Microsoft.Extensions.AI.Abstractions.Tests (3)
ChatCompletion\ChatMessageTests.cs (3)
203message.Contents = contents; 207message.Contents = contents; 210message.Contents = null;
Microsoft.Extensions.AI.OpenAI (5)
OpenAIModelMapper.ChatMessage.cs (5)
46Contents = FromOpenAIChatContent(systemMessage.Content), 55Contents = FromOpenAIChatContent(developerMessage.Content), 64Contents = FromOpenAIChatContent(userMessage.Content), 88Contents = [new FunctionResultContent(toolMessage.ToolCallId, result)], 98Contents = FromOpenAIChatContent(assistantMessage.Content),
Microsoft.Extensions.AI.OpenAI.Tests (2)
OpenAISerializationTests.cs (2)
472Contents = [ 717Contents = [fcc],
128 references to Contents
Microsoft.Extensions.AI (8)
ChatCompletion\ChatCompletion{T}.cs (2)
120var content = choice?.Contents.Count == 1 ? choice.Contents[0] : null;
ChatCompletion\FunctionInvokingChatClient.cs (3)
258FunctionCallContent[] functionCallContents = response.Message.Contents.OfType<FunctionCallContent>().ToArray(); 292if (response.Message.Contents.Any(c => c is not FunctionCallContent)) 295clone.Contents = clone.Contents.Where(c => c is not FunctionCallContent).ToList();
ChatCompletion\OpenTelemetryChatClient.cs (3)
453foreach (FunctionResultContent frc in message.Contents.OfType<FunctionResultContent>()) 514var toolCalls = message.Contents.OfType<FunctionCallContent>().Select(fc => new ToolCall 537string content = string.Concat(message.Contents.OfType<TextContent>());
Microsoft.Extensions.AI.Abstractions (9)
ChatCompletion\ChatCompletion.cs (1)
151Contents = choice.Contents,
ChatCompletion\ChatMessage.cs (6)
69/// Gets or sets the text of the first <see cref="TextContent"/> instance in <see cref="Contents" />. 72/// If there is no <see cref="TextContent"/> instance in <see cref="Contents" />, then the getter returns <see langword="null" />, 78get => Contents.FindFirst<TextContent>()?.Text; 81if (Contents.FindFirst<TextContent>() is { } textContent) 87Contents.Add(new TextContent(value)); 113public override string ToString() => Contents.ConcatText();
ChatCompletion\StreamingChatCompletionUpdateExtensions.cs (2)
118message.Contents.Add(content); 192CoalesceTextContent((List<AIContent>)entry.Value.Contents);
Microsoft.Extensions.AI.Abstractions.Tests (51)
ChatCompletion\ChatMessageTests.cs (41)
19Assert.Empty(message.Contents); 22Assert.NotNull(message.Contents); 23Assert.Same(message.Contents, message.Contents); 24Assert.Empty(message.Contents); 39Assert.Same(message.Contents, message.Contents); 42Assert.Empty(message.Contents); 46Assert.Single(message.Contents); 47TextContent tc = Assert.IsType<TextContent>(message.Contents[0]); 79Assert.Same(message.Contents, message.Contents); 82Assert.Empty(message.Contents); 87Assert.Equal(messageCount, message.Contents.Count); 90TextContent tc = Assert.IsType<TextContent>(message.Contents[i]); 135TextContent textContent = Assert.IsType<TextContent>(message.Contents[3]); 143Assert.Same(textContent, message.Contents[3]); 151Assert.Empty(message.Contents); 156Assert.Single(message.Contents); 157TextContent textContent = Assert.IsType<TextContent>(message.Contents[0]); 170Assert.Equal(3, message.Contents.Count); 174Assert.Equal(4, message.Contents.Count); 178Assert.Equal(4, message.Contents.Count); 180message.Contents.RemoveAt(3); 181Assert.Equal(3, message.Contents.Count); 185Assert.Equal(4, message.Contents.Count); 193Assert.IsType<List<AIContent>>(new ChatMessage().Contents); 200Assert.Empty(message.Contents); 205Assert.Same(contents, message.Contents); 208Assert.Same(contents, message.Contents); 211Assert.NotNull(message.Contents); 212Assert.NotSame(contents, message.Contents); 213Assert.Empty(message.Contents); 301Assert.NotNull(deserializedMessage.Contents); 302Assert.Equal(items.Count, deserializedMessage.Contents.Count); 304var textContent = deserializedMessage.Contents[0] as TextContent; 311var dataContent = deserializedMessage.Contents[1] as DataContent; 319dataContent = deserializedMessage.Contents[2] as DataContent; 327textContent = deserializedMessage.Contents[3] as TextContent; 334var functionCallContent = deserializedMessage.Contents[4] as FunctionCallContent; 342var functionResultContent = deserializedMessage.Contents[5] as FunctionResultContent;
ChatCompletion\StreamingChatCompletionUpdateExtensionsTests.cs (10)
95Assert.Empty(message.Contents); 105Assert.Equal("Hello", completion.Choices[0].Contents[0].ToString()); 106Assert.Equal(", ", completion.Choices[0].Contents[1].ToString()); 107Assert.Equal("world!", completion.Choices[0].Contents[2].ToString()); 109Assert.Equal("Hey", completion.Choices[1].Contents[0].ToString()); 110Assert.Equal(", ", completion.Choices[1].Contents[1].ToString()); 111Assert.Equal("you!", completion.Choices[1].Contents[2].ToString()); 185Assert.Equal(expected.Count + (gapLength * ((numSequences - 1) + (gapBeginningEnd ? 2 : 0))), message.Contents.Count); 187TextContent[] contents = message.Contents.OfType<TextContent>().ToArray(); 212Assert.Equal("Hello, world!", Assert.IsType<TextContent>(Assert.Single(completion.Message.Contents)).Text);
Microsoft.Extensions.AI.AzureAIInference (7)
AzureAIInferenceChatClient.cs (7)
114message.Contents.Add(callContent); 406foreach (AIContent item in input.Contents) 429yield return input.Contents.All(c => c is TextContent) ? 430new ChatRequestUserMessage(string.Concat(input.Contents)) : 431new ChatRequestUserMessage(GetContentParts(input.Contents)); 437ChatRequestAssistantMessage message = new(string.Concat(input.Contents.Where(c => c is TextContent))); 439foreach (var content in input.Contents)
Microsoft.Extensions.AI.AzureAIInference.Tests (2)
AzureAIInferenceChatClientTests.cs (2)
163Assert.Single(response.Message.Contents); 661Assert.Single(response.Message.Contents);
Microsoft.Extensions.AI.Integration.Tests (5)
PromptBasedFunctionCallingChatClient.cs (5)
61for (var itemIndex = 0; itemIndex < message.Contents.Count; itemIndex++) 63if (message.Contents[itemIndex] is FunctionResultContent frc) 67message.Contents[itemIndex] = new TextContent( 70else if (message.Contents[itemIndex] is FunctionCallContent fcc) 74message.Contents[itemIndex] = new TextContent(
Microsoft.Extensions.AI.Ollama (1)
OllamaChatClient.cs (1)
390foreach (var item in content.Contents)
Microsoft.Extensions.AI.Ollama.Tests (1)
OllamaChatClientTests.cs (1)
122Assert.Single(response.Message.Contents);
Microsoft.Extensions.AI.OpenAI (12)
OpenAIAssistantClient.cs (2)
273foreach (var textContent in chatMessage.Contents.OfType<TextContent>()) 281foreach (AIContent content in chatMessage.Contents)
OpenAIModelMapper.ChatCompletion.cs (5)
41foreach (AIContent content in chatCompletion.Message.Contents) 67content: new(ToOpenAIChatContent(chatCompletion.Message.Contents)), 92returnMessage.Contents.Add(aiContent); 124returnMessage.Contents.Add(dc); 137returnMessage.Contents.Add(callContent);
OpenAIModelMapper.ChatMessage.cs (5)
108message.Contents.Add(callContent); 136var parts = ToOpenAIChatContent(input.Contents); 144foreach (AIContent item in input.Contents) 167AssistantChatMessage message = new(ToOpenAIChatContent(input.Contents)) 172foreach (var content in input.Contents)
Microsoft.Extensions.AI.OpenAI.Tests (15)
OpenAIChatClientTests.cs (4)
199Assert.Single(response.Message.Contents); 559Assert.Single(response.Message.Contents); 660Assert.Single(response.Message.Contents); 1037Assert.Single(response.Message.Contents);
OpenAISerializationTests.cs (11)
49AIContent content = Assert.Single(message.Contents); 82AIContent content = Assert.Single(message.Contents); 114AIContent content = Assert.Single(message.Contents); 190TextContent text = Assert.IsType<TextContent>(Assert.Single(msg.Contents)); 202TextContent text = Assert.IsType<TextContent>(Assert.Single(msg.Contents)); 214TextContent text = Assert.IsType<TextContent>(Assert.Single(msg.Contents)); 226TextContent text = Assert.IsType<TextContent>(Assert.Single(msg.Contents)); 284Assert.Collection(msg.Contents, 308TextContent text = Assert.IsType<TextContent>(Assert.Single(msg.Contents)); 445FunctionCallContent text = Assert.IsType<FunctionCallContent>(Assert.Single(msg.Contents)); 457FunctionResultContent frc = Assert.IsType<FunctionResultContent>(Assert.Single(msg.Contents));
Microsoft.Extensions.AI.Tests (17)
ChatCompletion\FunctionInvokingChatClientTests.cs (17)
248IEnumerable<AIContent> content = finalChat.SelectMany(m => m.Contents); 317IEnumerable<AIContent> content = finalChat.SelectMany(m => m.Contents); 555m => Assert.Equal("Hello", Assert.IsType<TextContent>(Assert.Single(m.Contents)).Text), 556m => Assert.Collection(m.Contents, 559m => Assert.Collection(m.Contents, 731return new ChatCompletion(new ChatMessage(ChatRole.Assistant, [.. plan[contents.Count].Contents])) { Usage = usage }; 752Assert.Equal(expectedMessage.Contents.Count, chatMessage.Contents.Count); 753for (int j = 0; j < expectedMessage.Contents.Count; j++) 755var expectedItem = expectedMessage.Contents[j]; 756var chatItem = chatMessage.Contents[j]; 820return YieldAsync(new ChatCompletion(new ChatMessage(ChatRole.Assistant, [.. plan[contents.Count].Contents])).ToStreamingChatCompletionUpdates()); 841Assert.Equal(expectedMessage.Contents.Count, chatMessage.Contents.Count); 842for (int j = 0; j < expectedMessage.Contents.Count; j++) 844var expectedItem = expectedMessage.Contents[j]; 845var chatItem = chatMessage.Contents[j];