12 writes to Messages
Microsoft.Extensions.AI (3)
Microsoft.Extensions.AI.Abstractions (1)
Microsoft.Extensions.AI.Abstractions.Tests (2)
Microsoft.Extensions.AI.Evaluation.Reporting (1)
Microsoft.Extensions.AI.Evaluation.Reporting.Azure (1)
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (1)
Microsoft.Extensions.AI.OpenAI (1)
Microsoft.Extensions.AI.Tests (2)
378 references to Messages
Microsoft.AspNetCore.Components.AI (2)
Microsoft.Extensions.AI (12)
Microsoft.Extensions.AI.Abstractions (13)
Microsoft.Extensions.AI.Abstractions.Tests (133)
ChatCompletion\ChatResponseTests.cs (19)
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);
104Assert.Equal(ChatRole.Assistant, result.Messages.Single().Role);
105Assert.Equal("the message", result.Messages.Single().Text);
142Assert.Equal(ChatRole.Assistant, result.Messages.Single().Role);
143Assert.Equal("the message", result.Messages.Single().Text);
203Assert.Single(result.Messages);
204Assert.Equal(ChatRole.Assistant, result.Messages[0].Role);
205Assert.Equal("the message", result.Messages[0].Text);
206Assert.Equal("bot", result.Messages[0].AuthorName);
207Assert.Equal("msg1", result.Messages[0].MessageId);
208Assert.NotNull(result.Messages[0].AdditionalProperties);
209Assert.Equal("msgVal", result.Messages[0].AdditionalProperties!["msgKey"]?.ToString());
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (113)
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);
158Assert.Equal(4, response.Messages.Count);
160Assert.Equal("Hello from Alice!", response.Messages[0].Text);
161Assert.Equal("Alice", response.Messages[0].AuthorName);
162Assert.Equal(ChatRole.Assistant, response.Messages[0].Role);
164Assert.Equal("Hi from Bob!", response.Messages[1].Text);
165Assert.Equal("Bob", response.Messages[1].AuthorName);
166Assert.Equal(ChatRole.Assistant, response.Messages[1].Role);
168Assert.Equal("Greetings from Charlie!", response.Messages[2].Text);
169Assert.Equal("Charlie", response.Messages[2].AuthorName);
170Assert.Equal(ChatRole.Assistant, response.Messages[2].Role);
172Assert.Equal("Alice again! Still Alice. And more.", response.Messages[3].Text);
173Assert.Equal("Alice", response.Messages[3].AuthorName);
174Assert.Equal(ChatRole.Assistant, response.Messages[3].Role);
208Assert.Equal(5, response.Messages.Count);
210Assert.Equal("AB", response.Messages[0].Text);
211Assert.Equal("Alice", response.Messages[0].AuthorName);
212Assert.Equal(ChatRole.Assistant, response.Messages[0].Role);
213Assert.Equal("1", response.Messages[0].MessageId);
215Assert.Equal("C", response.Messages[1].Text);
216Assert.Equal("Bob", response.Messages[1].AuthorName);
217Assert.Equal(ChatRole.Assistant, response.Messages[1].Role);
218Assert.Equal("1", response.Messages[1].MessageId);
220Assert.Equal("DE", response.Messages[2].Text);
221Assert.Equal("Bob", response.Messages[2].AuthorName);
222Assert.Equal(ChatRole.Assistant, response.Messages[2].Role);
223Assert.Equal("2", response.Messages[2].MessageId);
225Assert.Equal("F", response.Messages[3].Text);
226Assert.Equal("Bob", response.Messages[3].AuthorName);
227Assert.Equal(ChatRole.User, response.Messages[3].Role);
228Assert.Equal("2", response.Messages[3].MessageId);
230Assert.Equal("GH", response.Messages[4].Text);
231Assert.Equal("Charlie", response.Messages[4].AuthorName);
232Assert.Equal(ChatRole.Tool, response.Messages[4].Role);
233Assert.Equal("3", response.Messages[4].MessageId);
265ChatMessage message = Assert.Single(response.Messages);
295Assert.Equal(2, response.Messages.Count);
297Assert.Equal("Hello there I'm Bob speaking", response.Messages[0].Text);
298Assert.Equal("Bob", response.Messages[0].AuthorName); // Last AuthorName wins
299Assert.Equal("1", response.Messages[0].MessageId);
301Assert.Equal("Now Alice", response.Messages[1].Text);
302Assert.Equal("Alice", response.Messages[1].AuthorName);
303Assert.Equal("1", response.Messages[1].MessageId);
330Assert.Equal(2, response.Messages.Count);
332Assert.Equal("Hello there from AI", response.Messages[0].Text);
333Assert.Equal("msg1", response.Messages[0].MessageId); // Last MessageId wins
334Assert.Equal(ChatRole.Assistant, response.Messages[0].Role);
336Assert.Equal("Next message", response.Messages[1].Text);
337Assert.Equal("msg2", response.Messages[1].MessageId);
338Assert.Equal(ChatRole.Assistant, response.Messages[1].Role);
368ChatMessage message = Assert.Single(response.Messages);
398Assert.Equal(2, response.Messages.Count);
400Assert.Equal("Hello there from AI", response.Messages[0].Text);
401Assert.Equal(ChatRole.Assistant, response.Messages[0].Role);
402Assert.Equal("1", response.Messages[0].MessageId);
404Assert.Equal("User message", response.Messages[1].Text);
405Assert.Equal(ChatRole.User, response.Messages[1].Role);
406Assert.Equal("1", response.Messages[1].MessageId);
435Assert.Equal(3, response.Messages.Count);
437Assert.Equal("Hello from agent1", response.Messages[0].Text);
438Assert.Equal(new ChatRole("agent1"), response.Messages[0].Role);
440Assert.Equal("Hi from agent2", response.Messages[1].Text);
441Assert.Equal(new ChatRole("agent2"), response.Messages[1].Role);
443Assert.Equal("Assistant here", response.Messages[2].Text);
444Assert.Equal(ChatRole.Assistant, response.Messages[2].Role);
471Assert.Equal(3, response.Messages.Count);
475var msg1 = response.Messages[0];
483var msg2 = response.Messages[1];
491var msg3 = response.Messages[2];
519var message = Assert.Single(response.Messages);
567Assert.Equal(4, response.Messages.Count);
570ChatMessage message1 = response.Messages[0];
578ChatMessage message2 = response.Messages[1];
586ChatMessage message3 = response.Messages[2];
594ChatMessage message4 = response.Messages[3];
669ChatMessage message = response.Messages.Single();
708ChatMessage message = Assert.Single(response.Messages);
738ChatMessage message = Assert.Single(response.Messages);
783ChatMessage message = Assert.Single(response.Messages);
816Assert.Equal("Hello, world!", Assert.IsType<TextContent>(Assert.Single(Assert.Single(response.Messages).Contents)).Text);
861Assert.Single(response.Messages);
863Assert.Equal("abcdefgh", response.Messages[0].Text);
864Assert.Equal(ChatRole.Tool, response.Messages[0].Role);
865Assert.Equal(early, response.Messages[0].CreatedAt);
911Assert.Single(response.Messages);
912Assert.Equal("ab", response.Messages[0].Text);
913Assert.Equal(expected, response.Messages[0].CreatedAt);
950ChatMessage message = Assert.Single(response.Messages);
998ChatMessage message = Assert.Single(response.Messages);
1041ChatMessage message = Assert.Single(response.Messages);
1072ChatMessage message = Assert.Single(response.Messages);
1092ChatMessage message = Assert.Single(response.Messages);
1132var ws1First = Assert.Single(response1.Messages.SelectMany(m => m.Contents).OfType<WebSearchToolCallContent>());
1138var ws1Second = Assert.Single(response2.Messages.SelectMany(m => m.Contents).OfType<WebSearchToolCallContent>());
Microsoft.Extensions.AI.Evaluation (6)
Microsoft.Extensions.AI.Evaluation.Integration.Tests (2)
Microsoft.Extensions.AI.Evaluation.Quality (7)
Microsoft.Extensions.AI.Evaluation.Reporting (1)
Microsoft.Extensions.AI.Evaluation.Reporting.Azure (1)
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (5)
Microsoft.Extensions.AI.Evaluation.Safety (2)
Microsoft.Extensions.AI.Integration.Tests (16)
Microsoft.Extensions.AI.OpenAI (4)
Microsoft.Extensions.AI.OpenAI.Tests (105)
OpenAIChatClientTests.cs (22)
165Assert.Single(response.Messages.Single().Contents);
166Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
167Assert.Equal("chatcmpl-ADx3PvAnCwJg0woha4pYsBTi3ZpOI", response.Messages.Single().MessageId);
839Assert.Single(response.Messages.Single().Contents);
840Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
841Assert.Equal("chatcmpl-ADyV17bXeSm5rzUx3n46O7m3M0o3P", response.Messages.Single().MessageId);
937Assert.Single(response.Messages.Single().Contents);
938Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
1035Assert.Single(response.Messages.Single().Contents);
1036Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
1149Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
1167Assert.Single(response.Messages.Single().Contents);
1168FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(response.Messages.Single().Contents[0]);
1234Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
1252Assert.Single(response.Messages.Single().Contents);
1253TextContent fcc = Assert.IsType<TextContent>(response.Messages.Single().Contents[0]);
1489Assert.Single(response.Messages.Single().Contents);
1490Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
1603Assert.Single(response.Messages.Single().Contents);
1604Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
1605Assert.Equal("chatcmpl-BHaQ3nkeSDGhLzLya3mGbB1EXSqve", response.Messages.Single().MessageId);
1913var message = response.Messages.Single();
OpenAIResponseClientTests.cs (50)
163Assert.Single(response.Messages.Single().Contents);
164Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
906ChatMessage responseMessage = Assert.Single(response.Messages);
1374Assert.Equal(2, response.Messages.Count);
1375Assert.Equal(ChatRole.Assistant, response.Messages[0].Role);
1376Assert.Equal("Hello!", response.Messages[0].Text);
1377Assert.Equal(ChatRole.Assistant, response.Messages[1].Role);
1378Assert.Equal(" How can I assist you today?", response.Messages[1].Text);
1499approvalRequest = Assert.Single(response.Messages.SelectMany(m => m.Contents).OfType<ToolApprovalRequestContent>());
1627var message = Assert.Single(response.Messages);
1628Assert.Equal(ChatRole.Assistant, response.Messages[0].Role);
1629Assert.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 provides an overview of the `Microsoft.Extensions.AI.Abstractions` package, including installation instructions and usage examples for its core interfaces like `IChatClient` and `IEmbeddingGenerator`.", response.Messages[0].Text);
1771var message = Assert.Single(response.Messages);
2004var message = Assert.Single(response.Messages);
2005Assert.Equal(ChatRole.Assistant, response.Messages[0].Role);
2006Assert.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);
2415var message = Assert.Single(response.Messages);
2416Assert.Equal(ChatRole.Assistant, response.Messages[0].Role);
2417Assert.StartsWith("The path to the `README.md` file", response.Messages[0].Text);
2624var message = Assert.Single(response.Messages);
2625Assert.Equal(ChatRole.Assistant, response.Messages[0].Role);
2626Assert.Equal("The tool encountered an error during execution.", response.Messages[0].Text);
2728var message = Assert.Single(response.Messages);
2886Assert.Empty(response.Messages);
2988Assert.Empty(response.Messages);
3000Assert.Single(response.Messages.Single().Contents);
3001Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
3390Assert.Single(response.Messages);
3392var message = response.Messages[0];
3610Assert.Single(response.Messages);
3612var message = response.Messages[0];
3735Assert.Single(response.Messages);
3737var message = response.Messages[0];
5473var lastMessage = response.Messages.Last();
6086Assert.Single(response.Messages);
6087var message = response.Messages[0];
6172var errorContent = response.Messages.Last().Contents.OfType<ErrorContent>().FirstOrDefault();
6227var userMessage = response.Messages.FirstOrDefault(m => m.Role == ChatRole.User);
6236var assistantMessage = response.Messages.LastOrDefault(m => m.Role == ChatRole.Assistant);
6290var userMessage = response.Messages.FirstOrDefault(m => m.Role == ChatRole.User);
6299var assistantMessage = response.Messages.LastOrDefault(m => m.Role == ChatRole.Assistant);
6374Assert.Single(response.Messages);
6375Assert.Equal(ChatRole.Assistant, response.Messages[0].Role);
6377var contents = response.Messages[0].Contents;
6851var message = Assert.Single(response.Messages);
7133Assert.Single(response.Messages);
7135var message = response.Messages[0];
7301var message = Assert.Single(response.Messages);
8841var call = Assert.IsType<FunctionCallContent>(Assert.Single(response.Messages[0].Contents));
8948var coalesced = response.Messages[0].Contents.OfType<FunctionCallContent>().Single();
Microsoft.Extensions.AI.Tests (69)
ChatCompletion\FunctionInvokingChatClientTests.cs (49)
430var toolMessage = response.Messages.First(m => m.Role == ChatRole.Tool);
510var toolMessage = response.Messages.First(m => m.Role == ChatRole.Tool);
594var toolMessage = response.Messages.First(m => m.Role == ChatRole.Tool);
1215Assert.Collection(response.Messages,
1256Assert.Equal(5, response.Messages.Count);
1258Assert.IsType<FunctionCallContent>(Assert.Single(response.Messages[0].Contents));
1259Assert.IsType<FunctionResultContent>(Assert.Single(response.Messages[1].Contents));
1260Assert.IsType<FunctionCallContent>(Assert.Single(response.Messages[2].Contents));
1261Assert.IsType<FunctionResultContent>(Assert.Single(response.Messages[3].Contents));
1262Assert.IsType<TextContent>(Assert.Single(response.Messages[4].Contents));
2063Assert.Contains(response.Messages, m => m.Contents.Any(c => c is FunctionCallContent fcc && fcc.InformationalOnly));
2064Assert.DoesNotContain(response.Messages, m => m.Contents.Any(c => c is FunctionResultContent));
2135Assert.Contains(response.Messages, m => m.Contents.Any(c => c is FunctionResultContent frc && frc.CallId == "callId1"));
2136Assert.DoesNotContain(response.Messages, m => m.Contents.Any(c => c is FunctionResultContent frc && frc.CallId == "callId2"));
2180Assert.Contains(response.Messages, m => m.Contents.Any(c => c is FunctionCallContent fcc && fcc.CallId == "callId1" && fcc.InformationalOnly));
2183Assert.Contains(response.Messages, m => m.Contents.Any(c => c is FunctionResultContent frc && frc.CallId == "callId1"));
2237chat.AddRange(result.Messages);
2301chat.AddRange(result.Messages);
2434Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>().Any(frc => frc.Result?.ToString() == "FunctionB result"));
2439Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>().Any(frc => frc.Result?.ToString() == "FunctionB result"));
2530Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2539Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2635Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2637Assert.DoesNotContain(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2643Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2645Assert.DoesNotContain(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2738Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2740Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2746Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2748Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2840Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2842Assert.DoesNotContain(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2848Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2850Assert.DoesNotContain(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
3015Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
3024Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
3116Assert.Contains(result.Messages, m => m.Contents.OfType<ToolApprovalRequestContent>().Any(frc => ((FunctionCallContent)frc.ToolCall).Name == "FunctionB"));
3119Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>().Any(frc => frc.Result?.ToString() == "FunctionA result"));
3126Assert.Contains(result.Messages, m => m.Contents.OfType<ToolApprovalRequestContent>().Any(frc => ((FunctionCallContent)frc.ToolCall).Name == "FunctionB"));
3129Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>().Any(frc => frc.Result?.ToString() == "FunctionA result"));
3222Assert.Contains(result.Messages, m => m.Contents.OfType<ToolApprovalRequestContent>().Any(frc => ((FunctionCallContent)frc.ToolCall).Name == "FunctionB"));
3225Assert.DoesNotContain(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
3233Assert.Contains(result.Messages, m => m.Contents.OfType<ToolApprovalRequestContent>().Any(frc => ((FunctionCallContent)frc.ToolCall).Name == "FunctionB"));
3236Assert.DoesNotContain(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
3499Assert.Contains(response.Messages, m =>
3503Assert.Contains(response.Messages, m =>
3577Assert.Contains(response.Messages, m =>
3581Assert.Contains(response.Messages, m =>
3639Assert.Contains(response.Messages, m =>