154 instantiations of ChatMessage
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 (3)
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, $$"""
Microsoft.Extensions.AI.Abstractions (4)
ChatCompletion\ChatClientExtensions.cs (2)
100return client.GetResponseAsync(new ChatMessage(ChatRole.User, chatMessage), options, cancellationToken); 140return client.GetStreamingResponseAsync(new ChatMessage(ChatRole.User, chatMessage), options, cancellationToken);
ChatCompletion\ChatMessage.cs (1)
51new()
ChatCompletion\ChatResponseExtensions.cs (1)
87list.Add(new ChatMessage(update.Role ?? ChatRole.Assistant, contentsList)
Microsoft.Extensions.AI.Abstractions.Tests (16)
ChatCompletion\ChatMessageTests.cs (13)
18ChatMessage message = new(); 36ChatMessage message = new(ChatRole.Assistant, text); 63message = new(); 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); 126ChatMessage message = new() 168Assert.IsType<List<AIContent>>(new ChatMessage().Contents); 174ChatMessage message = new(); 194ChatMessage message = new(); 215ChatMessage message = new(); 260var chatMessage = new ChatMessage(ChatRole.User, contents: items)
ChatCompletion\ChatResponseTests.cs (3)
87ChatResponse original = new(new ChatMessage(ChatRole.Assistant, "the message")) 122ChatResponse response = new(new ChatMessage(ChatRole.Assistant, $"This is a test.{Environment.NewLine}It's multiple lines.")); 130ChatResponse response = new(new ChatMessage(new ChatRole("customRole"), "Text") { MessageId = "someMessage" })
Microsoft.Extensions.AI.AzureAIInference (1)
AzureAIInferenceChatClient.cs (1)
95ChatMessage message = new(ToChatRole(response.Role), response.Content)
Microsoft.Extensions.AI.AzureAIInference.Tests (4)
AzureAIInferenceChatClientTests.cs (4)
145[new ChatMessage(ChatRole.User, "hello".Select(c => (AIContent)new TextContent(c.ToString())).ToList())] : 146[new ChatMessage(ChatRole.User, "hello")]; 218[new ChatMessage(ChatRole.User, "hello".Select(c => (AIContent)new TextContent(c.ToString())).ToList())] : 219[new ChatMessage(ChatRole.User, "hello")];
Microsoft.Extensions.AI.Evaluation (3)
EvaluatorExtensions.cs (3)
51modelResponse: new ChatMessage(ChatRole.Assistant, modelResponse), 95userRequest: new ChatMessage(ChatRole.User, userRequest), 96modelResponse: new ChatMessage(ChatRole.Assistant, modelResponse),
Microsoft.Extensions.AI.Evaluation.Integration.Tests (9)
SafetyEvaluatorTests.cs (6)
270new ChatMessage 308new ChatMessage 342new ChatMessage 355new ChatMessage 391new ChatMessage 404new ChatMessage
test\Libraries\Microsoft.Extensions.AI.Evaluation.Tests\ChatMessageUtilities.cs (3)
9=> new ChatMessage(ChatRole.System, message); 12=> new ChatMessage(ChatRole.User, message); 15=> new ChatMessage(ChatRole.Assistant, message);
Microsoft.Extensions.AI.Evaluation.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 (7)
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 (1)
29new ChatMessage
Microsoft.Extensions.AI.Evaluation.Safety (2)
ContentSafetyChatClient.cs (1)
77return new ChatResponse(new ChatMessage(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 (11)
ChatClientIntegrationTests.cs (3)
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 (1)
OllamaChatClient.cs (1)
283return new ChatMessage(new(message.Role), contents) { MessageId = responseId };
Microsoft.Extensions.AI.OpenAI (1)
OpenAIChatClient.cs (1)
377ChatMessage returnMessage = new()
Microsoft.Extensions.AI.Tests (55)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (12)
80var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 141var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 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") }; 244var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 272var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 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") }; 395var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
ChatCompletion\DistributedCachingChatClientTest.cs (9)
46new ChatMessage(new ChatRole("fakeRole"), "This is some content") 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"); 470var input = new ChatMessage(ChatRole.User, "abc"); 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()));
ChatCompletion\FunctionInvokingChatClientTests.cs (29)
57new ChatMessage(ChatRole.User, "hello"), 64new ChatMessage(ChatRole.Assistant, "world"), 88new ChatMessage(ChatRole.User, "hello"), 111new ChatMessage(ChatRole.Assistant, "world"), 148new ChatMessage(ChatRole.User, "hello"), 159new ChatMessage(ChatRole.Assistant, "done"), 192new ChatMessage(ChatRole.User, "hello"), 203new ChatMessage(ChatRole.Assistant, "done"), 232new ChatMessage(ChatRole.User, "hello"), 281new ChatMessage(ChatRole.User, "hello"), 359new ChatMessage(ChatRole.User, "hello"), 406new ChatMessage(ChatRole.User, "hello"), 413new ChatMessage(ChatRole.Assistant, "world"), 443new ChatMessage(ChatRole.User, "hello"), 446new ChatMessage(ChatRole.Assistant, "world"), 465new ChatMessage(ChatRole.User, "hello"), 468new ChatMessage(ChatRole.Assistant, "world"), 521new ChatMessage(ChatRole.User, "hello"), 524new ChatMessage(ChatRole.Assistant, "world"), 582new(ChatRole.User, "Hello"), 640new(ChatRole.User, "Hello"), 698new ChatMessage(ChatRole.User, "hello"), 711new ChatMessage(ChatRole.Assistant, "world"), 774var message = new ChatMessage(ChatRole.Assistant, resultContents); 825return new ChatResponse(new ChatMessage(ChatRole.Assistant, "done!")); 854new ChatMessage(ChatRole.User, "hello"), 857new ChatMessage(ChatRole.Assistant, "world"), 883new ChatMessage(ChatRole.User, "hello"), 893new ChatMessage(ChatRole.Assistant, "world"),
ChatCompletion\LoggingChatClientTests.cs (1)
59return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "blue whale")));
ChatCompletion\OpenTelemetryChatClientTests.cs (1)
41return new ChatResponse(new ChatMessage(ChatRole.Assistant, "The blue whale, I think."))
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 (1)
CausalLMPipelineChatClient.cs (1)
47var chatMessage = new ChatMessage(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.Tests (3)
LLaMA3_1Tests.cs (3)
134new ChatMessage(ChatRole.System, "You are a helpful AI assistant."), 135new ChatMessage(ChatRole.User, "Hello?"), 136new ChatMessage(ChatRole.Assistant, "World!"),
Microsoft.ML.GenAI.Samples (5)
Llama\SFT_Llama_3_2_1B.cs (3)
107new ChatMessage(ChatRole.System, "You are a helpful contoso assistant"), 108new ChatMessage(ChatRole.User, data.input), 111var assistantMessage = new ChatMessage(ChatRole.Assistant, data.output);
MEAI\Llama3_1.cs (1)
47var chatMessage = new ChatMessage(ChatRole.User, task);
MEAI\Phi3.cs (1)
37var chatMessage = new ChatMessage(ChatRole.User, task);
464 references to ChatMessage
Aspire.Azure.AI.OpenAI.Tests (1)
AspireAzureOpenAIClientBuilderChatClientExtensionsTests.cs (1)
220static Task<ChatResponse> TestMiddleware(IEnumerable<ChatMessage> list, ChatOptions? options, IChatClient client, CancellationToken token)
Aspire.OpenAI.Tests (1)
AspireOpenAIClientBuilderChatClientExtensionsTests.cs (1)
268private static Task<ChatResponse> TestMiddleware(IEnumerable<ChatMessage> list, ChatOptions? options, IChatClient client, CancellationToken token)
Microsoft.Extensions.AI (65)
ChatCompletion\AnonymousDelegatingChatClient.cs (11)
23private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatResponse>>? _getResponseFunc; 31private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? _getStreamingResponseFunc; 34private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task>, CancellationToken, Task>? _sharedFunc; 53Func<IEnumerable<ChatMessage>, ChatOptions?, Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task>, CancellationToken, Task> sharedFunc) 79Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatResponse>>? getResponseFunc, 80Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? getStreamingResponseFunc) 91IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 100IEnumerable<ChatMessage> messages, ChatOptions? options, CancellationToken cancellationToken) 130IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
ChatCompletion\CachingChatClient.cs (5)
50IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 60IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 78IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 88IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 153protected abstract string GetCacheKey(IEnumerable<ChatMessage> messages, ChatOptions? options, params ReadOnlySpan<object?> additionalValues);
ChatCompletion\ChatClientBuilder.cs (4)
108public ChatClientBuilder Use(Func<IEnumerable<ChatMessage>, ChatOptions?, Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task>, CancellationToken, Task> sharedFunc) 143Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatResponse>>? getResponseFunc, 144Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? getStreamingResponseFunc)
ChatCompletion\ChatClientStructuredOutputExtensions.cs (5)
45IEnumerable<ChatMessage> messages, 84ChatMessage chatMessage, 125ChatMessage chatMessage, 147IEnumerable<ChatMessage> messages, 188ChatMessage? promptAugmentation = null;
ChatCompletion\ConfigureOptionsChatClient.cs (2)
38IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) => 43IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default)
ChatCompletion\DistributedCachingChatClient.cs (4)
24/// the object models used by <see cref="ChatMessage"/>, <see cref="ChatOptions"/>, <see cref="ChatResponse"/>, <see cref="ChatResponseUpdate"/>, 26/// <see cref="ChatMessage.RawRepresentation"/> will be ignored, and <see cref="object"/> values in <see cref="ChatMessage.AdditionalProperties"/> 123protected override string GetCacheKey(IEnumerable<ChatMessage> messages, ChatOptions? options, params ReadOnlySpan<object?> additionalValues)
ChatCompletion\DistributedCachingChatClientBuilderExtensions.cs (3)
29/// the object models used by <see cref="ChatMessage"/>, <see cref="ChatOptions"/>, <see cref="ChatResponse"/>, <see cref="ChatResponseUpdate"/>, 31/// <see cref="ChatMessage.RawRepresentation"/> will be ignored, and <see cref="object"/> values in <see cref="ChatMessage.AdditionalProperties"/>
ChatCompletion\FunctionInvocationContext.cs (3)
21private IList<ChatMessage> _messages = Array.Empty<ChatMessage>(); 59public IList<ChatMessage> Messages
ChatCompletion\FunctionInvokingChatClient.cs (22)
210IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 220List<ChatMessage> originalMessages = [.. messages]; 223List<ChatMessage>? augmentedHistory = null; // the actual history of messages sent on turns other than the first 225List<ChatMessage>? responseMessages = null; // tracked list of messages, across multiple turns, to be used for the final response 305IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 316List<ChatMessage> originalMessages = [.. messages]; 319List<ChatMessage>? augmentedHistory = null; // the actual history of messages sent on turns other than the first 321List<ChatMessage>? responseMessages = null; // tracked list of messages, across multiple turns, to be used in fallback cases to reconstitute history 388foreach (var message in modeAndMessages.MessagesAdded) 443IEnumerable<ChatMessage> originalMessages, 444ref IEnumerable<ChatMessage> messages, 445[NotNull] ref List<ChatMessage>? augmentedHistory, 447List<ChatMessage> allTurnsResponseMessages, 499IList<ChatMessage> messages, [NotNullWhen(true)] ref List<FunctionCallContent>? functionCalls) 559private async Task<(bool ShouldTerminate, int NewConsecutiveErrorCount, IList<ChatMessage> MessagesAdded)> ProcessFunctionCallsAsync( 560List<ChatMessage> messages, ChatOptions options, List<FunctionCallContent> functionCallContents, int iteration, int consecutiveErrorCount, 577IList<ChatMessage> addedMessages = CreateResponseMessages([result]); 622IList<ChatMessage> addedMessages = CreateResponseMessages(results.ToArray()); 638private void UpdateConsecutiveErrorCountOrThrow(IList<ChatMessage> added, ref int consecutiveErrorCount) 670private void ThrowIfNoFunctionResultsAdded(IList<ChatMessage>? messages) 689List<ChatMessage> messages, ChatOptions options, List<FunctionCallContent> callContents, 745protected virtual IList<ChatMessage> CreateResponseMessages(
ChatCompletion\LoggingChatClient.cs (2)
55IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 101IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default)
ChatCompletion\OpenTelemetryChatClient.cs (4)
133IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 164IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 449private void LogChatMessages(IEnumerable<ChatMessage> messages) 456foreach (ChatMessage message in messages)
Microsoft.Extensions.AI.Abstractions (46)
ChatCompletion\ChatClientExtensions.cs (2)
113ChatMessage chatMessage, 153ChatMessage chatMessage,
ChatCompletion\ChatMessage.cs (7)
20/// <summary>Initializes a new instance of the <see cref="ChatMessage"/> class.</summary> 27/// <summary>Initializes a new instance of the <see cref="ChatMessage"/> class.</summary> 35/// <summary>Initializes a new instance of the <see cref="ChatMessage"/> class.</summary> 44/// <summary>Clones the <see cref="ChatMessage"/> to a new <see cref="ChatMessage"/> instance.</summary> 50public ChatMessage Clone() => 91/// If a <see cref="ChatMessage"/> is created to represent some underlying object from another object
ChatCompletion\ChatOptions.cs (1)
137/// like the enumerable of <see cref="ChatMessage"/>s, therefore, its **strongly recommended** to not return shared instances
ChatCompletion\ChatResponse.cs (8)
23private IList<ChatMessage>? _messages; 33public ChatResponse(ChatMessage message) 42public ChatResponse(IList<ChatMessage>? messages) 49public IList<ChatMessage> Messages 51get => _messages ??= new List<ChatMessage>(1); 57/// This property concatenates the <see cref="ChatMessage.Text"/> of all <see cref="ChatMessage"/> 149ChatMessage message = _messages![i];
ChatCompletion\ChatResponseExtensions.cs (16)
27public static void AddMessages(this IList<ChatMessage> list, ChatResponse response) 32if (list is List<ChatMessage> listConcrete) 38foreach (var message in response.Messages) 45/// <summary>Converts the <paramref name="updates"/> into <see cref="ChatMessage"/> instances and adds them to <paramref name="list"/>.</summary> 51/// As part of combining <paramref name="updates"/> into a series of <see cref="ChatMessage"/> instances, the 56public static void AddMessages(this IList<ChatMessage> list, IEnumerable<ChatResponseUpdate> updates) 69/// <summary>Converts the <paramref name="update"/> into a <see cref="ChatMessage"/> instance and adds it to <paramref name="list"/>.</summary> 77/// no <see cref="ChatMessage"/> will be added to the <paramref name="list"/>. 79public static void AddMessages(this IList<ChatMessage> list, ChatResponseUpdate update, Func<AIContent, bool>? filter = null) 96/// <summary>Converts the <paramref name="updates"/> into <see cref="ChatMessage"/> instances and adds them to <paramref name="list"/>.</summary> 104/// As part of combining <paramref name="updates"/> into a series of <see cref="ChatMessage"/> instances, tne 110this IList<ChatMessage> list, IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken = default) 118IList<ChatMessage> list, IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken) => 128/// <see cref="ChatMessage"/> instances. This includes using <see cref="ChatResponseUpdate.MessageId"/> to determine 156/// <see cref="ChatMessage"/> instances. This includes using <see cref="ChatResponseUpdate.MessageId"/> to determine 256ChatMessage message;
ChatCompletion\ChatResponseUpdate.cs (2)
19/// <see cref="ChatResponse"/> and <see cref="ChatMessage"/> in streaming output. 113/// groups <see cref="ChatResponseUpdate"/> instances into <see cref="ChatMessage"/> instances.
ChatCompletion\DelegatingChatClient.cs (2)
43IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) => 48IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) =>
ChatCompletion\IChatClient.cs (2)
38IEnumerable<ChatMessage> messages, 50IEnumerable<ChatMessage> messages,
Contents\AIContentExtensions.cs (3)
62/// <summary>Concatenates the <see cref="ChatMessage.Text"/> of all <see cref="ChatMessage"/> instances in the list.</summary> 64public static string ConcatText(this IList<ChatMessage> messages)
Utilities\AIJsonUtilities.Defaults.cs (3)
73[JsonSerializable(typeof(IList<ChatMessage>))] 74[JsonSerializable(typeof(IEnumerable<ChatMessage>))] 75[JsonSerializable(typeof(ChatMessage[]))]
Microsoft.Extensions.AI.Abstractions.Tests (29)
ChatCompletion\ChatClientExtensionsTests.cs (4)
82_ = ChatClientExtensions.GetResponseAsync(new TestChatClient(), (ChatMessage)null!); 96_ = ChatClientExtensions.GetStreamingResponseAsync(new TestChatClient(), (ChatMessage)null!); 111ChatMessage m = Assert.Single(messages); 138ChatMessage m = Assert.Single(messages);
ChatCompletion\ChatMessageTests.cs (12)
18ChatMessage message = new(); 36ChatMessage message = new(ChatRole.Assistant, text); 61ChatMessage message; 92ChatMessage message = new(ChatRole.System, content); 126ChatMessage message = new() 142ChatMessage message = new(ChatRole.User, 174ChatMessage message = new(); 194ChatMessage message = new(); 215ChatMessage message = new(); 260var chatMessage = new ChatMessage(ChatRole.User, contents: items) 268var deserializedMessage = JsonSerializer.Deserialize<ChatMessage>(chatMessageJson, TestJsonSerializerContext.Default.Options)!;
ChatCompletion\ChatResponseTests.cs (3)
23response = new((IList<ChatMessage>?)null); 27Assert.Throws<ArgumentNullException>("message", () => new ChatResponse((ChatMessage)null!)); 37List<ChatMessage> messages = [];
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (3)
54ChatMessage message = response.Messages.Single(); 135ChatMessage message = response.Messages.Single(); 174ChatMessage message = Assert.Single(response.Messages);
ChatCompletion\DelegatingChatClientTests.cs (2)
24var expectedChatContents = new List<ChatMessage>(); 56var expectedChatContents = new List<ChatMessage>();
TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; } 22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; } 29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Utilities\AIJsonUtilitiesTests.cs (1)
490Assert.Throws<ArgumentException>("contentType", () => options.AddAIContentType(typeof(ChatMessage), "discriminator"));
Microsoft.Extensions.AI.AzureAIInference (7)
AzureAIInferenceChatClient.cs (7)
85IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 95ChatMessage message = new(ToChatRole(response.Role), response.Content) 140IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 284private ChatCompletionsOptions CreateAzureAIOptions(IEnumerable<ChatMessage> chatContents, ChatOptions? options) => 292private ChatCompletionsOptions ToAzureAIOptions(IEnumerable<ChatMessage> chatContents, ChatOptions? options) 424private static IEnumerable<ChatRequestMessage> ToAzureAIInferenceChatMessages(IEnumerable<ChatMessage> inputs) 429foreach (ChatMessage input in inputs)
Microsoft.Extensions.AI.AzureAIInference.Tests (4)
AzureAIInferenceChatClientTests.cs (4)
144List<ChatMessage> messages = multiContent ? 217List<ChatMessage> messages = multiContent ? 1000List<ChatMessage> messages = 1146List<ChatMessage> messages =
Microsoft.Extensions.AI.Evaluation (49)
ChatMessageExtensions.cs (38)
13/// Extension methods for <see cref="ChatMessage"/>. 19/// single <see cref="ChatMessage"/> representing the last <paramref name="userRequest"/> in this conversation. 22/// A collection of <see cref="ChatMessage"/>s representing an LLM chat conversation history. 25/// Returns the last <see cref="ChatMessage"/> in the supplied collection of <paramref name="messages"/> if this 26/// last <see cref="ChatMessage"/> has <see cref="ChatMessage.Role"/> set to <see cref="ChatRole.User"/>; 30/// <see langword="true"/> if the last <see cref="ChatMessage"/> in the supplied collection of 31/// <paramref name="messages"/> has <see cref="ChatMessage.Role"/> set to <see cref="ChatRole.User"/>; 35this IEnumerable<ChatMessage> messages, 36[NotNullWhen(true)] out ChatMessage? userRequest) 39messages.LastOrDefault() is ChatMessage lastMessage && lastMessage.Role == ChatRole.User 48/// single <see cref="ChatMessage"/> representing the last <paramref name="userRequest"/> in this conversation and 52/// A collection of <see cref="ChatMessage"/>s representing an LLM chat conversation history. 55/// Returns the last <see cref="ChatMessage"/> in the supplied collection of <paramref name="messages"/> if this 56/// last <see cref="ChatMessage"/> has <see cref="ChatMessage.Role"/> set to <see cref="ChatRole.User"/>; 60/// Returns the remaining <see cref="ChatMessage"/>s in the conversation history excluding 64/// <see langword="true"/> if the last <see cref="ChatMessage"/> in the supplied collection of 65/// <paramref name="messages"/> has <see cref="ChatMessage.Role"/> set to <see cref="ChatRole.User"/>; 69this IEnumerable<ChatMessage> messages, 70[NotNullWhen(true)] out ChatMessage? userRequest, 71out IReadOnlyList<ChatMessage> remainingMessages) 73List<ChatMessage> conversationHistory = [.. messages]; 77conversationHistory[lastMessageIndex] is ChatMessage lastMessage && 99/// This function only considers the <see cref="ChatMessage.Text"/> and ignores any <see cref="AIContent"/>s 100/// (present within the <see cref="ChatMessage.Contents"/> of the <paramref name="message"/>) that are not 105/// The returned string is prefixed with the <see cref="ChatMessage.Role"/> and 106/// <see cref="ChatMessage.AuthorName"/> (if available). The returned string also always has a new line character 110/// <param name="message">The <see cref="ChatMessage"/> that is to be rendered.</param> 112public static string RenderText(this ChatMessage message) 138/// This function only considers the <see cref="ChatMessage.Text"/> and ignores any <see cref="AIContent"/>s 139/// (present within the <see cref="ChatMessage.Contents"/> of the <paramref name="messages"/>) that are not 145/// The rendered <paramref name="messages"/> are each prefixed with the <see cref="ChatMessage.Role"/> and 146/// <see cref="ChatMessage.AuthorName"/> (if available) in the returned string. The rendered 147/// <see cref="ChatMessage"/>s are also always separated by new line characters in the returned string. 150/// <param name="messages">The <see cref="ChatMessage"/>s that are to be rendered.</param> 152public static string RenderText(this IEnumerable<ChatMessage> messages) 157foreach (ChatMessage message in messages)
ChatResponseExtensions.cs (3)
21/// (present within the <see cref="ChatMessage.Contents"/> of the <see cref="ChatResponse.Messages"/>) that are not 27/// The rendered <see cref="ChatResponse.Messages"/> are each prefixed with the <see cref="ChatMessage.Role"/> and 28/// <see cref="ChatMessage.AuthorName"/> (if available) in the returned string. The rendered
CompositeEvaluator.cs (2)
103IEnumerable<ChatMessage> messages, 128IEnumerable<ChatMessage> messages,
EvaluationContext.cs (1)
23/// <see cref="IEvaluator.EvaluateAsync(IEnumerable{ChatMessage}, ChatResponse, ChatConfiguration?, IEnumerable{EvaluationContext}?, CancellationToken)"/>.
EvaluatorExtensions.cs (4)
131ChatMessage modelResponse, 224ChatMessage userRequest, 225ChatMessage modelResponse, 273ChatMessage userRequest,
IEvaluator.cs (1)
58IEnumerable<ChatMessage> messages,
Microsoft.Extensions.AI.Evaluation.Integration.Tests (33)
QualityEvaluatorTests.cs (4)
91var messages = new List<ChatMessage>(); 131var messages = new List<ChatMessage>(); 168var messages = new List<ChatMessage>(); 203var messages = new List<ChatMessage>();
ResultsTests.cs (1)
21private static readonly ChatMessage _testResponse = "Test response".ToAssistantMessage();
SafetyEvaluatorTests.cs (24)
134var messages = new List<ChatMessage>(); 196var messages = new List<ChatMessage>(); 269ChatMessage question = 278ChatMessage answer = "The image depicts a logo for Microsoft Corporation.".ToAssistantMessage(); 305ChatMessage question = "Can you show me an image pertaining to DotNet?".ToUserMessage(); 307ChatMessage answer = 341ChatMessage question1 = 350ChatMessage answer1 = "The image depicts a logo for DotNet.".ToAssistantMessage(); 352ChatMessage question2 = "Can you show me an image pertaining to Microsoft Copilot?".ToUserMessage(); 354ChatMessage answer2 = 363ChatMessage[] messages = [question1, answer1, question2]; 390ChatMessage question1 = 399ChatMessage answer1 = "The image depicts a logo for Microsoft Corporation.".ToAssistantMessage(); 401ChatMessage question2 = "Can you show me an image pertaining to Microsoft Copilot?".ToUserMessage(); 403ChatMessage answer2 = 412ChatMessage question3 = 417ChatMessage answer3 = 425ChatMessage[] messages = [question1, answer1, question2, answer2, question3]; 481ChatMessage context1 = 486ChatMessage completion1 = 491ChatMessage context2 = 496ChatMessage completion2 = 501ChatMessage[] messages = [context1, completion1, context2]; 524var messages = new List<ChatMessage>();
test\Libraries\Microsoft.Extensions.AI.Evaluation.Tests\ChatMessageUtilities.cs (3)
8internal static ChatMessage ToSystemMessage(this string message) 11internal static ChatMessage ToUserMessage(this string message) 14internal static ChatMessage ToAssistantMessage(this string message)
TestEvaluator.cs (1)
27IEnumerable<ChatMessage> messages,
Microsoft.Extensions.AI.Evaluation.Quality (46)
CoherenceEvaluator.cs (6)
68IEnumerable<ChatMessage> messages, 88_ = messages.TryGetUserRequest(out ChatMessage? userRequest); 90List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(userRequest, modelResponse); 104private static List<ChatMessage> GetEvaluationInstructions(ChatMessage? userRequest, ChatResponse modelResponse) 118List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
CompletenessEvaluator.cs (4)
65IEnumerable<ChatMessage> messages, 95List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(modelResponse, context); 110private static List<ChatMessage> GetEvaluationInstructions( 126List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
EquivalenceEvaluator.cs (6)
64IEnumerable<ChatMessage> messages, 94_ = messages.TryGetUserRequest(out ChatMessage? userRequest); 96List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(userRequest, modelResponse, context); 111private static List<ChatMessage> GetEvaluationInstructions( 112ChatMessage? userRequest, 123List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
FluencyEvaluator.cs (4)
62IEnumerable<ChatMessage> messages, 82List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(modelResponse); 96private static List<ChatMessage> GetEvaluationInstructions(ChatResponse modelResponse) 110List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
GroundednessEvaluator.cs (6)
63IEnumerable<ChatMessage> messages, 93_ = messages.TryGetUserRequest(out ChatMessage? userRequest); 95List<ChatMessage> evaluationInstructions = 111private static List<ChatMessage> GetEvaluationInstructions( 112ChatMessage? userRequest, 128List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
RelevanceEvaluator.cs (6)
66IEnumerable<ChatMessage> messages, 78if (!messages.TryGetUserRequest(out ChatMessage? userRequest) || 96List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(userRequest, modelResponse); 110private static List<ChatMessage> GetEvaluationInstructions(ChatMessage userRequest, ChatResponse modelResponse) 124List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
RelevanceTruthAndCompletenessEvaluator.cs (7)
79IEnumerable<ChatMessage> messages, 94out ChatMessage? userRequest, 95out IReadOnlyList<ChatMessage> conversationHistory) || 113List<ChatMessage> evaluationInstructions = 133private static List<ChatMessage> GetEvaluationInstructions( 134ChatMessage userRequest, 136IEnumerable<ChatMessage> conversationHistory)
RetrievalEvaluator.cs (6)
72IEnumerable<ChatMessage> messages, 83if (!messages.TryGetUserRequest(out ChatMessage? userRequest) || 103List<ChatMessage> evaluationInstructions = GetEvaluationInstructions(userRequest, context); 118private static List<ChatMessage> GetEvaluationInstructions( 119ChatMessage userRequest, 134List<ChatMessage> evaluationInstructions = [new ChatMessage(ChatRole.System, SystemPrompt)];
Utilities\JsonOutputFixer.cs (1)
65var messages = new List<ChatMessage>
Microsoft.Extensions.AI.Evaluation.Reporting (13)
ResponseCachingChatClient.cs (1)
128protected override string GetCacheKey(IEnumerable<ChatMessage> messages, ChatOptions? options, params ReadOnlySpan<object?> additionalValues)
ScenarioRun.cs (1)
146IEnumerable<ChatMessage> messages,
ScenarioRunExtensions.cs (4)
86ChatMessage modelResponse, 148ChatMessage userRequest, 149ChatMessage modelResponse, 182ChatMessage userRequest,
ScenarioRunResult.cs (5)
20/// <see cref="ScenarioRun.EvaluateAsync(IEnumerable{ChatMessage}, ChatResponse, IEnumerable{Microsoft.Extensions.AI.Evaluation.EvaluationContext}?, CancellationToken)"/> 56IList<ChatMessage> messages, 91IEnumerable<ChatMessage> messages, 138public IList<ChatMessage> Messages { get; set; } = messages; 152/// <see cref="ScenarioRun.EvaluateAsync(IEnumerable{ChatMessage}, ChatResponse, IEnumerable{Microsoft.Extensions.AI.Evaluation.EvaluationContext}?, CancellationToken)"/>
SimpleChatClient.cs (2)
23IEnumerable<ChatMessage> messages, 52IEnumerable<ChatMessage> messages,
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (5)
ScenarioRunResultTests.cs (4)
291private class ChatMessageComparer : IEqualityComparer<ChatMessage> 295public bool Equals(ChatMessage? x, ChatMessage? y) 298public int GetHashCode(ChatMessage obj)
SerializationChainingTests.cs (1)
27Messages = new List<ChatMessage>
Microsoft.Extensions.AI.Evaluation.Safety (14)
ChatMessageExtensions.cs (2)
11internal static bool ContainsImageWithSupportedFormat(this ChatMessage message) 14internal static bool ContainsImageWithSupportedFormat(this IEnumerable<ChatMessage> conversation)
ContentSafetyChatClient.cs (3)
61IEnumerable<ChatMessage> messages, 96IEnumerable<ChatMessage> messages, 155private static void ValidateSingleMessage(IEnumerable<ChatMessage> messages)
ContentSafetyEvaluator.cs (4)
44IEnumerable<ChatMessage> messages, 90IEnumerable<ChatMessage> messages, 109IEnumerable<ChatMessage> conversation = [.. messages, .. modelResponse.Messages]; 142var payloadMessage = new ChatMessage(ChatRole.User, payload);
ContentSafetyServicePayloadUtilities.cs (5)
17IEnumerable<ChatMessage> conversation, 80IEnumerable<ChatMessage> conversation, 92List<Dictionary<string, ChatMessage>> turns; 112if (turn.TryGetValue("question", out ChatMessage? question)) 117if (turn.TryGetValue("answer", out ChatMessage? answer))
Microsoft.Extensions.AI.Evaluation.Tests (3)
ChatMessageUtilities.cs (3)
8internal static ChatMessage ToSystemMessage(this string message) 11internal static ChatMessage ToUserMessage(this string message) 14internal static ChatMessage ToAssistantMessage(this string message)
Microsoft.Extensions.AI.Integration.Tests (28)
CallCountingChatClient.cs (2)
20IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 27IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
ChatClientIntegrationTests.cs (8)
92IList<ChatMessage> chatHistory = 152List<ChatMessage> history = [new(ChatRole.User, "Explain in 100 words how AI works")]; 221List<ChatMessage> messages = 288List<ChatMessage> messages = 320List<ChatMessage> messages = 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 (5)
43IEnumerable<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default) 49List<ChatMessage> chatMessagesList = [CreateToolPrompt(options.Tools), .. chatMessages.Select(m => m.Clone())]; 66var message = chatMessagesList[messageIndex]; 138IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 167private static ChatMessage CreateToolPrompt(IList<AITool> tools)
ReducingChatClientTests.cs (9)
45List<ChatMessage> messages = 76IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 85IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 103Task<IList<ChatMessage>> ReduceAsync(IEnumerable<ChatMessage> messages, CancellationToken cancellationToken); 130public async Task<IList<ChatMessage>> ReduceAsync( 131IEnumerable<ChatMessage> messages, CancellationToken cancellationToken) 135List<ChatMessage> list = messages.ToList(); 155private int CountTokens(ChatMessage message)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; } 22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; } 29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.Extensions.AI.Ollama (5)
OllamaChatClient.cs (5)
89IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 127IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 259private static ChatMessage FromOllamaMessage(OllamaChatResponseMessage message, string responseId) 308private OllamaChatRequest ToOllamaChatRequest(IEnumerable<ChatMessage> messages, ChatOptions? options, bool stream) 398private IEnumerable<OllamaChatRequestMessage> ToOllamaChatRequestMessages(ChatMessage content)
Microsoft.Extensions.AI.Ollama.Tests (2)
OllamaChatClientIntegrationTests.cs (1)
109IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
OllamaChatClientTests.cs (1)
267List<ChatMessage> messages =
Microsoft.Extensions.AI.OpenAI (11)
OpenAIChatClient.cs (5)
81IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 96IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 118private static IEnumerable<OpenAI.Chat.ChatMessage> ToOpenAIChatMessages(IEnumerable<ChatMessage> inputs, JsonSerializerOptions options) 123foreach (ChatMessage input in inputs) 377ChatMessage returnMessage = new()
OpenAIResponseChatClient.cs (6)
75IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 110ChatMessage message = response.Messages[0]; 148IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) 444/// <summary>Convert a sequence of <see cref="ChatMessage"/>s to <see cref="ResponseItem"/>s.</summary> 446IEnumerable<ChatMessage> inputs) 448foreach (ChatMessage input in inputs)
Microsoft.Extensions.AI.OpenAI.Tests (4)
OpenAIChatClientTests.cs (4)
761List<ChatMessage> messages = 868List<ChatMessage> messages = 964List<ChatMessage> messages = 1406List<ChatMessage> messages =
Microsoft.Extensions.AI.Tests (76)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (9)
80var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 141var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 206var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 225var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 244var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 272var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 300var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 367var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") }; 395var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
ChatCompletion\ConfigureOptionsChatClientTests.cs (2)
76var response = await client.GetResponseAsync(Array.Empty<ChatMessage>(), providedOptions, cts.Token); 80await using var e = client.GetStreamingResponseAsync(Array.Empty<ChatMessage>(), providedOptions, cts.Token).GetAsyncEnumerator();
ChatCompletion\DistributedCachingChatClientTest.cs (7)
160var input = new ChatMessage(ChatRole.User, "abc"); 199var input = new ChatMessage(ChatRole.User, "abc"); 470var input = new ChatMessage(ChatRole.User, "abc"); 508var input = new ChatMessage(ChatRole.User, "abc"); 735ChatMessage expectedMessage = expected.Messages.Last(); 736ChatMessage actualMessage = actual.Messages.Last(); 810protected override string GetCacheKey(IEnumerable<ChatMessage> messages, ChatOptions? options, params ReadOnlySpan<object?> additionalValues)
ChatCompletion\FunctionInvocationContextTests.cs (1)
47List<ChatMessage> messages = [];
ChatCompletion\FunctionInvokingChatClientTests.cs (44)
55List<ChatMessage> plan = 86List<ChatMessage> plan = 146List<ChatMessage> plan = 190List<ChatMessage> plan = 230List<ChatMessage> plan = 279List<ChatMessage> plan = 357List<ChatMessage> plan = 374private static IEnumerable<ChatMessage> CreateFunctionCallIterationPlan(ref int callIndex, params bool[] shouldThrow) 376var assistantMessage = new ChatMessage(ChatRole.Assistant, []); 377var toolMessage = new ChatMessage(ChatRole.Tool, []); 404List<ChatMessage> plan = 421static void Validate(List<ChatMessage> finalChat) 441List<ChatMessage> plan = 463List<ChatMessage> plan = 519List<ChatMessage> plan = 580var messages = new List<ChatMessage> 638var messages = new List<ChatMessage> 649ChatMessage message = chatContents.Count() is 1 or 3 ? 696List<ChatMessage> planBeforeTermination = 706List<ChatMessage> plan = 721async Task InvokeAsync(Func<Task<List<ChatMessage>>> work) 765var existingSearchResult = chatContents.SingleOrDefault(m => m.Role == ChatRole.Tool); 774var message = new ChatMessage(ChatRole.Assistant, resultContents); 782List<ChatMessage> messages = [new(ChatRole.User, "hello")]; 788var lastMessage = messages.Last(); 809Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, ChatResponse> callback = 852List<ChatMessage> plan = 881List<ChatMessage> plan = 931private static async Task<List<ChatMessage>> InvokeAndAssertAsync( 933List<ChatMessage> plan, 934List<ChatMessage>? expected = null, 943List<ChatMessage> chat = [plan[0]]; 957var message = new ChatMessage(ChatRole.Assistant, [.. plan[contents.Count()].Contents]) 967var result = await service.GetResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(chat), options, cts.Token); 976var expectedMessage = expected[i]; 977var chatMessage = chat[i]; 1031private static async Task<List<ChatMessage>> InvokeAndAssertStreamingAsync( 1033List<ChatMessage> plan, 1034List<ChatMessage>? expected = null, 1043List<ChatMessage> chat = [plan[0]]; 1051ChatMessage message = new(ChatRole.Assistant, [.. plan[contents.Count()].Contents]) 1061var result = await service.GetStreamingResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(chat), options, cts.Token).ToChatResponseAsync(); 1070var expectedMessage = expected[i]; 1071var chatMessage = chat[i];
ChatCompletion\OpenTelemetryChatClientTests.cs (2)
65IEnumerable<ChatMessage> messages, ChatOptions? options, [EnumeratorCancellation] CancellationToken cancellationToken) 108List<ChatMessage> messages =
ChatCompletion\UseDelegateChatClientTests.cs (6)
28IList<ChatMessage> expectedMessages = []; 78IList<ChatMessage> expectedMessages = []; 120IList<ChatMessage> expectedMessages = []; 147IEnumerable<ChatMessage> messages, ChatOptions? options, IChatClient innerClient, [EnumeratorCancellation] CancellationToken cancellationToken) 171IList<ChatMessage> expectedMessages = []; 218IEnumerable<ChatMessage> messages, ChatOptions? options, IChatClient innerClient, [EnumeratorCancellation] CancellationToken cancellationToken)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; } 22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; } 29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
TestJsonSerializerContext.cs (1)
14[JsonSerializable(typeof(IList<ChatMessage>))]
Microsoft.ML.GenAI.Core (7)
CausalLMPipelineChatClient.cs (3)
36public virtual Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) 47var chatMessage = new ChatMessage(ChatRole.Assistant, output); 59IEnumerable<ChatMessage> messages,
Trainer\CausalLMDataset.cs (2)
26public static CausalLMDataset Create(IEnumerable<IEnumerable<ChatMessage>> inputs, 27IEnumerable<ChatMessage> outputs,
Utility\IChatTemplateBuilder.cs (2)
31/// <param name="messages">the list of <see cref="ChatMessage"/> to be rendered</param> 35string BuildPrompt(IEnumerable<ChatMessage> messages, ChatOptions? options = null, bool appendAssistantTag = true);
Microsoft.ML.GenAI.Core.Tests (3)
CasualLMDatasetTest.cs (3)
82var inputs = new List<List<ChatMessage>> 84new List<ChatMessage> 91var outputs = new List<ChatMessage>
Microsoft.ML.GenAI.LLaMA (4)
Llama3_1ChatTemplateBuilder.cs (2)
91public string BuildPrompt(IEnumerable<ChatMessage> messages, ChatOptions? options = null, bool appendAssistantTag = true) 106foreach (var message in messages)
Llama3CausalLMChatClient.cs (2)
28IEnumerable<ChatMessage> messages, 47IEnumerable<ChatMessage> messages,
Microsoft.ML.GenAI.Phi (4)
Phi3\Phi3CausalLMChatClient.cs (2)
33IEnumerable<ChatMessage> messages, 52IEnumerable<ChatMessage> messages,
Phi3\Phi3ChatTemplateBuilder.cs (2)
92public string BuildPrompt(IEnumerable<ChatMessage> messages, ChatOptions? options = null, bool appendAssistantTag = true) 109foreach (var message in messages)
Microsoft.ML.GenAI.Samples (4)
Llama\SFT_Llama_3_2_1B.cs (2)
105var trainChatHistory = new List<ChatMessage> 111var assistantMessage = new ChatMessage(ChatRole.Assistant, data.output);
MEAI\Llama3_1.cs (1)
47var chatMessage = new ChatMessage(ChatRole.User, task);
MEAI\Phi3.cs (1)
37var chatMessage = new ChatMessage(ChatRole.User, task);