14 writes to Contents
Microsoft.Extensions.AI (3)
ChatCompletion\FunctionInvokingChatClient.cs (3)
1341newMessage.Contents = keptContents; 1472functionCallMessage.Contents = [resultWithRequestMessage.Response.FunctionCall]; 1590message.Contents = [.. message.Contents];
Microsoft.Extensions.AI.Abstractions.Tests (3)
ChatCompletion\ChatMessageTests.cs (3)
180message.Contents = contents; 184message.Contents = contents; 187message.Contents = null;
Microsoft.Extensions.AI.Evaluation.Integration.Tests (6)
SafetyEvaluatorTests.cs (6)
339Contents = [ 377Contents = [ 411Contents = [ 424Contents = [ 460Contents = [ 473Contents = [
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (1)
SerializationChainingTests.cs (1)
32Contents = new List<AIContent>
Microsoft.Extensions.AI.Tests (1)
ChatCompletion\DistributedCachingChatClientTest.cs (1)
51Contents = [new FunctionCallContent("someCallId", "functionName", new Dictionary<string, object?>
297 references to Contents
Microsoft.Extensions.AI (18)
ChatCompletion\FunctionInvokingChatClient.cs (13)
634Contents = message.Contents, 751messages.Any(static m => m.Contents.Any(static c => c is FunctionApprovalRequestContent or FunctionApprovalResponseContent)); 761any |= CopyFunctionCalls(messages[i].Contents, ref functionCalls); 964if (added.Any(static m => m.Contents.Any(static c => c is FunctionResultContent { Exception: not null }))) 970.SelectMany(m => m.Contents.OfType<FunctionResultContent>()) 1305for (int j = 0; j < message.Contents.Count; j++) 1307var content = message.Contents[j]; 1335if (keptContents?.Count != message.Contents.Count) 1443currentMessage.Contents.Add(resultWithRequestMessage.Response.FunctionCall); 1554var content = messages[i].Contents; 1590message.Contents = [.. message.Contents]; 1592var functionCall = (FunctionCallContent)message.Contents[contentIndex]; 1593message.Contents[contentIndex] = new FunctionApprovalRequestContent(functionCall.CallId, functionCall);
ChatCompletion\OpenTelemetryChatClient.cs (1)
247foreach (AIContent content in message.Contents)
ChatReduction\MessageCountingChatReducer.cs (1)
56else if (!message.Contents.Any(m => m is FunctionCallContent or FunctionResultContent))
ChatReduction\SummarizingChatReducer.cs (2)
160if (!unsummarizedMessages[indexOfFirstMessageToKeep - 1].Contents.Any(IsToolRelatedContent)) 224if (!message.Contents.Any(IsToolRelatedContent))
ToolReduction\EmbeddingToolReductionStrategy.cs (1)
54var contents = message.Contents;
Microsoft.Extensions.AI.Abstractions (5)
ChatCompletion\ChatMessage.cs (2)
77/// This property concatenates the text of all <see cref="TextContent"/> objects in <see cref="Contents"/>. 80public string Text => Contents.ConcatText();
ChatCompletion\ChatResponse.cs (1)
151Contents = message.Contents,
ChatCompletion\ChatResponseExtensions.cs (2)
429CoalesceContent((List<AIContent>)response.Messages[i].Contents); 499message.Contents.Add(content);
Microsoft.Extensions.AI.Abstractions.Tests (84)
AssertExtensions.cs (5)
30Assert.Equal(expectedMessage.Contents.Count, chatMessage.Contents.Count); 31for (int j = 0; j < expectedMessage.Contents.Count; j++) 33var expectedItem = expectedMessage.Contents[j]; 34var chatItem = chatMessage.Contents[j];
ChatCompletion\ChatMessageTests.cs (37)
19Assert.Empty(message.Contents); 23Assert.NotNull(message.Contents); 24Assert.Same(message.Contents, message.Contents); 25Assert.Empty(message.Contents); 40Assert.Same(message.Contents, message.Contents); 43Assert.Empty(message.Contents); 47Assert.Single(message.Contents); 48TextContent tc = Assert.IsType<TextContent>(message.Contents[0]); 66Assert.Empty(message.Contents); 70Assert.Empty(message.Contents); 74Assert.Empty(message.Contents); 78Assert.Empty(message.Contents); 97Assert.Same(message.Contents, message.Contents); 100Assert.Empty(message.Contents); 105Assert.Equal(messageCount, message.Contents.Count); 108TextContent tc = Assert.IsType<TextContent>(message.Contents[i]); 154TextContent textContent = Assert.IsType<TextContent>(message.Contents[3]); 159((TextContent)message.Contents[3]).Text = "text-3"; 170Assert.IsType<List<AIContent>>(new ChatMessage().Contents); 177Assert.Empty(message.Contents); 182Assert.Same(contents, message.Contents); 185Assert.Same(contents, message.Contents); 188Assert.NotNull(message.Contents); 189Assert.NotSame(contents, message.Contents); 190Assert.Empty(message.Contents); 281((TextContent)chatMessage.Contents[0]).Text = "content-1-override"; // Override the content of the first text content item that has the "content-1" content 293Assert.NotNull(deserializedMessage.Contents); 294Assert.Equal(items.Count, deserializedMessage.Contents.Count); 296var textContent = deserializedMessage.Contents[0] as TextContent; 303var dataContent = deserializedMessage.Contents[1] as DataContent; 311dataContent = deserializedMessage.Contents[2] as DataContent; 319textContent = deserializedMessage.Contents[3] as TextContent; 326var functionCallContent = deserializedMessage.Contents[4] as FunctionCallContent; 334var functionResultContent = deserializedMessage.Contents[5] as FunctionResultContent;
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (36)
586Assert.Equal(expected.Count + (gapLength * ((numSequences - 1) + (gapBeginningEnd ? 2 : 0))), message.Contents.Count); 588TextContent[] contents = message.Contents.OfType<TextContent>().ToArray(); 623Assert.Equal(8, message.Contents.Count); 624Assert.Equal("ABC", Assert.IsType<TextContent>(message.Contents[0]).Text); 625Assert.Equal("DEF", Assert.IsType<TextReasoningContent>(message.Contents[1]).Text); 626Assert.Equal("GH", Assert.IsType<TextContent>(message.Contents[2]).Text); 627Assert.Equal("IJ", Assert.IsType<TextReasoningContent>(message.Contents[3]).Text); 628Assert.Equal("K", Assert.IsType<TextContent>(message.Contents[4]).Text); 629Assert.Equal("L", Assert.IsType<TextReasoningContent>(message.Contents[5]).Text); 630Assert.Equal("MN", Assert.IsType<TextContent>(message.Contents[6]).Text); 631Assert.Equal("OP", Assert.IsType<TextReasoningContent>(message.Contents[7]).Text); 653Assert.Equal(5, message.Contents.Count); 655Assert.Equal("A", Assert.IsType<TextReasoningContent>(message.Contents[0]).Text); 656Assert.Equal("1", ((TextReasoningContent)message.Contents[0]).ProtectedData); 658Assert.Equal("B", Assert.IsType<TextReasoningContent>(message.Contents[1]).Text); 659Assert.Equal("2", ((TextReasoningContent)message.Contents[1]).ProtectedData); 661Assert.Equal("CDE", Assert.IsType<TextReasoningContent>(message.Contents[2]).Text); 662Assert.Equal("3", ((TextReasoningContent)message.Contents[2]).ProtectedData); 664Assert.Equal("F", Assert.IsType<TextReasoningContent>(message.Contents[3]).Text); 665Assert.Equal("4", ((TextReasoningContent)message.Contents[3]).ProtectedData); 667Assert.Equal("GH", Assert.IsType<TextReasoningContent>(message.Contents[4]).Text); 668Assert.Null(((TextReasoningContent)message.Contents[4]).ProtectedData); 698Assert.Equal(12, message.Contents.Count); 699Assert.Equal("ABC", Assert.IsType<TextContent>(message.Contents[0]).Text); 700Assert.Equal("D", Assert.IsType<TextContent>(message.Contents[1]).Text); 701Assert.Equal("E", Assert.IsType<TextContent>(message.Contents[2]).Text); 702Assert.Equal("F", Assert.IsType<TextContent>(message.Contents[3]).Text); 703Assert.Equal("GH", Assert.IsType<TextContent>(message.Contents[4]).Text); 704Assert.Equal("I", Assert.IsType<TextContent>(message.Contents[5]).Text); 705Assert.Equal("J", Assert.IsType<TextContent>(message.Contents[6]).Text); 706Assert.Equal("K", Assert.IsType<TextContent>(message.Contents[7]).Text); 707Assert.Equal("L", Assert.IsType<TextContent>(message.Contents[8]).Text); 708Assert.Equal("MN", Assert.IsType<TextContent>(message.Contents[9]).Text); 709Assert.Equal("O", Assert.IsType<TextContent>(message.Contents[10]).Text); 710Assert.Equal("P", Assert.IsType<TextContent>(message.Contents[11]).Text); 730Assert.Equal("Hello, world!", Assert.IsType<TextContent>(Assert.Single(Assert.Single(response.Messages).Contents)).Text);
Contents\AIContentTests.cs (6)
86Assert.Equal(message.Contents.Count, deserialized.Contents.Count); 87for (int i = 0; i < message.Contents.Count; i++) 89Assert.NotNull(message.Contents[i]); 90Assert.Equal(message.Contents[i].GetType(), deserialized.Contents[i].GetType());
Microsoft.Extensions.AI.AzureAIInference (8)
AzureAIInferenceChatClient.cs (8)
111message.Contents.Add(callContent); 440foreach (AIContent item in input.Contents) 463if (input.Contents.Count > 0) 465if (input.Contents.All(c => c is TextContent)) 467if (string.Concat(input.Contents) is { Length: > 0 } text) 472else if (GetContentParts(input.Contents) is { Count: > 0 } parts) 480ChatRequestAssistantMessage message = new(string.Concat(input.Contents.Where(c => c is TextContent))); 482foreach (var content in input.Contents)
Microsoft.Extensions.AI.AzureAIInference.Tests (10)
AzureAIInferenceChatClientTests.cs (5)
157Assert.Single(response.Messages.Single().Contents); 1006Assert.Single(response.Messages.Single().Contents); 1141Assert.Single(response.Messages.Single().Contents); 1266Assert.Single(response.Messages.Single().Contents); 1267FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(response.Messages.Single().Contents[0]);
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (5)
30Assert.Equal(expectedMessage.Contents.Count, chatMessage.Contents.Count); 31for (int j = 0; j < expectedMessage.Contents.Count; j++) 33var expectedItem = expectedMessage.Contents[j]; 34var chatItem = chatMessage.Contents[j];
Microsoft.Extensions.AI.Evaluation (4)
ChatMessageExtensions.cs (3)
100/// (present within the <see cref="ChatMessage.Contents"/> of the <paramref name="message"/>) that are not 116if (!message.Contents.OfType<TextContent>().Any()) 139/// (present within the <see cref="ChatMessage.Contents"/> of the <paramref name="messages"/>) that are not
ChatResponseExtensions.cs (1)
21/// (present within the <see cref="ChatMessage.Contents"/> of the <see cref="ChatResponse.Messages"/>) that are not
Microsoft.Extensions.AI.Evaluation.Quality (4)
ChatResponseExtensions.cs (1)
29foreach (AIContent content in modelResponse.Messages.SelectMany(m => m.Contents))
IntentResolutionEvaluator.cs (1)
121modelResponse.Messages.SelectMany(m => m.Contents).OfType<FunctionCallContent>();
TaskAdherenceEvaluator.cs (1)
120modelResponse.Messages.SelectMany(m => m.Contents).OfType<FunctionCallContent>();
ToolCallAccuracyEvaluator.cs (1)
100modelResponse.Messages.SelectMany(m => m.Contents).OfType<FunctionCallContent>();
Microsoft.Extensions.AI.Evaluation.Safety (3)
ChatMessageExtensions.cs (1)
12=> message.Contents.Any(c => c.IsImageWithSupportedFormat());
ContentSafetyServicePayloadUtilities.cs (2)
316foreach (AIContent content in message.Contents) 452foreach (AIContent content in message.Contents)
Microsoft.Extensions.AI.Integration.Tests (10)
ChatClientIntegrationTests.cs (3)
179var singleTextContent = (TextContent)history[1].Contents.Single(); 676((TextContent)message.Contents[0]).Text += "!"; 710((TextContent)message.Contents[0]).Text += "!";
PromptBasedFunctionCallingChatClient.cs (6)
67for (var itemIndex = 0; itemIndex < message.Contents.Count; itemIndex++) 69if (message.Contents[itemIndex] is FunctionResultContent frc) 74else if (message.Contents[itemIndex] is FunctionCallContent fcc) 90var contentItem = message.Contents.SingleOrDefault(); 118message.Contents.Add(new FunctionCallContent(id, toolCallParsed.Name!, toolCallParsed.Arguments is { } args ? new ReadOnlyDictionary<string, object?>(args) : null)); 122message.Contents.Remove(contentItem);
ReducingChatClientTests.cs (1)
98foreach (AIContent content in message.Contents)
Microsoft.Extensions.AI.OpenAI (34)
MicrosoftExtensionsAIChatExtensions.cs (10)
69IEnumerable<ChatToolCall>? toolCalls = lastMessage?.Contents 76new(OpenAIChatClient.ToOpenAIChatContent(lastMessage?.Contents ?? [])), 82outputAudio: lastMessage?.Contents.OfType<DataContent>().Where(dc => dc.HasTopLevelMediaType("audio")).Select(a => OpenAIChatModelFactory.ChatOutputAudio(new(a.Data))).FirstOrDefault(), 83messageAnnotations: ConvertAnnotations(lastMessage?.Contents)); 187OpenAIChatClient.ConvertContentParts(acm.Content, resultMessage.Contents); 192resultMessage.Contents.Add(fcc); 199OpenAIChatClient.ConvertContentParts(ucm.Content, resultMessage.Contents); 204OpenAIChatClient.ConvertContentParts(dcm.Content, resultMessage.Contents); 209OpenAIChatClient.ConvertContentParts(scm.Content, resultMessage.Contents); 213resultMessage.Contents.Add(new FunctionResultContent(tcm.ToolCallId, ToToolResult(tcm.Content))
OpenAIAssistantsChatClient.cs (2)
518foreach (var textContent in chatMessage.Contents.OfType<TextContent>()) 526foreach (AIContent content in chatMessage.Contents)
OpenAIChatClient.cs (9)
157var parts = ToOpenAIChatContent(input.Contents); 166foreach (AIContent item in input.Contents) 192foreach (var content in input.Contents) 479returnMessage.Contents.Add(aiContent); 486returnMessage.Contents.Add(new DataContent(audio.AudioBytes.ToMemory(), GetOutputAudioMimeType(chatCompletionOptions)) 500returnMessage.Contents.Add(callContent); 507returnMessage.Contents.Add(new ErrorContent(refusal) { ErrorCode = nameof(openAICompletion.Refusal) }); 515TextContent? annotationContent = returnMessage.Contents.OfType<TextContent>().FirstOrDefault(); 519returnMessage.Contents.Add(annotationContent);
OpenAIResponsesChatClient.cs (13)
143lastMessage.Contents.Add(new ErrorContent(error.Message) { ErrorCode = error.Code.ToString() }); 175((List<AIContent>)message.Contents).AddRange(ToAIContents(messageItem.Content)); 179message.Contents.Add(new TextReasoningContent(reasoningItem.GetSummaryText()) 189message.Contents.Add(fcc); 193message.Contents.Add(new FunctionResultContent(functionCallOutputItem.CallId, functionCallOutputItem.FunctionOutput) { RawRepresentation = functionCallOutputItem }); 197AddMcpToolCallContent(mtci, message.Contents); 201message.Contents.Add(new McpServerToolApprovalRequestContent(mtcari.Id, new(mtcari.Id, mtcari.ToolName, mtcari.ServerLabel) 212message.Contents.Add(new McpServerToolApprovalResponseContent(mtcari.ApprovalRequestId, mtcari.Approved) { RawRepresentation = mtcari }); 216AddCodeInterpreterContents(cicri, message.Contents); 220message.Contents.Add(new() { RawRepresentation = outputItem }); 779foreach (AIContent item in input.Contents) 859foreach (AIContent item in input.Contents) 907foreach (AIContent item in input.Contents)
Microsoft.Extensions.AI.OpenAI.Tests (68)
OpenAIAssistantChatClientIntegrationTests.cs (2)
65var toolCallContent = response.Messages.SelectMany(m => m.Contents).OfType<CodeInterpreterToolCallContent>().SingleOrDefault(); 83var toolResultContents = response.Messages.SelectMany(m => m.Contents).OfType<CodeInterpreterToolResultContent>().ToList();
OpenAIChatClientTests.cs (10)
163Assert.Single(response.Messages.Single().Contents); 837Assert.Single(response.Messages.Single().Contents); 935Assert.Single(response.Messages.Single().Contents); 1033Assert.Single(response.Messages.Single().Contents); 1165Assert.Single(response.Messages.Single().Contents); 1166FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(response.Messages.Single().Contents[0]); 1249Assert.Single(response.Messages.Single().Contents); 1250TextContent fcc = Assert.IsType<TextContent>(response.Messages.Single().Contents[0]); 1486Assert.Single(response.Messages.Single().Contents); 1600Assert.Single(response.Messages.Single().Contents);
OpenAIConversionTests.cs (15)
583Assert.Same(messages[0].Contents[1].RawRepresentation, items[1]); 584Assert.Same(messages[0].Contents[2].RawRepresentation, items[2]); 588Assert.Same(messages[1].Contents[1].RawRepresentation, items[5]); 589Assert.Same(messages[2].Contents[0].RawRepresentation, items[6]); 619Assert.Equal(3, message.Contents.Count); 620Assert.Equal("Hello, world!", Assert.IsType<TextContent>(message.Contents[0], exactMatch: false).Text); 621Assert.Equal("http://example.com/image.png", Assert.IsType<UriContent>(message.Contents[1], exactMatch: false).Uri.ToString()); 622Assert.Equal("functionName", Assert.IsType<FunctionCallContent>(message.Contents[2], exactMatch: false).Name); 650Assert.Equal(3, message.Contents.Count); 651Assert.Equal("Hello, world!", Assert.IsType<TextContent>(message.Contents[0], exactMatch: false).Text); 652Assert.Equal("http://example.com/image.png", Assert.IsType<UriContent>(message.Contents[1], exactMatch: false).Uri.ToString()); 653Assert.Equal("functionName", Assert.IsType<FunctionCallContent>(message.Contents[2], exactMatch: false).Name); 709Assert.Equal("Function output", convertedMessages[3].Contents.OfType<FunctionResultContent>().First().Result); 764var textContent = message.Contents.OfType<TextContent>().FirstOrDefault(); 765var functionCall = message.Contents.OfType<FunctionCallContent>().FirstOrDefault();
OpenAIResponseClientIntegrationTests.cs (12)
41var toolCallContent = response.Messages.SelectMany(m => m.Contents).OfType<CodeInterpreterToolCallContent>().SingleOrDefault(); 54var toolResultContent = response.Messages.SelectMany(m => m.Contents).OfType<CodeInterpreterToolResultContent>().FirstOrDefault(); 79TextContent tc = m.Contents.OfType<TextContent>().First(); 145Assert.NotEmpty(response.Messages.SelectMany(m => m.Contents).OfType<McpServerToolCallContent>()); 146Assert.NotEmpty(response.Messages.SelectMany(m => m.Contents).OfType<McpServerToolResultContent>()); 147Assert.Empty(response.Messages.SelectMany(m => m.Contents).OfType<McpServerToolApprovalRequestContent>()); 200.SelectMany(m => m.Contents) 204if (approvalResponse.Contents.Count == 0) 209approvalsCount += approvalResponse.Contents.Count; 410var approvalRequest = Assert.Single(response.Messages.SelectMany(m => m.Contents).OfType<McpServerToolApprovalRequestContent>()); 420var toolCall = Assert.Single(response.Messages.SelectMany(m => m.Contents).OfType<McpServerToolCallContent>()); 423var toolResult = Assert.Single(response.Messages.SelectMany(m => m.Contents).OfType<McpServerToolResultContent>());
OpenAIResponseClientTests.cs (24)
162Assert.Single(response.Messages.Single().Contents); 946approvalRequest = Assert.Single(response.Messages.SelectMany(m => m.Contents).OfType<McpServerToolApprovalRequestContent>()); 1079Assert.Equal(3, message.Contents.Count); 1081var call = Assert.IsType<McpServerToolCallContent>(message.Contents[0]); 1090var result = Assert.IsType<McpServerToolResultContent>(message.Contents[1]); 1335Assert.Equal(6, message.Contents.Count); 1337var firstCall = Assert.IsType<McpServerToolCallContent>(message.Contents[1]); 1345var firstResult = Assert.IsType<McpServerToolResultContent>(message.Contents[2]); 1350var secondCall = Assert.IsType<McpServerToolCallContent>(message.Contents[3]); 1358var secondResult = Assert.IsType<McpServerToolResultContent>(message.Contents[4]); 1749Assert.Equal(6, message.Contents.Count); 1751var firstCall = Assert.IsType<McpServerToolCallContent>(message.Contents[1]); 1759var firstResult = Assert.IsType<McpServerToolResultContent>(message.Contents[2]); 1764var secondCall = Assert.IsType<McpServerToolCallContent>(message.Contents[3]); 1772var secondResult = Assert.IsType<McpServerToolResultContent>(message.Contents[4]); 1963Assert.Single(response.Messages.Single().Contents); 2358Assert.Equal(3, message.Contents.Count); 2360var codeCall = Assert.IsType<CodeInterpreterToolCallContent>(message.Contents[0]); 2365var codeResult = Assert.IsType<CodeInterpreterToolResultContent>(message.Contents[1]); 2368var textContent = Assert.IsType<TextContent>(message.Contents[2]); 2578Assert.Equal(3, message.Contents.Count); 2580var codeCall = Assert.IsType<CodeInterpreterToolCallContent>(message.Contents[0]); 2586var codeResult = Assert.IsType<CodeInterpreterToolResultContent>(message.Contents[1]); 2589var textContent = Assert.IsType<TextContent>(message.Contents[2]);
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (5)
30Assert.Equal(expectedMessage.Contents.Count, chatMessage.Contents.Count); 31for (int j = 0; j < expectedMessage.Contents.Count; j++) 33var expectedItem = expectedMessage.Contents[j]; 34var chatItem = chatMessage.Contents[j];
Microsoft.Extensions.AI.Tests (48)
ChatCompletion\DistributedCachingChatClientTest.cs (9)
728Assert.NotSame(result2.Messages.Last().Contents[0], expectedResponse.Messages.Last().Contents[0]); 729Assert.NotSame(result2.Messages.Last().Contents[1], expectedResponse.Messages.Last().Contents[1]); 810Assert.Equal(expectedMessage.Contents.Count, actualMessage.Contents.Count); 812for (var itemIndex = 0; itemIndex < expectedMessage.Contents.Count; itemIndex++) 814var expectedItem = expectedMessage.Contents[itemIndex]; 815var actualItem = actualMessage.Contents[itemIndex];
ChatCompletion\FunctionInvokingChatClientTests.cs (16)
528assistantMessage.Contents.Add(new FunctionCallContent(callId, "Func", 530toolMessage.Contents.Add(new FunctionResultContent(callId, result: callShouldThrow ? "Error: Function failed." : "Success")); 568IEnumerable<AIContent> content = finalChat.SelectMany(m => m.Contents); 784m => Assert.Collection(m.Contents, 787m => Assert.Collection(m.Contents, 790m => Assert.Equal("OK bye", Assert.IsType<TextContent>(Assert.Single(m.Contents)).Text)); 826Assert.IsType<FunctionCallContent>(Assert.Single(response.Messages[0].Contents)); 827Assert.IsType<FunctionResultContent>(Assert.Single(response.Messages[1].Contents)); 828Assert.IsType<FunctionCallContent>(Assert.Single(response.Messages[2].Contents)); 829Assert.IsType<FunctionResultContent>(Assert.Single(response.Messages[3].Contents)); 830Assert.IsType<TextContent>(Assert.Single(response.Messages[4].Contents)); 929AIContent[] resultContents = existingSearchResult is not null && existingSearchResult.Contents.OfType<FunctionResultContent>().ToList() is { } frcs 953var frcs = lastMessage.Contents.OfType<FunctionResultContent>().ToList(); 1211if (!chatContents.Any(m => m.Contents.OfType<FunctionCallContent>().Any())) 1273var message = new ChatMessage(ChatRole.Assistant, [.. plan[contents.Count()].Contents]) 1337ChatMessage message = new(ChatRole.Assistant, [.. plan[contents.Count()].Contents])
ChatCompletion\UseDelegateChatClientTests.cs (2)
103cc.Messages.SelectMany(c => c.Contents).OfType<TextContent>().Last().Text += " world"; 206cc.Messages.SelectMany(c => c.Contents).OfType<TextContent>().Last().Text += " world (non-streaming)";
ChatReduction\MessageCountingChatReducerTests.cs (4)
143Assert.DoesNotContain(m.Contents, c => c is FunctionCallContent); 144Assert.DoesNotContain(m.Contents, c => c is FunctionResultContent); 150Assert.DoesNotContain(m.Contents, c => c is FunctionCallContent); 151Assert.DoesNotContain(m.Contents, c => c is FunctionResultContent);
ChatReduction\SummarizingChatReducerTests.cs (12)
107Assert.DoesNotContain(msgs, m => m.Contents.Any(c => c is FunctionCallContent or FunctionResultContent or TestUserInputRequestContent or TestUserInputResponseContent)); 122Assert.Contains(m.Contents, c => c is FunctionCallContent); 123Assert.Contains(m.Contents, c => c is TestUserInputRequestContent); 125m => Assert.Contains(m.Contents, c => c is FunctionResultContent), 126m => Assert.Contains(m.Contents, c => c is TestUserInputResponseContent), 203Assert.DoesNotContain(msgList, m => m.Contents.Any(c => c is FunctionCallContent or FunctionResultContent or TestUserInputRequestContent or TestUserInputResponseContent)); 219Assert.Contains(resultList, m => m.Contents.Any(c => c is FunctionCallContent fc && fc.CallId == "call2")); 220Assert.Contains(resultList, m => m.Contents.Any(c => c is FunctionResultContent fr && fr.CallId == "call2")); 221Assert.DoesNotContain(resultList, m => m.Contents.Any(c => c is FunctionCallContent fc && fc.CallId == "call1")); 222Assert.DoesNotContain(resultList, m => m.Contents.Any(c => c is FunctionResultContent fr && fr.CallId == "call1")); 223Assert.DoesNotContain(resultList, m => m.Contents.Any(c => c is TestUserInputRequestContent)); 224Assert.DoesNotContain(resultList, m => m.Contents.Any(c => c is TestUserInputResponseContent));
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (5)
30Assert.Equal(expectedMessage.Contents.Count, chatMessage.Contents.Count); 31for (int j = 0; j < expectedMessage.Contents.Count; j++) 33var expectedItem = expectedMessage.Contents[j]; 34var chatItem = chatMessage.Contents[j];
Microsoft.Extensions.DataIngestion.Tests (1)
Processors\AlternativeTextEnricherTests.cs (1)
47var content = Assert.Single(materializedMessages[1].Contents);