154 instantiations of ChatMessage
Aspire.Azure.AI.OpenAI.Tests (1)
Aspire.OpenAI.Tests (1)
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\ChatMessage.cs (1)
51new()
Microsoft.Extensions.AI.Abstractions.Tests (16)
Microsoft.Extensions.AI.AzureAIInference (1)
Microsoft.Extensions.AI.AzureAIInference.Tests (4)
Microsoft.Extensions.AI.Evaluation (3)
Microsoft.Extensions.AI.Evaluation.Integration.Tests (9)
Microsoft.Extensions.AI.Evaluation.Quality (17)
Microsoft.Extensions.AI.Evaluation.Reporting (3)
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (7)
Microsoft.Extensions.AI.Evaluation.Safety (2)
Microsoft.Extensions.AI.Evaluation.Tests (3)
Microsoft.Extensions.AI.Integration.Tests (11)
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)
Microsoft.Extensions.AI.OpenAI (1)
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\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"),
Microsoft.ML.GenAI.Core (1)
Microsoft.ML.GenAI.Core.Tests (3)
Microsoft.ML.GenAI.LLaMA.Tests (3)
Microsoft.ML.GenAI.Samples (5)
464 references to ChatMessage
Aspire.Azure.AI.OpenAI.Tests (1)
Aspire.OpenAI.Tests (1)
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\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(
Microsoft.Extensions.AI.Abstractions (46)
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;
Microsoft.Extensions.AI.Abstractions.Tests (29)
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.AzureAIInference (7)
Microsoft.Extensions.AI.AzureAIInference.Tests (4)
Microsoft.Extensions.AI.Evaluation (49)
Microsoft.Extensions.AI.Evaluation.Integration.Tests (33)
Microsoft.Extensions.AI.Evaluation.Quality (46)
Microsoft.Extensions.AI.Evaluation.Reporting (13)
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (5)
Microsoft.Extensions.AI.Evaluation.Safety (14)
Microsoft.Extensions.AI.Evaluation.Tests (3)
Microsoft.Extensions.AI.Integration.Tests (28)
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)
Microsoft.Extensions.AI.Ollama.Tests (2)
Microsoft.Extensions.AI.OpenAI (11)
Microsoft.Extensions.AI.OpenAI.Tests (4)
Microsoft.Extensions.AI.Tests (76)
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];
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.ML.GenAI.Core (7)
Microsoft.ML.GenAI.Core.Tests (3)
Microsoft.ML.GenAI.LLaMA (4)
Microsoft.ML.GenAI.Phi (4)
Microsoft.ML.GenAI.Samples (4)