6 writes to Messages
Microsoft.Extensions.AI (3)
ChatCompletion\FunctionInvokingChatClient.cs (3)
346response.Messages = ReplaceFunctionCallsWithApprovalRequests(response.Messages, toolMap!); 363response.Messages = responseMessages; 409response.Messages = responseMessages!;
Microsoft.Extensions.AI.Abstractions.Tests (1)
ChatCompletion\ChatResponseTests.cs (1)
43response.Messages = messages;
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (1)
SerializationChainingTests.cs (1)
27Messages = new List<ChatMessage>
Microsoft.Extensions.AI.OpenAI (1)
OpenAIResponsesChatClient.cs (1)
113response.Messages = [.. ToChatMessages(openAIResponse.OutputItems)];
168 references to Messages
Microsoft.Extensions.AI (10)
ChatCompletion\ChatResponse{T}.cs (4)
38: base(Throw.IfNull(response).Messages) 130var json = Messages.Count > 0 ? Messages[Messages.Count - 1].Text : string.Empty;
ChatCompletion\FunctionInvokingChatClient.cs (5)
346response.Messages = ReplaceFunctionCallsWithApprovalRequests(response.Messages, toolMap!); 352CopyFunctionCalls(response.Messages, ref functionCallContents); 362responseMessages.AddRange(response.Messages); 370(responseMessages ??= []).AddRange(response.Messages); 604(responseMessages ??= []).AddRange(response.Messages);
ChatCompletion\OpenTelemetryChatClient.cs (1)
525SerializeChatMessages(response.Messages, response.FinishReason));
Microsoft.Extensions.AI.Abstractions (14)
ChatCompletion\ChatResponse.cs (2)
37Messages.Add(message); 58/// instances in <see cref="Messages"/>.
ChatCompletion\ChatResponseExtensions.cs (12)
36listConcrete.AddRange(response.Messages); 40foreach (var message in response.Messages) 293int count = response.Messages.Count; 296CoalesceTextContent((List<AIContent>)response.Messages[i].Contents); 309if (response.Messages.Count == 0) 314&& response.Messages[response.Messages.Count - 1].MessageId is string lastMessageId 320&& response.Messages[response.Messages.Count - 1].Role is { } lastRole 329response.Messages.Add(message); 333message = response.Messages[response.Messages.Count - 1];
Microsoft.Extensions.AI.Abstractions.Tests (38)
ChatCompletion\ChatResponseTests.cs (10)
20Assert.Empty(response.Messages); 24Assert.Empty(response.Messages); 34Assert.NotNull(response.Messages); 35Assert.Same(response.Messages, response.Messages); 39Assert.Same(messages, response.Messages); 42Assert.NotSame(messages, response.Messages); 44Assert.Same(messages, response.Messages); 103Assert.Equal(ChatRole.Assistant, result.Messages.Single().Role); 104Assert.Equal("the message", result.Messages.Single().Text);
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (28)
54ChatMessage message = response.Messages.Single(); 94Assert.Equal(9, response.Messages.Count); 96Assert.Equal("!a", response.Messages[0].Text); 97Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 99Assert.Equal("b", response.Messages[1].Text); 100Assert.Equal(ChatRole.Assistant, response.Messages[1].Role); 102Assert.Equal("cd", response.Messages[2].Text); 103Assert.Equal(ChatRole.User, response.Messages[2].Role); 105Assert.Equal("e", response.Messages[3].Text); 106Assert.Equal(ChatRole.Assistant, response.Messages[3].Role); 108Assert.Equal("fg", response.Messages[4].Text); 109Assert.Equal(ChatRole.Tool, response.Messages[4].Role); 111Assert.Equal("h", response.Messages[5].Text); 112Assert.Equal(ChatRole.Tool, response.Messages[5].Role); 114Assert.Equal("i", response.Messages[6].Text); 115Assert.Equal(new ChatRole("human"), response.Messages[6].Role); 117Assert.Equal("jkl", response.Messages[7].Text); 118Assert.Equal(new ChatRole("human"), response.Messages[7].Role); 120Assert.Equal("m", response.Messages[8].Text); 121Assert.Equal(ChatRole.Assistant, response.Messages[8].Role); 156Assert.Equal(3, response.Messages.Count); 159ChatMessage message1 = response.Messages[0]; 167ChatMessage message2 = response.Messages[1]; 175ChatMessage message3 = response.Messages[2]; 250ChatMessage message = response.Messages.Single(); 289ChatMessage message = Assert.Single(response.Messages); 327ChatMessage message = Assert.Single(response.Messages); 360Assert.Equal("Hello, world!", Assert.IsType<TextContent>(Assert.Single(Assert.Single(response.Messages).Contents)).Text);
Microsoft.Extensions.AI.AzureAIInference.Tests (11)
AzureAIInferenceChatClientTests.cs (11)
157Assert.Single(response.Messages.Single().Contents); 158Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 159Assert.Equal("chatcmpl-ADx3PvAnCwJg0woha4pYsBTi3ZpOI", response.Messages.Single().MessageId); 1006Assert.Single(response.Messages.Single().Contents); 1007Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1008Assert.Equal("chatcmpl-ADyV17bXeSm5rzUx3n46O7m3M0o3P", response.Messages.Single().MessageId); 1141Assert.Single(response.Messages.Single().Contents); 1142Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1258Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1266Assert.Single(response.Messages.Single().Contents); 1267FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(response.Messages.Single().Contents[0]);
Microsoft.Extensions.AI.Evaluation (6)
ChatResponseExtensions.cs (6)
21/// (present within the <see cref="ChatMessage.Contents"/> of the <see cref="ChatResponse.Messages"/>) that are not 22/// <see cref="TextContent"/>s. Any <see cref="ChatResponse.Messages"/> that contain no <see cref="TextContent"/>s 23/// will be skipped and will not be rendered. If none of the <see cref="ChatResponse.Messages"/> include any 27/// The rendered <see cref="ChatResponse.Messages"/> are each prefixed with the <see cref="ChatMessage.Role"/> and 29/// <see cref="ChatResponse.Messages"/>s are also always separated by new line characters in the returned string. 38return response.Messages.RenderText();
Microsoft.Extensions.AI.Evaluation.Integration.Tests (2)
SafetyEvaluatorTests.cs (2)
276messages.AddRange(response1.Messages); 596messages.AddRange(response1.Messages);
Microsoft.Extensions.AI.Evaluation.Quality (7)
ChatResponseExtensions.cs (2)
18return modelResponse.Messages.RenderAsJson(options); 29foreach (AIContent content in modelResponse.Messages.SelectMany(m => m.Contents))
IntentResolutionEvaluator.cs (2)
98if (!modelResponse.Messages.Any()) 121modelResponse.Messages.SelectMany(m => m.Contents).OfType<FunctionCallContent>();
TaskAdherenceEvaluator.cs (2)
97if (!modelResponse.Messages.Any()) 120modelResponse.Messages.SelectMany(m => m.Contents).OfType<FunctionCallContent>();
ToolCallAccuracyEvaluator.cs (1)
100modelResponse.Messages.SelectMany(m => m.Contents).OfType<FunctionCallContent>();
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (5)
ScenarioRunResultTests.cs (2)
311y is not null && x.Messages.SequenceEqual(y.Messages, ChatMessageComparer.Instance);
SerializationChainingTests.cs (3)
49Assert.Single(resp.ModelResponse.Messages); 50Assert.Equal(ChatRole.User, resp.ModelResponse.Messages[0].Role); 51Assert.Equal("A user message", resp.ModelResponse.Messages[0].Text);
Microsoft.Extensions.AI.Evaluation.Safety (2)
ChatResponseExtensions.cs (1)
9=> response.Messages.ContainsImageWithSupportedFormat();
ContentSafetyEvaluator.cs (1)
109IEnumerable<ChatMessage> conversation = [.. messages, .. modelResponse.Messages];
Microsoft.Extensions.AI.Integration.Tests (5)
ChatClientIntegrationTests.cs (4)
663Assert.Equal(firstResponse.Messages.Select(m => m.Text), secondResponse.Messages.Select(m => m.Text)); 669Assert.NotEqual(firstResponse.Messages, thirdResponse.Messages);
PromptBasedFunctionCallingChatClient.cs (1)
89var message = result.Messages.First();
Microsoft.Extensions.AI.OpenAI (4)
MicrosoftExtensionsAIChatExtensions.cs (1)
49var lastMessage = response.Messages.LastOrDefault();
MicrosoftExtensionsAIResponsesExtensions.cs (1)
79outputItems: OpenAIResponsesChatClient.ToOpenAIResponseItems(response.Messages, options),
OpenAIResponsesChatClient.cs (2)
115if (response.Messages.LastOrDefault() is { } lastMessage && openAIResponse.Error is { } error) 120foreach (var message in response.Messages)
Microsoft.Extensions.AI.OpenAI.Tests (43)
OpenAIAssistantChatClientIntegrationTests.cs (1)
60ChatMessage message = Assert.Single(response.Messages);
OpenAIChatClientTests.cs (21)
162Assert.Single(response.Messages.Single().Contents); 163Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 164Assert.Equal("chatcmpl-ADx3PvAnCwJg0woha4pYsBTi3ZpOI", response.Messages.Single().MessageId); 804Assert.Single(response.Messages.Single().Contents); 805Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 806Assert.Equal("chatcmpl-ADyV17bXeSm5rzUx3n46O7m3M0o3P", response.Messages.Single().MessageId); 902Assert.Single(response.Messages.Single().Contents); 903Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1000Assert.Single(response.Messages.Single().Contents); 1001Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1114Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1132Assert.Single(response.Messages.Single().Contents); 1133FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(response.Messages.Single().Contents[0]); 1198Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1216Assert.Single(response.Messages.Single().Contents); 1217TextContent fcc = Assert.IsType<TextContent>(response.Messages.Single().Contents[0]); 1453Assert.Single(response.Messages.Single().Contents); 1454Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1567Assert.Single(response.Messages.Single().Contents); 1568Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1569Assert.Equal("chatcmpl-BHaQ3nkeSDGhLzLya3mGbB1EXSqve", response.Messages.Single().MessageId);
OpenAIConversionTests.cs (2)
228ChatMessage message = Assert.Single(response.Messages); 259ChatMessage message = Assert.Single(response.Messages);
OpenAIResponseClientIntegrationTests.cs (6)
33ChatMessage m = Assert.Single(response.Messages); 100Assert.NotEmpty(response.Messages.SelectMany(m => m.Contents).OfType<McpServerToolCallContent>()); 101Assert.NotEmpty(response.Messages.SelectMany(m => m.Contents).OfType<McpServerToolResultContent>()); 102Assert.Empty(response.Messages.SelectMany(m => m.Contents).OfType<McpServerToolApprovalRequestContent>()); 150input.AddRange(response.Messages); 154response.Messages
OpenAIResponseClientTests.cs (13)
159Assert.Single(response.Messages.Single().Contents); 160Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 816Assert.Equal(2, response.Messages.Count); 817Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 818Assert.Equal("Hello!", response.Messages[0].Text); 819Assert.Equal(ChatRole.Assistant, response.Messages[1].Role); 820Assert.Equal(" How can I assist you today?", response.Messages[1].Text); 1052var message = Assert.Single(response.Messages); 1053Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 1054Assert.Equal("The `README.md` file for `Microsoft.Extensions.AI.Abstractions` is located at:\n\n```\nsrc/Libraries/Microsoft.Extensions.AI.Abstractions/README.md\n```\n\nThis file includes an overview, installation instructions, and usage examples related to the package.", response.Messages[0].Text); 1466var message = Assert.Single(response.Messages); 1467Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 1468Assert.StartsWith("The path to the `README.md` file", response.Messages[0].Text);
Microsoft.Extensions.AI.Tests (21)
ChatCompletion\DistributedCachingChatClientTest.cs (6)
728Assert.NotSame(result2.Messages.Last().Contents[0], expectedResponse.Messages.Last().Contents[0]); 729Assert.NotSame(result2.Messages.Last().Contents[1], expectedResponse.Messages.Last().Contents[1]); 805ChatMessage expectedMessage = expected.Messages.Last(); 806ChatMessage actualMessage = actual.Messages.Last();
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (4)
825var actualOutput = result.Messages as List<ChatMessage> ?? result.Messages.ToList(); 889var actualOutput = result.Messages as List<ChatMessage> ?? result.Messages.ToList();
ChatCompletion\FunctionInvokingChatClientTests.cs (9)
765Assert.Collection(response.Messages, 806Assert.Equal(5, response.Messages.Count); 808Assert.IsType<FunctionCallContent>(Assert.Single(response.Messages[0].Contents)); 809Assert.IsType<FunctionResultContent>(Assert.Single(response.Messages[1].Contents)); 810Assert.IsType<FunctionCallContent>(Assert.Single(response.Messages[2].Contents)); 811Assert.IsType<FunctionResultContent>(Assert.Single(response.Messages[3].Contents)); 812Assert.IsType<TextContent>(Assert.Single(response.Messages[4].Contents)); 1230chat.AddRange(result.Messages); 1294chat.AddRange(result.Messages);
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)";