1 type derived from ChatCompletion
Microsoft.Extensions.AI (1)
ChatCompletion\ChatCompletion{T}.cs (1)
22public class ChatCompletion<T> : ChatCompletion
31 instantiations of ChatCompletion
Aspire.Azure.AI.OpenAI.Tests (1)
AspireAzureOpenAIClientBuilderChatClientExtensionsTests.cs (1)
221=> Task.FromResult(new ChatCompletion(new ChatMessage(ChatRole.Assistant, "Hello from middleware")));
Aspire.OpenAI.Tests (1)
AspireOpenAIClientBuilderChatClientExtensionsTests.cs (1)
222=> Task.FromResult(new ChatCompletion(new ChatMessage(ChatRole.Assistant, "Hello from middleware")));
Microsoft.Extensions.AI.Abstractions.Tests (5)
ChatCompletion\ChatCompletionTests.cs (5)
16Assert.Throws<ArgumentNullException>("message", () => new ChatCompletion((ChatMessage)null!)); 17Assert.Throws<ArgumentNullException>("choices", () => new ChatCompletion((IList<ChatMessage>)null!)); 25ChatCompletion completion = new(message); 40ChatCompletion completion = new(messages); 208ChatCompletion completion = new(new ChatMessage(new ChatRole("customRole"), "Text"))
Microsoft.Extensions.AI.AzureAIInference (1)
AzureAIInferenceChatClient.cs (1)
133return new ChatCompletion(returnMessages)
Microsoft.Extensions.AI.OpenAI.Tests (4)
OpenAISerializationTests.cs (4)
485ChatCompletion completion = new(message) 673await Assert.ThrowsAsync<ArgumentNullException>(() => OpenAISerializationHelpers.SerializeAsync(null!, new(new ChatMessage()))); 693await Assert.ThrowsAsync<TaskCanceledException>(() => OpenAISerializationHelpers.SerializeAsync(stream, new(new ChatMessage()), cancellationToken: canceledToken)); 714ChatCompletion completion = new(new ChatMessage
Microsoft.Extensions.AI.Tests (19)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (10)
20var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult))) 81var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult))); 113var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, "This is not valid JSON")); 132var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, "null")); 151var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, [new DataContent("https://example.com")])); 171var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult))); 215var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult))); 250var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(payload))); 281var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, jso))); 327return Task.FromResult(new ChatCompletion(new ChatMessage(ChatRole.Assistant, resultDuplicatedJson)));
ChatCompletion\ConfigureOptionsChatClientTests.cs (1)
37ChatCompletion expectedCompletion = new(Array.Empty<ChatMessage>());
ChatCompletion\FunctionInvokingChatClientTests.cs (4)
674return new ChatCompletion(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId-abc", "Func1")])) 682return new ChatCompletion(new ChatMessage(ChatRole.Assistant, "done!")); 731return new ChatCompletion(new ChatMessage(ChatRole.Assistant, [.. plan[contents.Count].Contents])) { Usage = usage }; 820return YieldAsync(new ChatCompletion(new ChatMessage(ChatRole.Assistant, [.. plan[contents.Count].Contents])).ToStreamingChatCompletionUpdates());
ChatCompletion\OpenTelemetryChatClientTests.cs (1)
41return new ChatCompletion(new ChatMessage(ChatRole.Assistant, "The blue whale, I think."))
ChatCompletion\UseDelegateChatClientTests.cs (3)
50return Task.FromResult(new ChatCompletion(new ChatMessage(ChatRole.Assistant, "hello"))); 99return Task.FromResult(new ChatCompletion(new ChatMessage(ChatRole.Assistant, "hello"))); 192return Task.FromResult(new ChatCompletion(new ChatMessage(ChatRole.Assistant, "non-streaming hello")));
142 references to ChatCompletion
Aspire.Azure.AI.OpenAI.Tests (2)
AspireAzureOpenAIClientBuilderChatClientExtensionsTests.cs (2)
217var completion = await client.CompleteAsync("Whatever"); 220static Task<ChatCompletion> TestMiddleware(IList<ChatMessage> list, ChatOptions? options, IChatClient client, CancellationToken token)
Aspire.OpenAI.Tests (2)
AspireOpenAIClientBuilderChatClientExtensionsTests.cs (2)
218var completion = await client.CompleteAsync("Whatever"); 221static Task<ChatCompletion> TestMiddleware(IList<ChatMessage> list, ChatOptions? options, IChatClient client, CancellationToken token)
Microsoft.Extensions.AI (35)
ChatCompletion\AnonymousDelegatingChatClient.cs (7)
20private readonly Func<IList<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatCompletion>>? _completeFunc; 74Func<IList<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatCompletion>>? completeFunc, 85public override Task<ChatCompletion> CompleteAsync( 94async Task<ChatCompletion> CompleteViaSharedAsync(IList<ChatMessage> chatMessages, ChatOptions? options, CancellationToken cancellationToken) 96ChatCompletion? completion = null; 169static async IAsyncEnumerable<StreamingChatCompletionUpdate> CompleteStreamingAsyncViaCompleteAsync(Task<ChatCompletion> task) 171ChatCompletion completion = await task.ConfigureAwait(false);
ChatCompletion\CachingChatClient.cs (7)
48public override async Task<ChatCompletion> CompleteAsync(IList<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default) 134/// Returns a previously cached <see cref="ChatCompletion"/>, if available. 140protected abstract Task<ChatCompletion?> ReadCacheAsync(string key, CancellationToken cancellationToken); 152/// Stores a <see cref="ChatCompletion"/> in the underlying cache. 156/// <param name="value">The <see cref="ChatCompletion"/> to be stored.</param> 159protected abstract Task WriteCacheAsync(string key, ChatCompletion value, CancellationToken cancellationToken); 166/// <param name="value">The <see cref="ChatCompletion"/> to be stored.</param>
ChatCompletion\ChatClientBuilder.cs (1)
132Func<IList<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatCompletion>>? completeFunc,
ChatCompletion\ChatClientStructuredOutputExtensions.cs (1)
229var result = await chatClient.CompleteAsync(chatMessages, options, cancellationToken).ConfigureAwait(false);
ChatCompletion\ChatCompletion{T}.cs (3)
20/// You can access the underlying JSON response on the <see cref="ChatCompletion.Message"/> property. 31/// <param name="completion">The unstructured <see cref="ChatCompletion"/> that is being wrapped.</param> 33public ChatCompletion(ChatCompletion completion, JsonSerializerOptions serializerOptions)
ChatCompletion\ConfigureOptionsChatClient.cs (1)
37public override async Task<ChatCompletion> CompleteAsync(IList<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default)
ChatCompletion\DistributedCachingChatClient.cs (5)
46protected override async Task<ChatCompletion?> ReadCacheAsync(string key, CancellationToken cancellationToken) 53return (ChatCompletion?)JsonSerializer.Deserialize(existingJson, _jsonSerializerOptions.GetTypeInfo(typeof(ChatCompletion))); 74protected override async Task WriteCacheAsync(string key, ChatCompletion value, CancellationToken cancellationToken) 80var newJson = JsonSerializer.SerializeToUtf8Bytes(value, _jsonSerializerOptions.GetTypeInfo(typeof(ChatCompletion)));
ChatCompletion\FunctionInvokingChatClient.cs (3)
169/// If the underlying <see cref="IChatClient"/> responds with <see cref="ChatCompletion.ChatThreadId"/> 212public override async Task<ChatCompletion> CompleteAsync(IList<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default) 220ChatCompletion? response = null;
ChatCompletion\LoggingChatClient.cs (2)
46public override async Task<ChatCompletion> CompleteAsync( 63var completion = await base.CompleteAsync(chatMessages, options, cancellationToken).ConfigureAwait(false);
ChatCompletion\OpenTelemetryChatClient.cs (5)
124public override async Task<ChatCompletion> CompleteAsync(IList<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default) 135ChatCompletion? completion = null; 319ChatCompletion? completion, 413void AddMetricTags(ref TagList tags, string? requestModelId, ChatCompletion? completions) 477private void LogChatCompletion(ChatCompletion completion)
Microsoft.Extensions.AI.Abstractions (30)
ChatCompletion\ChatClientExtensions.cs (2)
36public static Task<ChatCompletion> CompleteAsync( 54public static Task<ChatCompletion> CompleteAsync(
ChatCompletion\ChatCompletion.cs (7)
18/// <summary>Initializes a new instance of the <see cref="ChatCompletion"/> class.</summary> 26/// <summary>Initializes a new instance of the <see cref="ChatCompletion"/> class.</summary> 54throw new InvalidOperationException($"The {nameof(ChatCompletion)} instance does not contain any {nameof(ChatMessage)} choices."); 70/// (and this <see cref="ChatCompletion"/>'s message) as part of the <c>chatMessages</c> parameter. 88/// If a <see cref="ChatCompletion"/> is created to represent some underlying object from another object 120/// <summary>Creates an array of <see cref="StreamingChatCompletionUpdate" /> instances that represent this <see cref="ChatCompletion" />.</summary> 121/// <returns>An array of <see cref="StreamingChatCompletionUpdate" /> instances that may be used to represent this <see cref="ChatCompletion" />.</returns>
ChatCompletion\DelegatingChatClient.cs (1)
41public virtual Task<ChatCompletion> CompleteAsync(IList<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default)
ChatCompletion\IChatClient.cs (1)
37Task<ChatCompletion> CompleteAsync(
ChatCompletion\StreamingChatCompletionUpdate.cs (4)
16/// Conceptually, this combines the roles of <see cref="ChatCompletion"/> and <see cref="ChatMessage"/> 32/// The relationship between <see cref="ChatCompletion"/> and <see cref="StreamingChatCompletionUpdate"/> is 34/// <see cref="ChatCompletion.ToStreamingChatCompletionUpdates"/>, which enable bidirectional conversions 37/// only one slot for such an object available in <see cref="ChatCompletion.RawRepresentation"/>.
ChatCompletion\StreamingChatCompletionUpdateExtensions.cs (14)
25/// <summary>Combines <see cref="StreamingChatCompletionUpdate"/> instances into a single <see cref="ChatCompletion"/>.</summary> 33/// <returns>The combined <see cref="ChatCompletion"/>.</returns> 34public static ChatCompletion ToChatCompletion( 39ChatCompletion completion = new([]); 52/// <summary>Combines <see cref="StreamingChatCompletionUpdate"/> instances into a single <see cref="ChatCompletion"/>.</summary> 61/// <returns>The combined <see cref="ChatCompletion"/>.</returns> 62public static Task<ChatCompletion> ToChatCompletionAsync( 69static async Task<ChatCompletion> ToChatCompletionAsync( 72ChatCompletion completion = new([]); 89/// <param name="completion">The <see cref="ChatCompletion"/> object whose properties should be updated based on <paramref name="update"/>.</param> 90private static void ProcessUpdate(StreamingChatCompletionUpdate update, Dictionary<int, ChatMessage> messages, ChatCompletion completion) 148/// <param name="completion">The result <see cref="ChatCompletion"/> being built.</param> 150private static void AddMessagesToCompletion(Dictionary<int, ChatMessage> messages, ChatCompletion completion, bool coalesceContent) 183static void AddMessage(ChatCompletion completion, bool coalesceContent, KeyValuePair<int, ChatMessage> entry)
Utilities\AIJsonUtilities.Defaults.cs (1)
85[JsonSerializable(typeof(ChatCompletion))]
Microsoft.Extensions.AI.Abstractions.Tests (21)
ChatCompletion\ChatClientExtensionsTests.cs (1)
71ChatCompletion response = await client.CompleteAsync("hello", expectedOptions, cts.Token);
ChatCompletion\ChatCompletionTests.cs (13)
25ChatCompletion completion = new(message); 40ChatCompletion completion = new(messages); 48ChatCompletion completion = new([]); 58ChatCompletion completion = new([message]); 68ChatCompletion completion = new([ 80ChatCompletion completion = new([]); 87ChatCompletion completion = new([]); 128ChatCompletion original = new( 147ChatCompletion? result = JsonSerializer.Deserialize(json, TestJsonSerializerContext.Default.ChatCompletion); 174ChatCompletion completion = new( 185ChatCompletion completion = new( 208ChatCompletion completion = new(new ChatMessage(new ChatRole("customRole"), "Text")) 237ChatCompletion completion = new(
ChatCompletion\DelegatingChatClientTests.cs (1)
27var expectedResult = new TaskCompletionSource<ChatCompletion>();
ChatCompletion\StreamingChatCompletionUpdateExtensionsTests.cs (3)
54ChatCompletion completion = (coalesceContent is bool, useAsync) switch 181ChatCompletion completion = useAsync ? await YieldAsync(updates).ToChatCompletionAsync() : updates.ToChatCompletion(); 205ChatCompletion completion = await YieldAsync(updates).ToChatCompletionAsync();
TestChatClient.cs (2)
20public Func<IList<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatCompletion>>? CompleteAsyncCallback { get; set; } 29public Task<ChatCompletion> CompleteAsync(IList<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default)
TestJsonSerializerContext.cs (1)
17[JsonSerializable(typeof(ChatCompletion))]
Microsoft.Extensions.AI.AzureAIInference (1)
AzureAIInferenceChatClient.cs (1)
80public async Task<ChatCompletion> CompleteAsync(
Microsoft.Extensions.AI.AzureAIInference.Tests (2)
AzureAIInferenceChatClientTests.cs (2)
154var response = await client.CompleteAsync(chatMessages, new() 656var response = await client.CompleteAsync(messages);
Microsoft.Extensions.AI.Integration.Tests (6)
CallCountingChatClient.cs (1)
19public override Task<ChatCompletion> CompleteAsync(
ChatClientIntegrationTests.cs (2)
49var response = await _chatClient.CompleteAsync("What's the biggest animal?"); 102var response = await _chatClient.CompleteAsync("Explain in 10 words how AI works");
PromptBasedFunctionCallingChatClient.cs (1)
40public override async Task<ChatCompletion> CompleteAsync(IList<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (2)
20public Func<IList<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatCompletion>>? CompleteAsyncCallback { get; set; } 29public Task<ChatCompletion> CompleteAsync(IList<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.Extensions.AI.Ollama (1)
OllamaChatClient.cs (1)
81public async Task<ChatCompletion> CompleteAsync(IList<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.Extensions.AI.Ollama.Tests (2)
OllamaChatClientIntegrationTests.cs (1)
110public override Task<ChatCompletion> CompleteAsync(
OllamaChatClientTests.cs (1)
114var response = await client.CompleteAsync("hello", new()
Microsoft.Extensions.AI.OpenAI (5)
OpenAIAssistantClient.cs (1)
72public Task<ChatCompletion> CompleteAsync(
OpenAIChatClient.cs (1)
102public async Task<ChatCompletion> CompleteAsync(
OpenAIModelMapper.ChatCompletion.cs (2)
31public static OpenAI.Chat.ChatCompletion ToOpenAIChatCompletion(ChatCompletion chatCompletion, JsonSerializerOptions options) 76public static ChatCompletion FromOpenAIChatCompletion(OpenAI.Chat.ChatCompletion openAICompletion, ChatOptions? options, ChatCompletionOptions chatCompletionOptions)
OpenAISerializationHelpers.cs (1)
48ChatCompletion chatCompletion,
Microsoft.Extensions.AI.OpenAI.Tests (7)
OpenAIChatClientTests.cs (4)
190var response = await client.CompleteAsync("hello", new() 554var response = await client.CompleteAsync(messages); 655var response = await client.CompleteAsync(messages); 1032var response = await client.CompleteAsync(messages);
OpenAISerializationTests.cs (3)
485ChatCompletion completion = new(message) 580ChatCompletion completion = new([message1, message2]); 714ChatCompletion completion = new(new ChatMessage
Microsoft.Extensions.AI.Tests (25)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (9)
20var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult))) 81var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult))); 113var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, "This is not valid JSON")); 132var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, "null")); 151var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, [new DataContent("https://example.com")])); 171var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult))); 215var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult))); 250var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(payload))); 281var expectedCompletion = new ChatCompletion(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, jso)));
ChatCompletion\ConfigureOptionsChatClientTests.cs (2)
37ChatCompletion expectedCompletion = new(Array.Empty<ChatMessage>()); 76var completion = await client.CompleteAsync(Array.Empty<ChatMessage>(), providedOptions, cts.Token);
ChatCompletion\DistributedCachingChatClientTest.cs (2)
86var result1 = await outer.CompleteAsync("some input"); 91var result2 = await outer.CompleteAsync("some input");
ChatCompletion\FunctionInvokingChatClientTests.cs (3)
666Func<IList<ChatMessage>, ChatOptions?, CancellationToken, ChatCompletion> callback = 737var result = await service.CompleteAsync(chat, options, cts.Token); 826var result = await service.CompleteStreamingAsync(chat, options, cts.Token).ToChatCompletionAsync();
ChatCompletion\UseDelegateChatClientTests.cs (6)
75ChatCompletion completion = await client.CompleteAsync(expectedMessages, expectedOptions, expectedCts.Token); 110var cc = await innerClient.CompleteAsync(chatMessages, options, cancellationToken); 118ChatCompletion completion = await client.CompleteAsync(expectedMessages, expectedOptions, expectedCts.Token); 169ChatCompletion completion = await client.CompleteAsync(expectedMessages, expectedOptions, expectedCts.Token); 213var cc = await innerClient.CompleteAsync(chatMessages, options, cancellationToken); 240ChatCompletion completion = await client.CompleteAsync(expectedMessages, expectedOptions, expectedCts.Token);
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (2)
20public Func<IList<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatCompletion>>? CompleteAsyncCallback { get; set; } 29public Task<ChatCompletion> CompleteAsync(IList<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default)
TestJsonSerializerContext.cs (1)
13[JsonSerializable(typeof(ChatCompletion))]
Microsoft.ML.GenAI.Core (1)
CausalLMPipelineChatClient.cs (1)
37public virtual Task<ChatCompletion> CompleteAsync(IList<ChatMessage> chatMessages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.ML.GenAI.LLaMA (1)
Llama3CausalLMChatClient.cs (1)
27public override Task<ChatCompletion> CompleteAsync(
Microsoft.ML.GenAI.Phi (1)
Phi3\Phi3CausalLMChatClient.cs (1)
32public override Task<ChatCompletion> CompleteAsync(