46 instantiations of ChatRole
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 (33)
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 (2)
32new(new("human"), ", ") { AuthorName = "Someone", AdditionalProperties = new() { ["a"] = "b" } }, 56Assert.Equal(new ChatRole("human"), message.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)
43private static ChatRole ChatRoleDeveloper { get; } = new("developer"); 275new ChatRole(role.ToString());
Microsoft.Extensions.AI.OpenAI (2)
OpenAIChatClient.cs (1)
656_ => new ChatRole(role.ToString()),
OpenAIClientExtensions.cs (1)
34internal static ChatRole ChatRoleDeveloper { get; } = new ChatRole("developer");
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"),
670 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.OpenAI.Tests (1)
AspireOpenAIClientBuilderChatClientExtensionsTests.cs (1)
269=> Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello from middleware")));
Microsoft.Extensions.AI (14)
ChatCompletion\ChatClientStructuredOutputExtensions.cs (3)
74GetResponseAsync<T>(chatClient, new ChatMessage(ChatRole.User, chatMessage), options, useJsonSchemaResponseFormat, cancellationToken); 114GetResponseAsync<T>(chatClient, new ChatMessage(ChatRole.User, chatMessage), serializerOptions, options, useJsonSchemaResponseFormat, cancellationToken); 213promptAugmentation = new ChatMessage(ChatRole.User, $$"""
ChatCompletion\FunctionInvokingChatClient.cs (1)
797return [new(ChatRole.Tool, contents)];
ChatCompletion\OpenTelemetryChatClient.cs (5)
463if (message.Role == ChatRole.Assistant) 468else if (message.Role == ChatRole.Tool) 484Log(new(1, message.Role == ChatRole.System ? OpenTelemetryConsts.GenAI.System.Message : OpenTelemetryConsts.GenAI.User.Message), 487Role = message.Role != ChatRole.System && message.Role != ChatRole.User && !string.IsNullOrWhiteSpace(message.Role.Value) ? message.Role.Value : null,
ChatReduction\MessageCountingChatReducer.cs (1)
52if (message.Role == ChatRole.System)
ChatReduction\SummarizingChatReducer.cs (4)
99if (message.Role == ChatRole.System) 151yield return new ChatMessage(ChatRole.Assistant, summary); 164yield return new ChatMessage(ChatRole.Assistant, summary); 172yield return new ChatMessage(ChatRole.System, summarizationPrompt);
Microsoft.Extensions.AI.Abstractions (37)
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)
23/// <remarks>The instance defaults to having a role of <see cref="ChatRole.User"/>.</remarks> 32public ChatMessage(ChatRole role, string? content) 40public ChatMessage(ChatRole role, IList<AIContent>? contents) 75public ChatRole Role { get; set; } = ChatRole.User;
ChatCompletion\ChatResponseExtensions.cs (3)
89list.Add(new(update.Role ?? ChatRole.Assistant, contentsList) 322message = new(ChatRole.Assistant, []); 345if (update.Role is ChatRole role)
ChatCompletion\ChatResponseUpdate.cs (3)
52public ChatResponseUpdate(ChatRole? role, string? content) 60public ChatResponseUpdate(ChatRole? role, IList<AIContent>? contents) 74public 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 (36)
ChatCompletion\ChatClientExtensionsTests.cs (3)
112Assert.Equal(ChatRole.User, m.Role); 139Assert.Equal(ChatRole.User, m.Role); 146return YieldAsync([new ChatResponseUpdate(ChatRole.Assistant, "world")]);
ChatCompletion\ChatMessageTests.cs (10)
22Assert.Equal(ChatRole.User, message.Role); 37ChatMessage message = new(ChatRole.Assistant, text); 39Assert.Equal(ChatRole.Assistant, message.Role); 69message = new(ChatRole.User, (string?)null); 73message = new(ChatRole.User, (IList<AIContent>?)null); 77message = new ChatMessage(ChatRole.User, Array.Empty<AIContent>()); 94ChatMessage message = new(ChatRole.System, content); 96Assert.Equal(ChatRole.System, message.Role); 145ChatMessage message = new(ChatRole.User, 277var 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 (7)
31new(ChatRole.Assistant, "Hello") { ResponseId = "someResponse", MessageId = "12345", CreatedAt = new DateTimeOffset(1, 2, 3, 4, 5, 6, TimeSpan.Zero), ModelId = "model123" }, 78new(ChatRole.Assistant, "Hello") { MessageId = "msg1", CreatedAt = new DateTimeOffset(2024, 1, 1, 10, 0, 0, TimeSpan.Zero), AuthorName = "Assistant" }, 83new(ChatRole.User, "How") { MessageId = "msg2", CreatedAt = new DateTimeOffset(2024, 1, 1, 11, 0, 0, TimeSpan.Zero), AuthorName = "User" }, 88new(ChatRole.Assistant, "I'm doing well,") { MessageId = "msg3", CreatedAt = new DateTimeOffset(2024, 1, 1, 12, 0, 0, TimeSpan.Zero) }, 105Assert.Equal(ChatRole.Assistant, message1.Role); 113Assert.Equal(ChatRole.User, message2.Role); 121Assert.Equal(ChatRole.Assistant, message3.Role);
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")
Microsoft.Extensions.AI.AzureAIInference (11)
AzureAIInferenceChatClient.cs (11)
43private static ChatRole ChatRoleDeveloper { get; } = new("developer"); 147ChatRole? streamedRole = default; 269private static ChatRole ToChatRole(global::Azure.AI.Inference.ChatRole role) => 270role.Equals(global::Azure.AI.Inference.ChatRole.System) ? ChatRole.System : 271role.Equals(global::Azure.AI.Inference.ChatRole.User) ? ChatRole.User : 272role.Equals(global::Azure.AI.Inference.ChatRole.Assistant) ? ChatRole.Assistant : 273role.Equals(global::Azure.AI.Inference.ChatRole.Tool) ? ChatRole.Tool : 438if (input.Role == ChatRole.System) 446else if (input.Role == ChatRole.Tool) 469else if (input.Role == ChatRole.User) 486else 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)
335Role = ChatRole.User, 373Role = ChatRole.Assistant, 407Role = ChatRole.User, 420Role = ChatRole.Assistant, 456Role = ChatRole.User, 469Role = 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)
20var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "The quick brown fox jumps over the lazy dog.")); 36var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Completely unrelated sentence.")); 51var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Some text.")); 71var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, hypothesis)); 91var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, hypothesis)); 104var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, ""));
F1EvaluatorTests.cs (5)
20var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "The quick brown fox jumps over the lazy dog.")); 36var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Completely unrelated sentence.")); 51var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Some text.")); 71var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, hypothesis)); 84var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, ""));
GLEUEvaluatorTests.cs (6)
20var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "The quick brown fox jumps over the lazy dog.")); 36var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Completely unrelated sentence.")); 51var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Some text.")); 71var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, hypothesis)); 91var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, hypothesis)); 104var response = new ChatResponse(new ChatMessage(ChatRole.Assistant, ""));
Microsoft.Extensions.AI.Evaluation.Quality (22)
CoherenceEvaluator.cs (2)
119List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 199evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
CompletenessEvaluator.cs (2)
127List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 191evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
EquivalenceEvaluator.cs (2)
124List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 176evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
FluencyEvaluator.cs (2)
111List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 179evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
GroundednessEvaluator.cs (2)
129List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 301evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
IntentResolutionEvaluator.cs (2)
173List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 318evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
RelevanceEvaluator.cs (2)
124List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 205evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
RelevanceTruthAndCompletenessEvaluator.cs (1)
268return [new ChatMessage(ChatRole.User, evaluationPrompt)];
RetrievalEvaluator.cs (2)
143List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 230evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
TaskAdherenceEvaluator.cs (1)
266List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, systemPrompt)];
ToolCallAccuracyEvaluator.cs (2)
172List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 223evaluationInstructions.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)
31Role = ChatRole.User, 50Assert.Equal(ChatRole.User, resp.ModelResponse.Messages[0].Role);
Microsoft.Extensions.AI.Evaluation.Safety (11)
ContentSafetyChatClient.cs (2)
66return new ChatResponse(new ChatMessage(ChatRole.Assistant, annotationResult)) 99yield return new ChatResponseUpdate(ChatRole.Assistant, annotationResult)
ContentSafetyEvaluator.cs (1)
142var payloadMessage = new ChatMessage(ChatRole.User, payload);
ContentSafetyServicePayloadUtilities.cs (8)
424if (message.Role == ChatRole.User) 433else if (message.Role == ChatRole.Assistant) 497$"{evaluatorName} only considers messages with role '{ChatRole.User}' and '{ChatRole.Assistant}'. " + 498$"The unsupported messages (which may include messages with role '{ChatRole.System}' and '{ChatRole.Tool}') were ignored.")]; 507$"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 (73)
ChatClientIntegrationTests.cs (65)
69new(ChatRole.User, "Pick a city, any city"), 70new(ChatRole.Assistant, "Seattle"), 71new(ChatRole.User, "And another one"), 72new(ChatRole.Assistant, "Jakarta"), 73new(ChatRole.User, "What continent are they each in?"), 87new(ChatRole.System, []), 88new(ChatRole.User, []), 89new(ChatRole.Assistant, []), 90new(ChatRole.User, "What is 1 + 2? Reply with a single number."), 103new(ChatRole.User, "Quote, word for word, Neil Armstrong's famous words.") 161List<ChatMessage> history = [new(ChatRole.User, "Explain in 100 words how AI works")]; 168Assert.Equal(ChatRole.Assistant, history[1].Role); 184new(ChatRole.User, 202new(ChatRole.User, 232new(ChatRole.User, "What is the current secret number?") 299new(ChatRole.User, "What is the secret number for id foo?") 331new(ChatRole.User, "What is the secret number for John aged 19?") 361new(ChatRole.User, "Can you add bacon, lettuce, and tomatoes to Peter's shopping cart?") 640var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 656var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 681var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 733var message = new ChatMessage(ChatRole.User, "What is the temperature?"); 772var message = new ChatMessage(ChatRole.User, "What is the temperature?"); 814var message = new ChatMessage(ChatRole.User, "What is the temperature?"); 842await chatClient.GetResponseAsync([new(ChatRole.User, "What's the biggest animal?")]); 941var response = await chatClient.GetResponseAsync([new(ChatRole.User, "What's the biggest animal?")]); 1137new(ChatRole.User, "My name is Alice and I love hiking in the mountains."), 1138new(ChatRole.Assistant, "Nice to meet you, Alice! Hiking in the mountains sounds wonderful. Do you have a favorite trail?"), 1139new(ChatRole.User, "Yes, I love the Pacific Crest Trail. I hiked a section last summer."), 1140new(ChatRole.Assistant, "The Pacific Crest Trail is amazing! Which section did you hike?"), 1141new(ChatRole.User, "I hiked the section through the Sierra Nevada. It was challenging but beautiful."), 1142new(ChatRole.Assistant, "The Sierra Nevada section is known for its stunning views. How long did it take you?"), 1143new(ChatRole.User, "What's my name and what activity do I enjoy?") 1155Assert.Equal(ChatRole.Assistant, m.Role); // Indicates this is the assistant's summary 1178new(ChatRole.System, "You are a pirate. Always respond in pirate speak."), 1179new(ChatRole.User, "Tell me about the weather"), 1180new(ChatRole.Assistant, "Ahoy matey! The weather be fine today, with clear skies on the horizon!"), 1181new(ChatRole.User, "What about tomorrow?"), 1182new(ChatRole.Assistant, "Arr, tomorrow be lookin' a bit cloudy, might be some rain blowin' in from the east!"), 1183new(ChatRole.User, "Should I bring an umbrella?"), 1184new(ChatRole.Assistant, "Aye, ye best be bringin' yer umbrella, unless ye want to be soaked like a barnacle!"), 1185new(ChatRole.User, "What's 2 + 2?") 1197Assert.Equal(ChatRole.System, m.Role); 1200m => Assert.Equal(ChatRole.Assistant, m.Role), // Summary message 1239new(ChatRole.User, "What's the weather in Seattle?"), 1240new(ChatRole.Assistant, "Let me check the weather in Seattle for you."), 1241new(ChatRole.User, "And what about Miami?"), 1242new(ChatRole.Assistant, "I'll check Miami's weather as well."), 1243new(ChatRole.User, "Which city had better weather?") 1273new(ChatRole.User, "I'm Bob and I work as a software engineer at a startup."), 1274new(ChatRole.Assistant, "Nice to meet you, Bob! Working at a startup must be exciting. What kind of software do you develop?"), 1275new(ChatRole.User, "We build AI-powered tools for education."), 1276new(ChatRole.Assistant, "That sounds impactful! AI in education has so much potential."), 1277new(ChatRole.User, "Yes, we focus on personalized learning experiences."), 1278new(ChatRole.Assistant, "Personalized learning is the future of education!"), 1279new(ChatRole.User, "What's my name and profession?") 1295Assert.Equal(ChatRole.Assistant, m.Role); // Summary 1319new(ChatRole.User, "I have 3 cats and 2 dogs."), 1320new(ChatRole.Assistant, "That's 5 pets total! You must have a lively household."), 1321new(ChatRole.User, "Yes, and I spend about $200 per month on pet food."), 1322new(ChatRole.Assistant, "That's a significant expense, but I'm sure they're worth it!"), 1323new(ChatRole.User, "They eat 10 cans of food per week."), 1324new(ChatRole.Assistant, "That's quite a bit of food for your furry friends!"), 1325new(ChatRole.User, "How many pets do I have in total?") 1337Assert.Equal(ChatRole.Assistant, summaryMessage.Role);
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)
46new ChatMessage(ChatRole.User, "Hi there! Can you tell me about golden retrievers?"), 47new 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."), 48new ChatMessage(ChatRole.User, "What kind of exercise do they need?"), 49new 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."), 50new ChatMessage(ChatRole.User, "Are they good with kids?"),
Microsoft.Extensions.AI.OpenAI (34)
MicrosoftExtensionsAIChatExtensions.cs (2)
254/// <summary>Converts the <see cref="ChatRole"/> to a <see cref="ChatMessageRole"/>.</summary> 255private static ChatMessageRole ToChatMessageRole(ChatRole? role) =>
OpenAIAssistantsChatClient.cs (6)
192Role = ChatRole.Assistant, 219ChatResponseUpdate textUpdate = new(mcu.Role == MessageRole.User ? ChatRole.User : ChatRole.Assistant, mcu.Text) 275Role = ChatRole.Assistant, 478if (chatMessage.Role == ChatRole.System || 514chatMessage.Role == ChatRole.Assistant ? MessageRole.Assistant : MessageRole.User,
OpenAIChatClient.cs (11)
136if (input.Role == ChatRole.System || 137input.Role == ChatRole.User || 142input.Role == ChatRole.System ? new SystemChatMessage(parts) { ParticipantName = input.AuthorName } : 146else if (input.Role == ChatRole.Tool) 169else if (input.Role == ChatRole.Assistant) 313ChatRole? streamedRole = null; 648private static ChatRole FromOpenAIChatRole(ChatMessageRole role) => 651ChatMessageRole.System => ChatRole.System, 652ChatMessageRole.User => ChatRole.User, 653ChatMessageRole.Assistant => ChatRole.Assistant, 654ChatMessageRole.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)
134message ??= new(ChatRole.Assistant, (string?)null); 199ChatRole? lastRole = null; 302lastRole = ChatRole.Assistant; 352/// <summary>Creates a <see cref="ChatRole"/> from a <see cref="MessageRole"/>.</summary> 353private static ChatRole ToChatRole(MessageRole? role) => 356MessageRole.System => ChatRole.System, 358MessageRole.User => ChatRole.User, 359_ => ChatRole.Assistant, 504if (input.Role == ChatRole.System || 510yield return input.Role == ChatRole.System ? 518if (input.Role == ChatRole.User) 524if (input.Role == ChatRole.Tool) 556if (input.Role == ChatRole.Assistant)
Microsoft.Extensions.AI.OpenAI.Tests (82)
OpenAIChatClientTests.cs (27)
165Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 253Assert.Equal(ChatRole.Assistant, updates[i].Role); 804new(ChatRole.System, "You are a really nice friend."), 805new(ChatRole.User, "hello!"), 806new(ChatRole.Assistant, "hi, how are you?"), 807new(ChatRole.User, "i'm good. how are you?"), 823Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 911new(ChatRole.System, [new TextContent("You are a really nice friend."), new TextContent("Really nice.")]), 912new(ChatRole.User, "hello!"), 921Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1007new(ChatRole.System, "You are a really nice friend."), 1008new(ChatRole.User, "hello!"), 1009new(ChatRole.Assistant, (string?)null), 1010new(ChatRole.User, "i'm good. how are you?"), 1019Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1132Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1216Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1326Assert.Equal(ChatRole.Assistant, updates[i].Role); 1449new(ChatRole.System, "You are a really nice friend."), 1450new(ChatRole.User, "hello!"), 1451new(ChatRole.Assistant, 1457new (ChatRole.Tool, 1462new(ChatRole.Assistant, "You are great."), 1463new(ChatRole.User, "Thanks!"), 1472Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1569new(ChatRole.User, 1586Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
OpenAIConversionTests.cs (51)
90new(ChatRole.System, "You are a helpful assistant."), 91new(ChatRole.User, "Hello"), 92new(ChatRole.Assistant, 101new(ChatRole.Tool, [new FunctionResultContent("callid123", "theresult")]), 102new(ChatRole.Assistant, "The answer is 42."), 156new(ChatRole.System, "You are a helpful assistant."), 157new(ChatRole.User, "Hello"), 158new(ChatRole.Assistant, 167new(ChatRole.Tool, [new FunctionResultContent("callid123", "theresult")]), 168new(ChatRole.Assistant, "The answer is 42."), 229Assert.Equal(ChatRole.User, message.Role); 260Assert.Equal(ChatRole.Assistant, message.Role); 335new(ChatRole.Assistant, "Hi there!") 345Assert.Equal(ChatRole.Assistant, message.Role); 361new(ChatRole.Assistant, 374Assert.Equal(ChatRole.Assistant, message.Role); 397var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, 436var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello")); 466var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, 511var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Test")) 526(ChatRole.Assistant, ChatMessageRole.Assistant), 527(ChatRole.User, ChatMessageRole.User), 528(ChatRole.System, ChatMessageRole.System), 529(ChatRole.Tool, ChatMessageRole.Tool) 572var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, "Hello") 590var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, "Hello, world!") 658var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, [functionCallContent]) 693var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, [functionCall1, functionCall2]) 721var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, 761(ChatRole.Assistant, ChatMessageRole.Assistant), 762(ChatRole.User, ChatMessageRole.User), 763(ChatRole.System, ChatMessageRole.System), 764(ChatRole.Tool, ChatMessageRole.Tool) 795var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, "Test") 816new ChatResponseUpdate(ChatRole.Assistant, "Hello, ") 823new ChatResponseUpdate(ChatRole.Assistant, "world!") 873var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Test")) 886var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello, world!")) 911var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Test message")) 961new(ChatRole.Assistant, "First message"), 962new(ChatRole.Assistant, "Second message"), 963new(ChatRole.Assistant, 998new(ChatRole.Assistant, 1003new(ChatRole.Tool, [new FunctionResultContent("call-456", "The weather is sunny")]), 1004new(ChatRole.Assistant, "The weather in Seattle is sunny!") 1033new(ChatRole.System, "You are a helpful assistant."), 1034new(ChatRole.User, "Hello, how are you?"), 1035new(ChatRole.Assistant, "I'm doing well, thank you for asking!") 1060var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Default test")); 1078var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Model test")); 1093var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Model priority test"))
OpenAIResponseClientTests.cs (4)
160Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 277Assert.Equal(ChatRole.Assistant, updates[i].Role); 587Assert.Equal(ChatRole.Assistant, response.Messages[0].Role); 589Assert.Equal(ChatRole.Assistant, response.Messages[1].Role);
Microsoft.Extensions.AI.Tests (255)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (23)
23var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Animal))) 81var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 106var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options))) 129Assert.Equal(ChatRole.User, message.Role); 142var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 167var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options))); 204new ChatMessage(ChatRole.Assistant, 209new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callid123", "result")]), 210new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options)) 245var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "This is not valid JSON")); 251var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 264var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "null")); 270var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 283var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, [new UriContent("https://example.com", "image/*")])); 289var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 303var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options))); 317var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 338var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(payload, JsonContext2.Default.Options))); 345var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 370var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, jso))); 413var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 437return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, resultDuplicatedJson))); 441var 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\FunctionInvokingChatClientTests.cs (102)
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"), 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"), 728new(ChatRole.User, "Hello"), 786new(ChatRole.User, "Hello"), 796new(ChatRole.Assistant, [new FunctionCallContent($"callId{chatContents.Count()}", "Func1")]) : 797new(ChatRole.Assistant, "The answer is 42."); 844new ChatMessage(ChatRole.User, "hello"), 845new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["i"] = 41 })]), 846new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 41")]), 847new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func1", new Dictionary<string, object?> { ["i"] = 42 })]), 848new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 42")]), 855new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "Func1", new Dictionary<string, object?> { ["i"] = 43 })]), 856new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 43")]), 857new ChatMessage(ChatRole.Assistant, "world"), 911var existingSearchResult = chatContents.SingleOrDefault(m => m.Role == ChatRole.Tool); 920var message = new ChatMessage(ChatRole.Assistant, resultContents); 928List<ChatMessage> messages = [new(ChatRole.User, "hello")]; 935Assert.Equal(ChatRole.Tool, lastMessage.Role); 963return new ChatResponse(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId-abc", "Func1")])) 971return new ChatResponse(new ChatMessage(ChatRole.Assistant, "done!")); 1000new ChatMessage(ChatRole.User, "hello"), 1001new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 1002new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 1003new ChatMessage(ChatRole.Assistant, "world"), 1029new ChatMessage(ChatRole.User, "hello"), 1030new ChatMessage(ChatRole.Assistant, [ 1034new ChatMessage(ChatRole.Tool, 1039new ChatMessage(ChatRole.Assistant, "world"), 1103var message = new ChatMessage(ChatRole.Assistant, [.. plan[contents.Count()].Contents]) 1197ChatMessage 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 (8)
41return new ChatResponse(new ChatMessage(ChatRole.Assistant, "The blue whale, I think.")) 72yield return new ChatResponseUpdate(ChatRole.Assistant, text) 110new(ChatRole.System, "You are a close friend."), 111new(ChatRole.User, "Hey!"), 112new(ChatRole.Assistant, [new FunctionCallContent("12345", "GetPersonName")]), 113new(ChatRole.Tool, [new FunctionResultContent("12345", "John")]), 114new(ChatRole.Assistant, "Hey John, what's up?"), 115new(ChatRole.User, "What's the biggest animal?")
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 (37)
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); 94new ChatMessage(ChatRole.User, "What's the weather?"), 95new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call1", "get_weather", new Dictionary<string, object?> { ["location"] = "Seattle" })]), 96new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "Sunny, 72°F")]), 97new ChatMessage(ChatRole.Assistant, "The weather in Seattle is sunny and 72°F."), 98new ChatMessage(ChatRole.User, "Thanks!"), 124messages.Add(new ChatMessage(i % 2 == 0 ? ChatRole.User : ChatRole.Assistant, $"Message {i}")); 131return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary"))); 158new ChatMessage(ChatRole.User, "Message 1"), 159new ChatMessage(ChatRole.Assistant, "Response 1"), 160new ChatMessage(ChatRole.User, "Message 2"), 169return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary"))); 184new ChatMessage(ChatRole.System, "First system message"), 185new ChatMessage(ChatRole.User, "Hello"), 186new ChatMessage(ChatRole.System, "Second system message"), 187new ChatMessage(ChatRole.Assistant, "Hi"), 188new ChatMessage(ChatRole.User, "How are you?"), 192Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary"))); 197Assert.Equal(ChatRole.System, resultList[0].Role); 201Assert.Equal(1, resultList.Count(m => m.Role == ChatRole.System)); 212new ChatMessage(ChatRole.User, "Hi there! Can you tell me about golden retrievers?"), 213new 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."), 214new ChatMessage(ChatRole.User, "What kind of exercise do they need?"), 215new 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."), 216new ChatMessage(ChatRole.User, "Are they good with kids?"), 226m => Assert.Equal(ChatRole.System, m.Role)); 232return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, Summary))); 243messages.Add(new ChatMessage(ChatRole.Assistant, "Golden retrievers get along well with kids! They're able to be playful and energetic while remaining gentle.")); 244messages.Add(new ChatMessage(ChatRole.User, "Do they make good lap dogs?")); 253m => Assert.Equal(ChatRole.System, m.Role)); 259return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, Summary)));
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);