768 instantiations of ChatMessage
Aspire.Azure.AI.Inference.Tests (1)
ConformanceTests.cs (1)
83service.GetResponseAsync(new ChatMessage()).GetAwaiter().GetResult();
Aspire.Azure.AI.OpenAI.Tests (2)
AspireAzureOpenAIClientBuilderChatClientExtensionsTests.cs (1)
221=> Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello from middleware")));
ConformanceTests.cs (1)
110service.GetResponseAsync(new ChatMessage()).GetAwaiter().GetResult();
Aspire.Dashboard (29)
Model\Assistant\AIHelpers.cs (1)
510list.Add(new ChatMessage(update.Role ?? ChatRole.Assistant, contentsList)
Model\Assistant\AssistantChatViewModel.cs (3)
570var assistantMessage = new ChatMessage(ChatRole.Assistant, responseText.ToString()); 607var assistantMessage = new ChatMessage(ChatRole.Assistant, responseText.ToString()); 884chatViewModel.AddChatMessage(new ChatMessage(ChatRole.User, promptText));
Model\Assistant\Prompts\KnownChatMessages.cs (25)
42return new ChatMessage(ChatRole.System, systemChatMessage); 66return new(ChatRole.User, resolvedPromptText); 77return new(ChatRole.User, prompt); 88return new(ChatRole.User, prompt); 98return new(ChatRole.User, message); 111return new(ChatRole.User, prompt); 121return new(ChatRole.User, prompt); 132return new(ChatRole.User, prompt); 141return new(ChatRole.User, prompt); 154return new(ChatRole.User, prompt); 164return new(ChatRole.User, prompt); 173return new(ChatRole.User, prompt); 194return new(ChatRole.User, prompt); 210return new(ChatRole.User, prompt); 220return new(ChatRole.User, prompt); 230return new(ChatRole.User, prompt); 239return new(ChatRole.User, prompt); 251return new(ChatRole.User, message); 260return new(ChatRole.User, message); 270return new ChatMessage(ChatRole.User, message); 280return new ChatMessage(ChatRole.User, message); 303return new(ChatRole.User, prompt); 326return new(ChatRole.User, prompt); 343return new(ChatRole.User, prompt); 352return new(ChatRole.User, prompt);
Aspire.OpenAI.Tests (2)
AspireOpenAIClientBuilderChatClientExtensionsTests.cs (1)
269=> Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello from middleware")));
ConformanceTests.cs (1)
90service.GetResponseAsync(new ChatMessage()).GetAwaiter().GetResult();
AzureAIFoundryEndToEnd.WebStory (3)
Components_Pages_Home_razor.g.cs (3)
157new(ChatRole.System, "Pick a random topic and write a sentence of a fictional story about it.") 162chatMessages.Add(new ChatMessage(ChatRole.User, "Write the next sentence in the story.")); 173chatMessages.AddMessages(new ChatResponse(new ChatMessage(ChatRole.Assistant, content)));
AzureOpenAIEndToEnd.WebStory (3)
Components_Pages_Home_razor.g.cs (3)
157new(ChatRole.System, "Pick a random topic and write a sentence of a fictional story about it.") 162chatMessages.Add(new ChatMessage(ChatRole.User, "Write the next sentence in the story.")); 173chatMessages.AddMessages(new ChatResponse(new ChatMessage(ChatRole.Assistant, content)));
GitHubModelsEndToEnd.WebStory (3)
Components_Pages_Home_razor.g.cs (3)
157new(ChatRole.System, "Pick a random topic and write a sentence of a fictional story about it.") 162chatMessages.Add(new ChatMessage(ChatRole.User, "Write the next sentence in the story.")); 173chatMessages.AddMessages(new ChatResponse(new ChatMessage(ChatRole.Assistant, content)));
Microsoft.Extensions.AI (12)
ChatCompletion\ChatClientStructuredOutputExtensions.cs (3)
61GetResponseAsync<T>(chatClient, new ChatMessage(ChatRole.User, chatMessage), options, useJsonSchemaResponseFormat, cancellationToken); 101GetResponseAsync<T>(chatClient, new ChatMessage(ChatRole.User, chatMessage), serializerOptions, options, useJsonSchemaResponseFormat, cancellationToken); 190promptAugmentation = new ChatMessage(ChatRole.User, $$"""
ChatCompletion\FunctionInvokingChatClient.cs (3)
1082return [new(ChatRole.Tool, contents)]; 1266new ChatMessage(ChatRole.Tool, rejectedFunctionCallResults) { MessageId = toolMessageId } : 1490ChatMessage functionCallMessage = resultWithRequestMessage.RequestMessage?.Clone() ?? new() { Role = ChatRole.Assistant };
ChatCompletion\OpenTelemetryImageGenerator.cs (2)
198OpenTelemetryChatClient.SerializeChatMessages([new(ChatRole.User, content)])); 250OpenTelemetryChatClient.SerializeChatMessages([new(ChatRole.Assistant, contents)]));
ChatReduction\SummarizingChatReducer.cs (3)
192yield return new ChatMessage(ChatRole.Assistant, summary); 218yield return new ChatMessage(ChatRole.Assistant, summary); 230yield return new ChatMessage(ChatRole.System, summarizationPrompt);
SpeechToText\OpenTelemetrySpeechToTextClient.cs (1)
360OpenTelemetryChatClient.SerializeChatMessages([new(ChatRole.Assistant, response.Contents)]));
Microsoft.Extensions.AI.Abstractions (5)
ChatCompletion\ChatClientExtensions.cs (2)
100return client.GetResponseAsync(new ChatMessage(ChatRole.User, chatMessage), options, cancellationToken); 140return client.GetStreamingResponseAsync(new ChatMessage(ChatRole.User, chatMessage), options, cancellationToken);
ChatCompletion\ChatMessage.cs (1)
51new()
ChatCompletion\ChatResponseExtensions.cs (2)
90list.Add(new(update.Role ?? ChatRole.Assistant, contentsList) 503message = new(ChatRole.Assistant, []);
Microsoft.Extensions.AI.Abstractions.Tests (21)
ChatCompletion\ChatMessageTests.cs (15)
17ChatMessage message = new(); 36ChatMessage message = new(ChatRole.Assistant, text); 64message = new(); 68message = new(ChatRole.User, (string?)null); 72message = new(ChatRole.User, (IList<AIContent>?)null); 76message = new ChatMessage(ChatRole.User, Array.Empty<AIContent>()); 93ChatMessage message = new(ChatRole.System, content); 128ChatMessage message = new() 144ChatMessage message = new(ChatRole.User, 170Assert.IsType<List<AIContent>>(new ChatMessage().Contents); 176ChatMessage message = new(); 196ChatMessage message = new(); 217ChatMessage message = new(); 238ChatMessage message = new(); 276var chatMessage = new ChatMessage(ChatRole.User, contents: items)
ChatCompletion\ChatResponseTests.cs (5)
87ChatResponse original = new(new ChatMessage(ChatRole.Assistant, "the message")) 122ChatResponse response = new(new ChatMessage(ChatRole.Assistant, $"This is a test.{Environment.NewLine}It's multiple lines.")); 130ChatResponse response = new(new ChatMessage(new ChatRole("customRole"), "Text") { MessageId = "someMessage" }) 162new ChatMessage(new ChatRole("customRole"), "Text") 167new ChatMessage(new ChatRole("secondRole"), "Another message")
Contents\AIContentTests.cs (1)
61ChatMessage message = new(ChatRole.User,
Microsoft.Extensions.AI.Evaluation (3)
EvaluatorExtensions.cs (3)
51modelResponse: new ChatMessage(ChatRole.Assistant, modelResponse), 95userRequest: new ChatMessage(ChatRole.User, userRequest), 96modelResponse: new ChatMessage(ChatRole.Assistant, modelResponse),
Microsoft.Extensions.AI.Evaluation.Integration.Tests (9)
SafetyEvaluatorTests.cs (6)
336new ChatMessage 374new ChatMessage 408new ChatMessage 421new ChatMessage 457new ChatMessage 470new ChatMessage
test\Libraries\Microsoft.Extensions.AI.Evaluation.Tests\ChatMessageUtilities.cs (3)
9=> new ChatMessage(ChatRole.System, message); 12=> new ChatMessage(ChatRole.User, message); 15=> new ChatMessage(ChatRole.Assistant, message);
Microsoft.Extensions.AI.Evaluation.NLP.Tests (17)
BLEUEvaluatorTests.cs (6)
19var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "The quick brown fox jumps over the lazy dog.")); 35var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Completely unrelated sentence.")); 50var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Some text.")); 70var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, hypothesis)); 90var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, hypothesis)); 103var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, ""));
F1EvaluatorTests.cs (5)
19var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "The quick brown fox jumps over the lazy dog.")); 35var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Completely unrelated sentence.")); 50var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Some text.")); 70var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, hypothesis)); 83var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, ""));
GLEUEvaluatorTests.cs (6)
19var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "The quick brown fox jumps over the lazy dog.")); 35var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Completely unrelated sentence.")); 50var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Some text.")); 70var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, hypothesis)); 90var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, hypothesis)); 103var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, ""));
Microsoft.Extensions.AI.Evaluation.Quality (22)
CoherenceEvaluator.cs (2)
117List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 195evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
CompletenessEvaluator.cs (2)
125List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 187evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
EquivalenceEvaluator.cs (2)
124List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 174evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
FluencyEvaluator.cs (2)
109List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 175evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
GroundednessEvaluator.cs (2)
127List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 297evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
IntentResolutionEvaluator.cs (2)
173List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 316evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
RelevanceEvaluator.cs (2)
122List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 201evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
RelevanceTruthAndCompletenessEvaluator.cs (1)
266return [new ChatMessage(ChatRole.User, evaluationPrompt)];
RetrievalEvaluator.cs (2)
141List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 226evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
TaskAdherenceEvaluator.cs (1)
264List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, systemPrompt)];
ToolCallAccuracyEvaluator.cs (2)
170List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 219evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
Utilities\JsonOutputFixer.cs (2)
67new ChatMessage(ChatRole.System, SystemPrompt), 68new ChatMessage(ChatRole.User, fixPrompt)
Microsoft.Extensions.AI.Evaluation.Reporting (3)
ScenarioRunExtensions.cs (3)
36modelResponse: new ChatMessage(ChatRole.Assistant, modelResponse), 65userRequest: new ChatMessage(ChatRole.User, userRequest), 66modelResponse: new ChatMessage(ChatRole.Assistant, modelResponse),
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (7)
ResultStoreTester.cs (2)
34messages: [new ChatMessage(ChatRole.User, "User prompt")], 35modelResponse: new ChatResponse(new ChatMessage(ChatRole.Assistant, "LLM response")),
ScenarioRunResultTests.cs (4)
87messages: [new ChatMessage(ChatRole.User, "prompt")], 88modelResponse: new ChatResponse(new ChatMessage(ChatRole.Assistant, "response")), 179messages: [new ChatMessage(ChatRole.User, "prompt")], 180modelResponse: new ChatResponse(new ChatMessage(ChatRole.Assistant, "response")),
SerializationChainingTests.cs (1)
28new ChatMessage
Microsoft.Extensions.AI.Evaluation.Safety (2)
ContentSafetyChatClient.cs (1)
67return new ChatResponse(new ChatMessage(ChatRole.Assistant, annotationResult))
ContentSafetyEvaluator.cs (1)
133var payloadMessage = new ChatMessage(ChatRole.User, payload);
Microsoft.Extensions.AI.Evaluation.Tests (3)
ChatMessageUtilities.cs (3)
9=> new ChatMessage(ChatRole.System, message); 12=> new ChatMessage(ChatRole.User, message); 15=> new ChatMessage(ChatRole.Assistant, message);
Microsoft.Extensions.AI.Integration.Tests (111)
ChatClientIntegrationTests.cs (65)
78new(ChatRole.User, "Pick a city, any city"), 79new(ChatRole.Assistant, "Seattle"), 80new(ChatRole.User, "And another one"), 81new(ChatRole.Assistant, "Jakarta"), 82new(ChatRole.User, "What continent are they each in?"), 96new(ChatRole.System, []), 97new(ChatRole.User, []), 98new(ChatRole.Assistant, []), 99new(ChatRole.User, "What is 1 + 2? Reply with a single number."), 112new(ChatRole.User, "Quote, word for word, Neil Armstrong's famous words.") 170List<ChatMessage> history = [new(ChatRole.User, "Explain in 100 words how AI works")]; 193new(ChatRole.User, 211new(ChatRole.User, 241new(ChatRole.User, "What is the current secret number?") 308new(ChatRole.User, "What is the secret number for id foo?") 340new(ChatRole.User, "What is the secret number for John aged 19?") 370new(ChatRole.User, "Can you add bacon, lettuce, and tomatoes to Peter's shopping cart?") 649var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 665var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 690var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 742var message = new ChatMessage(ChatRole.User, "What is the temperature?"); 781var message = new ChatMessage(ChatRole.User, "What is the temperature?"); 823var message = new ChatMessage(ChatRole.User, "What is the temperature?"); 851await chatClient.GetResponseAsync([new(ChatRole.User, "What's the biggest animal?")]); 950var response = await chatClient.GetResponseAsync([new(ChatRole.User, "What's the biggest animal?")]); 1146new(ChatRole.User, "My name is Alice and I love hiking in the mountains."), 1147new(ChatRole.Assistant, "Nice to meet you, Alice! Hiking in the mountains sounds wonderful. Do you have a favorite trail?"), 1148new(ChatRole.User, "Yes, I love the Pacific Crest Trail. I hiked a section last summer."), 1149new(ChatRole.Assistant, "The Pacific Crest Trail is amazing! Which section did you hike?"), 1150new(ChatRole.User, "I hiked the section through the Sierra Nevada. It was challenging but beautiful."), 1151new(ChatRole.Assistant, "The Sierra Nevada section is known for its stunning views. How long did it take you?"), 1152new(ChatRole.User, "What's my name and what activity do I enjoy?") 1187new(ChatRole.System, "You are a pirate. Always respond in pirate speak."), 1188new(ChatRole.User, "Tell me about the weather"), 1189new(ChatRole.Assistant, "Ahoy matey! The weather be fine today, with clear skies on the horizon!"), 1190new(ChatRole.User, "What about tomorrow?"), 1191new(ChatRole.Assistant, "Arr, tomorrow be lookin' a bit cloudy, might be some rain blowin' in from the east!"), 1192new(ChatRole.User, "Should I bring an umbrella?"), 1193new(ChatRole.Assistant, "Aye, ye best be bringin' yer umbrella, unless ye want to be soaked like a barnacle!"), 1194new(ChatRole.User, "What's 2 + 2?") 1248new(ChatRole.User, "What's the weather in Seattle?"), 1249new(ChatRole.Assistant, "Let me check the weather in Seattle for you."), 1250new(ChatRole.User, "And what about Miami?"), 1251new(ChatRole.Assistant, "I'll check Miami's weather as well."), 1252new(ChatRole.User, "Which city had better weather?") 1282new(ChatRole.User, "I'm Bob and I work as a software engineer at a startup."), 1283new(ChatRole.Assistant, "Nice to meet you, Bob! Working at a startup must be exciting. What kind of software do you develop?"), 1284new(ChatRole.User, "We build AI-powered tools for education."), 1285new(ChatRole.Assistant, "That sounds impactful! AI in education has so much potential."), 1286new(ChatRole.User, "Yes, we focus on personalized learning experiences."), 1287new(ChatRole.Assistant, "Personalized learning is the future of education!"), 1288new(ChatRole.User, "Was anyone named in the conversation? Provide their name and job.") 1328new(ChatRole.User, "I have 3 cats and 2 dogs."), 1329new(ChatRole.Assistant, "That's 5 pets total! You must have a lively household."), 1330new(ChatRole.User, "Yes, and I spend about $200 per month on pet food."), 1331new(ChatRole.Assistant, "That's a significant expense, but I'm sure they're worth it!"), 1332new(ChatRole.User, "They eat 10 cans of food per week."), 1333new(ChatRole.Assistant, "That's quite a bit of food for your furry friends!"), 1334new(ChatRole.User, "How many pets do I have in total?") 1470history.Add(new ChatMessage(ChatRole.User, "What will the weather be in Seattle tomorrow?")); 1479history.Add(new ChatMessage(ChatRole.User, "Please translate 'good evening' into French.")); 1534new(ChatRole.User, "What will the weather be like in Redmond next week?") 1599history.Add(new ChatMessage(ChatRole.User, "What's the weather like tomorrow in Seattle?")); 1612history.Add(new ChatMessage(ChatRole.User, "And what about next week?")); 1704history.Add(new ChatMessage(ChatRole.User, "What will the weather be like in London tomorrow?"));
ImageGeneratingChatClientIntegrationTests.cs (12)
129[new ChatMessage(ChatRole.User, "Please generate an image of a cat")], 167[new ChatMessage(ChatRole.User, [new TextContent("Please edit this image to add a red border"), originalImageData])], 196new(ChatRole.User, "Please generate an image of a dog") 204chatHistory.Add(new ChatMessage(ChatRole.User, "Please edit the image to make it more colorful")); 246new(ChatRole.User, "Please generate an image of a tree") 254chatHistory.Add(new ChatMessage(ChatRole.User, "Please edit the image to add flowers")); 259chatHistory.Add(new ChatMessage(ChatRole.User, "Please edit that last image to add birds")); 291new(ChatRole.User, "Please generate an image of a tree") 299chatHistory.Add(new ChatMessage(ChatRole.User, "Please edit the image to add fruit")); 304chatHistory.Add(new ChatMessage(ChatRole.User, "That didn't work out. Please edit the original image to add birds")); 342[new ChatMessage(ChatRole.User, "Generate an image of a castle")], 380new ChatMessage(ChatRole.User,
PromptBasedFunctionCallingChatClient.cs (3)
72chatMessagesList[messageIndex] = new ChatMessage(ChatRole.User, $"<tool_call_result>{toolCallResultJson}</tool_call_result>"); 77chatMessagesList[messageIndex] = new ChatMessage(ChatRole.Assistant, $"<tool_call_json>{toolCallJson}</tool_call_json>"); 186return new ChatMessage(ChatRole.System, prompt);
ReducingChatClientTests.cs (5)
45new ChatMessage(ChatRole.User, "Hi there! Can you tell me about golden retrievers?"), 46new ChatMessage(ChatRole.Assistant, "Of course! Golden retrievers are known for their friendly and tolerant attitudes. They're great family pets and are very intelligent and easy to train."), 47new ChatMessage(ChatRole.User, "What kind of exercise do they need?"), 48new ChatMessage(ChatRole.Assistant, "Golden retrievers are quite active and need regular exercise. Daily walks, playtime, and activities like fetching or swimming are great for them."), 49new ChatMessage(ChatRole.User, "Are they good with kids?"),
ToolReductionTests.cs (26)
32new[] { new ChatMessage(ChatRole.User, "Tell me about weather") }, 50new[] { new ChatMessage(ChatRole.User, "anything") }, 67new ChatMessage(ChatRole.User, "Can you do some weather math for forecasting?") 88new[] { new ChatMessage(ChatRole.User, "Explain weather math please") }, 103var messages = new[] { new ChatMessage(ChatRole.User, "weather") }; 122new[] { new ChatMessage(ChatRole.User, "anything") }, null); 127new[] { new ChatMessage(ChatRole.User, "weather") }, options); 145new[] { new ChatMessage(ChatRole.User, "Pick something") }, 161new[] { new ChatMessage(ChatRole.User, "any") }, 178new[] { new ChatMessage(ChatRole.User, "math") }, 193new[] { new ChatMessage(ChatRole.User, "translate") }, 211new[] { new ChatMessage(ChatRole.User, "weather") }, 227new ChatMessage(ChatRole.User, "Please tell me the weather tomorrow."), 228new ChatMessage(ChatRole.Assistant, "Sure, I can help."), 229new ChatMessage(ChatRole.User, "Now instead solve a math problem.") 258new[] { new ChatMessage(ChatRole.User, "weather and math") }, 277new ChatMessage(ChatRole.User, userLine), 278new ChatMessage(ChatRole.Assistant, 309new ChatMessage(ChatRole.User, 334new[] { new ChatMessage(ChatRole.User, "math") }, 353new[] { new ChatMessage(ChatRole.User, "weather math") }, 381new[] { new ChatMessage(ChatRole.User, "weather math please") }, 411new[] { new ChatMessage(ChatRole.User, "math") }, 433var messages = new[] { new ChatMessage(ChatRole.User, " ") }; 456var messages = new[] { new ChatMessage(ChatRole.User, " ") }; 479new ChatMessage(ChatRole.User, "This content will be ignored by custom selector.")
Microsoft.Extensions.AI.OpenAI (4)
MicrosoftExtensionsAIChatExtensions.cs (1)
180Microsoft.Extensions.AI.ChatMessage resultMessage = new()
OpenAIChatClient.cs (1)
466ChatMessage returnMessage = new()
OpenAIResponsesChatClient.cs (2)
175message ??= new(ChatRole.Assistant, (string?)null); 183message = new ChatMessage();
Microsoft.Extensions.AI.OpenAI.Tests (84)
OpenAIChatClientTests.cs (17)
819new(ChatRole.System, "You are a really nice friend."), 820new(ChatRole.User, "hello!"), 821new(ChatRole.Assistant, "hi, how are you?"), 822new(ChatRole.User, "i'm good. how are you?"), 926new(ChatRole.System, [new TextContent("You are a really nice friend."), new TextContent("Really nice.")]), 927new(ChatRole.User, "hello!"), 1022new(ChatRole.System, "You are a really nice friend."), 1023new(ChatRole.User, "hello!"), 1024new(ChatRole.Assistant, (string?)null), 1025new(ChatRole.User, "i'm good. how are you?"), 1464new(ChatRole.System, "You are a really nice friend."), 1465new(ChatRole.User, "hello!"), 1466new(ChatRole.Assistant, 1472new (ChatRole.Tool, 1477new(ChatRole.Assistant, "You are great."), 1478new(ChatRole.User, "Thanks!"), 1584new(ChatRole.User,
OpenAIConversionTests.cs (35)
438new(ChatRole.System, "You are a helpful assistant."), 439new(ChatRole.User, "Hello") { AuthorName = "Jane" }, 440new(ChatRole.Assistant, 449new(ChatRole.Tool, [new FunctionResultContent("callid123", "theresult")]), 450new(ChatRole.Assistant, "The answer is 42.") { AuthorName = "@#$#$@$" }, 507new(ChatRole.System, "You are a helpful assistant."), 508new(ChatRole.User, "Hello"), 509new(ChatRole.Assistant, 518new(ChatRole.Tool, [new FunctionResultContent("callid123", "theresult")]), 519new(ChatRole.Assistant, "The answer is 42."), 560new(ChatRole.User, 568new(ChatRole.Assistant, 573new(ChatRole.User, 723new(ChatRole.Assistant, "Hi there!") 749new(ChatRole.Assistant, 785var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, 824var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello")); 854var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, 899var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Test")) 922var chatResponse = new ChatResponse(new ChatMessage(inputRole, "Test")); 1261var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Test")) 1274var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello, world!")) 1299var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Test message")) 1349new(ChatRole.Assistant, "First message"), 1350new(ChatRole.Assistant, "Second message"), 1351new(ChatRole.Assistant, 1386new(ChatRole.Assistant, 1391new(ChatRole.Tool, [new FunctionResultContent("call-456", "The weather is sunny")]), 1392new(ChatRole.Assistant, "The weather in Seattle is sunny!") 1421new(ChatRole.System, "You are a helpful assistant."), 1422new(ChatRole.User, "Hello, how are you?"), 1423new(ChatRole.Assistant, "I'm doing well, thank you for asking!") 1448var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Default test")); 1466var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Model test")); 1481var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Model priority test"))
OpenAIResponseClientIntegrationTests.cs (4)
179List<ChatMessage> input = [new ChatMessage(ChatRole.User, "Tell me the path to the README.md file for Microsoft.Extensions.AI.Abstractions in the dotnet/extensions repository")]; 198var approvalResponse = new ChatMessage(ChatRole.Tool, 401List<ChatMessage> input = [new ChatMessage(ChatRole.User, "What is on my calendar for today?")]; 412input.Add(new ChatMessage(ChatRole.Tool, [approvalRequest.CreateResponse(true)]));
OpenAIResponseClientTests.cs (28)
708var response = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "Search the web for the temperature today in Fremont")], chatOptions); 799await foreach (var update in client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "Search the web for the temperature today in Fremont")], chatOptions)) 1424new ChatMessage(new ChatRole(role), [approvalRequest.CreateResponse(true)]), chatOptions); 3894new ChatMessage(ChatRole.User, "test"), 3895new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call_123", new TextContent("Result text"))]) 3950new ChatMessage(ChatRole.User, "test"), 3951new ChatMessage(ChatRole.Tool, [ 4012new ChatMessage(ChatRole.User, "test"), 4013new ChatMessage(ChatRole.Tool, [ 4069new ChatMessage(ChatRole.User, "test"), 4070new ChatMessage(ChatRole.Tool, [ 4126new ChatMessage(ChatRole.User, "test"), 4127new ChatMessage(ChatRole.Tool, [ 4185new ChatMessage(ChatRole.User, "test"), 4186new ChatMessage(ChatRole.Tool, [ 4248new ChatMessage(ChatRole.User, "test"), 4249new ChatMessage(ChatRole.Tool, [ 4303new ChatMessage(ChatRole.User, "test"), 4304new ChatMessage(ChatRole.Tool, [ 4358new ChatMessage(ChatRole.User, "test"), 4359new ChatMessage(ChatRole.Tool, [ 4415new ChatMessage(ChatRole.User, "test"), 4416new ChatMessage(ChatRole.Tool, [ 4472new ChatMessage(ChatRole.User, "test"), 4473new ChatMessage(ChatRole.Tool, [ 4639new ChatMessage(ChatRole.User, [ 4887[new ChatMessage(ChatRole.User, "test")], 5085var response = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "")]);
Microsoft.Extensions.AI.Tests (394)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (15)
75var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 136var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 198new ChatMessage(ChatRole.Assistant, 203new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callid123", "result")]), 239var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "This is not valid JSON")); 245var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 258var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "null")); 264var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 277var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, [new UriContent("https://example.com", "image/*")])); 283var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 311var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 339var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 364var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, jso))); 401var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 429var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
ChatCompletion\DistributedCachingChatClientTest.cs (12)
49new ChatMessage(new ChatRole("fakeRole"), "This is some content") 141return new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello")); 185var input = new ChatMessage(ChatRole.User, "abc"); 215return new ChatResponse(new ChatMessage(ChatRole.Assistant, "A good result")); 224var input = new ChatMessage(ChatRole.User, "abc"); 495var input = new ChatMessage(ChatRole.User, "abc"); 533var input = new ChatMessage(ChatRole.User, "abc"); 560return new(new ChatMessage(ChatRole.Assistant, options!.AdditionalProperties!["someKey"]!.ToString())); 611return new(new ChatMessage(ChatRole.Assistant, innerCallCount.ToString())); 657return new(new ChatMessage(ChatRole.Assistant, options!.AdditionalProperties!["someKey"]!.ToString())); 686new ChatMessage(new ChatRole("fakeRole"), 745new ChatMessage(ChatRole.Assistant, [new TextContent("Hey")])));
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (113)
36new ChatMessage(ChatRole.User, "hello"), 41new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 46new ChatMessage(ChatRole.Assistant, 72new ChatMessage(ChatRole.User, "hello"), 77new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 82new ChatMessage(ChatRole.Assistant, 116new ChatMessage(ChatRole.User, "hello"), 121new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 126new ChatMessage(ChatRole.Assistant, 152new ChatMessage(ChatRole.User, "hello"), 153new ChatMessage(ChatRole.Assistant, 158new ChatMessage(ChatRole.User, 167new ChatMessage(ChatRole.User, "hello"), 168new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 169new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 174new ChatMessage(ChatRole.Assistant, "world"), 179new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 180new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 181new ChatMessage(ChatRole.Assistant, "world"), 203new ChatMessage(ChatRole.User, "hello"), 204new ChatMessage(ChatRole.Assistant, 208new ChatMessage(ChatRole.Assistant, 212new ChatMessage(ChatRole.User, 216new ChatMessage(ChatRole.User, 224new ChatMessage(ChatRole.User, "hello"), 225new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = "resp1" }, 226new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]) { MessageId = "resp2" }, 227new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 232new ChatMessage(ChatRole.Assistant, "world"), 237new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = "resp1" }, 238new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]) { MessageId = "resp2" }, 239new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 240new ChatMessage(ChatRole.Assistant, "world"), 262new ChatMessage(ChatRole.User, "hello"), 263new ChatMessage(ChatRole.Assistant, 268new ChatMessage(ChatRole.User, 277new ChatMessage(ChatRole.User, "hello"), 278new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 279new ChatMessage(ChatRole.Tool, 288new ChatMessage(ChatRole.Assistant, "world"), 293new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 294new ChatMessage(ChatRole.Tool, 299new ChatMessage(ChatRole.Assistant, "world"), 321new ChatMessage(ChatRole.User, "hello"), 322new ChatMessage(ChatRole.Assistant, 327new ChatMessage(ChatRole.User, 336new ChatMessage(ChatRole.User, "hello"), 337new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 338new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Error: Tool call invocation was rejected by user.")]), 339new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 344new ChatMessage(ChatRole.Assistant, "world"), 349new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 350new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Error: Tool call invocation was rejected by user.")]), 351new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 352new ChatMessage(ChatRole.Assistant, "world"), 357new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 358new ChatMessage(ChatRole.Tool, 363new ChatMessage(ChatRole.Assistant, "world"), 385new ChatMessage(ChatRole.User, "hello"), 386new ChatMessage(ChatRole.Assistant, 391new ChatMessage(ChatRole.User, 400new ChatMessage(ChatRole.User, "hello"), 401new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 402new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 407new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 3 } })]), 412new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 413new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 414new ChatMessage(ChatRole.Assistant, 439new ChatMessage(ChatRole.User, "hello"), 440new ChatMessage(ChatRole.Assistant, 445new ChatMessage(ChatRole.User, 450new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 451new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 452new ChatMessage(ChatRole.Assistant, 456new ChatMessage(ChatRole.User, 464new ChatMessage(ChatRole.User, "hello"), 465new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 466new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 467new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "Func1")]), 468new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 1")]), 473new ChatMessage(ChatRole.Assistant, "World"), 478new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "Func1")]), 479new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 1")]), 480new ChatMessage(ChatRole.Assistant, "World"), 510new ChatMessage(ChatRole.User, "hello"), 517new ChatMessage(ChatRole.User, "hello"), 521new ChatMessage(ChatRole.User, "hello"), 522new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 523new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]) 531new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 535new ChatMessage(ChatRole.Assistant, "World again"), 541new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 542new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 543new ChatMessage(ChatRole.Assistant, "World again"), 565new ChatMessage(ChatRole.User, "hello"), 566new ChatMessage(ChatRole.Assistant, 595new ChatMessage(ChatRole.User, "hello"), 596new ChatMessage(ChatRole.User, 605new ChatMessage(ChatRole.User, "hello"), 606new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 607new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 612new ChatMessage(ChatRole.Assistant, "world"), 617new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 618new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 619new ChatMessage(ChatRole.Assistant, "world"), 642new ChatMessage(ChatRole.User, 651new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 656new ChatMessage(ChatRole.Assistant, "world"), 661new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 662new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 663new ChatMessage(ChatRole.Assistant, "world"), 691List<ChatMessage> input = [new ChatMessage(ChatRole.User, "hello")]; 764List<ChatMessage> input = [new ChatMessage(ChatRole.User, "hello")];
ChatCompletion\FunctionInvokingChatClientTests.cs (133)
93new ChatMessage(ChatRole.User, "hello"), 94new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 95new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 96new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 97new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 98new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 99new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 100new ChatMessage(ChatRole.Assistant, "world"), 127new ChatMessage(ChatRole.User, "hello"), 128new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 129new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 130new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 131new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 132new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 133new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 134new ChatMessage(ChatRole.Assistant, "world"), 160new ChatMessage(ChatRole.User, "hello"), 161new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 162new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 163new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 164new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 165new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 166new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 167new ChatMessage(ChatRole.Assistant, "world"), 191new ChatMessage(ChatRole.User, "hello"), 192new ChatMessage(ChatRole.Assistant, 198new ChatMessage(ChatRole.Tool, 204new ChatMessage(ChatRole.Assistant, 209new ChatMessage(ChatRole.Tool, 214new ChatMessage(ChatRole.Assistant, "world"), 251new ChatMessage(ChatRole.User, "hello"), 252new ChatMessage(ChatRole.Assistant, 257new ChatMessage(ChatRole.Tool, 262new ChatMessage(ChatRole.Assistant, "done"), 295new ChatMessage(ChatRole.User, "hello"), 296new ChatMessage(ChatRole.Assistant, 301new ChatMessage(ChatRole.Tool, 306new ChatMessage(ChatRole.Assistant, "done"), 329new ChatMessage(ChatRole.User, "hello"), 330new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 331new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1 from delegate")]), 332new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 333new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42 from delegate")]), 334new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 335new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 336new ChatMessage(ChatRole.Assistant, "world"), 378new ChatMessage(ChatRole.User, "hello"), 379new ChatMessage(ChatRole.Assistant, [new FunctionCallContent($"callId0", "VoidReturn")]), 386plan.Add(new ChatMessage(ChatRole.Tool, [new FunctionResultContent($"callId{i}", result: "Success: Function completed.")])); 387plan.Add(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent($"callId{(i + 1)}", "VoidReturn")])); 427new ChatMessage(ChatRole.User, "hello"), 505new ChatMessage(ChatRole.User, "hello"), 522var assistantMessage = new ChatMessage(ChatRole.Assistant, []); 523var toolMessage = new ChatMessage(ChatRole.Tool, []); 552new ChatMessage(ChatRole.User, "hello"), 553new ChatMessage(ChatRole.Assistant, [new TextContent("extra"), new FunctionCallContent("callId1", "Func1"), new TextContent("stuff")]), 554new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 1")]), 555new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 556new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 557new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } }), new TextContent("more")]), 558new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 559new ChatMessage(ChatRole.Assistant, "world"), 589new ChatMessage(ChatRole.User, "hello"), 590new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 591new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: detailedErrors ? "Error: Function failed. Exception: Oh no!" : "Error: Function failed.")]), 592new ChatMessage(ChatRole.Assistant, "world"), 611new ChatMessage(ChatRole.User, "hello"), 612new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 613new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 614new ChatMessage(ChatRole.Assistant, "world"), 668new ChatMessage(ChatRole.User, "hello"), 669new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 670new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 671new ChatMessage(ChatRole.Assistant, "world"), 746new(ChatRole.User, "Hello"), 804new(ChatRole.User, "Hello"), 814new(ChatRole.Assistant, [new FunctionCallContent($"callId{chatContents.Count()}", "Func1")]) : 815new(ChatRole.Assistant, "The answer is 42."); 862new ChatMessage(ChatRole.User, "hello"), 863new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["i"] = 41 })]), 864new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 41")]), 865new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func1", new Dictionary<string, object?> { ["i"] = 42 })]), 866new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 42")]), 873new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "Func1", new Dictionary<string, object?> { ["i"] = 43 })]), 874new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 43")]), 875new ChatMessage(ChatRole.Assistant, "world"), 938var message = new ChatMessage(ChatRole.Assistant, resultContents); 946List<ChatMessage> messages = [new(ChatRole.User, "hello")]; 981return new ChatResponse(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId-abc", "Func1")])) 989return new ChatResponse(new ChatMessage(ChatRole.Assistant, "done!")); 1018new ChatMessage(ChatRole.User, "hello"), 1019new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 1020new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 1021new ChatMessage(ChatRole.Assistant, "world"), 1047new ChatMessage(ChatRole.User, "hello"), 1048new ChatMessage(ChatRole.Assistant, [ 1052new ChatMessage(ChatRole.Tool, 1057new ChatMessage(ChatRole.Assistant, "world"), 1100new(ChatRole.User, "hello"), 1101new(ChatRole.Assistant, [ 1105new(ChatRole.Tool, [ 1109new(ChatRole.Assistant, "done"), 1119new(ChatRole.User, "hello"), 1120new(ChatRole.Assistant, [ 1124new(ChatRole.Tool, [ 1128new(ChatRole.Assistant, "done"), 1148new(ChatRole.User, "hello"), 1149new(ChatRole.Assistant, [new FunctionCallContent("callId1", "DefOnly")]), 1150new(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Should not be produced")]), 1151new(ChatRole.Assistant, "world"), 1177new(ChatRole.User, "hi"), 1178new(ChatRole.Assistant, [ 1182new(ChatRole.Tool, [new FunctionResultContent("callId1", result: "OK"), new FunctionResultContent("callId2", result: "nope")]), 1183new(ChatRole.Assistant, "done"), 1214messages.Add(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")])); 1244new ChatMessage(ChatRole.User, "hello"), 1245new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 1246new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 1247new ChatMessage(ChatRole.Assistant, "world"), 1290new ChatMessage(ChatRole.User, "hello"), 1291new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 1292new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 1293new ChatMessage(ChatRole.Assistant, "world"), 1339new ChatMessage(ChatRole.User, "hello"), 1340new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "secret" })]), 1341new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 1342new ChatMessage(ChatRole.Assistant, "world"), 1411new ChatMessage(ChatRole.User, "hello"), 1412new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 1413new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 1414new ChatMessage(ChatRole.Assistant, "world"), 1488var message = new ChatMessage(ChatRole.Assistant, [.. plan[contents.Count()].Contents]) 1552ChatMessage message = new(ChatRole.Assistant, [.. plan[contents.Count()].Contents])
ChatCompletion\ImageGeneratingChatClientTests.cs (14)
39return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "test response"))); 52var response = await client.GetResponseAsync([new(ChatRole.User, "test")], chatOptions); 76return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "test response"))); 89var response = await client.GetResponseAsync([new(ChatRole.User, "test")], chatOptions); 123return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "test response"))); 137var response = await client.GetResponseAsync([new(ChatRole.User, "test")], chatOptions); 241await foreach (var update in client.GetStreamingResponseAsync([new(ChatRole.User, "test")], chatOptions)) 261return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "test response"))); 269var response = await client.GetResponseAsync([new(ChatRole.User, "test")], null); 284return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "test response"))); 297await client.GetResponseAsync([new(ChatRole.User, "test")], chatOptions); 316var responseMessage = new ChatMessage(ChatRole.Assistant, 331var response = await client.GetResponseAsync([new(ChatRole.User, "test")], chatOptions); 373await foreach (var responseUpdate in client.GetStreamingResponseAsync([new(ChatRole.User, "test")], chatOptions))
ChatCompletion\LoggingChatClientTests.cs (3)
59return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "blue whale"))); 69[new(ChatRole.User, "What's the biggest animal?")], 118[new(ChatRole.User, "What's the biggest animal?")],
ChatCompletion\OpenTelemetryChatClientTests.cs (13)
38return new ChatResponse(new ChatMessage(ChatRole.Assistant, "The blue whale, I think.")) 107new(ChatRole.System, "You are a close friend."), 108new(ChatRole.User, "Hey!") { AuthorName = "Alice" }, 109new(ChatRole.Assistant, [new FunctionCallContent("12345", "GetPersonName")]), 110new(ChatRole.Tool, [new FunctionResultContent("12345", "John")]), 111new(ChatRole.Assistant, "Hey John, what's up?") { AuthorName = "BotAssistant" }, 112new(ChatRole.User, "What's the biggest animal?") 353return new ChatResponse(new ChatMessage(ChatRole.Assistant, 391new(ChatRole.User, 399new(ChatRole.Assistant, [new FunctionCallContent("call-456", "SearchFiles")]), 400new(ChatRole.Tool, [new FunctionResultContent("call-456", "Found 3 files")]), 537return new ChatResponse(new ChatMessage(ChatRole.Assistant, "The blue whale, I think.")); 552new(ChatRole.User,
ChatCompletion\ReducingChatClientTests.cs (9)
37new(ChatRole.System, "You are a helpful assistant"), 38new(ChatRole.User, "Hello"), 39new(ChatRole.Assistant, "Hi there!"), 40new(ChatRole.User, "What's the weather?") 45new(ChatRole.System, "You are a helpful assistant"), 46new(ChatRole.User, "What's the weather?") 50var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "It's sunny!")); 98var reducedMessages = new List<ChatMessage> { new(ChatRole.User, "Reduced message") }; 119await client.GetResponseAsync(new List<ChatMessage> { new(ChatRole.User, "Original message") });
ChatCompletion\UseDelegateChatClientTests.cs (3)
42return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "hello"))); 91return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "hello"))); 184return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "non-streaming hello")));
ChatReduction\MessageCountingChatReducerTests.cs (28)
53new ChatMessage(ChatRole.System, "You are a helpful assistant."), 54new ChatMessage(ChatRole.User, "Hello"), 55new ChatMessage(ChatRole.Assistant, "Hi there!"), 56new ChatMessage(ChatRole.User, "How are you?"), 57new ChatMessage(ChatRole.Assistant, "I'm doing well, thanks!"), 88new ChatMessage(ChatRole.System, "First system message"), 89new ChatMessage(ChatRole.User, "Hello"), 90new ChatMessage(ChatRole.System, "Second system message"), 91new ChatMessage(ChatRole.Assistant, "Hi"), 92new ChatMessage(ChatRole.User, "How are you?"), 93new ChatMessage(ChatRole.Assistant, "I'm fine!"), 127new ChatMessage(ChatRole.User, "What's the weather?"), 128new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call1", "get_weather", new Dictionary<string, object?> { ["location"] = "Seattle" })]), 129new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "Sunny, 72°F")]), 130new ChatMessage(ChatRole.Assistant, "The weather in Seattle is sunny and 72°F."), 131new ChatMessage(ChatRole.User, "Thanks!"), 132new ChatMessage(ChatRole.Assistant, "You're welcome!"), 167messages.Add(new ChatMessage(i % 2 == 0 ? ChatRole.User : ChatRole.Assistant, $"Message {i}")); 202new ChatMessage(ChatRole.System, "System prompt"), 223new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call1", "func", null)]), 224new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "result")]), 225new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call2", "func", null)]), 226new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call2", "result")]), 241new ChatMessage(ChatRole.System, "System"), 242new ChatMessage(ChatRole.User, "First"), 243new ChatMessage(ChatRole.Assistant, "Second"), 244new ChatMessage(ChatRole.User, "Third"), 245new ChatMessage(ChatRole.Assistant, "Fourth"),
ChatReduction\SummarizingChatReducerTests.cs (51)
69new ChatMessage(ChatRole.System, "You are a helpful assistant."), 70new ChatMessage(ChatRole.User, "Hello"), 71new ChatMessage(ChatRole.Assistant, "Hi there!"), 72new ChatMessage(ChatRole.User, "How are you?"), 76Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary of conversation"))); 96new ChatMessage(ChatRole.User, "What's the time?"), 97new ChatMessage(ChatRole.Assistant, "Let me check"), 98new ChatMessage(ChatRole.User, "What's the weather?"), 99new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call1", "get_weather"), new TestUserInputRequestContent("uir1")]), 100new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "Sunny")]), 101new ChatMessage(ChatRole.User, [new TestUserInputResponseContent("uir1")]), 102new ChatMessage(ChatRole.Assistant, "It's sunny"), 108return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Asked about time"))); 141new ChatMessage(ChatRole.User, "First question"), 142new ChatMessage(ChatRole.Assistant, "First answer"), 143new ChatMessage(ChatRole.User, "Second question"), 144new ChatMessage(ChatRole.Assistant, "Second answer"), 145new ChatMessage(ChatRole.User, "Third question"), 146new ChatMessage(ChatRole.Assistant, "Third answer"), 156return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary of first exchange"))); 187new ChatMessage(ChatRole.User, "What's the weather in Seattle?"), 188new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call1", "get_weather", new Dictionary<string, object?> { ["location"] = "Seattle" }), new TestUserInputRequestContent("uir2")]), 189new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "Sunny, 72°F")]), 190new ChatMessage(ChatRole.User, [new TestUserInputResponseContent("uir2")]), 191new ChatMessage(ChatRole.Assistant, "It's sunny and 72°F in Seattle."), 192new ChatMessage(ChatRole.User, "What about New York?"), 193new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call2", "get_weather", new Dictionary<string, object?> { ["location"] = "New York" })]), 194new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call2", "Rainy, 65°F")]), 195new ChatMessage(ChatRole.Assistant, "It's rainy and 65°F in New York."), 209return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "User asked about weather in Seattle and New York."))); 242messages.Add(new ChatMessage(ChatRole.Assistant, $"Message {i}")); 249return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary"))); 276new ChatMessage(ChatRole.User, "Message 1"), 277new ChatMessage(ChatRole.Assistant, "Response 1"), 278new ChatMessage(ChatRole.User, "Message 2"), 287return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary"))); 302new ChatMessage(ChatRole.System, "First system message"), 303new ChatMessage(ChatRole.User, "Hello"), 304new ChatMessage(ChatRole.System, "Second system message"), 305new ChatMessage(ChatRole.Assistant, "Hi"), 306new ChatMessage(ChatRole.User, "How are you?"), 310Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary"))); 330new ChatMessage(ChatRole.User, "Hi there! Can you tell me about golden retrievers?"), 331new ChatMessage(ChatRole.Assistant, "Of course! Golden retrievers are known for their friendly and tolerant attitudes. They're great family pets and are very intelligent and easy to train."), 332new ChatMessage(ChatRole.User, "What kind of exercise do they need?"), 333new ChatMessage(ChatRole.Assistant, "Golden retrievers are quite active and need regular exercise. Daily walks, playtime, and activities like fetching or swimming are great for them."), 334new ChatMessage(ChatRole.User, "Are they good with kids?"), 350return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, Summary))); 361messages.Add(new ChatMessage(ChatRole.Assistant, "Golden retrievers get along well with kids! They're able to be playful and energetic while remaining gentle.")); 362messages.Add(new ChatMessage(ChatRole.User, "Do they make good lap dogs?")); 377return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, Summary)));
Microsoft.Extensions.DataIngestion (7)
Processors\ClassificationEnricher.cs (1)
97return new(ChatRole.System, sb.ToString());
Processors\ImageAlternativeTextEnricher.cs (2)
31_systemPrompt = new(ChatRole.System, "For each of the following images, write a detailed alternative text with fewer than 50 words."); 99[_systemPrompt, new(ChatRole.User, contents)],
Processors\KeywordEnricher.cs (1)
107return new(ChatRole.System, sb.ToString());
Processors\SentimentEnricher.cs (1)
40_systemPrompt = new(ChatRole.System, prompt);
Processors\SummaryEnricher.cs (1)
35_systemPrompt = new(ChatRole.System, $"For each of the following texts, write a summary text with no more than {wordCount} words.");
Utils\Batching.cs (1)
41new(ChatRole.User, contents)
Microsoft.Extensions.DataIngestion.Tests (6)
Processors\AlternativeTextEnricherTests.cs (2)
61new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(new Envelope<string[]> { data = descriptions })) 147return Task.FromResult(new ChatResponse(new[] { new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(data)) }));
Processors\ClassificationEnricherTests.cs (1)
84new ChatMessage(ChatRole.Assistant, response)
Processors\KeywordEnricherTests.cs (1)
84new ChatMessage(ChatRole.Assistant, response)
Processors\SentimentEnricherTests.cs (1)
68new ChatMessage(ChatRole.Assistant, response)
Processors\SummaryEnricherTests.cs (1)
68new ChatMessage(ChatRole.Assistant, response)
Microsoft.ML.GenAI.Core (1)
CausalLMPipelineChatClient.cs (1)
47var chatMessage = new ChatMessage(ChatRole.Assistant, output);
Microsoft.ML.GenAI.Core.Tests (3)
CausalLMDatasetTest.cs (3)
86new ChatMessage(ChatRole.System, "You are a helpful contoso assistant"), 87new ChatMessage(ChatRole.User, "What is contoso"), 93new ChatMessage(ChatRole.Assistant, "Contoso is a company"),
Microsoft.ML.GenAI.LLaMA.Tests (3)
LLaMA3_1Tests.cs (3)
134new ChatMessage(ChatRole.System, "You are a helpful AI assistant."), 135new ChatMessage(ChatRole.User, "Hello?"), 136new ChatMessage(ChatRole.Assistant, "World!"),
Microsoft.ML.GenAI.Samples (5)
Llama\SFT_Llama_3_2_1B.cs (3)
107new ChatMessage(ChatRole.System, "You are a helpful contoso assistant"), 108new ChatMessage(ChatRole.User, data.input), 111var assistantMessage = new ChatMessage(ChatRole.Assistant, data.output);
MEAI\Llama3_1.cs (1)
47var chatMessage = new ChatMessage(ChatRole.User, task);
MEAI\Phi3.cs (1)
37var chatMessage = new ChatMessage(ChatRole.User, task);
OpenAIEndToEnd.WebStory (3)
Components_Pages_Home_razor.g.cs (3)
157new(ChatRole.System, "Pick a random topic and write a sentence of a fictional story about it.") 162chatMessages.Add(new ChatMessage(ChatRole.User, "Write the next sentence in the story.")); 173chatMessages.AddMessages(new ChatResponse(new ChatMessage(ChatRole.Assistant, content)));
864 references to ChatMessage
Aspire.Azure.AI.OpenAI.Tests (1)
AspireAzureOpenAIClientBuilderChatClientExtensionsTests.cs (1)
220static Task<ChatResponse> TestMiddleware(IEnumerable<ChatMessage> list, ChatOptions? options, IChatClient client, CancellationToken token)
Aspire.Dashboard (48)
Model\Assistant\AIHelpers.cs (4)
448List<ChatMessage> chatMessages, 450Func<IList<ChatMessage>, Task> onMessageCallback, 503public static IList<ChatMessage> GetMessages(ChatResponseUpdate update, Func<AIContent, bool>? filter = null) 508var list = new List<ChatMessage>();
Model\Assistant\AssistantChatViewModel.cs (8)
82public List<ChatMessage> ChatMessages { get; } = new(); 512List<ChatMessage> chatMessages; 553List<ChatMessage>? followUpMessages = null; 570var assistantMessage = new ChatMessage(ChatRole.Assistant, responseText.ToString()); 607var assistantMessage = new ChatMessage(ChatRole.Assistant, responseText.ToString()); 712void AddChatMessages(IList<ChatMessage> messages) 716foreach (var message in messages) 724private async Task UpdateFollowUpPromptsAsync(List<ChatMessage>? followUpMessages, CancellationTokenSource responseCts)
Model\Assistant\ChatViewModel.cs (10)
40public IEnumerable<ChatMessage> GetChatMessages() 48public void AddChatMessage(ChatMessage chatMessage) 53public void AddChatMessage(Func<ChatMessage> chatMessageProvider) 87public abstract ChatMessage GetChatMessage(); 92private readonly Func<ChatMessage> _chatMessageProvider; 94public DynamicChatMessageViewModel(Func<ChatMessage> chatMessageProvider) 99public override ChatMessage GetChatMessage() 107private readonly ChatMessage _chatMessage; 109public StaticChatMessageViewModel(ChatMessage chatMessage) 114public override ChatMessage GetChatMessage()
Model\Assistant\InitialPrompt.cs (1)
11public InitialPrompt(Icon icon, string buttonTitle, string buttonDescription, string chatDisplayText, ChatMessage promptMessage)
Model\Assistant\Prompts\KnownChatMessages.cs (25)
16public static ChatMessage CreateSystemMessage() 45public static ChatMessage CreateInitialMessage(string promptText, string applicationName, List<ResourceViewModel> resources, DashboardOptions dashboardOptions) 69public static ChatMessage CreateFollowUpMessage(int questionCount) 80public static ChatMessage CreateRecentActivityMessage() 91public static ChatMessage CreateResourceRecentActivityMessage(ResourceViewModel resource) 104public static ChatMessage CreateAnalyzeResourceMessage(ResourceViewModel resource) 114public static ChatMessage CreateSummarizeResourcesMessage() 124public static ChatMessage CreateUnhealthyResourcesMessage() 135public static ChatMessage CreateHelpMessage() 147public static ChatMessage CreateAllConsoleLogsMessage() 157public static ChatMessage CreateResourceConsoleLogsMessage(ResourceViewModel resource) 167public static ChatMessage CreateHelpMessage() 179public static ChatMessage CreateErrorStructuredLogsMessage(List<OtlpLogEntry> errorLogs, DashboardOptions options) 197public static ChatMessage CreateAnalyzeLogEntryMessage(OtlpLogEntry logEntry, DashboardOptions options) 213public static ChatMessage CreateResourceStructuredLogsMessage(OtlpResource resource) 223public static ChatMessage CreateAllStructuredLogsMessage() 233public static ChatMessage CreateHelpMessage() 245public static ChatMessage CreateAllTracesPerformanceMessage() 254public static ChatMessage CreateResourceTracesPerformanceMessage(string resourceName) 263public static ChatMessage CreateAllTracesMessage() 273public static ChatMessage CreateResourceTracesMessage(OtlpResource resource) 283public static ChatMessage CreateAnalyzeTraceMessage(OtlpTrace trace, List<OtlpLogEntry> traceLogEntries, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers, DashboardOptions options) 306public static ChatMessage CreateAnalyzeSpanMessage(OtlpSpan span, List<OtlpLogEntry> traceLogEntries, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers, DashboardOptions options) 329public static ChatMessage CreateErrorTracesMessage(List<OtlpTrace> errorTraces, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers, DashboardOptions options) 346public static ChatMessage CreateHelpMessage()
Aspire.OpenAI.Tests (1)
AspireOpenAIClientBuilderChatClientExtensionsTests.cs (1)
268private static Task<ChatResponse> TestMiddleware(IEnumerable<ChatMessage> list, ChatOptions? options, IChatClient client, CancellationToken token)
AzureAIFoundryEndToEnd.WebStory (3)
Components_Pages_Home_razor.g.cs (3)
110foreach (var message in chatMessages.Where(m => m.Role == ChatRole.Assistant)) 155private List<ChatMessage> chatMessages = new List<ChatMessage>
AzureOpenAIEndToEnd.WebStory (3)
Components_Pages_Home_razor.g.cs (3)
110foreach (var message in chatMessages.Where(m => m.Role == ChatRole.Assistant)) 155private List<ChatMessage> chatMessages = new List<ChatMessage>
GitHubModelsEndToEnd.WebStory (3)
Components_Pages_Home_razor.g.cs (3)
110foreach (var message in chatMessages.Where(m => m.Role == ChatRole.Assistant)) 155private List<ChatMessage> chatMessages = new List<ChatMessage>
Microsoft.Extensions.AI (133)
ChatCompletion\AnonymousDelegatingChatClient.cs (11)
21private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatResponse>>? _getResponseFunc; 29private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? _getStreamingResponseFunc; 32private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task>, CancellationToken, Task>? _sharedFunc; 51Func<IEnumerable<ChatMessage>, ChatOptions?, Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task>, CancellationToken, Task> sharedFunc) 77Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatResponse>>? getResponseFunc, 78Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? getStreamingResponseFunc) 89IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 98IEnumerable<ChatMessage> messages, ChatOptions? options, CancellationToken cancellationToken) 128IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
ChatCompletion\CachingChatClient.cs (6)
47IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 57IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 75IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 85IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 150protected abstract string GetCacheKey(IEnumerable<ChatMessage> messages, ChatOptions? options, params ReadOnlySpan<object?> additionalValues); 209protected virtual bool EnableCaching(IEnumerable<ChatMessage> messages, ChatOptions? options)
ChatCompletion\ChatClientBuilder.cs (4)
108public ChatClientBuilder Use(Func<IEnumerable<ChatMessage>, ChatOptions?, Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task>, CancellationToken, Task> sharedFunc) 143Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatResponse>>? getResponseFunc, 144Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? getStreamingResponseFunc)
ChatCompletion\ChatClientStructuredOutputExtensions.cs (5)
37IEnumerable<ChatMessage> messages, 76ChatMessage chatMessage, 117ChatMessage chatMessage, 139IEnumerable<ChatMessage> messages, 173ChatMessage? promptAugmentation = null;
ChatCompletion\ConfigureOptionsChatClient.cs (2)
38IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) => 43IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default)
ChatCompletion\DistributedCachingChatClient.cs (4)
24/// the object models used by <see cref="ChatMessage"/>, <see cref="ChatOptions"/>, <see cref="ChatResponse"/>, <see cref="ChatResponseUpdate"/>, 26/// <see cref="ChatMessage.RawRepresentation"/> will be ignored, and <see cref="object"/> values in <see cref="ChatMessage.AdditionalProperties"/> 135protected override string GetCacheKey(IEnumerable<ChatMessage> messages, ChatOptions? options, params ReadOnlySpan<object?> additionalValues)
ChatCompletion\DistributedCachingChatClientBuilderExtensions.cs (3)
29/// the object models used by <see cref="ChatMessage"/>, <see cref="ChatOptions"/>, <see cref="ChatResponse"/>, <see cref="ChatResponseUpdate"/>, 31/// <see cref="ChatMessage.RawRepresentation"/> will be ignored, and <see cref="object"/> values in <see cref="ChatMessage.AdditionalProperties"/>
ChatCompletion\FunctionInvocationContext.cs (2)
47public IList<ChatMessage> Messages 51} = Array.Empty<ChatMessage>();
ChatCompletion\FunctionInvokingChatClient.cs (52)
267IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 278List<ChatMessage> originalMessages = [.. messages]; 281List<ChatMessage>? augmentedHistory = null; // the actual history of messages sent on turns other than the first 283List<ChatMessage>? responseMessages = null; // tracked list of messages, across multiple turns, to be used for the final response 300(IList<ChatMessage>? invokedApprovedFunctionApprovalResponses, bool shouldTerminate, consecutiveErrorCount) = 407IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 419List<ChatMessage> originalMessages = [.. messages]; 423List<ChatMessage>? augmentedHistory = null; // the actual history of messages sent on turns other than the first 425List<ChatMessage>? responseMessages = null; // tracked list of messages, across multiple turns, to be used in fallback cases to reconstitute history 454foreach (var message in preDownstreamCallHistory) 462(IList<ChatMessage>? invokedApprovedFunctionApprovalResponses, bool shouldTerminate, consecutiveErrorCount) = 467foreach (var message in invokedApprovedFunctionApprovalResponses) 613foreach (var message in modeAndMessages.MessagesAdded) 630private static ChatResponseUpdate ConvertToolResultMessageToUpdate(ChatMessage message, string? conversationId, string? messageId) => 669IEnumerable<ChatMessage> originalMessages, 670ref IEnumerable<ChatMessage> messages, 671[NotNull] ref List<ChatMessage>? augmentedHistory, 673List<ChatMessage> allTurnsResponseMessages, 753private static bool HasAnyApprovalContent(List<ChatMessage> messages) => 758IList<ChatMessage> messages, [NotNullWhen(true)] ref List<FunctionCallContent>? functionCalls) 886private async Task<(bool ShouldTerminate, int NewConsecutiveErrorCount, IList<ChatMessage> MessagesAdded)> ProcessFunctionCallsAsync( 887List<ChatMessage> messages, ChatOptions? options, 905IList<ChatMessage> addedMessages = CreateResponseMessages([result]); 950IList<ChatMessage> addedMessages = CreateResponseMessages(results.ToArray()); 965private void UpdateConsecutiveErrorCountOrThrow(IList<ChatMessage> added, ref int consecutiveErrorCount) 995private void ThrowIfNoFunctionResultsAdded(IList<ChatMessage>? messages) 1015List<ChatMessage> messages, ChatOptions? options, 1073protected virtual IList<ChatMessage> CreateResponseMessages( 1251private static (List<ChatMessage>? preDownstreamCallHistory, List<ApprovalResultWithRequestMessage>? approvals) ProcessFunctionApprovalResponses( 1252List<ChatMessage> originalMessages, bool hasConversationId, string? toolMessageId, string? functionCallContentFallbackMessageId) 1259ICollection<ChatMessage>? allPreDownstreamCallMessages = ConvertToFunctionCallContentMessages( 1265ChatMessage? rejectedPreDownstreamCallResultsMessage = rejectedFunctionCallResults is not null ? 1272List<ChatMessage>? preDownstreamCallHistory = null; 1303List<ChatMessage> messages) 1305Dictionary<string, ChatMessage>? allApprovalRequestsMessages = null; 1319var message = messages[i]; 1359var newMessage = message.Clone(); 1404ChatMessage? requestMessage = null; 1429private static ICollection<ChatMessage>? ConvertToFunctionCallContentMessages( 1434ChatMessage? currentMessage = null; 1435Dictionary<string, ChatMessage>? messagesById = null; 1470if (messagesById?.Values is ICollection<ChatMessage> cm) 1485/// Takes the <see cref="FunctionCallContent"/> from the <paramref name="resultWithRequestMessage"/> and wraps it in a <see cref="ChatMessage"/> 1488private static ChatMessage ConvertToFunctionCallContentMessage(ApprovalResultWithRequestMessage resultWithRequestMessage, string? fallbackMessageId) 1490ChatMessage functionCallMessage = resultWithRequestMessage.RequestMessage?.Clone() ?? new() { Role = ChatRole.Assistant }; 1560private static IList<ChatMessage> ReplaceFunctionCallsWithApprovalRequests( 1561IList<ChatMessage> messages, 1608var message = lastMessageIndex != messageIndex ? outputMessages[messageIndex].Clone() : outputMessages[messageIndex]; 1631/// wrapped in <see cref="ChatMessage"/> objects. 1633private async Task<(IList<ChatMessage>? FunctionResultContentMessages, bool ShouldTerminate, int ConsecutiveErrorCount)> InvokeApprovedFunctionApprovalResponsesAsync( 1636List<ChatMessage> originalMessages, 1726public ChatMessage? RequestMessage { get; set; }
ChatCompletion\ImageGeneratingChatClient.cs (8)
71IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 85foreach (var message in response.Messages) 95IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 163public IEnumerable<ChatMessage> ProcessChatMessages(IEnumerable<ChatMessage> messages) 165List<ChatMessage>? newMessages = null; 167foreach (var message in messages) 228var newMessage = message.Clone();
ChatCompletion\LoggingChatClient.cs (2)
55IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 101IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default)
ChatCompletion\OpenTelemetryChatClient.cs (5)
132IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 163IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 222IEnumerable<ChatMessage> messages, ChatFinishReason? chatFinishReason = null, JsonSerializerOptions? customContentSerializerOptions = null) 233foreach (ChatMessage message in messages) 609private void AddInputMessagesTags(IEnumerable<ChatMessage> messages, ChatOptions? options, Activity? activity)
ChatCompletion\ReducingChatClient.cs (2)
32IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 41IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default)
ChatReduction\MessageCountingChatReducer.cs (7)
39public Task<IEnumerable<ChatMessage>> ReduceAsync(IEnumerable<ChatMessage> messages, CancellationToken cancellationToken) 45private IEnumerable<ChatMessage> GetReducedMessages(IEnumerable<ChatMessage> messages) 47ChatMessage? systemMessage = null; 48Queue<ChatMessage> reducedMessages = new(capacity: _targetCount); 50foreach (var message in messages)
ChatReduction\SummarizingChatReducer.cs (13)
73public async Task<IEnumerable<ChatMessage>> ReduceAsync(IEnumerable<ChatMessage> messages, CancellationToken cancellationToken) 92private readonly struct SummarizedConversation(string? summary, ChatMessage? systemMessage, IList<ChatMessage> unsummarizedMessages) 95public static SummarizedConversation FromChatMessages(IEnumerable<ChatMessage> messages) 98ChatMessage? systemMessage = null; 99var unsummarizedMessages = new List<ChatMessage>(); 101foreach (var message in messages) 134var lastSummarizedMessage = unsummarizedMessages[indexOfFirstMessageToKeep - 1]; 183public IEnumerable<ChatMessage> ToChatMessages() 195foreach (var message in unsummarizedMessages) 214private IEnumerable<ChatMessage> ToSummarizerChatMessages(int indexOfFirstMessageToKeep, string summarizationPrompt) 223var message = unsummarizedMessages[i];
ToolReduction\EmbeddingToolReductionStrategy.cs (4)
49private Func<IEnumerable<ChatMessage>, ValueTask<string>> _messagesEmbeddingTextSelector = static messages => 52foreach (var message in messages) 110public Func<IEnumerable<ChatMessage>, ValueTask<string>> MessagesEmbeddingTextSelector 152IEnumerable<ChatMessage> messages,
ToolReduction\ToolReducingChatClient.cs (3)
41IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 49IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 60IEnumerable<ChatMessage> messages,
Microsoft.Extensions.AI.Abstractions (52)
ChatCompletion\ChatClientExtensions.cs (2)
113ChatMessage chatMessage, 153ChatMessage chatMessage,
ChatCompletion\ChatMessage.cs (7)
20/// <summary>Initializes a new instance of the <see cref="ChatMessage"/> class.</summary> 27/// <summary>Initializes a new instance of the <see cref="ChatMessage"/> class.</summary> 35/// <summary>Initializes a new instance of the <see cref="ChatMessage"/> class.</summary> 44/// <summary>Clones the <see cref="ChatMessage"/> to a new <see cref="ChatMessage"/> instance.</summary> 50public ChatMessage Clone() => 95/// If a <see cref="ChatMessage"/> is created to represent some underlying object from another object
ChatCompletion\ChatOptions.cs (1)
214/// like the enumerable of <see cref="ChatMessage"/>s. Therefore, it is <b>strongly recommended</b> to not return shared instances
ChatCompletion\ChatResponse.cs (8)
23private IList<ChatMessage>? _messages; 33public ChatResponse(ChatMessage message) 42public ChatResponse(IList<ChatMessage>? messages) 49public IList<ChatMessage> Messages 51get => _messages ??= new List<ChatMessage>(1); 57/// This property concatenates the <see cref="ChatMessage.Text"/> of all <see cref="ChatMessage"/> 146ChatMessage message = _messages![i];
ChatCompletion\ChatResponseExtensions.cs (17)
30public static void AddMessages(this IList<ChatMessage> list, ChatResponse response) 35if (list is List<ChatMessage> listConcrete) 41foreach (var message in response.Messages) 48/// <summary>Converts the <paramref name="updates"/> into <see cref="ChatMessage"/> instances and adds them to <paramref name="list"/>.</summary> 54/// As part of combining <paramref name="updates"/> into a series of <see cref="ChatMessage"/> instances, the 59public static void AddMessages(this IList<ChatMessage> list, IEnumerable<ChatResponseUpdate> updates) 72/// <summary>Converts the <paramref name="update"/> into a <see cref="ChatMessage"/> instance and adds it to <paramref name="list"/>.</summary> 80/// no <see cref="ChatMessage"/> will be added to the <paramref name="list"/>. 82public static void AddMessages(this IList<ChatMessage> list, ChatResponseUpdate update, Func<AIContent, bool>? filter = null) 100/// <summary>Converts the <paramref name="updates"/> into <see cref="ChatMessage"/> instances and adds them to <paramref name="list"/>.</summary> 108/// As part of combining <paramref name="updates"/> into a series of <see cref="ChatMessage"/> instances, tne 114this IList<ChatMessage> list, IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken = default) 122IList<ChatMessage> list, IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken) => 132/// <see cref="ChatMessage"/> instances. This includes using <see cref="ChatResponseUpdate.MessageId"/> to determine 160/// <see cref="ChatMessage"/> instances. This includes using <see cref="ChatResponseUpdate.MessageId"/> to determine 492var lastMessage = response.Messages[response.Messages.Count - 1]; 500ChatMessage message;
ChatCompletion\ChatResponseUpdate.cs (2)
19/// <see cref="ChatResponse"/> and <see cref="ChatMessage"/> in streaming output. 133/// groups <see cref="ChatResponseUpdate"/> instances into <see cref="ChatMessage"/> instances.
ChatCompletion\DelegatingChatClient.cs (2)
44IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) => 49IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) =>
ChatCompletion\IChatClient.cs (2)
43IEnumerable<ChatMessage> messages, 55IEnumerable<ChatMessage> messages,
ChatReduction\IChatReducer.cs (2)
21Task<IEnumerable<ChatMessage>> ReduceAsync(IEnumerable<ChatMessage> messages, CancellationToken cancellationToken);
Contents\AIContentExtensions.cs (3)
62/// <summary>Concatenates the <see cref="ChatMessage.Text"/> of all <see cref="ChatMessage"/> instances in the list.</summary> 64public static string ConcatText(this IList<ChatMessage> messages)
Functions\AIFunctionFactory.cs (2)
1143if (typeof(IEnumerable<ChatMessage>).IsAssignableFrom(type)) 1145return typeof(IEnumerable<ChatMessage>);
ToolReduction\IToolReductionStrategy.cs (1)
38IEnumerable<ChatMessage> messages,
Utilities\AIJsonUtilities.Defaults.cs (3)
110[JsonSerializable(typeof(IEnumerable<ChatMessage>))] 111[JsonSerializable(typeof(IList<ChatMessage>))] 112[JsonSerializable(typeof(ChatMessage[]))]
Microsoft.Extensions.AI.Abstractions.Tests (47)
AssertExtensions.cs (4)
18public static void EqualMessageLists(List<ChatMessage> expectedMessages, List<ChatMessage> actualMessages) 23var expectedMessage = expectedMessages[i]; 24var chatMessage = actualMessages[i];
ChatCompletion\ChatClientExtensionsTests.cs (4)
82_ = ChatClientExtensions.GetResponseAsync(new TestChatClient(), (ChatMessage)null!); 96_ = ChatClientExtensions.GetStreamingResponseAsync(new TestChatClient(), (ChatMessage)null!); 111ChatMessage m = Assert.Single(messages); 138ChatMessage m = Assert.Single(messages);
ChatCompletion\ChatMessageTests.cs (13)
17ChatMessage message = new(); 36ChatMessage message = new(ChatRole.Assistant, text); 62ChatMessage message; 93ChatMessage message = new(ChatRole.System, content); 128ChatMessage message = new() 144ChatMessage message = new(ChatRole.User, 176ChatMessage message = new(); 196ChatMessage message = new(); 217ChatMessage message = new(); 238ChatMessage message = new(); 276var chatMessage = new ChatMessage(ChatRole.User, contents: items) 284var deserializedMessage = JsonSerializer.Deserialize<ChatMessage>(chatMessageJson, TestJsonSerializerContext.Default.Options)!;
ChatCompletion\ChatResponseTests.cs (3)
23response = new((IList<ChatMessage>?)null); 27Assert.Throws<ArgumentNullException>("message", () => new ChatResponse((ChatMessage)null!)); 37List<ChatMessage> messages = [];
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (13)
55ChatMessage message = response.Messages.Single(); 266ChatMessage message = Assert.Single(response.Messages); 369ChatMessage message = Assert.Single(response.Messages); 486ChatMessage message1 = response.Messages[0]; 494ChatMessage message2 = response.Messages[1]; 502ChatMessage message3 = response.Messages[2]; 510ChatMessage message4 = response.Messages[3]; 585ChatMessage message = response.Messages.Single(); 624ChatMessage message = Assert.Single(response.Messages); 654ChatMessage message = Assert.Single(response.Messages); 699ChatMessage message = Assert.Single(response.Messages); 860ChatMessage message = Assert.Single(response.Messages); 908ChatMessage message = Assert.Single(response.Messages);
ChatCompletion\DelegatingChatClientTests.cs (2)
24var expectedChatContents = new List<ChatMessage>(); 56var expectedChatContents = new List<ChatMessage>();
Contents\AIContentTests.cs (3)
61ChatMessage message = new(ChatRole.User, 82ChatMessage? deserialized = JsonSerializer.Deserialize<ChatMessage>(serialized, AIJsonUtilities.DefaultOptions);
TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; } 22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; } 29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Utilities\AIJsonUtilitiesTests.cs (1)
1074Assert.Throws<ArgumentException>("contentType", () => options.AddAIContentType(typeof(ChatMessage), "discriminator"));
Microsoft.Extensions.AI.Evaluation (49)
ChatMessageExtensions.cs (38)
13/// Extension methods for <see cref="ChatMessage"/>. 19/// single <see cref="ChatMessage"/> representing the last <paramref name="userRequest"/> in this conversation. 22/// A collection of <see cref="ChatMessage"/>s representing an LLM chat conversation history. 25/// Returns the last <see cref="ChatMessage"/> in the supplied collection of <paramref name="messages"/> if this 26/// last <see cref="ChatMessage"/> has <see cref="ChatMessage.Role"/> set to <see cref="ChatRole.User"/>; 30/// <see langword="true"/> if the last <see cref="ChatMessage"/> in the supplied collection of 31/// <paramref name="messages"/> has <see cref="ChatMessage.Role"/> set to <see cref="ChatRole.User"/>; 35this IEnumerable<ChatMessage> messages, 36[NotNullWhen(true)] out ChatMessage? userRequest) 39messages.LastOrDefault() is ChatMessage lastMessage && lastMessage.Role == ChatRole.User 48/// single <see cref="ChatMessage"/> representing the last <paramref name="userRequest"/> in this conversation and 52/// A collection of <see cref="ChatMessage"/>s representing an LLM chat conversation history. 55/// Returns the last <see cref="ChatMessage"/> in the supplied collection of <paramref name="messages"/> if this 56/// last <see cref="ChatMessage"/> has <see cref="ChatMessage.Role"/> set to <see cref="ChatRole.User"/>; 60/// Returns the remaining <see cref="ChatMessage"/>s in the conversation history excluding 64/// <see langword="true"/> if the last <see cref="ChatMessage"/> in the supplied collection of 65/// <paramref name="messages"/> has <see cref="ChatMessage.Role"/> set to <see cref="ChatRole.User"/>; 69this IEnumerable<ChatMessage> messages, 70[NotNullWhen(true)] out ChatMessage? userRequest, 71out IReadOnlyList<ChatMessage> remainingMessages) 73List<ChatMessage> conversationHistory = [.. messages]; 77conversationHistory[lastMessageIndex] is ChatMessage lastMessage && 99/// This function only considers the <see cref="ChatMessage.Text"/> and ignores any <see cref="AIContent"/>s 100/// (present within the <see cref="ChatMessage.Contents"/> of the <paramref name="message"/>) that are not 105/// The returned string is prefixed with the <see cref="ChatMessage.Role"/> and 106/// <see cref="ChatMessage.AuthorName"/> (if available). The returned string also always has a new line character 110/// <param name="message">The <see cref="ChatMessage"/> that is to be rendered.</param> 112public static string RenderText(this ChatMessage message) 138/// This function only considers the <see cref="ChatMessage.Text"/> and ignores any <see cref="AIContent"/>s 139/// (present within the <see cref="ChatMessage.Contents"/> of the <paramref name="messages"/>) that are not 145/// The rendered <paramref name="messages"/> are each prefixed with the <see cref="ChatMessage.Role"/> and 146/// <see cref="ChatMessage.AuthorName"/> (if available) in the returned string. The rendered 147/// <see cref="ChatMessage"/>s are also always separated by new line characters in the returned string. 150/// <param name="messages">The <see cref="ChatMessage"/>s that are to be rendered.</param> 152public static string RenderText(this IEnumerable<ChatMessage> messages) 157foreach (ChatMessage message in messages)
ChatResponseExtensions.cs (3)
21/// (present within the <see cref="ChatMessage.Contents"/> of the <see cref="ChatResponse.Messages"/>) that are not 27/// The rendered <see cref="ChatResponse.Messages"/> are each prefixed with the <see cref="ChatMessage.Role"/> and 28/// <see cref="ChatMessage.AuthorName"/> (if available) in the returned string. The rendered
CompositeEvaluator.cs (2)
101IEnumerable<ChatMessage> messages, 126IEnumerable<ChatMessage> messages,
EvaluationContext.cs (1)
23/// <see cref="IEvaluator.EvaluateAsync(IEnumerable{ChatMessage}, ChatResponse, ChatConfiguration?, IEnumerable{EvaluationContext}?, CancellationToken)"/>.
EvaluatorExtensions.cs (4)
131ChatMessage modelResponse, 219ChatMessage userRequest, 220ChatMessage modelResponse, 264ChatMessage userRequest,
IEvaluator.cs (1)
58IEnumerable<ChatMessage> messages,
Microsoft.Extensions.AI.Evaluation.Integration.Tests (41)
AgentQualityEvaluatorTests.cs (8)
93(IEnumerable<ChatMessage> messages, ChatResponse response) = 116(IEnumerable<ChatMessage> messages, ChatResponse response) = 149(IEnumerable<ChatMessage> messages, ChatResponse response) = 173(IEnumerable<ChatMessage> messages, ChatResponse response) = 204private static async Task<(IEnumerable<ChatMessage> messages, ChatResponse response)> 207List<ChatMessage> messages = 217private static async Task<(IEnumerable<ChatMessage> messages, ChatResponse response)> 220List<ChatMessage> messages =
QualityEvaluatorTests.cs (4)
88var messages = new List<ChatMessage>(); 129var messages = new List<ChatMessage>(); 167var messages = new List<ChatMessage>(); 202var messages = new List<ChatMessage>();
ResultsTests.cs (1)
19private static readonly ChatMessage _testResponse = "Test response".ToAssistantMessage();
SafetyEvaluatorTests.cs (24)
184var messages = new List<ChatMessage>(); 262var messages = new List<ChatMessage>(); 335var question = 344ChatMessage answer = "The image depicts a logo for Microsoft Corporation.".ToAssistantMessage(); 371ChatMessage question = "Can you show me an image pertaining to DotNet?".ToUserMessage(); 373var answer = 407var question1 = 416ChatMessage answer1 = "The image depicts a logo for DotNet.".ToAssistantMessage(); 418ChatMessage question2 = "Can you show me an image pertaining to Microsoft Copilot?".ToUserMessage(); 420var answer2 = 429ChatMessage[] messages = [question1, answer1, question2]; 456var question1 = 465ChatMessage answer1 = "The image depicts a logo for Microsoft Corporation.".ToAssistantMessage(); 467ChatMessage question2 = "Can you show me an image pertaining to Microsoft Copilot?".ToUserMessage(); 469var answer2 = 478ChatMessage question3 = 483ChatMessage answer3 = 491ChatMessage[] messages = [question1, answer1, question2, answer2, question3]; 547ChatMessage context1 = 552ChatMessage completion1 = 557ChatMessage context2 = 562ChatMessage completion2 = 567ChatMessage[] messages = [context1, completion1, context2]; 590var messages = new List<ChatMessage>();
test\Libraries\Microsoft.Extensions.AI.Evaluation.Tests\ChatMessageUtilities.cs (3)
8internal static ChatMessage ToSystemMessage(this string message) 11internal static ChatMessage ToUserMessage(this string message) 14internal static ChatMessage ToAssistantMessage(this string message)
TestEvaluator.cs (1)
27IEnumerable<ChatMessage> messages,
Microsoft.Extensions.AI.Evaluation.NLP (3)
BLEUEvaluator.cs (1)
42IEnumerable<ChatMessage> messages,
F1Evaluator.cs (1)
42IEnumerable<ChatMessage> messages,
GLEUEvaluator.cs (1)
42IEnumerable<ChatMessage> messages,
Microsoft.Extensions.AI.Evaluation.Quality (64)
ChatMessageExtensions.cs (3)
13internal static string RenderAsJson(this IEnumerable<ChatMessage> messages, JsonSerializerOptions? options = null) 19foreach (ChatMessage message in messages) 24AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(ChatMessage)));
CoherenceEvaluator.cs (6)
68IEnumerable<ChatMessage> messages, 89_ = messages.TryGetUserRequest(out ChatMessage? userRequest); 91List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(userRequest, modelResponse); 105private static List<ChatMessage> GetEvaluationInstructions(ChatMessage? userRequest, ChatResponse modelResponse) 117List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
CompletenessEvaluator.cs (4)
65IEnumerable<ChatMessage> messages, 96List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(modelResponse, context); 111private static List<ChatMessage> GetEvaluationInstructions( 125List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
EquivalenceEvaluator.cs (6)
66IEnumerable<ChatMessage> messages, 97_ = messages.TryGetUserRequest(out ChatMessage? userRequest); 99List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(userRequest, modelResponse, context); 114private static List<ChatMessage> GetEvaluationInstructions( 115ChatMessage? userRequest, 124List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
FluencyEvaluator.cs (4)
62IEnumerable<ChatMessage> messages, 83List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(modelResponse); 97private static List<ChatMessage> GetEvaluationInstructions(ChatResponse modelResponse) 109List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
GroundednessEvaluator.cs (6)
63IEnumerable<ChatMessage> messages, 94_ = messages.TryGetUserRequest(out ChatMessage? userRequest); 96List<ChatMessage> evaluationInstructions = 112private static List<ChatMessage> GetEvaluationInstructions( 113ChatMessage? userRequest, 127List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
IntentResolutionEvaluator.cs (5)
76IEnumerable<ChatMessage> messages, 141List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(messages, modelResponse, context); 165private static List<ChatMessage> GetEvaluationInstructions( 166IEnumerable<ChatMessage> messages, 173List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
RelevanceEvaluator.cs (6)
66IEnumerable<ChatMessage> messages, 79if (!messages.TryGetUserRequest(out ChatMessage? userRequest) || string.IsNullOrWhiteSpace(userRequest.Text)) 96List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(userRequest, modelResponse); 110private static List<ChatMessage> GetEvaluationInstructions(ChatMessage userRequest, ChatResponse modelResponse) 122List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
RelevanceTruthAndCompletenessEvaluator.cs (7)
79IEnumerable<ChatMessage> messages, 98out ChatMessage? userRequest, 99out IReadOnlyList<ChatMessage> conversationHistory) || 117List<ChatMessage> evaluationInstructions = 137private static List<ChatMessage> GetEvaluationInstructions( 138ChatMessage userRequest, 140IEnumerable<ChatMessage> conversationHistory)
RetrievalEvaluator.cs (6)
72IEnumerable<ChatMessage> messages, 84if (!messages.TryGetUserRequest(out ChatMessage? userRequest) || string.IsNullOrWhiteSpace(userRequest.Text)) 112List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(userRequest, context); 127private static List<ChatMessage> GetEvaluationInstructions( 128ChatMessage userRequest, 141List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
TaskAdherenceEvaluator.cs (5)
75IEnumerable<ChatMessage> messages, 140List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(messages, modelResponse, context); 160private static List<ChatMessage> GetEvaluationInstructions( 161IEnumerable<ChatMessage> messages, 264List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, systemPrompt)];
ToolCallAccuracyEvaluator.cs (5)
77IEnumerable<ChatMessage> messages, 140List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(messages, modelResponse, context); 155private static List<ChatMessage> GetEvaluationInstructions( 156IEnumerable<ChatMessage> messages, 170List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
Utilities\JsonOutputFixer.cs (1)
65var messages = new List<ChatMessage>
Microsoft.Extensions.AI.Evaluation.Reporting (12)
ScenarioRun.cs (1)
144IEnumerable<ChatMessage> messages,
ScenarioRunExtensions.cs (4)
86ChatMessage modelResponse, 143ChatMessage userRequest, 144ChatMessage modelResponse, 173ChatMessage userRequest,
ScenarioRunResult.cs (5)
15/// <see cref="ScenarioRun.EvaluateAsync(IEnumerable{ChatMessage}, ChatResponse, IEnumerable{Microsoft.Extensions.AI.Evaluation.EvaluationContext}?, CancellationToken)"/> 51IList<ChatMessage> messages, 86IEnumerable<ChatMessage> messages, 128public IList<ChatMessage> Messages { get; set; } = messages; 141/// <see cref="ScenarioRun.EvaluateAsync(IEnumerable{ChatMessage}, ChatResponse, IEnumerable{Microsoft.Extensions.AI.Evaluation.EvaluationContext}?, CancellationToken)"/>
SimpleChatClient.cs (2)
26IEnumerable<ChatMessage> messages, 59IEnumerable<ChatMessage> messages,
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (4)
ScenarioRunResultTests.cs (4)
293private class ChatMessageComparer : IEqualityComparer<ChatMessage> 297public bool Equals(ChatMessage? x, ChatMessage? y) 300public int GetHashCode(ChatMessage obj)
Microsoft.Extensions.AI.Evaluation.Safety (36)
ChatMessageExtensions.cs (2)
11internal static bool ContainsImageWithSupportedFormat(this ChatMessage message) 14internal static bool ContainsImageWithSupportedFormat(this IEnumerable<ChatMessage> conversation)
CodeVulnerabilityEvaluator.cs (1)
47IEnumerable<ChatMessage> messages,
ContentHarmEvaluator.cs (1)
49IEnumerable<ChatMessage> messages,
ContentSafetyChatClient.cs (3)
51IEnumerable<ChatMessage> messages, 84IEnumerable<ChatMessage> messages, 141private static void ValidateSingleMessage(IEnumerable<ChatMessage> messages)
ContentSafetyEvaluator.cs (4)
37IEnumerable<ChatMessage> messages, 83IEnumerable<ChatMessage> messages, 102IEnumerable<ChatMessage> conversation = [.. messages, .. modelResponse.Messages]; 133var payloadMessage = new ChatMessage(ChatRole.User, payload);
ContentSafetyServicePayloadUtilities.cs (22)
17IEnumerable<ChatMessage> conversation, 79IEnumerable<ChatMessage> conversation, 90List<Dictionary<string, ChatMessage>> turns; 110if (turn.TryGetValue("question", out ChatMessage? question)) 115if (turn.TryGetValue("answer", out ChatMessage? answer)) 165IEnumerable<ChatMessage> conversation, 182List<Dictionary<string, ChatMessage>> turns; 202if (turn.TryGetValue("question", out ChatMessage? question)) 207if (turn.TryGetValue("answer", out ChatMessage? answer)) 246IEnumerable<ChatMessage> conversation, 260List<Dictionary<string, ChatMessage>> turns; 274IEnumerable<JsonObject> GetMessages(Dictionary<string, ChatMessage> turn, int turnIndex) 278if (turn.TryGetValue("question", out ChatMessage? question)) 289if (turn.TryGetValue("answer", out ChatMessage? answer)) 314IEnumerable<JsonObject> GetContents(ChatMessage message) 384(List<Dictionary<string, ChatMessage>> turns, 388IEnumerable<ChatMessage> conversation, 395List<Dictionary<string, ChatMessage>> turns = []; 396Dictionary<string, ChatMessage> currentTurn = []; 416foreach (ChatMessage message in conversation) 450void ValidateContents(ChatMessage message) 478foreach (var message in turn.Values)
GroundednessProEvaluator.cs (1)
48IEnumerable<ChatMessage> messages,
ProtectedMaterialEvaluator.cs (1)
67IEnumerable<ChatMessage> messages,
UngroundedAttributesEvaluator.cs (1)
52IEnumerable<ChatMessage> messages,
Microsoft.Extensions.AI.Evaluation.Tests (3)
ChatMessageUtilities.cs (3)
8internal static ChatMessage ToSystemMessage(this string message) 11internal static ChatMessage ToUserMessage(this string message) 14internal static ChatMessage ToAssistantMessage(this string message)
Microsoft.Extensions.AI.Integration.Tests (53)
CallCountingChatClient.cs (2)
20IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 27IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
ChatClientIntegrationTests.cs (26)
110IList<ChatMessage> chatHistory = 170List<ChatMessage> history = [new(ChatRole.User, "Explain in 100 words how AI works")]; 239List<ChatMessage> messages = 306List<ChatMessage> messages = 338List<ChatMessage> messages = 368List<ChatMessage> messages = 649var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 665var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 690var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 742var message = new ChatMessage(ChatRole.User, "What is the temperature?"); 781var message = new ChatMessage(ChatRole.User, "What is the temperature?"); 823var message = new ChatMessage(ChatRole.User, "What is the temperature?"); 1144List<ChatMessage> messages = 1185List<ChatMessage> messages = 1246List<ChatMessage> messages = 1280List<ChatMessage> messages = 1326List<ChatMessage> messages = 1345var summaryMessage = chatClient.LastSummarizedConversation[0]; 1367public IReadOnlyList<ChatMessage>? LastSummarizedConversation { get; private set; } 1391public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 1394public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 1467List<ChatMessage> history = []; 1532var history = new List<ChatMessage> 1596List<ChatMessage> history = []; 1703List<ChatMessage> history = []; 1728IEnumerable<ChatMessage> messages,
ImageGeneratingChatClientIntegrationTests.cs (6)
70protected async Task<ChatResponse> GetResponseAsync(bool useStreaming, IEnumerable<ChatMessage> messages, ChatOptions? options = null, IChatClient? chatClient = null) 194var chatHistory = new List<ChatMessage> 244var chatHistory = new List<ChatMessage> 289var chatHistory = new List<ChatMessage> 361var capturedMessages = new List<IEnumerable<ChatMessage>>(); 392var userMessage = processedMessages.First(m => m.Role == ChatRole.User);
PromptBasedFunctionCallingChatClient.cs (6)
43IEnumerable<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default) 49List<ChatMessage> chatMessagesList = [CreateToolPrompt(options.Tools), .. chatMessages.Select(m => m.Clone())]; 66var message = chatMessagesList[messageIndex]; 89var message = result.Messages.First(); 138IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 167private static ChatMessage CreateToolPrompt(IList<AITool> tools)
ReducingChatClientTests.cs (5)
43List<ChatMessage> messages = 70public async Task<IEnumerable<ChatMessage>> ReduceAsync( 71IEnumerable<ChatMessage> messages, CancellationToken cancellationToken) 75List<ChatMessage> list = messages.ToList(); 95private int CountTokens(ChatMessage message)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; } 22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; } 29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
ToolReductionTests.cs (4)
646public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; } 647public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; } 649public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) => 652public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) =>
Microsoft.Extensions.AI.OllamaSharp.Integration.Tests (1)
OllamaSharpChatClientIntegrationTests.cs (1)
110IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.Extensions.AI.OpenAI (27)
MicrosoftExtensionsAIChatExtensions.cs (5)
42public static IEnumerable<ChatMessage> AsOpenAIChatMessages(this IEnumerable<Microsoft.Extensions.AI.ChatMessage> messages, ChatOptions? options = null) => 58var lastMessage = response.Messages.LastOrDefault(); 170/// <summary>Creates a sequence of <see cref="Microsoft.Extensions.AI.ChatMessage"/> instances from the specified input messages.</summary> 174public static IEnumerable<Microsoft.Extensions.AI.ChatMessage> AsChatMessages(this IEnumerable<ChatMessage> messages) 180Microsoft.Extensions.AI.ChatMessage resultMessage = new()
MicrosoftExtensionsAIResponsesExtensions.cs (4)
49public static IEnumerable<ResponseItem> AsOpenAIResponseItems(this IEnumerable<ChatMessage> messages, ChatOptions? options = null) => 52/// <summary>Creates a sequence of <see cref="ChatMessage"/> instances from the specified input items.</summary> 54/// <returns>A sequence of <see cref="ChatMessage"/> instances.</returns> 56public static IEnumerable<ChatMessage> AsChatMessages(this IEnumerable<ResponseItem> items) =>
OpenAIAssistantsChatClient.cs (4)
69IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) => 74IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 341IEnumerable<ChatMessage> messages, ChatOptions? options, CancellationToken cancellationToken) 504foreach (var chatMessage in messages)
OpenAIChatClient.cs (5)
81IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 99IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 135internal static IEnumerable<OpenAI.Chat.ChatMessage> ToOpenAIChatMessages(IEnumerable<ChatMessage> inputs, ChatOptions? chatOptions) 145foreach (ChatMessage input in inputs) 466ChatMessage returnMessage = new()
OpenAIResponsesChatClient.cs (9)
96IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 160foreach (var message in response.Messages) 169internal static IEnumerable<ChatMessage> ToChatMessages(IEnumerable<ResponseItem> items, ResponseCreationOptions? options = null) 171ChatMessage? message = null; 251IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 820/// <summary>Convert a sequence of <see cref="ChatMessage"/>s to <see cref="ResponseItem"/>s.</summary> 821internal static IEnumerable<ResponseItem> ToOpenAIResponseItems(IEnumerable<ChatMessage> inputs, ChatOptions? options) 827foreach (ChatMessage input in inputs) 1397private static OpenAIResponsesContinuationToken? GetContinuationToken(IEnumerable<ChatMessage> messages, ChatOptions? options = null)
Microsoft.Extensions.AI.OpenAI.Tests (35)
OpenAIAssistantChatClientIntegrationTests.cs (1)
60ChatMessage message = Assert.Single(response.Messages);
OpenAIChatClientTests.cs (4)
817List<ChatMessage> messages = 924List<ChatMessage> messages = 1020List<ChatMessage> messages = 1462List<ChatMessage> messages =
OpenAIConversionTests.cs (14)
434Assert.Throws<ArgumentNullException>("messages", () => ((IEnumerable<ChatMessage>)null!).AsOpenAIChatMessages()); 436List<ChatMessage> messages = 503Assert.Throws<ArgumentNullException>("messages", () => ((IEnumerable<ChatMessage>)null!).AsOpenAIResponseItems()); 505List<ChatMessage> messages = 558List<ChatMessage> messages = 616ChatMessage message = Assert.Single(response.Messages); 647ChatMessage message = Assert.Single(response.Messages); 721List<ChatMessage> inputMessages = 732var message = convertedMessages[0]; 747List<ChatMessage> inputMessages = 761var message = convertedMessages[0]; 1347var messages = new List<ChatMessage> 1384var messages = new List<ChatMessage> 1419var messages = new List<ChatMessage>
OpenAIResponseClientIntegrationTests.cs (5)
36ChatMessage message = Assert.Single(response.Messages); 78ChatMessage m = Assert.Single(response.Messages); 179List<ChatMessage> input = [new ChatMessage(ChatRole.User, "Tell me the path to the README.md file for Microsoft.Extensions.AI.Abstractions in the dotnet/extensions repository")]; 198var approvalResponse = new ChatMessage(ChatRole.Tool, 401List<ChatMessage> input = [new ChatMessage(ChatRole.User, "What is on my calendar for today?")];
OpenAIResponseClientTests.cs (7)
717ChatMessage responseMessage = Assert.Single(response.Messages); 1434var message = Assert.Single(response.Messages); 1690var message = Assert.Single(response.Messages); 2104var message = Assert.Single(response.Messages); 2715var message = response.Messages[0]; 2935var message = response.Messages[0]; 4545var lastMessage = response.Messages.Last();
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (4)
18public static void EqualMessageLists(List<ChatMessage> expectedMessages, List<ChatMessage> actualMessages) 23var expectedMessage = expectedMessages[i]; 24var chatMessage = actualMessages[i];
Microsoft.Extensions.AI.Tests (208)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (9)
75var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 136var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 245var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 264var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 283var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 311var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 339var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 401var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 429var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
ChatCompletion\ConfigureOptionsChatClientTests.cs (2)
76var response = await client.GetResponseAsync(Array.Empty<ChatMessage>(), providedOptions, cts.Token); 80await using var e = client.GetStreamingResponseAsync(Array.Empty<ChatMessage>(), providedOptions, cts.Token).GetAsyncEnumerator();
ChatCompletion\DistributedCachingChatClientTest.cs (9)
123private sealed class CustomCachingChatClient(IChatClient innerClient, IDistributedCache storage, Func<IEnumerable<ChatMessage>, ChatOptions?, bool> enableCaching) : 126protected override bool EnableCaching(IEnumerable<ChatMessage> messages, ChatOptions? options) => enableCaching(messages, options); 185var input = new ChatMessage(ChatRole.User, "abc"); 224var input = new ChatMessage(ChatRole.User, "abc"); 495var input = new ChatMessage(ChatRole.User, "abc"); 533var input = new ChatMessage(ChatRole.User, "abc"); 803ChatMessage expectedMessage = expected.Messages.Last(); 804ChatMessage actualMessage = actual.Messages.Last(); 878protected override string GetCacheKey(IEnumerable<ChatMessage> messages, ChatOptions? options, params ReadOnlySpan<object?> additionalValues)
ChatCompletion\FunctionInvocationContextTests.cs (1)
47List<ChatMessage> messages = [];
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (87)
34List<ChatMessage> input = 39List<ChatMessage> downstreamClientOutput = 44List<ChatMessage> expectedOutput = 70List<ChatMessage> input = 75List<ChatMessage> downstreamClientOutput = 80List<ChatMessage> expectedOutput = 114List<ChatMessage> input = 119List<ChatMessage> downstreamClientOutput = 124List<ChatMessage> expectedOutput = 150List<ChatMessage> input = 165List<ChatMessage> expectedDownstreamClientInput = 172List<ChatMessage> downstreamClientOutput = 177List<ChatMessage> output = 201List<ChatMessage> input = 222List<ChatMessage> expectedDownstreamClientInput = 230List<ChatMessage> downstreamClientOutput = 235List<ChatMessage> output = 260List<ChatMessage> input = 275List<ChatMessage> expectedDownstreamClientInput = 286List<ChatMessage> downstreamClientOutput = 291List<ChatMessage> output = 319List<ChatMessage> input = 334List<ChatMessage> expectedDownstreamClientInput = 342List<ChatMessage> downstreamClientOutput = 347List<ChatMessage> nonStreamingOutput = 355List<ChatMessage> streamingOutput = 383List<ChatMessage> input = 398List<ChatMessage> expectedDownstreamClientInput = 405List<ChatMessage> downstreamClientOutput = 410List<ChatMessage> output = 437List<ChatMessage> input = 462List<ChatMessage> expectedDownstreamClientInput = 471List<ChatMessage> downstreamClientOutput = 476List<ChatMessage> output = 508List<ChatMessage> input = 513Func<Queue<List<ChatMessage>>> expectedDownstreamClientInput = () => new Queue<List<ChatMessage>>( 515new List<ChatMessage> 519new List<ChatMessage> 527Func<Queue<List<ChatMessage>>> downstreamClientOutput = () => new Queue<List<ChatMessage>>( 529new List<ChatMessage> 533new List<ChatMessage> 539List<ChatMessage> output = 563List<ChatMessage> input = 593List<ChatMessage> input = 603List<ChatMessage> expectedDownstreamClientInput = 610List<ChatMessage> downstreamClientOutput = 615List<ChatMessage> output = 640List<ChatMessage> input = 649List<ChatMessage> expectedDownstreamClientInput = 654List<ChatMessage> downstreamClientOutput = 659List<ChatMessage> output = 691List<ChatMessage> input = [new ChatMessage(ChatRole.User, "hello")]; 699IEnumerable<ChatMessage> contents, ChatOptions? actualOptions, [EnumeratorCancellation] CancellationToken actualCancellationToken) 720var updates = service.GetStreamingResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(input), options, cts.Token); 764List<ChatMessage> input = [new ChatMessage(ChatRole.User, "hello")]; 772IEnumerable<ChatMessage> contents, ChatOptions? actualOptions, [EnumeratorCancellation] CancellationToken actualCancellationToken) 798var updates = service.GetStreamingResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(input), options, cts.Token); 847private static Task<List<ChatMessage>> InvokeAndAssertAsync( 849List<ChatMessage> input, 850List<ChatMessage> downstreamClientOutput, 851List<ChatMessage> expectedOutput, 852List<ChatMessage>? expectedDownstreamClientInput = null, 858new Queue<List<ChatMessage>>(new[] { downstreamClientOutput }), 860expectedDownstreamClientInput is null ? null : new Queue<List<ChatMessage>>(new[] { expectedDownstreamClientInput }), 864private static async Task<List<ChatMessage>> InvokeAndAssertMultiRoundAsync( 866List<ChatMessage> input, 867Queue<List<ChatMessage>> downstreamClientOutput, 868List<ChatMessage> expectedOutput, 869Queue<List<ChatMessage>>? expectedDownstreamClientInput = null, 903var result = await service.GetResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(input), options, cts.Token); 906var actualOutput = result.Messages as List<ChatMessage> ?? result.Messages.ToList(); 935private static Task<List<ChatMessage>> InvokeAndAssertStreamingAsync( 937List<ChatMessage> input, 938List<ChatMessage> downstreamClientOutput, 939List<ChatMessage> expectedOutput, 940List<ChatMessage>? expectedDownstreamClientInput = null, 946new Queue<List<ChatMessage>>(new[] { downstreamClientOutput }), 948expectedDownstreamClientInput is null ? null : new Queue<List<ChatMessage>>(new[] { expectedDownstreamClientInput }), 952private static async Task<List<ChatMessage>> InvokeAndAssertStreamingMultiRoundAsync( 954List<ChatMessage> input, 955Queue<List<ChatMessage>> downstreamClientOutput, 956List<ChatMessage> expectedOutput, 957Queue<List<ChatMessage>>? expectedDownstreamClientInput = null, 985var result = await service.GetStreamingResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(input), options, cts.Token).ToChatResponseAsync(); 988var actualOutput = result.Messages as List<ChatMessage> ?? result.Messages.ToList();
ChatCompletion\FunctionInvokingChatClientTests.cs (54)
91List<ChatMessage> plan = 125List<ChatMessage> plan = 158List<ChatMessage> plan = 189List<ChatMessage> plan = 249List<ChatMessage> plan = 293List<ChatMessage> plan = 327List<ChatMessage> plan = 376List<ChatMessage> plan = 425List<ChatMessage> plan = 503List<ChatMessage> plan = 520private static IEnumerable<ChatMessage> CreateFunctionCallIterationPlan(ref int callIndex, params bool[] shouldThrow) 522var assistantMessage = new ChatMessage(ChatRole.Assistant, []); 523var toolMessage = new ChatMessage(ChatRole.Tool, []); 550List<ChatMessage> plan = 567static void Validate(List<ChatMessage> finalChat) 587List<ChatMessage> plan = 609List<ChatMessage> plan = 666List<ChatMessage> plan = 744var messages = new List<ChatMessage> 802var messages = new List<ChatMessage> 813ChatMessage message = chatContents.Count() is 1 or 3 ? 860List<ChatMessage> planBeforeTermination = 870List<ChatMessage> plan = 885async Task InvokeAsync(Func<Task<List<ChatMessage>>> work) 929var existingSearchResult = chatContents.SingleOrDefault(m => m.Role == ChatRole.Tool); 938var message = new ChatMessage(ChatRole.Assistant, resultContents); 946List<ChatMessage> messages = [new(ChatRole.User, "hello")]; 952var lastMessage = messages.Last(); 973Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, ChatResponse> callback = 1016List<ChatMessage> plan = 1045List<ChatMessage> plan = 1098List<ChatMessage> planForContinue = 1117List<ChatMessage> fullPlanWithUnknown = 1146List<ChatMessage> fullPlan = 1154List<ChatMessage> expected = fullPlan.Take(2).ToList(); 1175List<ChatMessage> fullPlan = 1186List<ChatMessage> expected = fullPlan.Take(2).ToList(); 1209List<ChatMessage> messages = []; 1242List<ChatMessage> plan = 1288List<ChatMessage> plan = 1337List<ChatMessage> plan = 1409List<ChatMessage> plan = 1462private static async Task<List<ChatMessage>> InvokeAndAssertAsync( 1464List<ChatMessage> plan, 1465List<ChatMessage>? expected = null, 1474List<ChatMessage> chat = [plan[0]]; 1488var message = new ChatMessage(ChatRole.Assistant, [.. plan[contents.Count()].Contents]) 1498var result = await service.GetResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(chat), options, cts.Token); 1532private static async Task<List<ChatMessage>> InvokeAndAssertStreamingAsync( 1534List<ChatMessage> plan, 1535List<ChatMessage>? expected = null, 1544List<ChatMessage> chat = [plan[0]]; 1552ChatMessage message = new(ChatRole.Assistant, [.. plan[contents.Count()].Contents]) 1562var result = await service.GetStreamingResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(chat), options, cts.Token).ToChatResponseAsync();
ChatCompletion\ImageGeneratingChatClientTests.cs (2)
316var responseMessage = new ChatMessage(ChatRole.Assistant, 336var message = response.Messages[0];
ChatCompletion\OpenTelemetryChatClientTests.cs (5)
62IEnumerable<ChatMessage> messages, ChatOptions? options, [EnumeratorCancellation] CancellationToken cancellationToken) 105List<ChatMessage> messages = 368IEnumerable<ChatMessage> messages, ChatOptions? options, [EnumeratorCancellation] CancellationToken cancellationToken) 389List<ChatMessage> messages = 550List<ChatMessage> messages =
ChatCompletion\ReducingChatClientTests.cs (8)
35var originalMessages = new List<ChatMessage> 43var reducedMessages = new List<ChatMessage> 98var reducedMessages = new List<ChatMessage> { new(ChatRole.User, "Reduced message") }; 119await client.GetResponseAsync(new List<ChatMessage> { new(ChatRole.User, "Original message") }); 169public IEnumerable<ChatMessage>? ReducedMessages { get; set; } 171public IEnumerable<ChatMessage>? LastMessagesProvided { get; private set; } 173public Task<IEnumerable<ChatMessage>> ReduceAsync(IEnumerable<ChatMessage> messages, CancellationToken cancellationToken)
ChatCompletion\UseDelegateChatClientTests.cs (6)
28IList<ChatMessage> expectedMessages = []; 78IList<ChatMessage> expectedMessages = []; 120IList<ChatMessage> expectedMessages = []; 147IEnumerable<ChatMessage> messages, ChatOptions? options, IChatClient innerClient, [EnumeratorCancellation] CancellationToken cancellationToken) 171IList<ChatMessage> expectedMessages = []; 218IEnumerable<ChatMessage> messages, ChatOptions? options, IChatClient innerClient, [EnumeratorCancellation] CancellationToken cancellationToken)
ChatReduction\MessageCountingChatReducerTests.cs (8)
51List<ChatMessage> messages = 86List<ChatMessage> messages = 125List<ChatMessage> messages = 164var messages = new List<ChatMessage>(); 179var expectedMessages = new Action<ChatMessage>[targetCount]; 200List<ChatMessage> messages = 221List<ChatMessage> messages = 239List<ChatMessage> messages =
ChatReduction\SummarizingChatReducerTests.cs (8)
67List<ChatMessage> messages = 94List<ChatMessage> messages = 139List<ChatMessage> messages = 185List<ChatMessage> messages = 239var messages = new List<ChatMessage>(); 274List<ChatMessage> messages = 300List<ChatMessage> messages = 328List<ChatMessage> messages =
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (4)
18public static void EqualMessageLists(List<ChatMessage> expectedMessages, List<ChatMessage> actualMessages) 23var expectedMessage = expectedMessages[i]; 24var chatMessage = actualMessages[i];
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; } 22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; } 29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
TestJsonSerializerContext.cs (1)
14[JsonSerializable(typeof(IList<ChatMessage>))]
Microsoft.Extensions.DataIngestion (8)
Processors\ClassificationEnricher.cs (2)
23private readonly ChatMessage _systemPrompt; 77private static ChatMessage CreateSystemPrompt(ReadOnlySpan<string> predefinedClasses, string fallbackClass)
Processors\ImageAlternativeTextEnricher.cs (1)
21private readonly ChatMessage _systemPrompt;
Processors\KeywordEnricher.cs (2)
24private readonly ChatMessage _systemPrompt; 80private static ChatMessage CreateSystemPrompt(int maxKeywords, ReadOnlySpan<string> predefinedKeywords, double confidenceThreshold)
Processors\SentimentEnricher.cs (1)
22private readonly ChatMessage _systemPrompt;
Processors\SummaryEnricher.cs (1)
22private readonly ChatMessage _systemPrompt;
Utils\Batching.cs (1)
21ChatMessage systemPrompt,
Microsoft.Extensions.DataIngestion.Tests (4)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; } 22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; } 29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.ML.GenAI.Core (7)
CausalLMPipelineChatClient.cs (3)
36public virtual Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 47var chatMessage = new ChatMessage(ChatRole.Assistant, output); 59IEnumerable<ChatMessage> messages,
Trainer\CausalLMDataset.cs (2)
26public static CausalLMDataset Create(IEnumerable<IEnumerable<ChatMessage>> inputs, 27IEnumerable<ChatMessage> outputs,
Utility\IChatTemplateBuilder.cs (2)
31/// <param name="messages">the list of <see cref="ChatMessage"/> to be rendered</param> 35string BuildPrompt(IEnumerable<ChatMessage> messages, ChatOptions? options = null, bool appendAssistantTag = true);
Microsoft.ML.GenAI.Core.Tests (3)
CausalLMDatasetTest.cs (3)
82var inputs = new List<List<ChatMessage>> 84new List<ChatMessage> 91var outputs = new List<ChatMessage>
Microsoft.ML.GenAI.LLaMA (4)
Llama3_1ChatTemplateBuilder.cs (2)
91public string BuildPrompt(IEnumerable<ChatMessage> messages, ChatOptions? options = null, bool appendAssistantTag = true) 106foreach (var message in messages)
Llama3CausalLMChatClient.cs (2)
28IEnumerable<ChatMessage> messages, 47IEnumerable<ChatMessage> messages,
Microsoft.ML.GenAI.Phi (4)
Phi3\Phi3CausalLMChatClient.cs (2)
33IEnumerable<ChatMessage> messages, 52IEnumerable<ChatMessage> messages,
Phi3\Phi3ChatTemplateBuilder.cs (2)
92public string BuildPrompt(IEnumerable<ChatMessage> messages, ChatOptions? options = null, bool appendAssistantTag = true) 109foreach (var message in messages)
Microsoft.ML.GenAI.Samples (4)
Llama\SFT_Llama_3_2_1B.cs (2)
105var trainChatHistory = new List<ChatMessage> 111var assistantMessage = new ChatMessage(ChatRole.Assistant, data.output);
MEAI\Llama3_1.cs (1)
47var chatMessage = new ChatMessage(ChatRole.User, task);
MEAI\Phi3.cs (1)
37var chatMessage = new ChatMessage(ChatRole.User, task);
OpenAIEndToEnd.WebStory (3)
Components_Pages_Home_razor.g.cs (3)
110foreach (var message in chatMessages.Where(m => m.Role == ChatRole.Assistant)) 155private List<ChatMessage> chatMessages = new List<ChatMessage>