233 instantiations of ChatResponseUpdate
Microsoft.Extensions.AI (1)
ChatCompletion\FunctionInvokingChatClient.cs (1)
631new()
Microsoft.Extensions.AI.Abstractions (3)
ChatCompletion\ChatResponse.cs (2)
129extra = new ChatResponseUpdate 147updates[i] = new ChatResponseUpdate
ChatCompletion\ChatResponseUpdate.cs (1)
69new()
Microsoft.Extensions.AI.Abstractions.Tests (161)
ChatCompletion\ChatClientExtensionsTests.cs (2)
146return YieldAsync([new ChatResponseUpdate(ChatRole.Assistant, "world")]); 233return YieldAsync([new ChatResponseUpdate(ChatRole.Assistant, "world")]);
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (148)
32new(ChatRole.Assistant, "Hello") { ResponseId = "someResponse", MessageId = "12345", CreatedAt = new DateTimeOffset(2024, 2, 3, 4, 5, 6, TimeSpan.Zero), ModelId = "model123" }, 33new(ChatRole.Assistant, ", ") { AuthorName = "Someone", AdditionalProperties = new() { ["a"] = "b" } }, 34new(null, "world!") { CreatedAt = new DateTimeOffset(2025, 2, 3, 4, 5, 6, TimeSpan.Zero), ConversationId = "123", AdditionalProperties = new() { ["c"] = "d" } }, 36new() { Contents = [new UsageContent(new() { InputTokenCount = 1, OutputTokenCount = 2 })] }, 37new() { Contents = [new UsageContent(new() { InputTokenCount = 4, OutputTokenCount = 5 })] }, 76new(null, "!") { MessageId = "1" }, 77new(ChatRole.Assistant, "a") { MessageId = "1" }, 78new(ChatRole.Assistant, "b") { MessageId = "2" }, 79new(ChatRole.User, "c") { MessageId = "2" }, 80new(ChatRole.User, "d") { MessageId = "2" }, 81new(ChatRole.Assistant, "e") { MessageId = "3" }, 82new(ChatRole.Tool, "f") { MessageId = "4" }, 83new(ChatRole.Tool, "g") { MessageId = "4" }, 84new(ChatRole.Tool, "h") { MessageId = "5" }, 85new(new("human"), "i") { MessageId = "6" }, 86new(new("human"), "j") { MessageId = "7" }, 87new(new("human"), "k") { MessageId = "7" }, 88new(null, "l") { MessageId = "7" }, 89new(null, "m") { MessageId = "8" }, 134new(ChatRole.Assistant, "Hello ") { AuthorName = "Alice" }, 135new(null, "from ") { AuthorName = "Alice" }, 136new(null, "Alice!"), 139new(null, "Hi ") { AuthorName = "Bob" }, 140new(null, "from ") { AuthorName = "Bob" }, 141new(null, "Bob!"), 144new(ChatRole.Assistant, "Greetings ") { AuthorName = "Charlie" }, 145new(null, "from Charlie!") { AuthorName = "Charlie" }, 148new(null, "Alice again!") { AuthorName = "Alice" }, 151new(null, " Still Alice.") { AuthorName = "" }, 152new(null, " And more."), 187new(ChatRole.Assistant, "A") { MessageId = "1", AuthorName = "Alice" }, 188new(null, "B") { MessageId = "1", AuthorName = "Alice" }, 191new(null, "C") { MessageId = "1", AuthorName = "Bob" }, 194new(null, "D") { MessageId = "2", AuthorName = "Bob" }, 195new(null, "E") { MessageId = "2", AuthorName = "Bob" }, 198new(ChatRole.User, "F") { MessageId = "2", AuthorName = "Bob" }, 201new(ChatRole.Tool, "G") { MessageId = "3", AuthorName = "Charlie" }, 202new(null, "H") { MessageId = "3", AuthorName = "Charlie" }, 246new(ChatRole.Assistant, "Hello") { AuthorName = "Assistant" }, 249new(null, " world") { AuthorName = "" }, 252new(null, "!"), 255new(null, " How") { AuthorName = "" }, 256new(null, " are") { AuthorName = "" }, 259new(null, " you?") { AuthorName = null }, 281new(ChatRole.Assistant, "Hello") { MessageId = "1" }, 282new(null, " there") { MessageId = "1" }, 285new(null, " I'm Bob") { MessageId = "1", AuthorName = "Bob" }, 286new(null, " speaking") { MessageId = "1", AuthorName = "Bob" }, 289new(null, "Now Alice") { MessageId = "1", AuthorName = "Alice" }, 316new(ChatRole.Assistant, "Hello"), 317new(null, " there"), 320new(null, " from") { MessageId = "msg1" }, 321new(null, " AI") { MessageId = "msg1" }, 324new(null, "Next message") { MessageId = "msg2" }, 351new(ChatRole.Assistant, "Hello") { MessageId = "msg1" }, 352new(null, " world") { MessageId = "msg1" }, 355new(null, "!") { MessageId = "" }, 358new(null, " How"), 361new(null, " are") { MessageId = "" }, 362new(null, " you?"), 384new(null, "Hello") { MessageId = "1" }, 385new(null, " there") { MessageId = "1" }, 388new(ChatRole.Assistant, " from") { MessageId = "1" }, 389new(null, " AI") { MessageId = "1" }, 392new(ChatRole.User, "User message") { MessageId = "1" }, 419new(new ChatRole("agent1"), "Hello") { MessageId = "1" }, 420new(null, " from") { MessageId = "1" }, 421new(new ChatRole("agent1"), " agent1") { MessageId = "1" }, 424new(new ChatRole("agent2"), "Hi") { MessageId = "1" }, 425new(null, " from") { MessageId = "1" }, 426new(new ChatRole("agent2"), " agent2") { MessageId = "1" }, 429new(ChatRole.Assistant, "Assistant here") { MessageId = "1" }, 457new(null, "Hi! ") { CreatedAt = new DateTimeOffset(2023, 1, 1, 10, 0, 0, TimeSpan.Zero), AuthorName = "Assistant" }, 458new(ChatRole.Assistant, "Hello") { MessageId = "msg1", CreatedAt = new DateTimeOffset(2024, 1, 1, 10, 0, 0, TimeSpan.Zero), AuthorName = "Assistant" }, 459new(null, " from") { MessageId = "msg1", CreatedAt = new DateTimeOffset(2024, 1, 1, 10, 1, 0, TimeSpan.Zero) }, // Later CreatedAt should not overwrite first 460new(null, " AI") { MessageId = "msg1", AuthorName = "Assistant" }, // Keep same AuthorName to avoid creating new message 463new(null, "More text") { MessageId = "msg2", CreatedAt = new DateTimeOffset(2024, 1, 1, 10, 2, 0, TimeSpan.Zero), AuthorName = "Assistant" }, 466new(ChatRole.User, "How") { MessageId = "msg3", CreatedAt = new DateTimeOffset(2024, 1, 1, 11, 0, 0, TimeSpan.Zero), AuthorName = "User" }, 467new(null, " are") { MessageId = "msg3", CreatedAt = new DateTimeOffset(2024, 1, 1, 11, 1, 0, TimeSpan.Zero) }, 468new(null, " you?") { MessageId = "msg3", AuthorName = "User" }, // Keep same AuthorName 471new(ChatRole.Assistant, "I'm doing well,") { MessageId = "msg4", CreatedAt = new DateTimeOffset(2024, 1, 1, 12, 0, 0, TimeSpan.Zero) }, 472new(null, " thank you!") { MessageId = "msg4", CreatedAt = new DateTimeOffset(2024, 1, 1, 12, 2, 0, TimeSpan.Zero) }, // Later CreatedAt should not overwrite first 475new(null, " How can I help?"), 557updates.Add(new(null, text)); 578updates.Add(new() { Contents = [new DataContent("data:image/png;base64,aGVsbG8=")] }); 605new(null, "A"), 606new(null, "B"), 607new(null, "C"), 608new() { Contents = [new TextReasoningContent("D")] }, 609new() { Contents = [new TextReasoningContent("E")] }, 610new() { Contents = [new TextReasoningContent("F")] }, 611new(null, "G"), 612new(null, "H"), 613new() { Contents = [new TextReasoningContent("I")] }, 614new() { Contents = [new TextReasoningContent("J")] }, 615new(null, "K"), 616new() { Contents = [new TextReasoningContent("L")] }, 617new(null, "M"), 618new(null, "N"), 619new() { Contents = [new TextReasoningContent("O")] }, 620new() { Contents = [new TextReasoningContent("P")] }, 643new() { Contents = [new TextReasoningContent("A") { ProtectedData = "1" }] }, 644new() { Contents = [new TextReasoningContent("B") { ProtectedData = "2" }] }, 645new() { Contents = [new TextReasoningContent("C")] }, 646new() { Contents = [new TextReasoningContent("D")] }, 647new() { Contents = [new TextReasoningContent("E") { ProtectedData = "3" }] }, 648new() { Contents = [new TextReasoningContent("F") { ProtectedData = "4" }] }, 649new() { Contents = [new TextReasoningContent("G")] }, 650new() { Contents = [new TextReasoningContent("H")] }, 680new(null, "A"), 681new(null, "B"), 682new(null, "C"), 683new() { Contents = [new TextContent("D") { Annotations = [new()] }] }, 684new() { Contents = [new TextContent("E") { Annotations = [new()] }] }, 685new() { Contents = [new TextContent("F") { Annotations = [new()] }] }, 686new() { Contents = [new TextContent("G") { Annotations = [] }] }, 687new() { Contents = [new TextContent("H") { Annotations = [] }] }, 688new() { Contents = [new TextContent("I") { Annotations = [new()] }] }, 689new() { Contents = [new TextContent("J") { Annotations = [new()] }] }, 690new(null, "K"), 691new() { Contents = [new TextContent("L") { Annotations = [new()] }] }, 692new(null, "M"), 693new(null, "N"), 694new() { Contents = [new TextContent("O") { Annotations = [new()] }] }, 695new() { Contents = [new TextContent("P") { Annotations = [new()] }] }, 720new(null, "Hello, "), 721new(null, "world!"), 722new() { Contents = [new UsageContent(new() { TotalTokenCount = 42 })] }, 750new(ChatRole.Tool, "a") { MessageId = "4", CreatedAt = early }, 753new(null, "b") { CreatedAt = unixEpoch }, 756new(null, "c") { CreatedAt = beforeEpoch }, 759new(null, "d") { CreatedAt = middle }, 762new(null, "e") { CreatedAt = early }, 765new(null, "f") { CreatedAt = late }, 768new(null, "g") { CreatedAt = unixEpoch }, 771new(null, "h") { CreatedAt = null }, 819new(ChatRole.Assistant, "a") { CreatedAt = first }, 820new(null, "b") { CreatedAt = second }, 846new(null, "Let's generate"), 847new(null, " some images"), 850new() { Contents = [new ImageGenerationToolResultContent { ImageId = "img1", Outputs = [image1] }] }, 853new() { Contents = [new ImageGenerationToolResultContent { ImageId = "img2", Outputs = [image2] }] }, 856new() { Contents = [new ImageGenerationToolResultContent { ImageId = "img1", Outputs = [image3] }] }, 859new() { Contents = [new ImageGenerationToolResultContent { ImageId = "img2", Outputs = [image4] }] }, 862new(null, "Here are those generated images"), 904new() { Contents = [new ImageGenerationToolResultContent { ImageId = null, Outputs = [image1] }] }, 907new() { Contents = [new ImageGenerationToolResultContent { ImageId = "", Outputs = [image2] }] }, 910new() { Contents = [new ImageGenerationToolResultContent { ImageId = null, Outputs = [image3] }] },
ChatCompletion\ChatResponseUpdateTests.cs (9)
16ChatResponseUpdate update = new(); 33ChatResponseUpdate update = new(); 87ChatResponseUpdate update = new() 115ChatResponseUpdate original = new() 180var original = new ChatResponseUpdate 221var original = new ChatResponseUpdate 249var original = new ChatResponseUpdate(); 273var original = new ChatResponseUpdate 308var original = new ChatResponseUpdate
ChatCompletion\DelegatingChatClientTests.cs (2)
61new(ChatRole.User, "Message 1"), 62new(ChatRole.User, "Message 2")
Microsoft.Extensions.AI.Evaluation.Safety (1)
ContentSafetyChatClient.cs (1)
100yield return new ChatResponseUpdate(ChatRole.Assistant, annotationResult)
Microsoft.Extensions.AI.OpenAI (8)
OpenAIAssistantsChatClient.cs (5)
164ChatResponseUpdate ruUpdate = new() 209yield return new ChatResponseUpdate(ChatRole.Assistant, [hcitcc]) 240yield return new ChatResponseUpdate(ChatRole.Assistant, [hcitrc]) 252ChatResponseUpdate textUpdate = new(mcu.Role == MessageRole.User ? ChatRole.User : ChatRole.Assistant, mcu.Text) 301yield return new()
OpenAIChatClient.cs (2)
349ChatResponseUpdate responseUpdate = new() 416ChatResponseUpdate responseUpdate = new()
OpenAIResponsesChatClient.cs (1)
300new(lastRole, content is not null ? [content] : null)
Microsoft.Extensions.AI.OpenAI.Tests (10)
OpenAIConversionTests.cs (10)
1118var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, "Hello") 1136var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, "Hello, world!") 1165var responseUpdate = new ChatResponseUpdate 1204var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, [functionCallContent]) 1239var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, [functionCall1, functionCall2]) 1267var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, 1315var responseUpdate = new ChatResponseUpdate(inputRole, "Test message"); 1341var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, "Test") 1362new ChatResponseUpdate(ChatRole.Assistant, "Hello, ") 1369new ChatResponseUpdate(ChatRole.Assistant, "world!")
Microsoft.Extensions.AI.Tests (48)
ChatCompletion\ConfigureOptionsChatClientTests.cs (1)
38var expectedUpdates = Enumerable.Range(0, 3).Select(i => new ChatResponseUpdate()).ToArray();
ChatCompletion\DistributedCachingChatClientTest.cs (16)
250new() 263new() 268new() 314new(ChatRole.Assistant, "This"), 315new(ChatRole.Assistant, " becomes one chunk"), 316new() { Role = ChatRole.Assistant, Contents = [new FunctionCallContent("callId1", "separator")] }, 317new(ChatRole.Assistant, "... and this"), 318new(ChatRole.Assistant, " becomes another"), 319new(ChatRole.Assistant, " one."), 369new() { Role = ChatRole.Assistant, Contents = [new TextContent("Hello")] }, 370new() { Role = ChatRole.Assistant, Contents = [new TextContent(" world, ")] }, 371new() 382new() 437new(ChatRole.Assistant, "Chunk 1"), 485() => new(ChatRole.Assistant, "Chunk 1"), 524[() => new(ChatRole.Assistant, "A good result")]);
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (7)
975yield return new ChatResponseUpdate(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = messageId }; 978new ChatResponseUpdate( 1048yield return new ChatResponseUpdate(ChatRole.Assistant, [new TextContent("Text 1")]) { MessageId = messageId }; 1050yield return new ChatResponseUpdate(ChatRole.Assistant, [new TextContent("Text 2")]) { MessageId = messageId }; 1052yield return new ChatResponseUpdate(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = messageId }; 1054yield return new ChatResponseUpdate( 1061yield return new ChatResponseUpdate(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func3")]) { MessageId = messageId };
ChatCompletion\FunctionInvokingChatClientTests.cs (3)
761new() { Contents = [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["text"] = "Input 1" })] }, 762new() { Contents = [new FunctionCallContent("callId2", "Func1", new Dictionary<string, object?> { ["text"] = "Input 2" })] } 767updates = [new() { Contents = [new TextContent("OK bye")] }];
ChatCompletion\ImageGeneratingChatClientTests.cs (2)
229yield return new(ChatRole.Assistant, "test"); 359yield return new ChatResponseUpdate(ChatRole.Assistant,
ChatCompletion\LoggingChatClientTests.cs (2)
108yield return new(ChatRole.Assistant, "blue "); 109yield return new(ChatRole.Assistant, "whale");
ChatCompletion\OpenTelemetryChatClientTests.cs (10)
69yield return new ChatResponseUpdate(ChatRole.Assistant, text) 75yield return new ChatResponseUpdate 80yield return new ChatResponseUpdate 371yield return new(ChatRole.Assistant, "Assistant response text"); 372yield return new() { Contents = [new TextReasoningContent("This is reasoning")] }; 373yield return new() { Contents = [new FunctionCallContent("call-123", "GetWeather", new Dictionary<string, object?> { ["location"] = "Seattle" })] }; 374yield return new() { Contents = [new FunctionResultContent("call-123", "72°F and sunny")] }; 375yield return new() { Contents = [new DataContent(Convert.FromBase64String("aGVsbG8gd29ybGQ="), "image/png")] }; 376yield return new() { Contents = [new UriContent(new Uri("https://example.com/image.jpg"), "image/jpeg")] }; 377yield return new() { Contents = [new HostedFileContent("file-abc123")] };
ChatCompletion\ReducingChatClientTests.cs (2)
51var expectedUpdates = new[] { new ChatResponseUpdate(ChatRole.Assistant, "It's"), new ChatResponseUpdate(null, " sunny!") };
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)
340 references to ChatResponseUpdate
Aspire.Dashboard (2)
Model\Assistant\AIHelpers.cs (2)
472await foreach (var update in response.WithCancellation(responseCts.Token).ConfigureAwait(false)) 503public static IList<ChatMessage> GetMessages(ChatResponseUpdate update, Func<AIContent, bool>? filter = null)
Microsoft.Extensions.AI (53)
ChatCompletion\AnonymousDelegatingChatClient.cs (10)
29private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? _getStreamingResponseFunc; 78Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? getStreamingResponseFunc) 127public override IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 134var updates = Channel.CreateBounded<ChatResponseUpdate>(1); 144await foreach (var update in InnerClient.GetStreamingResponseAsync(messages, options, cancellationToken)) 165static async IAsyncEnumerable<ChatResponseUpdate> ReadAllAsync( 166ChannelReader<ChatResponseUpdate> channel, [EnumeratorCancellation] CancellationToken cancellationToken) 170while (channel.TryRead(out var update)) 187static async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsyncViaGetResponseAsync(Task<ChatResponse> task) 190foreach (var update in response.ToChatResponseUpdates())
ChatCompletion\CachingChatClient.cs (12)
74public override IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 84private async IAsyncEnumerable<ChatResponseUpdate> GetCachedStreamingResponseAsync( 97foreach (var chunk in chatResponse.ToChatResponseUpdates()) 105List<ChatResponseUpdate> capturedItems = []; 106await foreach (var chunk in base.GetStreamingResponseAsync(messages, options, cancellationToken)) 123foreach (var chunk in existingChunks) 132List<ChatResponseUpdate> capturedItems = []; 133await foreach (var chunk in base.GetStreamingResponseAsync(messages, options, cancellationToken)) 163/// Returns a previously cached list of <see cref="ChatResponseUpdate"/> values, if available. 170protected abstract Task<IReadOnlyList<ChatResponseUpdate>?> ReadCacheStreamingAsync(string key, CancellationToken cancellationToken); 185/// Stores a list of <see cref="ChatResponseUpdate"/> values in the underlying cache. 194protected abstract Task WriteCacheStreamingAsync(string key, IReadOnlyList<ChatResponseUpdate> value, CancellationToken cancellationToken);
ChatCompletion\ChatClientBuilder.cs (1)
144Func<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"/>, 86protected override async Task<IReadOnlyList<ChatResponseUpdate>?> ReadCacheStreamingAsync(string key, CancellationToken cancellationToken) 93return (IReadOnlyList<ChatResponseUpdate>?)JsonSerializer.Deserialize(existingJson, JsonSerializerOptions.GetTypeInfo(typeof(IReadOnlyList<ChatResponseUpdate>))); 111protected override async Task WriteCacheStreamingAsync(string key, IReadOnlyList<ChatResponseUpdate> value, CancellationToken cancellationToken) 117var 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 (7)
406public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 427List<ChatResponseUpdate> updates = []; // updates from the current response 493await foreach (var update in base.GetStreamingResponseAsync(messages, options, cancellationToken)) 497Throw.InvalidOperationException($"The inner {nameof(IChatClient)} streamed a null {nameof(ChatResponseUpdate)}."); 561var updateToYield = updates[lastYieldedUpdateIndex]; 583var updateToYield = updates[lastYieldedUpdateIndex]; 630private static ChatResponseUpdate ConvertToolResultMessageToUpdate(ChatMessage message, string? conversationId, string? messageId) =>
ChatCompletion\ImageGeneratingChatClient.cs (3)
94public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 105await foreach (var update in base.GetStreamingResponseAsync(processedMessages, processedOptions, cancellationToken)) 113var modifiedUpdate = update.Clone();
ChatCompletion\LoggingChatClient.cs (3)
100public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 115IAsyncEnumerator<ChatResponseUpdate> e; 133ChatResponseUpdate? update = null;
ChatCompletion\OpenTelemetryChatClient.cs (4)
162public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 174IAsyncEnumerable<ChatResponseUpdate> updates; 186List<ChatResponseUpdate> trackedUpdates = []; 192ChatResponseUpdate update;
ChatCompletion\ReducingChatClient.cs (2)
40public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 45await foreach (var update in base.GetStreamingResponseAsync(messages, options, cancellationToken).ConfigureAwait(false))
ToolReduction\ToolReducingChatClient.cs (2)
48public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 53await foreach (var update in base.GetStreamingResponseAsync(messages, options, cancellationToken).ConfigureAwait(false))
Microsoft.Extensions.AI.Abstractions (45)
ChatCompletion\ChatClientExtensions.cs (2)
131public static IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 151public static IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(
ChatCompletion\ChatOptions.cs (1)
192/// can be resumed if interrupted. This means that a continuation token obtained from the <see cref="ChatResponseUpdate.ContinuationToken"/>
ChatCompletion\ChatResponse.cs (5)
122/// <summary>Creates an array of <see cref="ChatResponseUpdate" /> instances that represent this <see cref="ChatResponse" />.</summary> 123/// <returns>An array of <see cref="ChatResponseUpdate" /> instances that can be used to represent this <see cref="ChatResponse" />.</returns> 124public ChatResponseUpdate[] ToChatResponseUpdates() 126ChatResponseUpdate? extra = null; 141var updates = new ChatResponseUpdate[messageCount + (extra is not null ? 1 : 0)];
ChatCompletion\ChatResponseExtensions.cs (23)
21/// Provides extension methods for working with <see cref="ChatResponse"/> and <see cref="ChatResponseUpdate"/> instances. 50/// <param name="updates">The <see cref="ChatResponseUpdate"/> instances to convert to messages and add to the list.</param> 55/// method may use <see cref="ChatResponseUpdate.MessageId"/> to determine message boundaries, as well as coalesce 59public static void AddMessages(this IList<ChatMessage> list, IEnumerable<ChatResponseUpdate> updates) 64if (updates is ICollection<ChatResponseUpdate> { Count: 0 }) 74/// <param name="update">The <see cref="ChatResponseUpdate"/> instance to convert to a message and add to the list.</param> 79/// If the <see cref="ChatResponseUpdate"/> has no content, or all its content gets excluded by <paramref name="filter"/>, then 82public static void AddMessages(this IList<ChatMessage> list, ChatResponseUpdate update, Func<AIContent, bool>? filter = null) 102/// <param name="updates">The <see cref="ChatResponseUpdate"/> instances to convert to messages and add to the list.</param> 109/// method may use <see cref="ChatResponseUpdate.MessageId"/> to determine message boundaries, as well as coalesce 114this IList<ChatMessage> list, IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken = default) 122IList<ChatMessage> list, IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken) => 126/// <summary>Combines <see cref="ChatResponseUpdate"/> instances into a single <see cref="ChatResponse"/>.</summary> 132/// <see cref="ChatMessage"/> instances. This includes using <see cref="ChatResponseUpdate.MessageId"/> to determine 137this IEnumerable<ChatResponseUpdate> updates) 143foreach (var update in updates) 153/// <summary>Combines <see cref="ChatResponseUpdate"/> instances into a single <see cref="ChatResponse"/>.</summary> 160/// <see cref="ChatMessage"/> instances. This includes using <see cref="ChatResponseUpdate.MessageId"/> to determine 165this IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken = default) 172IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken) 176await foreach (var update in updates.WithCancellation(cancellationToken).ConfigureAwait(false)) 482/// <summary>Processes the <see cref="ChatResponseUpdate"/>, incorporating its contents into <paramref name="response"/>.</summary> 485private static void ProcessUpdate(ChatResponseUpdate update, ChatResponse response)
ChatCompletion\ChatResponseUpdate.cs (10)
17/// <see cref="ChatResponseUpdate"/> is so named because it represents updates 22/// The relationship between <see cref="ChatResponse"/> and <see cref="ChatResponseUpdate"/> is 23/// codified in the <see cref="ChatResponseExtensions.ToChatResponseAsync(IAsyncEnumerable{ChatResponseUpdate}, System.Threading.CancellationToken)"/> and 38/// <summary>Initializes a new instance of the <see cref="ChatResponseUpdate"/> class.</summary> 44/// <summary>Initializes a new instance of the <see cref="ChatResponseUpdate"/> class.</summary> 52/// <summary>Initializes a new instance of the <see cref="ChatResponseUpdate"/> class.</summary> 68public ChatResponseUpdate Clone() => 111/// If a <see cref="ChatResponseUpdate"/> is created to represent some underlying object from another object 132/// This value is used when <see cref="ChatResponseExtensions.ToChatResponseAsync(IAsyncEnumerable{ChatResponseUpdate}, System.Threading.CancellationToken)"/> 133/// groups <see cref="ChatResponseUpdate"/> instances into <see cref="ChatMessage"/> instances.
ChatCompletion\DelegatingChatClient.cs (1)
48public virtual IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(
ChatCompletion\IChatClient.cs (1)
54IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(
Utilities\AIJsonUtilities.Defaults.cs (2)
116[JsonSerializable(typeof(ChatResponseUpdate))] 117[JsonSerializable(typeof(IReadOnlyList<ChatResponseUpdate>))]
Microsoft.Extensions.AI.Abstractions.Tests (55)
ChatCompletion\ChatClientExtensionsTests.cs (5)
151await foreach (var update in client.GetStreamingResponseAsync("hello", expectedOptions, cts.Token)) 238await foreach (var update in client.GetStreamingResponseAsync([], expectedChatOptions, cts.Token)) 247private static async IAsyncEnumerable<ChatResponseUpdate> YieldAsync(params ChatResponseUpdate[] updates) 250foreach (var update in updates)
ChatCompletion\ChatResponseTests.cs (7)
139ChatResponseUpdate[] updates = response.ToChatResponseUpdates(); 143ChatResponseUpdate update0 = updates[0]; 152ChatResponseUpdate update1 = updates[1]; 181ChatResponseUpdate[] updates = response.ToChatResponseUpdates(); 185ChatResponseUpdate update0 = updates[0]; 194ChatResponseUpdate update1 = updates[1]; 203ChatResponseUpdate update2 = updates[2];
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (24)
22Assert.Throws<ArgumentNullException>("updates", () => ((List<ChatResponseUpdate>)null!).ToChatResponse()); 30ChatResponseUpdate[] updates = 74ChatResponseUpdate[] updates = 130ChatResponseUpdate[] updates = 183ChatResponseUpdate[] updates = 242ChatResponseUpdate[] updates = 277ChatResponseUpdate[] updates = 312ChatResponseUpdate[] updates = 347ChatResponseUpdate[] updates = 380ChatResponseUpdate[] updates = 415ChatResponseUpdate[] updates = 453ChatResponseUpdate[] updates = 542List<ChatResponseUpdate> updates = []; 603ChatResponseUpdate[] updates = 641ChatResponseUpdate[] updates = 678ChatResponseUpdate[] updates = 718ChatResponseUpdate[] updates = 746ChatResponseUpdate[] updates = 817ChatResponseUpdate[] updates = 844ChatResponseUpdate[] updates = 901ChatResponseUpdate[] updates = 926private static async IAsyncEnumerable<ChatResponseUpdate> YieldAsync(IEnumerable<ChatResponseUpdate> updates) 928foreach (ChatResponseUpdate update in updates)
ChatCompletion\ChatResponseUpdateTests.cs (15)
16ChatResponseUpdate update = new(); 33ChatResponseUpdate update = new(); 87ChatResponseUpdate update = new() 115ChatResponseUpdate original = new() 137ChatResponseUpdate? result = JsonSerializer.Deserialize(json, TestJsonSerializerContext.Default.ChatResponseUpdate); 180var original = new ChatResponseUpdate 196var clone = original.Clone(); 221var original = new ChatResponseUpdate 228var clone = original.Clone(); 249var original = new ChatResponseUpdate(); 252var clone = original.Clone(); 273var original = new ChatResponseUpdate 282var clone = original.Clone(); 308var original = new ChatResponseUpdate 315var clone = original.Clone();
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.Evaluation.Reporting (6)
ResponseCachingChatClient.cs (3)
64protected override async Task<IReadOnlyList<ChatResponseUpdate>?> ReadCacheStreamingAsync( 70IReadOnlyList<ChatResponseUpdate>? updates = 122IReadOnlyList<ChatResponseUpdate> value,
SimpleChatClient.cs (3)
58public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 63List<ChatResponseUpdate>? updates = null; 68await foreach (ChatResponseUpdate update in
Microsoft.Extensions.AI.Evaluation.Safety (2)
ContentSafetyChatClient.cs (2)
83public async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 109await foreach (var update in
Microsoft.Extensions.AI.Integration.Tests (20)
CallCountingChatClient.cs (1)
26public override IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(
ChatClientIntegrationTests.cs (11)
116await foreach (var chunk in ChatClient.GetStreamingResponseAsync(chatHistory)) 151List<ChatResponseUpdate> chunks = []; 152await foreach (var chunk in response) 281await foreach (var chunk in response) 692await foreach (var update in chatClient.GetStreamingResponseAsync([message])) 701await foreach (var update in chatClient.GetStreamingResponseAsync([message])) 712await foreach (var update in chatClient.GetStreamingResponseAsync([message])) 870await foreach (var update in chatClient.GetStreamingResponseAsync("What's the biggest animal?")) 921await foreach (var update in chatClient.GetStreamingResponseAsync( 1293await foreach (var chunk in chatClient.GetStreamingResponseAsync(messages)) 1395public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
PromptBasedFunctionCallingChatClient.cs (2)
137public override async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 141foreach (var update in response.ToChatResponseUpdates())
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)
ToolReductionTests.cs (4)
404return EmptyAsyncEnumerable<ChatResponseUpdate>(); 410await foreach (var _ in client.GetStreamingResponseAsync( 647public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; } 652public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) =>
Microsoft.Extensions.AI.OpenAI (23)
MicrosoftExtensionsAIChatExtensions.cs (7)
124/// sequence of <see cref="ChatResponseUpdate"/> instances. 128/// <returns>A sequence of converted <see cref="ChatResponseUpdate"/> instances.</returns> 131this IAsyncEnumerable<ChatResponseUpdate> responseUpdates, [EnumeratorCancellation] CancellationToken cancellationToken = default) 135await foreach (var update in responseUpdates.WithCancellation(cancellationToken).ConfigureAwait(false)) 258/// Creates a sequence of Microsoft.Extensions.AI <see cref="ChatResponseUpdate"/> instances from the specified 264/// <returns>A sequence of converted <see cref="ChatResponseUpdate"/> instances.</returns> 266public static IAsyncEnumerable<ChatResponseUpdate> AsChatResponseUpdatesAsync(
MicrosoftExtensionsAIResponsesExtensions.cs (3)
68/// Creates a sequence of Microsoft.Extensions.AI <see cref="ChatResponseUpdate"/> instances from the specified 74/// <returns>A sequence of converted <see cref="ChatResponseUpdate"/> instances.</returns> 76public static IAsyncEnumerable<ChatResponseUpdate> AsChatResponseUpdatesAsync(
OpenAIAssistantsChatClient.cs (3)
73public async IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 164ChatResponseUpdate ruUpdate = new() 252ChatResponseUpdate textUpdate = new(mcu.Role == MessageRole.User ? ChatRole.User : ChatRole.Assistant, mcu.Text)
OpenAIChatClient.cs (4)
98public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 325internal static async IAsyncEnumerable<ChatResponseUpdate> FromOpenAIStreamingChatCompletionAsync( 349ChatResponseUpdate responseUpdate = new() 416ChatResponseUpdate responseUpdate = new()
OpenAIResponsesChatClient.cs (6)
245public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync( 279internal static async IAsyncEnumerable<ChatResponseUpdate> FromOpenAIStreamingResponseUpdatesAsync( 299ChatResponseUpdate CreateUpdate(AIContent? content = null) => 364var update = CreateUpdate(ToUsageDetails(completedUpdate.Response) is { } usage ? new UsageContent(usage) : null); 422var mcpUpdate = CreateUpdate(); 439var codeUpdate = CreateUpdate();
Microsoft.Extensions.AI.OpenAI.Tests (81)
OpenAIChatClientTests.cs (8)
232List<ChatResponseUpdate> updates = []; 233await foreach (var update in client.GetStreamingResponseAsync("hello", new() 494await foreach (var update in client.GetStreamingResponseAsync("hello", chatOptions)) 649await foreach (var update in client.GetStreamingResponseAsync("hello", chatOptions)) 1322List<ChatResponseUpdate> updates = []; 1323await foreach (var update in client.GetStreamingResponseAsync("How old is Alice?", new() 1723List<ChatResponseUpdate> updates = []; 1724await foreach (var update in client.GetStreamingResponseAsync("hello", new()
OpenAIConversionTests.cs (12)
788List<ChatResponseUpdate> updates = []; 789await foreach (var update in CreateUpdates().AsChatResponseUpdatesAsync()) 1089var asyncEnumerable = ((IAsyncEnumerable<ChatResponseUpdate>)null!).AsOpenAIStreamingChatCompletionUpdatesAsync(); 1096var updates = new List<ChatResponseUpdate>(); 1118var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, "Hello") 1136var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, "Hello, world!") 1165var responseUpdate = new ChatResponseUpdate 1204var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, [functionCallContent]) 1239var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, [functionCall1, functionCall2]) 1267var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, 1315var responseUpdate = new ChatResponseUpdate(inputRole, "Test message"); 1341var responseUpdate = new ChatResponseUpdate(ChatRole.Assistant, "Test")
OpenAIResponseClientIntegrationTests.cs (4)
297await foreach (var update in ChatClient.GetStreamingResponseAsync("What is the capital of France?", chatOptions)) 320await foreach (var update in ChatClient.GetStreamingResponseAsync("What is the capital of France?", chatOptions)) 336await foreach (var update in ChatClient.GetStreamingResponseAsync([], chatOptions)) 361await foreach (var update in chatClient.GetStreamingResponseAsync("What time is it?", chatOptions))
OpenAIResponseClientTests.cs (57)
294List<ChatResponseUpdate> updates = []; 295await foreach (var update in client.GetStreamingResponseAsync("Calculate the sum of the first 5 positive integers.", new() 427List<ChatResponseUpdate> updates = []; 428await foreach (var update in client.GetStreamingResponseAsync("Solve this problem step by step.", new() 470var assistantUpdate = updates.First(u => u.Role == ChatRole.Assistant && !string.IsNullOrEmpty(u.Text)); 558List<ChatResponseUpdate> updates = []; 559await foreach (var update in client.GetStreamingResponseAsync("hello", new() 795List<ChatResponseUpdate> updates = []; 796await foreach (var update in client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "Search the web for the temperature today in Fremont")], chatOptions)) 2507List<ChatResponseUpdate> updates = []; 2508await foreach (var update in client.GetStreamingResponseAsync("hello", new() 2600List<ChatResponseUpdate> updates = []; 2601await foreach (var update in client.GetStreamingResponseAsync([], chatOptions)) 2667await foreach (var update in client.GetStreamingResponseAsync("Please book a hotel for me", chatOptions)) 3463List<ChatResponseUpdate> updates = []; 3464await foreach (var update in client.GetStreamingResponseAsync("hello", new() 3544List<ChatResponseUpdate> updates = []; 3545await foreach (var update in client.GetStreamingResponseAsync("hello", new() 3625List<ChatResponseUpdate> updates = []; 3626await foreach (var update in client.GetStreamingResponseAsync("hello", new() 3703List<ChatResponseUpdate> updates = []; 3704await foreach (var update in client.GetStreamingResponseAsync("hello", new() 3900List<ChatResponseUpdate> updates = []; 3901await foreach (var update in client.GetStreamingResponseAsync("hello", new() 4782List<ChatResponseUpdate> updates = []; 4783await foreach (var update in client.GetStreamingResponseAsync("test")) 4817List<ChatResponseUpdate> updates = []; 4818await foreach (var update in client.GetStreamingResponseAsync("test")) 4852List<ChatResponseUpdate> updates = []; 4853await foreach (var update in client.GetStreamingResponseAsync("test")) 4890List<ChatResponseUpdate> updates = []; 4891await foreach (var update in client.GetStreamingResponseAsync("test")) 4928List<ChatResponseUpdate> updates = []; 4929await foreach (var update in client.GetStreamingResponseAsync("test")) 4934var refusalUpdate = updates.FirstOrDefault(u => u.Contents.Any(c => c is ErrorContent ec && ec.ErrorCode == "Refusal")); 4986List<ChatResponseUpdate> updates = []; 4987await foreach (var update in client.GetStreamingResponseAsync("test")) 4992var errorUpdate = updates.FirstOrDefault(u => u.Contents.Any(c => c is ErrorContent)); 5029List<ChatResponseUpdate> updates = []; 5030await foreach (var update in client.GetStreamingResponseAsync("test")) 5035var errorUpdate = updates.FirstOrDefault(u => u.Contents.Any(c => c is ErrorContent)); 5072List<ChatResponseUpdate> updates = []; 5073await foreach (var update in client.GetStreamingResponseAsync("test")) 5078var errorUpdate = updates.FirstOrDefault(u => u.Contents.Any(c => c is ErrorContent)); 5115List<ChatResponseUpdate> updates = []; 5116await foreach (var update in client.GetStreamingResponseAsync("test")) 5121var annotatedUpdate = updates.FirstOrDefault(u => u.Contents.Any(c => c.Annotations?.Count > 0)); 5482List<ChatResponseUpdate> updates = []; 5492await foreach (var update in client.GetStreamingResponseAsync("Generate an image of a dog", new ChatOptions 5503var createdUpdate = updates.First(u => u.CreatedAt.HasValue); 5508var toolCallUpdate = updates.FirstOrDefault(u => 5515var partialImageUpdate = updates.FirstOrDefault(u => 5521var completionUpdate = updates.FirstOrDefault(u => 5599List<ChatResponseUpdate> updates = []; 5610await foreach (var update in client.GetStreamingResponseAsync("Generate an image of a sunset", new ChatOptions 5630var partialUpdate = partialImageUpdates.FirstOrDefault(u => 5667var toolCallUpdate = updates.FirstOrDefault(u =>
Microsoft.Extensions.AI.Tests (46)
ChatCompletion\ConfigureOptionsChatClientTests.cs (3)
89static async IAsyncEnumerable<ChatResponseUpdate> YieldUpdates(ChatResponseUpdate[] updates) 91foreach (var update in updates)
ChatCompletion\DistributedCachingChatClientTest.cs (13)
248List<ChatResponseUpdate> actualUpdate = 261List<ChatResponseUpdate> expectedCachedResponse = 312List<ChatResponseUpdate> expectedResponse = 345ChatResponseUpdate update = Assert.Single(await ToListAsync(result2)); 367List<ChatResponseUpdate> expectedResponse = 417var item = Assert.Single(items); 435List<ChatResponseUpdate> expectedResponse = 483return ToAsyncEnumerableAsync<ChatResponseUpdate>(Task.CompletedTask, 522return ToAsyncEnumerableAsync<ChatResponseUpdate>( 831private static async Task AssertResponsesEqualAsync(IReadOnlyList<ChatResponseUpdate> expected, IAsyncEnumerable<ChatResponseUpdate> actual) 835foreach (var expectedItem in expected) 839var actualItem = actualEnumerator.Current;
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (4)
967async IAsyncEnumerable<ChatResponseUpdate> YieldInnerClientUpdates( 992await foreach (var update in updates) 1040async IAsyncEnumerable<ChatResponseUpdate> YieldInnerClientUpdates( 1070await foreach (var update in updates)
ChatCompletion\FunctionInvokingChatClientTests.cs (2)
755List<ChatResponseUpdate> updates; 770foreach (var update in updates)
ChatCompletion\ImageGeneratingChatClientTests.cs (6)
226static async IAsyncEnumerable<ChatResponseUpdate> GetUpdatesAsync() 241await foreach (var update in client.GetStreamingResponseAsync([new(ChatRole.User, "test")], chatOptions)) 356async IAsyncEnumerable<ChatResponseUpdate> GetUpdatesAsync() 372var updates = new List<ChatResponseUpdate>(); 373await foreach (var responseUpdate in client.GetStreamingResponseAsync([new(ChatRole.User, "test")], chatOptions)) 380var update = updates[0];
ChatCompletion\LoggingChatClientTests.cs (2)
105static async IAsyncEnumerable<ChatResponseUpdate> GetUpdatesAsync() 117await foreach (var update in client.GetStreamingResponseAsync(
ChatCompletion\OpenTelemetryChatClientTests.cs (4)
61async static IAsyncEnumerable<ChatResponseUpdate> CallbackAsync( 146await foreach (var update in chatClient.GetStreamingResponseAsync(messages, options)) 367async static IAsyncEnumerable<ChatResponseUpdate> CallbackAsync( 405await foreach (var update in chatClient.GetStreamingResponseAsync(messages))
ChatCompletion\ReducingChatClientTests.cs (2)
73var updates = new List<ChatResponseUpdate>(); 74await foreach (var update in client.GetStreamingResponseAsync(originalMessages))
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.Extensions.DataIngestion.Tests (2)
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.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(
Microsoft.ML.GenAI.Samples (2)
MEAI\Llama3_1.cs (1)
49await foreach (var response in client.GetStreamingResponseAsync([chatMessage]))
MEAI\Phi3.cs (1)
39await foreach (var response in client.GetStreamingResponseAsync([chatMessage]))