45 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 (30)
ChatCompletion\ChatResponseTests.cs (1)
130ChatResponse response = new(new ChatMessage(new ChatRole("customRole"), "Text") { MessageId = "someMessage" })
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (1)
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)
42private static ChatRole ChatRoleDeveloper { get; } = new("developer"); 273new ChatRole(role.ToString());
Microsoft.Extensions.AI.Ollama (1)
OllamaChatClient.cs (1)
283return new ChatMessage(new(message.Role), contents) { MessageId = responseId };
Microsoft.Extensions.AI.OpenAI (3)
OpenAIChatClient.cs (2)
115private static ChatRole ChatRoleDeveloper { get; } = new ChatRole("developer"); 591_ => new ChatRole(role.ToString()),
OpenAIResponseChatClient.cs (1)
31private static readonly ChatRole _chatRoleDeveloper = new("developer");
Microsoft.Extensions.AI.Tests (4)
ChatCompletion\DistributedCachingChatClientTest.cs (4)
46new ChatMessage(new ChatRole("fakeRole"), "This is some content") 227Role = new ChatRole("fakeRole2"), 240Role = new ChatRole("fakeRole2"), 615new ChatMessage(new ChatRole("fakeRole"),
414 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 (9)
ChatCompletion\ChatClientStructuredOutputExtensions.cs (3)
69GetResponseAsync<T>(chatClient, new ChatMessage(ChatRole.User, chatMessage), options, useJsonSchemaResponseFormat, cancellationToken); 109GetResponseAsync<T>(chatClient, new ChatMessage(ChatRole.User, chatMessage), serializerOptions, options, useJsonSchemaResponseFormat, cancellationToken); 208promptAugmentation = new ChatMessage(ChatRole.User, $$"""
ChatCompletion\FunctionInvokingChatClient.cs (1)
754return [new(ChatRole.Tool, contents)];
ChatCompletion\OpenTelemetryChatClient.cs (5)
458if (message.Role == ChatRole.Assistant) 463else if (message.Role == ChatRole.Tool) 479Log(new(1, message.Role == ChatRole.System ? OpenTelemetryConsts.GenAI.System.Message : OpenTelemetryConsts.GenAI.User.Message), 482Role = message.Role != ChatRole.System && message.Role != ChatRole.User && !string.IsNullOrWhiteSpace(message.Role.Value) ? message.Role.Value : null,
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)
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) 69public ChatRole Role { get; set; } = ChatRole.User;
ChatCompletion\ChatResponseExtensions.cs (3)
87list.Add(new ChatMessage(update.Role ?? ChatRole.Assistant, contentsList) 271message = new ChatMessage(ChatRole.Assistant, []); 288if (update.Role is ChatRole role)
ChatCompletion\ChatResponseUpdate.cs (3)
50public ChatResponseUpdate(ChatRole? role, string? content) 58public ChatResponseUpdate(ChatRole? role, IList<AIContent>? contents) 72public 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 (30)
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)
21Assert.Equal(ChatRole.User, message.Role); 36ChatMessage message = new(ChatRole.Assistant, text); 38Assert.Equal(ChatRole.Assistant, message.Role); 67message = new(ChatRole.User, (string?)null); 71message = new(ChatRole.User, (IList<AIContent>?)null); 75message = new ChatMessage(ChatRole.User, Array.Empty<AIContent>()); 92ChatMessage message = new(ChatRole.System, content); 94Assert.Equal(ChatRole.System, message.Role); 142ChatMessage message = new(ChatRole.User, 260var 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 (1)
31new(ChatRole.Assistant, "Hello") { ResponseId = "someResponse", MessageId = "12345", CreatedAt = new DateTimeOffset(1, 2, 3, 4, 5, 6, TimeSpan.Zero), ModelId = "model123" },
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)
42private static ChatRole ChatRoleDeveloper { get; } = new("developer"); 145ChatRole? streamedRole = default; 267private static ChatRole ToChatRole(global::Azure.AI.Inference.ChatRole role) => 268role.Equals(global::Azure.AI.Inference.ChatRole.System) ? ChatRole.System : 269role.Equals(global::Azure.AI.Inference.ChatRole.User) ? ChatRole.User : 270role.Equals(global::Azure.AI.Inference.ChatRole.Assistant) ? ChatRole.Assistant : 271role.Equals(global::Azure.AI.Inference.ChatRole.Tool) ? ChatRole.Tool : 431if (input.Role == ChatRole.System) 439else if (input.Role == ChatRole.Tool) 462else if (input.Role == ChatRole.User) 479else 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); 1002new(ChatRole.System, "You are a really nice friend."), 1003new(ChatRole.User, "hello!"), 1004new(ChatRole.Assistant, "hi, how are you?"), 1005new(ChatRole.User, "i'm good. how are you?"), 1006new(ChatRole.Assistant, [new FunctionCallContent("abcd123", "GetMood")]), 1007new(ChatRole.Tool, [new FunctionResultContent("abcd123", "happy")]), 1023Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1083Assert.NotNull(await client.GetResponseAsync([new(ChatRole.User, 1148new(ChatRole.Assistant, (string?)null), 1149new(ChatRole.User, "hello!"), 1158Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1274Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1370Assert.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)
272Role = ChatRole.User, 310Role = ChatRole.Assistant, 344Role = ChatRole.User, 357Role = ChatRole.Assistant, 393Role = ChatRole.User, 406Role = 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.Quality (17)
CoherenceEvaluator.cs (2)
118List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 198evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
CompletenessEvaluator.cs (2)
126List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 190evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
EquivalenceEvaluator.cs (2)
123List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 175evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
FluencyEvaluator.cs (2)
110List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 178evaluationInstructions.Add(new ChatMessage(ChatRole.User, evaluationPrompt));
GroundednessEvaluator.cs (2)
128List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 300evaluationInstructions.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)
264return [new ChatMessage(ChatRole.User, evaluationPrompt)];
RetrievalEvaluator.cs (2)
134List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)]; 221evaluationInstructions.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)
86messages: [new ChatMessage(ChatRole.User, "prompt")], 87modelResponse: new ChatResponse(new ChatMessage(ChatRole.Assistant, "response")), 177messages: [new ChatMessage(ChatRole.User, "prompt")], 178modelResponse: 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 (3)
ContentSafetyChatClient.cs (2)
77return new ChatResponse(new ChatMessage(ChatRole.Assistant, annotationResult)) 112yield return new ChatResponseUpdate(ChatRole.Assistant, annotationResult)
ContentSafetyEvaluator.cs (1)
142var payloadMessage = new ChatMessage(ChatRole.User, payload);
Microsoft.Extensions.AI.Evaluation.Tests (3)
ChatMessageUtilities.cs (3)
9=> new ChatMessage(ChatRole.System, message); 12=> new ChatMessage(ChatRole.User, message); 15=> new ChatMessage(ChatRole.Assistant, message);
Microsoft.Extensions.AI.Integration.Tests (26)
ChatClientIntegrationTests.cs (18)
62new(ChatRole.User, "Pick a city, any city"), 63new(ChatRole.Assistant, "Seattle"), 64new(ChatRole.User, "And another one"), 65new(ChatRole.Assistant, "Jakarta"), 66new(ChatRole.User, "What continent are they each in?"), 80new(ChatRole.User, []), 81new(ChatRole.User, "What is 1 + 2? Reply with a single number."), 94new(ChatRole.User, "Quote, word for word, Neil Armstrong's famous words.") 152List<ChatMessage> history = [new(ChatRole.User, "Explain in 100 words how AI works")]; 159Assert.Equal(ChatRole.Assistant, history[1].Role); 175new(ChatRole.User, 193new(ChatRole.User, 223new(ChatRole.User, "What is the current secret number?") 290new(ChatRole.User, "What is the secret number for id foo?") 322new(ChatRole.User, "What is the secret number for John aged 19?") 477var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 493var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 518var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000");
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)
47new ChatMessage(ChatRole.User, "Hi there! Can you tell me about golden retrievers?"), 48new 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."), 49new ChatMessage(ChatRole.User, "What kind of exercise do they need?"), 50new 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."), 51new ChatMessage(ChatRole.User, "Are they good with kids?"),
Microsoft.Extensions.AI.Ollama.Tests (11)
OllamaChatClientTests.cs (11)
124Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 194Assert.Equal(ChatRole.Assistant, updates[i].Role); 269new(ChatRole.User, "hello!"), 270new(ChatRole.Assistant, "hi, how are you?"), 271new(ChatRole.User, "i'm good. how are you?"), 293Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 382Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 467new(ChatRole.User, "How old is Alice?"), 468new(ChatRole.Assistant, [new FunctionCallContent("abcd1234", "GetPersonAge", new Dictionary<string, object?> { ["personName"] = "Alice" })]), 469new(ChatRole.Tool, [new FunctionResultContent("abcd1234", 42)]), 479Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
Microsoft.Extensions.AI.OpenAI (27)
OpenAIChatClient.cs (12)
115private static ChatRole ChatRoleDeveloper { get; } = new ChatRole("developer"); 125if (input.Role == ChatRole.System || 126input.Role == ChatRole.User || 131input.Role == ChatRole.System ? new SystemChatMessage(parts) { ParticipantName = input.AuthorName } : 135else if (input.Role == ChatRole.Tool) 158else if (input.Role == ChatRole.Assistant) 257ChatRole? streamedRole = null; 583private static ChatRole FromOpenAIChatRole(ChatMessageRole role) => 586ChatMessageRole.System => ChatRole.System, 587ChatMessageRole.User => ChatRole.User, 588ChatMessageRole.Assistant => ChatRole.Assistant, 589ChatMessageRole.Tool => ChatRole.Tool,
OpenAIResponseChatClient.cs (15)
30/// <summary>A <see cref="ChatRole"/> for "developer".</summary> 31private static readonly ChatRole _chatRoleDeveloper = new("developer"); 93Messages = [new(ChatRole.Assistant, [])], 161ChatRole? lastRole = null; 245lastRole = ChatRole.Assistant; 301/// <summary>Creates a <see cref="ChatRole"/> from a <see cref="MessageRole"/>.</summary> 302private static ChatRole ToChatRole(MessageRole? role) => 305MessageRole.System => ChatRole.System, 307MessageRole.User => ChatRole.User, 308_ => ChatRole.Assistant, 450if (input.Role == ChatRole.System || 456yield return input.Role == ChatRole.System ? 464if (input.Role == ChatRole.User) 470if (input.Role == ChatRole.Tool) 498if (input.Role == ChatRole.Assistant)
Microsoft.Extensions.AI.OpenAI.Tests (29)
OpenAIChatClientTests.cs (27)
170Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 258Assert.Equal(ChatRole.Assistant, updates[i].Role); 763new(ChatRole.System, "You are a really nice friend."), 764new(ChatRole.User, "hello!"), 765new(ChatRole.Assistant, "hi, how are you?"), 766new(ChatRole.User, "i'm good. how are you?"), 782Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 870new(ChatRole.System, [new TextContent("You are a really nice friend."), new TextContent("Really nice.")]), 871new(ChatRole.User, "hello!"), 880Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 966new(ChatRole.System, "You are a really nice friend."), 967new(ChatRole.User, "hello!"), 968new(ChatRole.Assistant, (string?)null), 969new(ChatRole.User, "i'm good. how are you?"), 978Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1091Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1175Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1285Assert.Equal(ChatRole.Assistant, updates[i].Role); 1408new(ChatRole.System, "You are a really nice friend."), 1409new(ChatRole.User, "hello!"), 1410new(ChatRole.Assistant, 1416new (ChatRole.Tool, 1421new(ChatRole.Assistant, "You are great."), 1422new(ChatRole.User, "Thanks!"), 1431Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 1528new(ChatRole.User, 1545Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
OpenAIResponseClientTests.cs (2)
163Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 272Assert.Equal(ChatRole.Assistant, updates[i].Role);
Microsoft.Extensions.AI.Tests (136)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (20)
23var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Animal))) 80var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 105var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options))) 128Assert.Equal(ChatRole.User, message.Role); 141var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 166var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options))); 200var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "This is not valid JSON")); 206var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 219var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "null")); 225var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 238var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, [new UriContent("https://example.com", "image/*")])); 244var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 258var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options))); 272var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 293var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(payload, JsonContext2.Default.Options))); 300var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 325var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, jso))); 367var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 391return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, resultDuplicatedJson))); 395var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
ChatCompletion\DistributedCachingChatClientTest.cs (22)
116return new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello")); 160var input = new ChatMessage(ChatRole.User, "abc"); 190return new ChatResponse(new ChatMessage(ChatRole.Assistant, "A good result")); 199var input = new ChatMessage(ChatRole.User, "abc"); 289new(ChatRole.Assistant, "This"), 290new(ChatRole.Assistant, " becomes one chunk"), 291new() { Role = ChatRole.Assistant, Contents = [new FunctionCallContent("callId1", "separator")] }, 292new(ChatRole.Assistant, "... and this"), 293new(ChatRole.Assistant, " becomes another"), 294new(ChatRole.Assistant, " one."), 344new() { Role = ChatRole.Assistant, Contents = [new TextContent("Hello")] }, 345new() { Role = ChatRole.Assistant, Contents = [new TextContent(" world, ")] }, 348Role = ChatRole.Assistant, 359Role = ChatRole.Assistant, 412new(ChatRole.Assistant, "Chunk 1"), 460() => new(ChatRole.Assistant, "Chunk 1"), 470var input = new ChatMessage(ChatRole.User, "abc"); 499[() => new(ChatRole.Assistant, "A good result")]); 508var input = new ChatMessage(ChatRole.User, "abc"); 535return new(new ChatMessage(ChatRole.Assistant, options!.AdditionalProperties!["someKey"]!.ToString())); 586return new(new ChatMessage(ChatRole.Assistant, options!.AdditionalProperties!["someKey"]!.ToString())); 674new ChatMessage(ChatRole.Assistant, [new TextContent("Hey")])));
ChatCompletion\FunctionInvokingChatClientTests.cs (78)
57new ChatMessage(ChatRole.User, "hello"), 58new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 59new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 60new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 61new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 62new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 63new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 64new ChatMessage(ChatRole.Assistant, "world"), 88new ChatMessage(ChatRole.User, "hello"), 89new ChatMessage(ChatRole.Assistant, 95new ChatMessage(ChatRole.Tool, 101new ChatMessage(ChatRole.Assistant, 106new ChatMessage(ChatRole.Tool, 111new ChatMessage(ChatRole.Assistant, "world"), 148new ChatMessage(ChatRole.User, "hello"), 149new ChatMessage(ChatRole.Assistant, 154new ChatMessage(ChatRole.Tool, 159new ChatMessage(ChatRole.Assistant, "done"), 192new ChatMessage(ChatRole.User, "hello"), 193new ChatMessage(ChatRole.Assistant, 198new ChatMessage(ChatRole.Tool, 203new ChatMessage(ChatRole.Assistant, "done"), 232new ChatMessage(ChatRole.User, "hello"), 233new ChatMessage(ChatRole.Assistant, [new FunctionCallContent($"callId0", "VoidReturn")]), 240plan.Add(new ChatMessage(ChatRole.Tool, [new FunctionResultContent($"callId{i}", result: "Success: Function completed.")])); 241plan.Add(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent($"callId{(i + 1)}", "VoidReturn")])); 281new ChatMessage(ChatRole.User, "hello"), 359new ChatMessage(ChatRole.User, "hello"), 376var assistantMessage = new ChatMessage(ChatRole.Assistant, []); 377var toolMessage = new ChatMessage(ChatRole.Tool, []); 406new ChatMessage(ChatRole.User, "hello"), 407new ChatMessage(ChatRole.Assistant, [new TextContent("extra"), new FunctionCallContent("callId1", "Func1"), new TextContent("stuff")]), 408new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 1")]), 409new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 410new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 411new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } }), new TextContent("more")]), 412new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 413new ChatMessage(ChatRole.Assistant, "world"), 443new ChatMessage(ChatRole.User, "hello"), 444new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 445new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: detailedErrors ? "Error: Function failed. Exception: Oh no!" : "Error: Function failed.")]), 446new ChatMessage(ChatRole.Assistant, "world"), 465new ChatMessage(ChatRole.User, "hello"), 466new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 467new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 468new ChatMessage(ChatRole.Assistant, "world"), 521new ChatMessage(ChatRole.User, "hello"), 522new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 523new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 524new ChatMessage(ChatRole.Assistant, "world"), 582new(ChatRole.User, "Hello"), 640new(ChatRole.User, "Hello"), 650new(ChatRole.Assistant, [new FunctionCallContent($"callId{chatContents.Count()}", "Func1")]) : 651new(ChatRole.Assistant, "The answer is 42."); 698new ChatMessage(ChatRole.User, "hello"), 699new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["i"] = 41 })]), 700new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 41")]), 701new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func1", new Dictionary<string, object?> { ["i"] = 42 })]), 702new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 42")]), 709new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "Func1", new Dictionary<string, object?> { ["i"] = 43 })]), 710new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 43")]), 711new ChatMessage(ChatRole.Assistant, "world"), 765var existingSearchResult = chatContents.SingleOrDefault(m => m.Role == ChatRole.Tool); 774var message = new ChatMessage(ChatRole.Assistant, resultContents); 782List<ChatMessage> messages = [new(ChatRole.User, "hello")]; 789Assert.Equal(ChatRole.Tool, lastMessage.Role); 817return new ChatResponse(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId-abc", "Func1")])) 825return new ChatResponse(new ChatMessage(ChatRole.Assistant, "done!")); 854new ChatMessage(ChatRole.User, "hello"), 855new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 856new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 857new ChatMessage(ChatRole.Assistant, "world"), 883new ChatMessage(ChatRole.User, "hello"), 884new ChatMessage(ChatRole.Assistant, [ 888new ChatMessage(ChatRole.Tool, 893new ChatMessage(ChatRole.Assistant, "world"), 957var message = new ChatMessage(ChatRole.Assistant, [.. plan[contents.Count()].Contents]) 1051ChatMessage 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\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")));
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)
CasualLMDatasetTest.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);