49 instantiations of ChatResponseUpdate
Microsoft.Extensions.AI (1)
ChatCompletion\FunctionInvokingChatClient.cs (1)
389var toolResultUpdate = new ChatResponseUpdate
Microsoft.Extensions.AI.Abstractions (2)
ChatCompletion\ChatResponse.cs (2)
131extra = new ChatResponseUpdate 149updates[i] = new ChatResponseUpdate
Microsoft.Extensions.AI.Abstractions.Tests (26)
ChatCompletion\ChatClientExtensionsTests.cs (1)
146return YieldAsync([new ChatResponseUpdate(ChatRole.Assistant, "world")]);
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (21)
107updates.Add(new(null, text)); 128updates.Add(new() { Contents = [new DataContent("data:image/png;base64,aGVsbG8=")] }); 155new(null, "A"), 156new(null, "B"), 157new(null, "C"), 158new() { Contents = [new TextReasoningContent("D")] }, 159new() { Contents = [new TextReasoningContent("E")] }, 160new() { Contents = [new TextReasoningContent("F")] }, 161new(null, "G"), 162new(null, "H"), 163new() { Contents = [new TextReasoningContent("I")] }, 164new() { Contents = [new TextReasoningContent("J")] }, 165new(null, "K"), 166new() { Contents = [new TextReasoningContent("L")] }, 167new(null, "M"), 168new(null, "N"), 169new() { Contents = [new TextReasoningContent("O")] }, 170new() { Contents = [new TextReasoningContent("P")] }, 191new(null, "Hello, "), 192new(null, "world!"), 193new() { Contents = [new UsageContent(new() { TotalTokenCount = 42 })] },
ChatCompletion\ChatResponseUpdateTests.cs (4)
16ChatResponseUpdate update = new(); 33ChatResponseUpdate update = new(); 87ChatResponseUpdate update = new() 115ChatResponseUpdate original = new()
Microsoft.Extensions.AI.AzureAIInference (2)
AzureAIInferenceChatClient.cs (2)
156ChatResponseUpdate responseUpdate = new() 218var responseUpdate = new ChatResponseUpdate
Microsoft.Extensions.AI.Evaluation.Safety (1)
ContentSafetyChatClient.cs (1)
111yield return new ChatResponseUpdate(ChatRole.Assistant, annotationResult)
Microsoft.Extensions.AI.Ollama (1)
OllamaChatClient.cs (1)
163ChatResponseUpdate update = new()
Microsoft.Extensions.AI.OpenAI (4)
OpenAIChatClient.cs (2)
263ChatResponseUpdate responseUpdate = new() 342ChatResponseUpdate responseUpdate = new()
OpenAIResponseChatClient.cs (2)
212yield return new ChatResponseUpdate(lastRole, outputTextDeltaUpdate.Delta) 260yield return new ChatResponseUpdate
Microsoft.Extensions.AI.Tests (11)
ChatCompletion\ConfigureOptionsChatClientTests.cs (1)
38var expectedUpdates = Enumerable.Range(0, 3).Select(i => new ChatResponseUpdate()).ToArray();
ChatCompletion\LoggingChatClientTests.cs (2)
108yield return new(ChatRole.Assistant, "blue "); 109yield return new(ChatRole.Assistant, "whale");
ChatCompletion\OpenTelemetryChatClientTests.cs (3)
72yield return new ChatResponseUpdate(ChatRole.Assistant, text) 78yield return new ChatResponseUpdate 83yield return new ChatResponseUpdate
ChatCompletion\UseDelegateChatClientTests.cs (5)
51return YieldUpdates(new ChatResponseUpdate(null, "world")); 133return YieldUpdates(new ChatResponseUpdate(null, "hello")); 154yield return new(null, " world"); 193return YieldUpdates(new ChatResponseUpdate(null, "streaming hello")); 225yield return new(null, " world (streaming)");
Microsoft.ML.GenAI.Core (1)
CausalLMPipelineChatClient.cs (1)
73yield return new(ChatRole.Assistant, output)
179 references to ChatResponseUpdate
Microsoft.Extensions.AI (43)
ChatCompletion\AnonymousDelegatingChatClient.cs (10)
31private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? _getStreamingResponseFunc; 80Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? getStreamingResponseFunc) 129public override IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 136var updates = Channel.CreateBounded<ChatResponseUpdate>(1); 146await foreach (var update in InnerClient.GetStreamingResponseAsync(messages, options, cancellationToken)) 167static async IAsyncEnumerable<ChatResponseUpdate> ReadAllAsync( 168ChannelReader<ChatResponseUpdate> channel, [EnumeratorCancellation] CancellationToken cancellationToken) 172while (channel.TryRead(out var update)) 189static async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsyncViaGetResponseAsync(Task<ChatResponse> task) 192foreach (var update in response.ToChatResponseUpdates())
ChatCompletion\CachingChatClient.cs (11)
68public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 83foreach (var chunk in chatResponse.ToChatResponseUpdates()) 91List<ChatResponseUpdate> capturedItems = []; 92await foreach (var chunk in base.GetStreamingResponseAsync(messages, options, cancellationToken)) 109foreach (var chunk in existingChunks) 118List<ChatResponseUpdate> capturedItems = []; 119await foreach (var chunk in base.GetStreamingResponseAsync(messages, options, cancellationToken)) 149/// Returns a previously cached list of <see cref="ChatResponseUpdate"/> values, if available. 156protected abstract Task<IReadOnlyList<ChatResponseUpdate>?> ReadCacheStreamingAsync(string key, CancellationToken cancellationToken); 171/// Stores a list of <see cref="ChatResponseUpdate"/> values in the underlying cache. 180protected abstract Task WriteCacheStreamingAsync(string key, IReadOnlyList<ChatResponseUpdate> value, CancellationToken cancellationToken);
ChatCompletion\ChatClientBuilder.cs (1)
140Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? getStreamingResponseFunc)
ChatCompletion\ConfigureOptionsChatClient.cs (2)
42public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 45await foreach (var update in base.GetStreamingResponseAsync(messages, Configure(options), cancellationToken))
ChatCompletion\DistributedCachingChatClient.cs (6)
24/// the object models used by <see cref="ChatMessage"/>, <see cref="ChatOptions"/>, <see cref="ChatResponse"/>, <see cref="ChatResponseUpdate"/>, 74protected override async Task<IReadOnlyList<ChatResponseUpdate>?> ReadCacheStreamingAsync(string key, CancellationToken cancellationToken) 81return (IReadOnlyList<ChatResponseUpdate>?)JsonSerializer.Deserialize(existingJson, _jsonSerializerOptions.GetTypeInfo(typeof(IReadOnlyList<ChatResponseUpdate>))); 99protected override async Task WriteCacheStreamingAsync(string key, IReadOnlyList<ChatResponseUpdate> value, CancellationToken cancellationToken) 105var newJson = JsonSerializer.SerializeToUtf8Bytes(value, _jsonSerializerOptions.GetTypeInfo(typeof(IReadOnlyList<ChatResponseUpdate>)));
ChatCompletion\DistributedCachingChatClientBuilderExtensions.cs (1)
29/// the object models used by <see cref="ChatMessage"/>, <see cref="ChatOptions"/>, <see cref="ChatResponse"/>, <see cref="ChatResponseUpdate"/>,
ChatCompletion\FunctionInvokingChatClient.cs (5)
303public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 322List<ChatResponseUpdate> updates = []; // updates from the current response 330await foreach (var update in base.GetStreamingResponseAsync(messages, options, cancellationToken)) 334Throw.InvalidOperationException($"The inner {nameof(IChatClient)} streamed a null {nameof(ChatResponseUpdate)}."); 389var toolResultUpdate = new ChatResponseUpdate
ChatCompletion\LoggingChatClient.cs (3)
92public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 107IAsyncEnumerator<ChatResponseUpdate> e; 125ChatResponseUpdate? update = null;
ChatCompletion\OpenTelemetryChatClient.cs (4)
163public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 175IAsyncEnumerable<ChatResponseUpdate> updates; 187List<ChatResponseUpdate> trackedUpdates = []; 193ChatResponseUpdate update;
Microsoft.Extensions.AI.Abstractions (42)
ChatCompletion\ChatClientExtensions.cs (2)
131public static IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 151public static IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(
ChatCompletion\ChatResponse.cs (5)
124/// <summary>Creates an array of <see cref="ChatResponseUpdate" /> instances that represent this <see cref="ChatResponse" />.</summary> 125/// <returns>An array of <see cref="ChatResponseUpdate" /> instances that may be used to represent this <see cref="ChatResponse" />.</returns> 126public ChatResponseUpdate[] ToChatResponseUpdates() 128ChatResponseUpdate? extra = null; 143var updates = new ChatResponseUpdate[messageCount + (extra is not null ? 1 : 0)];
ChatCompletion\ChatResponseExtensions.cs (23)
18/// Provides extension methods for working with <see cref="ChatResponse"/> and <see cref="ChatResponseUpdate"/> instances. 47/// <param name="updates">The <see cref="ChatResponseUpdate"/> instances to convert to messages and add to the list.</param> 52/// method may use <see cref="ChatResponseUpdate.MessageId"/> to determine message boundaries, as well as coalesce 56public static void AddMessages(this IList<ChatMessage> list, IEnumerable<ChatResponseUpdate> updates) 61if (updates is ICollection<ChatResponseUpdate> { Count: 0 }) 71/// <param name="update">The <see cref="ChatResponseUpdate"/> instance to convert to a message and add to the list.</param> 76/// If the <see cref="ChatResponseUpdate"/> has no content, or all its content gets excluded by <paramref name="filter"/>, then 79public static void AddMessages(this IList<ChatMessage> list, ChatResponseUpdate update, Func<AIContent, bool>? filter = null) 98/// <param name="updates">The <see cref="ChatResponseUpdate"/> instances to convert to messages and add to the list.</param> 105/// method may use <see cref="ChatResponseUpdate.MessageId"/> to determine message boundaries, as well as coalesce 110this IList<ChatMessage> list, IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken = default) 118IList<ChatMessage> list, IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken) => 122/// <summary>Combines <see cref="ChatResponseUpdate"/> instances into a single <see cref="ChatResponse"/>.</summary> 128/// <see cref="ChatMessage"/> instances. This includes using <see cref="ChatResponseUpdate.MessageId"/> to determine 133this IEnumerable<ChatResponseUpdate> updates) 139foreach (var update in updates) 149/// <summary>Combines <see cref="ChatResponseUpdate"/> instances into a single <see cref="ChatResponse"/>.</summary> 156/// <see cref="ChatMessage"/> instances. This includes using <see cref="ChatResponseUpdate.MessageId"/> to determine 161this IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken = default) 168IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken) 172await foreach (var update in updates.WithCancellation(cancellationToken).ConfigureAwait(false)) 249/// <summary>Processes the <see cref="ChatResponseUpdate"/>, incorporating its contents into <paramref name="response"/>.</summary> 252private static void ProcessUpdate(ChatResponseUpdate update, ChatResponse response)
ChatCompletion\ChatResponseUpdate.cs (8)
17/// <see cref="ChatResponseUpdate"/> is so named because it represents updates 22/// The relationship between <see cref="ChatResponse"/> and <see cref="ChatResponseUpdate"/> is 41/// <summary>Initializes a new instance of the <see cref="ChatResponseUpdate"/> class.</summary> 47/// <summary>Initializes a new instance of the <see cref="ChatResponseUpdate"/> class.</summary> 55/// <summary>Initializes a new instance of the <see cref="ChatResponseUpdate"/> class.</summary> 91/// If a <see cref="ChatResponseUpdate"/> is created to represent some underlying object from another object 112/// This value is used when <see cref="ChatResponseExtensions.ToChatResponseAsync(IAsyncEnumerable{ChatResponseUpdate}, System.Threading.CancellationToken)"/> 113/// groups <see cref="ChatResponseUpdate"/> instances into <see cref="ChatMessage"/> instances.
ChatCompletion\DelegatingChatClient.cs (1)
46public virtual IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(
ChatCompletion\IChatClient.cs (1)
46IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(
Utilities\AIJsonUtilities.Defaults.cs (2)
81[JsonSerializable(typeof(ChatResponseUpdate))] 82[JsonSerializable(typeof(IReadOnlyList<ChatResponseUpdate>))]
Microsoft.Extensions.AI.Abstractions.Tests (20)
ChatCompletion\ChatResponseTests.cs (3)
139ChatResponseUpdate[] updates = response.ToChatResponseUpdates(); 143ChatResponseUpdate update0 = updates[0]; 152ChatResponseUpdate update1 = updates[1];
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (8)
21Assert.Throws<ArgumentNullException>("updates", () => ((List<ChatResponseUpdate>)null!).ToChatResponse()); 29ChatResponseUpdate[] updates = 92List<ChatResponseUpdate> updates = []; 153ChatResponseUpdate[] updates = 189ChatResponseUpdate[] updates = 206private static async IAsyncEnumerable<ChatResponseUpdate> YieldAsync(IEnumerable<ChatResponseUpdate> updates) 208foreach (ChatResponseUpdate update in updates)
ChatCompletion\ChatResponseUpdateTests.cs (5)
16ChatResponseUpdate update = new(); 33ChatResponseUpdate update = new(); 87ChatResponseUpdate update = new() 115ChatResponseUpdate original = new() 137ChatResponseUpdate? result = JsonSerializer.Deserialize(json, TestJsonSerializerContext.Default.ChatResponseUpdate);
ChatCompletion\DelegatingChatClientTests.cs (1)
59ChatResponseUpdate[] expectedResults =
TestChatClient.cs (2)
22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; } 32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
TestJsonSerializerContext.cs (1)
18[JsonSerializable(typeof(ChatResponseUpdate))]
Microsoft.Extensions.AI.AzureAIInference (3)
AzureAIInferenceChatClient.cs (3)
131public async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 156ChatResponseUpdate responseUpdate = new() 218var responseUpdate = new ChatResponseUpdate
Microsoft.Extensions.AI.AzureAIInference.Tests (4)
AzureAIInferenceChatClientTests.cs (4)
207List<ChatResponseUpdate> updates = []; 208await foreach (var update in client.GetStreamingResponseAsync(messages, new() 862List<ChatResponseUpdate> updates = []; 863await foreach (var update in client.GetStreamingResponseAsync("How old is Alice?", new()
Microsoft.Extensions.AI.Evaluation.Reporting (6)
ResponseCachingChatClient.cs (3)
58protected override async Task<IReadOnlyList<ChatResponseUpdate>?> ReadCacheStreamingAsync( 64IReadOnlyList<ChatResponseUpdate>? updates = 108IReadOnlyList<ChatResponseUpdate> value,
SimpleChatClient.cs (3)
51public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 56List<ChatResponseUpdate>? updates = null; 61await foreach (ChatResponseUpdate update in
Microsoft.Extensions.AI.Evaluation.Safety (2)
ContentSafetyChatClient.cs (2)
94public async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 118await foreach (var update in
Microsoft.Extensions.AI.Integration.Tests (10)
CallCountingChatClient.cs (1)
26public override IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(
ChatClientIntegrationTests.cs (4)
98await foreach (var chunk in _chatClient.GetStreamingResponseAsync(chatHistory)) 133List<ChatResponseUpdate> chunks = []; 134await foreach (var chunk in response) 254await foreach (var chunk in response)
PromptBasedFunctionCallingChatClient.cs (1)
137public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(
ReducingChatClientTests.cs (2)
84public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 89await foreach (var update in base.GetStreamingResponseAsync(messages, options, cancellationToken).ConfigureAwait(false))
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (2)
22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; } 32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.Extensions.AI.Ollama (2)
OllamaChatClient.cs (2)
121public async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 163ChatResponseUpdate update = new()
Microsoft.Extensions.AI.Ollama.Tests (2)
OllamaChatClientTests.cs (2)
174List<ChatResponseUpdate> updates = []; 180await foreach (var update in streamingResponse)
Microsoft.Extensions.AI.OpenAI (5)
OpenAIChatClient.cs (4)
86public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 238private static async IAsyncEnumerable<ChatResponseUpdate> FromOpenAIStreamingChatCompletionAsync( 263ChatResponseUpdate responseUpdate = new() 342ChatResponseUpdate responseUpdate = new()
OpenAIResponseChatClient.cs (1)
147public async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(
Microsoft.Extensions.AI.OpenAI.Tests (6)
OpenAIChatClientTests.cs (4)
239List<ChatResponseUpdate> updates = []; 240await foreach (var update in client.GetStreamingResponseAsync("hello", new() 931List<ChatResponseUpdate> updates = []; 932await foreach (var update in client.GetStreamingResponseAsync("How old is Alice?", new()
OpenAIResponseClientTests.cs (2)
252List<ChatResponseUpdate> updates = []; 253await foreach (var update in client.GetStreamingResponseAsync("hello", new()
Microsoft.Extensions.AI.Tests (31)
ChatCompletion\ConfigureOptionsChatClientTests.cs (3)
89static async IAsyncEnumerable<ChatResponseUpdate> YieldUpdates(ChatResponseUpdate[] updates) 91foreach (var update in updates)
ChatCompletion\DistributedCachingChatClientTest.cs (13)
217List<ChatResponseUpdate> actualUpdate = 230List<ChatResponseUpdate> expectedCachedResponse = 281List<ChatResponseUpdate> expectedResponse = 314ChatResponseUpdate update = Assert.Single(await ToListAsync(result2)); 336List<ChatResponseUpdate> expectedResponse = 386var item = Assert.Single(items); 404List<ChatResponseUpdate> expectedResponse = 452return ToAsyncEnumerableAsync<ChatResponseUpdate>(Task.CompletedTask, 491return ToAsyncEnumerableAsync<ChatResponseUpdate>( 757private static async Task AssertResponsesEqualAsync(IReadOnlyList<ChatResponseUpdate> expected, IAsyncEnumerable<ChatResponseUpdate> actual) 761foreach (var expectedItem in expected) 765var actualItem = actualEnumerator.Current;
ChatCompletion\FunctionInvokingChatClientTests.cs (2)
591List<ChatResponseUpdate> updates; 606foreach (var update in updates)
ChatCompletion\LoggingChatClientTests.cs (1)
105static async IAsyncEnumerable<ChatResponseUpdate> GetUpdatesAsync()
ChatCompletion\OpenTelemetryChatClientTests.cs (2)
64async static IAsyncEnumerable<ChatResponseUpdate> CallbackAsync( 139await foreach (var update in chatClient.GetStreamingResponseAsync(messages, options))
ChatCompletion\UseDelegateChatClientTests.cs (7)
146static async IAsyncEnumerable<ChatResponseUpdate> Impl( 149await foreach (var update in innerClient.GetStreamingResponseAsync(messages, options, cancellationToken)) 217static async IAsyncEnumerable<ChatResponseUpdate> Impl( 220await foreach (var update in innerClient.GetStreamingResponseAsync(messages, options, cancellationToken)) 239private static async IAsyncEnumerable<ChatResponseUpdate> YieldUpdates(params ChatResponseUpdate[] updates) 241foreach (var update in updates)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (2)
22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; } 32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
TestJsonSerializerContext.cs (1)
15[JsonSerializable(typeof(IReadOnlyList<ChatResponseUpdate>))]
Microsoft.ML.GenAI.Core (1)
CausalLMPipelineChatClient.cs (1)
57public virtual async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(
Microsoft.ML.GenAI.LLaMA (1)
Llama3CausalLMChatClient.cs (1)
46public override IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(
Microsoft.ML.GenAI.Phi (1)
Phi3\Phi3CausalLMChatClient.cs (1)
51public override IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(