57 instantiations of ChatRole
Microsoft.Extensions.AI (1)
ChatCompletion\OpenTelemetryChatClient.cs (1)
242message.Role == ChatRole.System || message.Role == new ChatRole("developer") ? "system" :
Microsoft.Extensions.AI.Abstractions (5)
ChatCompletion\ChatRole.cs (5)
22public static ChatRole System { get; } = new("system"); 25public static ChatRole Assistant { get; } = new("assistant"); 28public static ChatRole User { get; } = new("user"); 31public static ChatRole Tool { get; } = new("tool"); 96new(reader.GetString()!);
Microsoft.Extensions.AI.Abstractions.Tests (42)
ChatCompletion\ChatResponseTests.cs (3)
130ChatResponse response = new(new ChatMessage(new ChatRole("customRole"), "Text") { MessageId = "someMessage" }) 162new ChatMessage(new ChatRole("customRole"), "Text") 167new ChatMessage(new ChatRole("secondRole"), "Another message")
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (11)
83new(new("human"), "i") { MessageId = "6" }, 84new(new("human"), "j") { MessageId = "7" }, 85new(new("human"), "k") { MessageId = "7" }, 114Assert.Equal(new ChatRole("human"), response.Messages[6].Role); 117Assert.Equal(new ChatRole("human"), response.Messages[7].Role); 417new(new ChatRole("agent1"), "Hello") { MessageId = "1" }, 419new(new ChatRole("agent1"), " agent1") { MessageId = "1" }, 422new(new ChatRole("agent2"), "Hi") { MessageId = "1" }, 424new(new ChatRole("agent2"), " agent2") { MessageId = "1" }, 437Assert.Equal(new ChatRole("agent1"), response.Messages[0].Role); 440Assert.Equal(new ChatRole("agent2"), response.Messages[1].Role);
ChatCompletion\ChatRoleTests.cs (28)
15Assert.Equal("abc", new ChatRole("abc").Value); 21Assert.Throws<ArgumentNullException>("value", () => new ChatRole(null!)); 22Assert.Throws<ArgumentException>("value", () => new ChatRole(" ")); 28Assert.True(new ChatRole("abc").Equals(new ChatRole("ABC"))); 29Assert.True(new ChatRole("abc").Equals((object)new ChatRole("ABC"))); 30Assert.True(new ChatRole("abc") == new ChatRole("ABC")); 31Assert.False(new ChatRole("abc") != new ChatRole("ABC")); 33Assert.False(new ChatRole("abc").Equals(new ChatRole("def"))); 34Assert.False(new ChatRole("abc").Equals((object)new ChatRole("def"))); 35Assert.False(new ChatRole("abc").Equals(null)); 36Assert.False(new ChatRole("abc").Equals("abc")); 37Assert.False(new ChatRole("abc") == new ChatRole("def")); 38Assert.True(new ChatRole("abc") != new ChatRole("def")); 40Assert.Equal(new ChatRole("abc").GetHashCode(), new ChatRole("abc").GetHashCode()); 41Assert.Equal(new ChatRole("abc").GetHashCode(), new ChatRole("ABC").GetHashCode()); 42Assert.NotEqual(new ChatRole("abc").GetHashCode(), new ChatRole("def").GetHashCode()); // not guaranteed 57ChatRole role = new("abc");
Microsoft.Extensions.AI.AzureAIInference (2)
AzureAIInferenceChatClient.cs (2)
42private static ChatRole ChatRoleDeveloper { get; } = new("developer"); 267new ChatRole(role.ToString());
Microsoft.Extensions.AI.OpenAI (2)
OpenAIChatClient.cs (1)
680_ => new ChatRole(role.ToString()),
OpenAIClientExtensions.cs (1)
34internal static ChatRole ChatRoleDeveloper { get; } = new ChatRole("developer");
Microsoft.Extensions.AI.OpenAI.Tests (1)
OpenAIResponseClientTests.cs (1)
1065new ChatMessage(new ChatRole(role), [approvalRequest.CreateResponse(true)]), chatOptions);
Microsoft.Extensions.AI.Tests (4)
ChatCompletion\DistributedCachingChatClientTest.cs (4)
48new ChatMessage(new ChatRole("fakeRole"), "This is some content") 251Role = new ChatRole("fakeRole2"), 264Role = new ChatRole("fakeRole2"), 685new ChatMessage(new ChatRole("fakeRole"),
1047 references to ChatRole
Aspire.Azure.AI.OpenAI.Tests (1)
AspireAzureOpenAIClientBuilderChatClientExtensionsTests.cs (1)
221=> Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello from middleware")));
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 (1)
AspireOpenAIClientBuilderChatClientExtensionsTests.cs (1)
269=> Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello from middleware")));
AzureAIFoundryEndToEnd.WebStory (3)
Components_Pages_Home_razor.g.cs (3)
110foreach (var message in chatMessages.Where(m => m.Role == ChatRole.Assistant)) 157new(ChatRole.System, "Pick a random topic and write a sentence of a fictional story about it.") 164chatMessages.Add(new ChatMessage(ChatRole.User, "Write the next sentence in the story."));
AzureOpenAIEndToEnd.WebStory (3)
Components_Pages_Home_razor.g.cs (3)
110foreach (var message in chatMessages.Where(m => m.Role == ChatRole.Assistant)) 157new(ChatRole.System, "Pick a random topic and write a sentence of a fictional story about it.") 164chatMessages.Add(new ChatMessage(ChatRole.User, "Write the next sentence in the story."));
GitHubModelsEndToEnd.WebStory (3)
Components_Pages_Home_razor.g.cs (3)
110foreach (var message in chatMessages.Where(m => m.Role == ChatRole.Assistant)) 157new(ChatRole.System, "Pick a random topic and write a sentence of a fictional story about it.") 164chatMessages.Add(new ChatMessage(ChatRole.User, "Write the next sentence in the story."));
Microsoft.Extensions.AI (18)
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)
1079return [new(ChatRole.Tool, contents)]; 1247new ChatMessage(ChatRole.Tool, rejectedFunctionCallResults) { MessageId = toolMessageId } : 1471ChatMessage functionCallMessage = resultWithRequestMessage.RequestMessage?.Clone() ?? new() { Role = ChatRole.Assistant };
ChatCompletion\OpenTelemetryChatClient.cs (3)
240message.Role == ChatRole.Assistant ? "assistant" : 241message.Role == ChatRole.Tool ? "tool" : 242message.Role == ChatRole.System || message.Role == new ChatRole("developer") ? "system" :
ChatCompletion\OpenTelemetryImageGenerator.cs (2)
202OpenTelemetryChatClient.SerializeChatMessages([new(ChatRole.User, content)])); 254OpenTelemetryChatClient.SerializeChatMessages([new(ChatRole.Assistant, contents)]));
ChatReduction\MessageCountingChatReducer.cs (1)
52if (message.Role == ChatRole.System)
ChatReduction\SummarizingChatReducer.cs (5)
103if (message.Role == ChatRole.System) 172if (unsummarizedMessages[i].Role == ChatRole.User) 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)
364OpenTelemetryChatClient.SerializeChatMessages([new(ChatRole.Assistant, response.Contents)]));
Microsoft.Extensions.AI.Abstractions (39)
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 (5)
21/// <remarks>The instance defaults to having a role of <see cref="ChatRole.User"/>.</remarks> 30public ChatMessage(ChatRole role, string? content) 38public ChatMessage(ChatRole role, IList<AIContent>? contents) 73public ChatRole Role { get; set; } = ChatRole.User;
ChatCompletion\ChatResponseExtensions.cs (5)
90list.Add(new(update.Role ?? ChatRole.Assistant, contentsList) 454message = new(ChatRole.Assistant, []); 477if (update.Role is ChatRole role) 550private static bool NotNullOrEqual(ChatRole? r1, ChatRole? r2) =>
ChatCompletion\ChatResponseUpdate.cs (3)
47public ChatResponseUpdate(ChatRole? role, string? content) 55public ChatResponseUpdate(ChatRole? role, IList<AIContent>? contents) 69public ChatRole? Role { get; set; }
ChatCompletion\ChatRole.cs (24)
19public readonly struct ChatRole : IEquatable<ChatRole> 22public static ChatRole System { get; } = new("system"); 25public static ChatRole Assistant { get; } = new("assistant"); 28public static ChatRole User { get; } = new("user"); 31public static ChatRole Tool { get; } = new("tool"); 34/// Gets the value associated with this <see cref="ChatRole"/>. 42/// Initializes a new instance of the <see cref="ChatRole"/> struct with the provided value. 44/// <param name="value">The value to associate with this <see cref="ChatRole"/>.</param> 52/// Returns a value indicating whether two <see cref="ChatRole"/> instances are equivalent, as determined by a 55/// <param name="left">The first <see cref="ChatRole"/> instance to compare.</param> 56/// <param name="right">The second <see cref="ChatRole"/> instance to compare.</param> 58public static bool operator ==(ChatRole left, ChatRole right) 64/// Returns a value indicating whether two <see cref="ChatRole"/> instances are not equivalent, as determined by a 67/// <param name="left">The first <see cref="ChatRole"/> instance to compare. </param> 68/// <param name="right">The second <see cref="ChatRole"/> instance to compare. </param> 70public static bool operator !=(ChatRole left, ChatRole right) 77=> obj is ChatRole otherRole && Equals(otherRole); 80public bool Equals(ChatRole other) 90/// <summary>Provides a <see cref="JsonConverter{ChatRole}"/> for serializing <see cref="ChatRole"/> instances.</summary> 92public sealed class Converter : JsonConverter<ChatRole> 95public override ChatRole Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) => 99public override void Write(Utf8JsonWriter writer, ChatRole value, JsonSerializerOptions options) =>
Microsoft.Extensions.AI.Abstractions.Tests (87)
ChatCompletion\ChatClientExtensionsTests.cs (4)
112Assert.Equal(ChatRole.User, m.Role); 139Assert.Equal(ChatRole.User, m.Role); 146return YieldAsync([new ChatResponseUpdate(ChatRole.Assistant, "world")]); 233return YieldAsync([new ChatResponseUpdate(ChatRole.Assistant, "world")]);
ChatCompletion\ChatMessageTests.cs (10)
21Assert.Equal(ChatRole.User, message.Role); 36ChatMessage message = new(ChatRole.Assistant, text); 38Assert.Equal(ChatRole.Assistant, message.Role); 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); 95Assert.Equal(ChatRole.System, message.Role); 144ChatMessage message = new(ChatRole.User, 276var chatMessage = new ChatMessage(ChatRole.User, contents: items)
ChatCompletion\ChatResponseTests.cs (3)
87ChatResponse original = new(new ChatMessage(ChatRole.Assistant, "the message")) 103Assert.Equal(ChatRole.Assistant, result.Messages.Single().Role); 122ChatResponse response = new(new ChatMessage(ChatRole.Assistant, $"This is a test.{Environment.NewLine}It's multiple lines."));
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (56)
30new(ChatRole.Assistant, "Hello") { ResponseId = "someResponse", MessageId = "12345", CreatedAt = new DateTimeOffset(1, 2, 3, 4, 5, 6, TimeSpan.Zero), ModelId = "model123" }, 31new(ChatRole.Assistant, ", ") { AuthorName = "Someone", AdditionalProperties = new() { ["a"] = "b" } }, 55Assert.Equal(ChatRole.Assistant, message.Role); 75new(ChatRole.Assistant, "a") { MessageId = "1" }, 76new(ChatRole.Assistant, "b") { MessageId = "2" }, 77new(ChatRole.User, "c") { MessageId = "2" }, 78new(ChatRole.User, "d") { MessageId = "2" }, 79new(ChatRole.Assistant, "e") { MessageId = "3" }, 80new(ChatRole.Tool, "f") { MessageId = "4" }, 81new(ChatRole.Tool, "g") { MessageId = "4" }, 82new(ChatRole.Tool, "h") { MessageId = "5" }, 96Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 99Assert.Equal(ChatRole.Assistant, response.Messages[1].Role); 102Assert.Equal(ChatRole.User, response.Messages[2].Role); 105Assert.Equal(ChatRole.Assistant, response.Messages[3].Role); 108Assert.Equal(ChatRole.Tool, response.Messages[4].Role); 111Assert.Equal(ChatRole.Tool, response.Messages[5].Role); 120Assert.Equal(ChatRole.Assistant, response.Messages[8].Role); 132new(ChatRole.Assistant, "Hello ") { AuthorName = "Alice" }, 142new(ChatRole.Assistant, "Greetings ") { AuthorName = "Charlie" }, 161Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 165Assert.Equal(ChatRole.Assistant, response.Messages[1].Role); 169Assert.Equal(ChatRole.Assistant, response.Messages[2].Role); 173Assert.Equal(ChatRole.Assistant, response.Messages[3].Role); 185new(ChatRole.Assistant, "A") { MessageId = "1", AuthorName = "Alice" }, 196new(ChatRole.User, "F") { MessageId = "2", AuthorName = "Bob" }, 199new(ChatRole.Tool, "G") { MessageId = "3", AuthorName = "Charlie" }, 211Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 216Assert.Equal(ChatRole.Assistant, response.Messages[1].Role); 221Assert.Equal(ChatRole.Assistant, response.Messages[2].Role); 226Assert.Equal(ChatRole.User, response.Messages[3].Role); 231Assert.Equal(ChatRole.Tool, response.Messages[4].Role); 244new(ChatRole.Assistant, "Hello") { AuthorName = "Assistant" }, 267Assert.Equal(ChatRole.Assistant, message.Role); 279new(ChatRole.Assistant, "Hello") { MessageId = "1" }, 314new(ChatRole.Assistant, "Hello"), 333Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 337Assert.Equal(ChatRole.Assistant, response.Messages[1].Role); 349new(ChatRole.Assistant, "Hello") { MessageId = "msg1" }, 370Assert.Equal(ChatRole.Assistant, message.Role); 386new(ChatRole.Assistant, " from") { MessageId = "1" }, 390new(ChatRole.User, "User message") { MessageId = "1" }, 400Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 404Assert.Equal(ChatRole.User, response.Messages[1].Role); 427new(ChatRole.Assistant, "Assistant here") { MessageId = "1" }, 443Assert.Equal(ChatRole.Assistant, response.Messages[2].Role); 456new(ChatRole.Assistant, "Hello") { MessageId = "msg1", CreatedAt = new DateTimeOffset(2024, 1, 1, 10, 0, 0, TimeSpan.Zero), AuthorName = "Assistant" }, 464new(ChatRole.User, "How") { MessageId = "msg3", CreatedAt = new DateTimeOffset(2024, 1, 1, 11, 0, 0, TimeSpan.Zero), AuthorName = "User" }, 469new(ChatRole.Assistant, "I'm doing well,") { MessageId = "msg4", CreatedAt = new DateTimeOffset(2024, 1, 1, 12, 0, 0, TimeSpan.Zero) }, 486Assert.Equal(ChatRole.Assistant, message1.Role); 494Assert.Equal(ChatRole.Assistant, message2.Role); 502Assert.Equal(ChatRole.User, message3.Role); 510Assert.Equal(ChatRole.Assistant, message4.Role); 747new(ChatRole.Tool, "a") { MessageId = "4", CreatedAt = early }, 774Assert.Equal(ChatRole.Tool, response.Messages[0].Role); 811new(ChatRole.Assistant, "a") { CreatedAt = first },
ChatCompletion\ChatResponseUpdateTests.cs (5)
40update.Role = ChatRole.Assistant; 41Assert.Equal(ChatRole.Assistant, update.Role); 89Role = ChatRole.User, 118Role = ChatRole.Assistant, 158Assert.Equal(ChatRole.Assistant, result.Role);
ChatCompletion\ChatRoleTests.cs (6)
48Assert.Equal("assistant", ChatRole.Assistant.Value); 49Assert.Equal("system", ChatRole.System.Value); 50Assert.Equal("tool", ChatRole.Tool.Value); 51Assert.Equal("user", ChatRole.User.Value); 57ChatRole role = new("abc"); 61ChatRole? result = JsonSerializer.Deserialize(json, TestJsonSerializerContext.Default.ChatRole);
ChatCompletion\DelegatingChatClientTests.cs (2)
61new(ChatRole.User, "Message 1"), 62new(ChatRole.User, "Message 2")
Contents\AIContentTests.cs (1)
61ChatMessage message = new(ChatRole.User,
Microsoft.Extensions.AI.AzureAIInference (11)
AzureAIInferenceChatClient.cs (11)
42private static ChatRole ChatRoleDeveloper { get; } = new("developer"); 146ChatRole? streamedRole = default; 261private static ChatRole ToChatRole(global::Azure.AI.Inference.ChatRole role) => 262role.Equals(global::Azure.AI.Inference.ChatRole.System) ? ChatRole.System : 263role.Equals(global::Azure.AI.Inference.ChatRole.User) ? ChatRole.User : 264role.Equals(global::Azure.AI.Inference.ChatRole.Assistant) ? ChatRole.Assistant : 265role.Equals(global::Azure.AI.Inference.ChatRole.Tool) ? ChatRole.Tool : 430if (input.Role == ChatRole.System) 438else if (input.Role == ChatRole.Tool) 461else if (input.Role == ChatRole.User) 478else if (input.Role == ChatRole.Assistant)
Microsoft.Extensions.AI.AzureAIInference.Tests (19)
AzureAIInferenceChatClientTests.cs (19)
145[new ChatMessage(ChatRole.User, "hello".Select(c => (AIContent)new TextContent(c.ToString())).ToList())] : 146[new ChatMessage(ChatRole.User, "hello")]; 158Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 218[new ChatMessage(ChatRole.User, "hello".Select(c => (AIContent)new TextContent(c.ToString())).ToList())] : 219[new ChatMessage(ChatRole.User, "hello")]; 241Assert.Equal(ChatRole.Assistant, updates[i].Role); 986new(ChatRole.System, "You are a really nice friend."), 987new(ChatRole.User, "hello!"), 988new(ChatRole.Assistant, "hi, how are you?"), 989new(ChatRole.User, "i'm good. how are you?"), 990new(ChatRole.Assistant, [new FunctionCallContent("abcd123", "GetMood")]), 991new(ChatRole.Tool, [new FunctionResultContent("abcd123", "happy")]), 1007Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1067Assert.NotNull(await client.GetResponseAsync([new(ChatRole.User, 1132new(ChatRole.Assistant, (string?)null), 1133new(ChatRole.User, "hello!"), 1142Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1258Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1354Assert.Equal(ChatRole.Assistant, updates[i].Role);
Microsoft.Extensions.AI.Evaluation (9)
ChatMessageExtensions.cs (6)
26/// last <see cref="ChatMessage"/> has <see cref="ChatMessage.Role"/> set to <see cref="ChatRole.User"/>; 31/// <paramref name="messages"/> has <see cref="ChatMessage.Role"/> set to <see cref="ChatRole.User"/>; 39messages.LastOrDefault() is ChatMessage lastMessage && lastMessage.Role == ChatRole.User 56/// last <see cref="ChatMessage"/> has <see cref="ChatMessage.Role"/> set to <see cref="ChatRole.User"/>; 65/// <paramref name="messages"/> has <see cref="ChatMessage.Role"/> set to <see cref="ChatRole.User"/>; 78lastMessage.Role == ChatRole.User)
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)
338Role = ChatRole.User, 376Role = ChatRole.Assistant, 410Role = ChatRole.User, 423Role = ChatRole.Assistant, 459Role = ChatRole.User, 472Role = ChatRole.Assistant,
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 (8)
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 (2)
30Role = ChatRole.User, 46Assert.Equal(ChatRole.User, resp.ModelResponse.Messages[0].Role);
Microsoft.Extensions.AI.Evaluation.Safety (11)
ContentSafetyChatClient.cs (2)
67return new ChatResponse(new ChatMessage(ChatRole.Assistant, annotationResult)) 100yield return new ChatResponseUpdate(ChatRole.Assistant, annotationResult)
ContentSafetyEvaluator.cs (1)
133var payloadMessage = new ChatMessage(ChatRole.User, payload);
ContentSafetyServicePayloadUtilities.cs (8)
420if (message.Role == ChatRole.User) 429else if (message.Role == ChatRole.Assistant) 493$"{evaluatorName} only considers messages with role '{ChatRole.User}' and '{ChatRole.Assistant}'. " + 494$"The unsupported messages (which may include messages with role '{ChatRole.System}' and '{ChatRole.Tool}') were ignored.")]; 503$"These turns were either missing a message with role '{ChatRole.User}' or '{ChatRole.Assistant}'. " +
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 (105)
ChatClientIntegrationTests.cs (71)
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")]; 177Assert.Equal(ChatRole.Assistant, history[1].Role); 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?") 1164Assert.Equal(ChatRole.Assistant, m.Role); // Indicates this is the assistant's summary 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?") 1206Assert.Equal(ChatRole.System, m.Role); 1209m => Assert.Equal(ChatRole.Assistant, m.Role), // Summary message 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.") 1304Assert.Equal(ChatRole.Assistant, m.Role); // Summary 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?") 1346Assert.Equal(ChatRole.Assistant, summaryMessage.Role); 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?"));
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 (42)
MicrosoftExtensionsAIChatExtensions.cs (7)
186resultMessage.Role = ChatRole.Assistant; 199resultMessage.Role = ChatRole.User; 205resultMessage.Role = ChatRole.System; 211resultMessage.Role = ChatRole.System; 217resultMessage.Role = ChatRole.Tool; 268/// <summary>Converts the <see cref="ChatRole"/> to a <see cref="ChatMessageRole"/>.</summary> 269private static ChatMessageRole ToChatMessageRole(ChatRole? role) =>
OpenAIAssistantsChatClient.cs (9)
173Role = ChatRole.Assistant, 209yield return new ChatResponseUpdate(ChatRole.Assistant, [hcitcc]) 240yield return new ChatResponseUpdate(ChatRole.Assistant, [hcitrc]) 252ChatResponseUpdate textUpdate = new(mcu.Role == MessageRole.User ? ChatRole.User : ChatRole.Assistant, mcu.Text) 308Role = ChatRole.Assistant, 515if (chatMessage.Role == ChatRole.System || 542case FunctionResultContent result when chatMessage.Role == ChatRole.Tool: 551chatMessage.Role == ChatRole.Assistant ? MessageRole.Assistant : MessageRole.User,
OpenAIChatClient.cs (11)
153if (input.Role == ChatRole.System || 154input.Role == ChatRole.User || 160input.Role == ChatRole.System ? new SystemChatMessage(parts) { ParticipantName = name } : 164else if (input.Role == ChatRole.Tool) 187else if (input.Role == ChatRole.Assistant) 331ChatRole? streamedRole = null; 672private static ChatRole FromOpenAIChatRole(ChatMessageRole role) => 675ChatMessageRole.System => ChatRole.System, 676ChatMessageRole.User => ChatRole.User, 677ChatMessageRole.Assistant => ChatRole.Assistant, 678ChatMessageRole.Tool => ChatRole.Tool,
OpenAIClientExtensions.cs (2)
33/// <summary>Gets a <see cref="ChatRole"/> for "developer".</summary> 34internal static ChatRole ChatRoleDeveloper { get; } = new ChatRole("developer");
OpenAIResponsesChatClient.cs (13)
181message ??= new(ChatRole.Assistant, (string?)null); 289ChatRole? lastRole = null; 382lastRole = ChatRole.Assistant; 587/// <summary>Creates a <see cref="ChatRole"/> from a <see cref="MessageRole"/>.</summary> 588private static ChatRole ToChatRole(MessageRole? role) => 591MessageRole.System => ChatRole.System, 593MessageRole.User => ChatRole.User, 594_ => ChatRole.Assistant, 739if (input.Role == ChatRole.System || 745yield return input.Role == ChatRole.System ? 753if (input.Role == ChatRole.User) 840if (input.Role == ChatRole.Tool) 974if (input.Role == ChatRole.Assistant)
Microsoft.Extensions.AI.OpenAI.Tests (129)
OpenAIChatClientTests.cs (36)
164Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 252Assert.Equal(ChatRole.Assistant, updates[i].Role); 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?"), 838Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 926new(ChatRole.System, [new TextContent("You are a really nice friend."), new TextContent("Really nice.")]), 927new(ChatRole.User, "hello!"), 936Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 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?"), 1034Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1147Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1231Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1341Assert.Equal(ChatRole.Assistant, updates[i].Role); 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!"), 1487Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1584new(ChatRole.User, 1601Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1750Assert.Equal(ChatRole.System, extMessages[0].Role); 1761Assert.Equal(ChatRole.User, extMessages[0].Role); 1772Assert.Equal(ChatRole.Assistant, extMessages[0].Role); 1783Assert.Equal(ChatRole.System, extMessages[0].Role); 1794Assert.Equal(ChatRole.Tool, extMessages[0].Role); 1814Assert.Equal(ChatRole.System, extMessages[0].Role); 1815Assert.Equal(ChatRole.User, extMessages[1].Role); 1816Assert.Equal(ChatRole.Assistant, extMessages[2].Role); 1817Assert.Equal(ChatRole.System, extMessages[3].Role);
OpenAIConversionTests.cs (54)
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, 617Assert.Equal(ChatRole.User, message.Role); 648Assert.Equal(ChatRole.Assistant, message.Role); 723new(ChatRole.Assistant, "Hi there!") 733Assert.Equal(ChatRole.Assistant, message.Role); 749new(ChatRole.Assistant, 762Assert.Equal(ChatRole.Assistant, message.Role); 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")) 914(ChatRole.Assistant, ChatMessageRole.Assistant), 915(ChatRole.User, ChatMessageRole.User), 916(ChatRole.System, ChatMessageRole.System), 917(ChatRole.Tool, ChatMessageRole.Tool) 960var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, "Hello") 978var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, "Hello, world!") 1046var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, [functionCallContent]) 1081var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, [functionCall1, functionCall2]) 1109var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, 1149(ChatRole.Assistant, ChatMessageRole.Assistant), 1150(ChatRole.User, ChatMessageRole.User), 1151(ChatRole.System, ChatMessageRole.System), 1152(ChatRole.Tool, ChatMessageRole.Tool) 1183var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, "Test") 1204new ChatResponseUpdate(ChatRole.Assistant, "Hello, ") 1211new ChatResponseUpdate(ChatRole.Assistant, "world!") 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 (35)
163Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 460Assert.Equal(ChatRole.Assistant, updates[i].Role); 820Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 822Assert.Equal(ChatRole.Assistant, response.Messages[1].Role); 1076Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 1332Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 1746Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 1964Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 2357Assert.Equal(ChatRole.Assistant, message.Role); 2577Assert.Equal(ChatRole.Assistant, message.Role); 3535new ChatMessage(ChatRole.User, "test"), 3536new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call_123", new TextContent("Result text"))]) 3591new ChatMessage(ChatRole.User, "test"), 3592new ChatMessage(ChatRole.Tool, [ 3653new ChatMessage(ChatRole.User, "test"), 3654new ChatMessage(ChatRole.Tool, [ 3710new ChatMessage(ChatRole.User, "test"), 3711new ChatMessage(ChatRole.Tool, [ 3767new ChatMessage(ChatRole.User, "test"), 3768new ChatMessage(ChatRole.Tool, [ 3826new ChatMessage(ChatRole.User, "test"), 3827new ChatMessage(ChatRole.Tool, [ 3889new ChatMessage(ChatRole.User, "test"), 3890new ChatMessage(ChatRole.Tool, [ 3944new ChatMessage(ChatRole.User, "test"), 3945new ChatMessage(ChatRole.Tool, [ 3999new ChatMessage(ChatRole.User, "test"), 4000new ChatMessage(ChatRole.Tool, [ 4056new ChatMessage(ChatRole.User, "test"), 4057new ChatMessage(ChatRole.Tool, [ 4113new ChatMessage(ChatRole.User, "test"), 4114new ChatMessage(ChatRole.Tool, [ 4278new ChatMessage(ChatRole.User, [ 4524[new ChatMessage(ChatRole.User, "test")], 4593var response = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "")]);
Microsoft.Extensions.AI.Tests (419)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (23)
23var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Animal))) 75var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 100var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options))) 123Assert.Equal(ChatRole.User, message.Role); 136var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 161var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options))); 198new ChatMessage(ChatRole.Assistant, 203new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callid123", "result")]), 204new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options)) 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") }; 297var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options))); 311var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 332var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(payload, JsonContext2.Default.Options))); 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") }; 425return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, resultDuplicatedJson))); 429var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
ChatCompletion\DistributedCachingChatClientTest.cs (23)
140return new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello")); 184var input = new ChatMessage(ChatRole.User, "abc"); 214return new ChatResponse(new ChatMessage(ChatRole.Assistant, "A good result")); 223var input = new ChatMessage(ChatRole.User, "abc"); 313new(ChatRole.Assistant, "This"), 314new(ChatRole.Assistant, " becomes one chunk"), 315new() { Role = ChatRole.Assistant, Contents = [new FunctionCallContent("callId1", "separator")] }, 316new(ChatRole.Assistant, "... and this"), 317new(ChatRole.Assistant, " becomes another"), 318new(ChatRole.Assistant, " one."), 368new() { Role = ChatRole.Assistant, Contents = [new TextContent("Hello")] }, 369new() { Role = ChatRole.Assistant, Contents = [new TextContent(" world, ")] }, 372Role = ChatRole.Assistant, 383Role = ChatRole.Assistant, 436new(ChatRole.Assistant, "Chunk 1"), 484() => new(ChatRole.Assistant, "Chunk 1"), 494var input = new ChatMessage(ChatRole.User, "abc"); 523[() => new(ChatRole.Assistant, "A good result")]); 532var input = new ChatMessage(ChatRole.User, "abc"); 559return new(new ChatMessage(ChatRole.Assistant, options!.AdditionalProperties!["someKey"]!.ToString())); 610return new(new ChatMessage(ChatRole.Assistant, innerCallCount.ToString())); 656return new(new ChatMessage(ChatRole.Assistant, options!.AdditionalProperties!["someKey"]!.ToString())); 744new ChatMessage(ChatRole.Assistant, [new TextContent("Hey")])));
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (120)
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")]; 706yield return new ChatResponseUpdate(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = messageId }; 710ChatRole.Assistant, 764List<ChatMessage> input = [new ChatMessage(ChatRole.User, "hello")]; 779yield return new ChatResponseUpdate(ChatRole.Assistant, [new TextContent("Text 1")]) { MessageId = messageId }; 781yield return new ChatResponseUpdate(ChatRole.Assistant, [new TextContent("Text 2")]) { MessageId = messageId }; 783yield return new ChatResponseUpdate(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = messageId }; 786ChatRole.Assistant, 792yield return new ChatResponseUpdate(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func3")]) { MessageId = messageId };
ChatCompletion\FunctionInvokingChatClientTests.cs (119)
92new ChatMessage(ChatRole.User, "hello"), 93new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 94new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 95new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 96new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 97new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 98new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 99new ChatMessage(ChatRole.Assistant, "world"), 126new ChatMessage(ChatRole.User, "hello"), 127new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 128new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 129new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 130new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 131new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 132new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 133new ChatMessage(ChatRole.Assistant, "world"), 159new ChatMessage(ChatRole.User, "hello"), 160new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 161new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 162new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 163new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 164new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 165new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 166new ChatMessage(ChatRole.Assistant, "world"), 190new ChatMessage(ChatRole.User, "hello"), 191new ChatMessage(ChatRole.Assistant, 197new ChatMessage(ChatRole.Tool, 203new ChatMessage(ChatRole.Assistant, 208new ChatMessage(ChatRole.Tool, 213new ChatMessage(ChatRole.Assistant, "world"), 250new ChatMessage(ChatRole.User, "hello"), 251new ChatMessage(ChatRole.Assistant, 256new ChatMessage(ChatRole.Tool, 261new ChatMessage(ChatRole.Assistant, "done"), 294new ChatMessage(ChatRole.User, "hello"), 295new ChatMessage(ChatRole.Assistant, 300new ChatMessage(ChatRole.Tool, 305new ChatMessage(ChatRole.Assistant, "done"), 328new ChatMessage(ChatRole.User, "hello"), 329new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 330new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1 from delegate")]), 331new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 332new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42 from delegate")]), 333new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 334new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 335new ChatMessage(ChatRole.Assistant, "world"), 377new ChatMessage(ChatRole.User, "hello"), 378new ChatMessage(ChatRole.Assistant, [new FunctionCallContent($"callId0", "VoidReturn")]), 385plan.Add(new ChatMessage(ChatRole.Tool, [new FunctionResultContent($"callId{i}", result: "Success: Function completed.")])); 386plan.Add(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent($"callId{(i + 1)}", "VoidReturn")])); 426new ChatMessage(ChatRole.User, "hello"), 504new ChatMessage(ChatRole.User, "hello"), 521var assistantMessage = new ChatMessage(ChatRole.Assistant, []); 522var toolMessage = new ChatMessage(ChatRole.Tool, []); 551new ChatMessage(ChatRole.User, "hello"), 552new ChatMessage(ChatRole.Assistant, [new TextContent("extra"), new FunctionCallContent("callId1", "Func1"), new TextContent("stuff")]), 553new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 1")]), 554new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 555new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 556new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } }), new TextContent("more")]), 557new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 558new ChatMessage(ChatRole.Assistant, "world"), 588new ChatMessage(ChatRole.User, "hello"), 589new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 590new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: detailedErrors ? "Error: Function failed. Exception: Oh no!" : "Error: Function failed.")]), 591new ChatMessage(ChatRole.Assistant, "world"), 610new ChatMessage(ChatRole.User, "hello"), 611new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 612new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 613new ChatMessage(ChatRole.Assistant, "world"), 667new ChatMessage(ChatRole.User, "hello"), 668new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 669new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 670new ChatMessage(ChatRole.Assistant, "world"), 745new(ChatRole.User, "Hello"), 803new(ChatRole.User, "Hello"), 813new(ChatRole.Assistant, [new FunctionCallContent($"callId{chatContents.Count()}", "Func1")]) : 814new(ChatRole.Assistant, "The answer is 42."); 861new ChatMessage(ChatRole.User, "hello"), 862new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["i"] = 41 })]), 863new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 41")]), 864new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func1", new Dictionary<string, object?> { ["i"] = 42 })]), 865new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 42")]), 872new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "Func1", new Dictionary<string, object?> { ["i"] = 43 })]), 873new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 43")]), 874new ChatMessage(ChatRole.Assistant, "world"), 928var existingSearchResult = chatContents.SingleOrDefault(m => m.Role == ChatRole.Tool); 937var message = new ChatMessage(ChatRole.Assistant, resultContents); 945List<ChatMessage> messages = [new(ChatRole.User, "hello")]; 952Assert.Equal(ChatRole.Tool, lastMessage.Role); 980return new ChatResponse(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId-abc", "Func1")])) 988return new ChatResponse(new ChatMessage(ChatRole.Assistant, "done!")); 1017new ChatMessage(ChatRole.User, "hello"), 1018new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 1019new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 1020new ChatMessage(ChatRole.Assistant, "world"), 1046new ChatMessage(ChatRole.User, "hello"), 1047new ChatMessage(ChatRole.Assistant, [ 1051new ChatMessage(ChatRole.Tool, 1056new ChatMessage(ChatRole.Assistant, "world"), 1099new(ChatRole.User, "hello"), 1100new(ChatRole.Assistant, [ 1104new(ChatRole.Tool, [ 1108new(ChatRole.Assistant, "done"), 1118new(ChatRole.User, "hello"), 1119new(ChatRole.Assistant, [ 1123new(ChatRole.Tool, [ 1127new(ChatRole.Assistant, "done"), 1147new(ChatRole.User, "hello"), 1148new(ChatRole.Assistant, [new FunctionCallContent("callId1", "DefOnly")]), 1149new(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Should not be produced")]), 1150new(ChatRole.Assistant, "world"), 1176new(ChatRole.User, "hi"), 1177new(ChatRole.Assistant, [ 1181new(ChatRole.Tool, [new FunctionResultContent("callId1", result: "OK"), new FunctionResultContent("callId2", result: "nope")]), 1182new(ChatRole.Assistant, "done"), 1213messages.Add(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")])); 1273var message = new ChatMessage(ChatRole.Assistant, [.. plan[contents.Count()].Contents]) 1337ChatMessage message = new(ChatRole.Assistant, [.. plan[contents.Count()].Contents])
ChatCompletion\LoggingChatClientTests.cs (5)
59return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "blue whale"))); 69[new(ChatRole.User, "What's the biggest animal?")], 108yield return new(ChatRole.Assistant, "blue "); 109yield return new(ChatRole.Assistant, "whale"); 118[new(ChatRole.User, "What's the biggest animal?")],
ChatCompletion\OpenTelemetryChatClientTests.cs (15)
38return new ChatResponse(new ChatMessage(ChatRole.Assistant, "The blue whale, I think.")) 69yield return new ChatResponseUpdate(ChatRole.Assistant, text) 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, 371yield return new(ChatRole.Assistant, "Assistant response text"); 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 (10)
36new(ChatRole.System, "You are a helpful assistant"), 37new(ChatRole.User, "Hello"), 38new(ChatRole.Assistant, "Hi there!"), 39new(ChatRole.User, "What's the weather?") 44new(ChatRole.System, "You are a helpful assistant"), 45new(ChatRole.User, "What's the weather?") 49var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "It's sunny!")); 50var expectedUpdates = new[] { new ChatResponseUpdate(ChatRole.Assistant, "It's"), new ChatResponseUpdate(null, " sunny!") }; 97var reducedMessages = new List<ChatMessage> { new(ChatRole.User, "Reduced message") }; 118await 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 (44)
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!"), 66Assert.Equal(ChatRole.System, m.Role); 71Assert.Equal(ChatRole.User, m.Role); 76Assert.Equal(ChatRole.Assistant, m.Role); 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!"), 102Assert.Equal(ChatRole.System, m.Role); 107Assert.Equal(ChatRole.User, m.Role); 112Assert.Equal(ChatRole.Assistant, m.Role); 117Assert.Equal(1, resultList.Count(m => m.Role == ChatRole.System)); 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!"), 141Assert.Equal(ChatRole.User, m.Role); 148Assert.Equal(ChatRole.Assistant, m.Role); 167messages.Add(new ChatMessage(i % 2 == 0 ? ChatRole.User : ChatRole.Assistant, $"Message {i}")); 183var expectedRole = expectedIndex % 2 == 0 ? ChatRole.User : ChatRole.Assistant; 202new ChatMessage(ChatRole.System, "System prompt"), 211Assert.Equal(ChatRole.System, m.Role); 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"), 254Assert.Equal(ChatRole.System, m.Role); 259Assert.Equal(ChatRole.Assistant, m.Role);
ChatReduction\SummarizingChatReducerTests.cs (57)
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"))); 82Assert.Equal(ChatRole.System, resultList[0].Role); 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."), 207Assert.Contains(msgList, m => m.Role == ChatRole.System); 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"))); 315Assert.Equal(ChatRole.System, resultList[0].Role); 319Assert.Equal(1, resultList.Count(m => m.Role == ChatRole.System)); 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?"), 344m => Assert.Equal(ChatRole.System, m.Role)); 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?")); 371m => Assert.Equal(ChatRole.System, m.Role)); 377return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, Summary)));
Microsoft.Extensions.DataIngestion (10)
Processors\ClassificationEnricher.cs (2)
66new(ChatRole.User, chunk.Content) 130return new(ChatRole.System, sb.ToString());
Processors\ImageAlternativeTextEnricher.cs (2)
31_systemPrompt = new(ChatRole.System, "Write a detailed alternative text for this image with less than 50 words."); 68new(ChatRole.User, [new DataContent(image.Content.Value, image.MediaType!)])
Processors\KeywordEnricher.cs (2)
80new(ChatRole.User, chunk.Content) 158return new(ChatRole.System, sb.ToString());
Processors\SentimentEnricher.cs (2)
50_systemPrompt = new(ChatRole.System, prompt); 69new(ChatRole.User, chunk.Content)
Processors\SummaryEnricher.cs (2)
38_systemPrompt = new(ChatRole.System, $"Write a summary text for this text with no more than {wordCount} words. Return just the summary."); 57new(ChatRole.User, chunk.Content)
Microsoft.Extensions.DataIngestion.Tests (18)
Processors\AlternativeTextEnricherTests.cs (3)
45Assert.Equal(ChatRole.System, materializedMessages[0].Role); 46Assert.Equal(ChatRole.User, materializedMessages[1].Role); 54new ChatMessage(ChatRole.Assistant, descriptions[counter++])
Processors\ClassificationEnricherTests.cs (4)
80Assert.Equal(ChatRole.System, materializedMessages[0].Role); 81Assert.Equal(ChatRole.User, materializedMessages[1].Role); 85new ChatMessage(ChatRole.Assistant, classes[counter++]) 108new ChatMessage(ChatRole.Assistant, "Unexpected result!")
Processors\KeywordEnricherTests.cs (4)
82Assert.Equal(ChatRole.System, materializedMessages[0].Role); 83Assert.Equal(ChatRole.User, materializedMessages[1].Role); 87new ChatMessage(ChatRole.Assistant, keywords[counter++]) 110new ChatMessage(ChatRole.Assistant, "Unexpected result!")
Processors\SentimentEnricherTests.cs (4)
58Assert.Equal(ChatRole.System, materializedMessages[0].Role); 59Assert.Equal(ChatRole.User, materializedMessages[1].Role); 63new ChatMessage(ChatRole.Assistant, sentiments[counter++]) 89new ChatMessage(ChatRole.Assistant, "Unexpected result!")
Processors\SummaryEnricherTests.cs (3)
58Assert.Equal(ChatRole.System, materializedMessages[0].Role); 59Assert.Equal(ChatRole.User, materializedMessages[1].Role); 63new ChatMessage(ChatRole.Assistant, summaries[counter++])
Microsoft.ML.GenAI.Core (2)
CausalLMPipelineChatClient.cs (2)
47var chatMessage = new ChatMessage(ChatRole.Assistant, output); 73yield return new(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 (6)
Llama3_1ChatTemplateBuilder.cs (6)
93var availableRoles = new[] { ChatRole.System, ChatRole.User, ChatRole.Assistant }; 112_ when message.Role == ChatRole.System => $"<|start_header_id|>system<|end_header_id|>{Newline}{content.Trim()}<|eot_id|>{Newline}", 113_ when message.Role == ChatRole.User => $"<|start_header_id|>user<|end_header_id|>{Newline}{content.Trim()}<|eot_id|>{Newline}", 114_ when message.Role == ChatRole.Assistant => $"<|start_header_id|>assistant<|end_header_id|>{Newline}{content.Trim()}<|eot_id|>{Newline}",
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.Phi (6)
Phi3\Phi3ChatTemplateBuilder.cs (6)
94var availableRoles = new[] { ChatRole.System, ChatRole.User, ChatRole.Assistant }; 115_ when message.Role == ChatRole.System => $"<|system|>{Newline}{content}<|end|>{Newline}", 116_ when message.Role == ChatRole.User => $"<|user|>{Newline}{content}<|end|>{Newline}", 117_ when message.Role == ChatRole.Assistant => $"<|assistant|>{Newline}{content}<|end|>{Newline}",
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)
110foreach (var message in chatMessages.Where(m => m.Role == ChatRole.Assistant)) 157new(ChatRole.System, "Pick a random topic and write a sentence of a fictional story about it.") 164chatMessages.Add(new ChatMessage(ChatRole.User, "Write the next sentence in the story."));