44 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"))
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (1)
55Assert.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)
37private static ChatRole ChatRoleDeveloper { get; } = new("developer"); 272new ChatRole(role.ToString());
Microsoft.Extensions.AI.Ollama (1)
OllamaChatClient.cs (1)
274return new ChatMessage(new(message.Role), contents);
Microsoft.Extensions.AI.OpenAI (2)
OpenAIModelMapper.ChatCompletion.cs (1)
542_ => new ChatRole(role.ToString()),
OpenAIModelMapper.ChatMessage.cs (1)
17public static ChatRole ChatRoleDeveloper { get; } = new ChatRole("developer");
Microsoft.Extensions.AI.Tests (4)
ChatCompletion\DistributedCachingChatClientTest.cs (4)
43new ChatMessage(new ChatRole("fakeRole"), "This is some content") 221Role = new ChatRole("fakeRole2"), 234Role = new ChatRole("fakeRole2"), 607new ChatMessage(new ChatRole("fakeRole"),
370 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)
68GetResponseAsync<T>(chatClient, new ChatMessage(ChatRole.User, chatMessage), options, useNativeJsonSchema, cancellationToken); 110GetResponseAsync<T>(chatClient, new ChatMessage(ChatRole.User, chatMessage), serializerOptions, options, useNativeJsonSchema, cancellationToken); 212promptAugmentation = new ChatMessage(ChatRole.User, $$"""
ChatCompletion\FunctionInvokingChatClient.cs (1)
654return [new(ChatRole.Tool, contents)];
ChatCompletion\OpenTelemetryChatClient.cs (5)
448if (message.Role == ChatRole.Assistant) 453else if (message.Role == ChatRole.Tool) 469Log(new(1, message.Role == ChatRole.System ? OpenTelemetryConsts.GenAI.System.Message : OpenTelemetryConsts.GenAI.User.Message), 472Role = message.Role != ChatRole.System && message.Role != ChatRole.User && !string.IsNullOrWhiteSpace(message.Role.Value) ? message.Role.Value : null,
Microsoft.Extensions.AI.Abstractions (36)
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)
20/// <remarks>The instance defaults to having a role of <see cref="ChatRole.User"/>.</remarks> 29public ChatMessage(ChatRole role, string? content) 37public ChatMessage(ChatRole role, IList<AIContent>? contents) 67public ChatRole Role { get; set; } = ChatRole.User;
ChatCompletion\ChatResponseExtensions.cs (2)
176message = new ChatMessage(ChatRole.Assistant, []); 193if (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 = "12345", CreatedAt = new DateTimeOffset(1, 2, 3, 4, 5, 6, TimeSpan.Zero), ModelId = "model123" },
ChatCompletion\ChatResponseUpdateTests.cs (5)
39update.Role = ChatRole.Assistant; 40Assert.Equal(ChatRole.Assistant, update.Role); 84Role = ChatRole.User, 113Role = ChatRole.Assistant, 152Assert.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)
37private static ChatRole ChatRoleDeveloper { get; } = new("developer"); 146ChatRole? streamedRole = default; 266private static ChatRole ToChatRole(global::Azure.AI.Inference.ChatRole role) => 267role.Equals(global::Azure.AI.Inference.ChatRole.System) ? ChatRole.System : 268role.Equals(global::Azure.AI.Inference.ChatRole.User) ? ChatRole.User : 269role.Equals(global::Azure.AI.Inference.ChatRole.Assistant) ? ChatRole.Assistant : 270role.Equals(global::Azure.AI.Inference.ChatRole.Tool) ? ChatRole.Tool : 419if (input.Role == ChatRole.System) 427else if (input.Role == ChatRole.Tool) 450else if (input.Role == ChatRole.User) 467else if (input.Role == ChatRole.Assistant)
Microsoft.Extensions.AI.AzureAIInference.Tests (19)
AzureAIInferenceChatClientTests.cs (19)
156[new ChatMessage(ChatRole.User, "hello".Select(c => (AIContent)new TextContent(c.ToString())).ToList())] : 157[new ChatMessage(ChatRole.User, "hello")]; 169Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 228[new ChatMessage(ChatRole.User, "hello".Select(c => (AIContent)new TextContent(c.ToString())).ToList())] : 229[new ChatMessage(ChatRole.User, "hello")]; 250Assert.Equal(ChatRole.Assistant, updates[i].Role); 535new(ChatRole.System, "You are a really nice friend."), 536new(ChatRole.User, "hello!"), 537new(ChatRole.Assistant, "hi, how are you?"), 538new(ChatRole.User, "i'm good. how are you?"), 539new(ChatRole.Assistant, [new FunctionCallContent("abcd123", "GetMood")]), 540new(ChatRole.Tool, [new FunctionResultContent("abcd123", "happy")]), 556Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 615Assert.NotNull(await client.GetResponseAsync([new(ChatRole.User, 680new(ChatRole.Assistant, (string?)null), 681new(ChatRole.User, "hello!"), 690Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 806Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 901Assert.Equal(ChatRole.Assistant, updates[i].Role);
Microsoft.Extensions.AI.Evaluation (3)
EvaluatorExtensions.cs (3)
51modelResponse: new ChatMessage(ChatRole.Assistant, modelResponse), 95userRequest: new ChatMessage(ChatRole.User, userRequest), 96modelResponse: new ChatMessage(ChatRole.Assistant, modelResponse),
Microsoft.Extensions.AI.Evaluation.Integration.Tests (2)
ChatMessageUtilities.cs (2)
9=> new ChatMessage(ChatRole.User, message); 12=> new ChatMessage(ChatRole.Assistant, message);
Microsoft.Extensions.AI.Evaluation.Quality (6)
ChatConversationEvaluator.cs (4)
157evaluationMessages.Add(new ChatMessage(ChatRole.System, SystemPrompt!)); 168evaluationMessages.Add(new ChatMessage(ChatRole.User, evaluationPrompt)); 383messages.LastOrDefault() is ChatMessage lastMessage && lastMessage.Role == ChatRole.User 396lastMessage.Role == ChatRole.User)
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)
38messages: [new ChatMessage(ChatRole.User, "prompt")], 39modelResponse: new ChatResponse(new ChatMessage(ChatRole.Assistant, "response")), 79messages: [new ChatMessage(ChatRole.User, "prompt")], 80modelResponse: 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.Integration.Tests (23)
ChatClientIntegrationTests.cs (15)
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, 205new(ChatRole.User, "What is the current secret number?") 343var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 359var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000"); 384var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000");
PromptBasedFunctionCallingChatClient.cs (3)
72message.Role = ChatRole.User; 79message.Role = ChatRole.Assistant; 173existingToolPrompt = new ChatMessage(ChatRole.System, (string?)null);
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)
123Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 192Assert.Equal(ChatRole.Assistant, updates[i].Role); 267new(ChatRole.User, "hello!"), 268new(ChatRole.Assistant, "hi, how are you?"), 269new(ChatRole.User, "i'm good. how are you?"), 291Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 380Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 465new(ChatRole.User, "How old is Alice?"), 466new(ChatRole.Assistant, [new FunctionCallContent("abcd1234", "GetPersonAge", new Dictionary<string, object?> { ["personName"] = "Alice" })]), 467new(ChatRole.Tool, [new FunctionResultContent("abcd1234", 42)]), 477Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
Microsoft.Extensions.AI.OpenAI (27)
OpenAIAssistantClient.cs (5)
121yield return new(mcu.Role == MessageRole.User ? ChatRole.User : ChatRole.Assistant, mcu.Text) 145Role = ChatRole.Assistant, 282if (chatMessage.Role == ChatRole.System || 315chatMessage.Role == ChatRole.Assistant ? MessageRole.Assistant : MessageRole.User,
OpenAIModelMapper.ChatCompletion.cs (11)
34ChatRole? role = null; 534private static ChatRole FromOpenAIChatRole(ChatMessageRole role) => 537ChatMessageRole.System => ChatRole.System, 538ChatMessageRole.User => ChatRole.User, 539ChatMessageRole.Assistant => ChatRole.Assistant, 540ChatMessageRole.Tool => ChatRole.Tool, 547private static ChatMessageRole? ToOpenAIChatRole(ChatRole? role) => 549role == ChatRole.System ? ChatMessageRole.System : 550role == ChatRole.User ? ChatMessageRole.User : 551role == ChatRole.Assistant ? ChatMessageRole.Assistant : 552role == ChatRole.Tool ? ChatMessageRole.Tool :
OpenAIModelMapper.ChatMessage.cs (10)
17public static ChatRole ChatRoleDeveloper { get; } = new ChatRole("developer"); 44Role = ChatRole.System, 62Role = ChatRole.User, 87Role = ChatRole.Tool, 96Role = ChatRole.Assistant, 132if (input.Role == ChatRole.System || 133input.Role == ChatRole.User || 138input.Role == ChatRole.System ? new SystemChatMessage(parts) { ParticipantName = input.AuthorName } : 142else if (input.Role == ChatRole.Tool) 165else if (input.Role == ChatRole.Assistant)
OpenAIModelMappers.StreamingChatCompletion.cs (1)
69ChatRole? streamedRole = null;
Microsoft.Extensions.AI.OpenAI.Tests (38)
OpenAIChatClientTests.cs (24)
200Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 289Assert.Equal(ChatRole.Assistant, updates[i].Role); 441new(ChatRole.System, "You are a really nice friend."), 442new(ChatRole.User, "hello!"), 443new(ChatRole.Assistant, "hi, how are you?"), 444new(ChatRole.User, "i'm good. how are you?"), 460Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 550new(ChatRole.System, [new TextContent("You are a really nice friend."), new TextContent("Really nice.")]), 551new(ChatRole.User, "hello!"), 560Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 649new(ChatRole.System, "You are a really nice friend."), 650new(ChatRole.User, "hello!"), 651new(ChatRole.Assistant, (string?)null), 652new(ChatRole.User, "i'm good. how are you?"), 661Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 776Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role); 889Assert.Equal(ChatRole.Assistant, updates[i].Role); 1014new(ChatRole.System, "You are a really nice friend."), 1015new(ChatRole.User, "hello!"), 1016new(ChatRole.Assistant, 1022new (ChatRole.Tool, 1027new(ChatRole.Assistant, "You are great."), 1028new(ChatRole.User, "Thanks!"), 1037Assert.Equal(ChatRole.Assistant, response.Messages.Single().Role);
OpenAISerializationTests.cs (14)
48Assert.Equal(ChatRole.User, message.Role); 81Assert.Equal(ChatRole.User, message.Role); 113Assert.Equal(ChatRole.User, message.Role); 186Assert.Equal(ChatRole.System, msg.Role); 198Assert.Equal(ChatRole.User, msg.Role); 210Assert.Equal(ChatRole.Assistant, msg.Role); 222Assert.Equal(ChatRole.User, msg.Role); 280Assert.Equal(ChatRole.System, msg.Role); 304Assert.Equal(ChatRole.User, msg.Role); 437Assert.Equal(ChatRole.Assistant, msg.Role); 449Assert.Equal(ChatRole.Tool, msg.Role); 467Role = ChatRole.Assistant, 608Role = ChatRole.Assistant, 690Role = ChatRole.Assistant,
Microsoft.Extensions.AI.Tests (117)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (21)
21var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult))) 44Assert.Equal(ChatRole.User, message.Role); 57var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 82var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult))); 114var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "This is not valid JSON")); 120var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 133var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "null")); 139var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 152var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, [new UriContent("https://example.com", "image/*")])); 158var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 172var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult))); 196var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 216var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult))); 230var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 251var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(payload))); 258var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 282var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, jso))); 292Assert.Equal(ChatRole.User, message.Role); 304var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 328return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, resultDuplicatedJson))); 332var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
ChatCompletion\DistributedCachingChatClientTest.cs (22)
113return new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello")); 157var input = new ChatMessage(ChatRole.User, "abc"); 187return new ChatResponse(new ChatMessage(ChatRole.Assistant, "A good result")); 196var input = new ChatMessage(ChatRole.User, "abc"); 283new(ChatRole.Assistant, "This"), 284new(ChatRole.Assistant, " becomes one chunk"), 285new() { Role = ChatRole.Assistant, Contents = [new FunctionCallContent("callId1", "separator")] }, 286new(ChatRole.Assistant, "... and this"), 287new(ChatRole.Assistant, " becomes another"), 288new(ChatRole.Assistant, " one."), 338new() { Role = ChatRole.Assistant, Contents = [new TextContent("Hello")] }, 339new() { Role = ChatRole.Assistant, Contents = [new TextContent(" world, ")] }, 342Role = ChatRole.Assistant, 353Role = ChatRole.Assistant, 404new(ChatRole.Assistant, "Chunk 1"), 452() => new(ChatRole.Assistant, "Chunk 1"), 462var input = new ChatMessage(ChatRole.User, "abc"); 491[() => new(ChatRole.Assistant, "A good result")]); 500var input = new ChatMessage(ChatRole.User, "abc"); 527return new(new ChatMessage(ChatRole.Assistant, options!.AdditionalProperties!["someKey"]!.ToString())); 578return new(new ChatMessage(ChatRole.Assistant, options!.AdditionalProperties!["someKey"]!.ToString())); 666new ChatMessage(ChatRole.Assistant, [new TextContent("Hey")])));
ChatCompletion\FunctionInvokingChatClientTests.cs (58)
56new ChatMessage(ChatRole.User, "hello"), 57new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 58new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 59new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 60new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 61new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 62new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 63new ChatMessage(ChatRole.Assistant, "world"), 87new ChatMessage(ChatRole.User, "hello"), 88new ChatMessage(ChatRole.Assistant, 94new ChatMessage(ChatRole.Tool, 100new ChatMessage(ChatRole.Assistant, 105new ChatMessage(ChatRole.Tool, 110new ChatMessage(ChatRole.Assistant, "world"), 140new ChatMessage(ChatRole.User, "hello"), 141new ChatMessage(ChatRole.Assistant, 146new ChatMessage(ChatRole.Tool, 151new ChatMessage(ChatRole.Assistant, "done"), 184new ChatMessage(ChatRole.User, "hello"), 185new ChatMessage(ChatRole.Assistant, 190new ChatMessage(ChatRole.Tool, 195new ChatMessage(ChatRole.Assistant, "done"), 218new ChatMessage(ChatRole.User, "hello"), 219new ChatMessage(ChatRole.Assistant, [new TextContent("extra"), new FunctionCallContent("callId1", "Func1"), new TextContent("stuff")]), 220new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 1")]), 221new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 222new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 223new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } }), new TextContent("more")]), 224new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 225new ChatMessage(ChatRole.Assistant, "world"), 255new ChatMessage(ChatRole.User, "hello"), 256new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 257new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: detailedErrors ? "Error: Function failed. Exception: Oh no!" : "Error: Function failed.")]), 258new ChatMessage(ChatRole.Assistant, "world"), 277new ChatMessage(ChatRole.User, "hello"), 278new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 279new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 280new ChatMessage(ChatRole.Assistant, "world"), 333new ChatMessage(ChatRole.User, "hello"), 334new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 335new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 336new ChatMessage(ChatRole.Assistant, "world"), 394new(ChatRole.User, "Hello"), 452new(ChatRole.User, "Hello"), 462new(ChatRole.Assistant, [new FunctionCallContent($"callId{chatContents.Count()}", "Func1")]) : 463new(ChatRole.Assistant, "The answer is 42."); 510new ChatMessage(ChatRole.User, "hello"), 511new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["i"] = 41 })]), 512new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 41")]), 513new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func1", new Dictionary<string, object?> { ["i"] = 42 })]), 514new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 42")]), 521new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "Func1", new Dictionary<string, object?> { ["i"] = 43 })]), 522new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 43")]), 523new ChatMessage(ChatRole.Assistant, "world"), 576return new ChatResponse(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId-abc", "Func1")])) 584return new ChatResponse(new ChatMessage(ChatRole.Assistant, "done!")); 634var message = new ChatMessage(ChatRole.Assistant, [.. plan[contents.Count()].Contents]); 725ChatMessage 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);