7 writes to Contents
Microsoft.Extensions.AI (1)
ChatCompletion\CachingChatClient.cs (1)
141Contents = [coalescedContent],
Microsoft.Extensions.AI.Abstractions.Tests (5)
ChatCompletion\StreamingChatCompletionUpdateTests.cs (5)
49update.Contents = newList; 51update.Contents = null; 92Contents = 137Contents = 169Contents =
Microsoft.Extensions.AI.Tests (1)
ChatCompletion\OpenTelemetryChatClientTests.cs (1)
80Contents = [new UsageContent(new()
68 references to Contents
Microsoft.Extensions.AI (9)
ChatCompletion\CachingChatClient.cs (5)
97update.Contents.Count != 1 || 98update.Contents[0] is not TextContent textContent) 109next.Contents.Count != 1 || 110next.Contents[0] is not TextContent || 163TextContent nextContent = (TextContent)next.Contents[0];
ChatCompletion\FunctionInvokingChatClient.cs (1)
290foreach (var item in chunk.Contents.OfType<FunctionCallContent>())
ChatCompletion\OpenTelemetryChatClient.cs (3)
232items.AddRange(update.Contents); 233modelId ??= update.Contents.FirstOrDefault(c => c.ModelId is not null)?.ModelId; 244Usage = updates.SelectMany(c => c.Contents).OfType<UsageContent>().LastOrDefault()?.Details,
Microsoft.Extensions.AI.Abstractions (5)
ChatCompletion\StreamingChatCompletionUpdate.cs (5)
39/// Gets or sets the text of the first <see cref="TextContent"/> instance in <see cref="Contents" />. 42/// If there is no <see cref="TextContent"/> instance in <see cref="Contents" />, then the getter returns <see langword="null" />, 48get => Contents.OfType<TextContent>().FirstOrDefault()?.Text; 51if (Contents.OfType<TextContent>().FirstOrDefault() is { } textContent) 57Contents.Add(new TextContent(value));
Microsoft.Extensions.AI.Abstractions.Tests (31)
ChatCompletion\StreamingChatCompletionUpdateTests.cs (31)
20Assert.Empty(update.Contents); 43Assert.Empty(update.Contents); 44update.Contents.Add(new TextContent("text")); 45Assert.Single(update.Contents); 47Assert.Same(update.Contents, update.Contents); 50Assert.Same(newList, update.Contents); 52Assert.NotNull(update.Contents); 53Assert.Empty(update.Contents); 103TextContent textContent = Assert.IsType<TextContent>(update.Contents[3]); 111Assert.Same(textContent, update.Contents[3]); 122Assert.Empty(update.Contents); 127Assert.Single(update.Contents); 128TextContent textContent = Assert.IsType<TextContent>(update.Contents[0]); 144Assert.Equal(3, update.Contents.Count); 148Assert.Equal(4, update.Contents.Count); 152Assert.Equal(4, update.Contents.Count); 154update.Contents.RemoveAt(3); 155Assert.Equal(3, update.Contents.Count); 159Assert.Equal(4, update.Contents.Count); 190Assert.Equal(5, result.Contents.Count); 192Assert.IsType<TextContent>(result.Contents[0]); 193Assert.Equal("text-1", ((TextContent)result.Contents[0]).Text); 195Assert.IsType<ImageContent>(result.Contents[1]); 196Assert.Equal("http://localhost/image", ((ImageContent)result.Contents[1]).Uri); 198Assert.IsType<FunctionCallContent>(result.Contents[2]); 199Assert.Equal("fc1", ((FunctionCallContent)result.Contents[2]).Name); 201Assert.IsType<DataContent>(result.Contents[3]); 202Assert.Equal("data"u8.ToArray(), ((DataContent)result.Contents[3]).Data?.ToArray()); 204Assert.IsType<TextContent>(result.Contents[4]); 205Assert.Equal("text-2", ((TextContent)result.Contents[4]).Text);
Microsoft.Extensions.AI.AzureAIInference (2)
AzureAIInferenceChatClient.cs (2)
183completionUpdate.Contents.Add(new TextContent(update) 236completionUpdate.Contents.Add(callContent);
Microsoft.Extensions.AI.AzureAIInference.Tests (4)
AzureAIInferenceChatClientTests.cs (4)
204Assert.All(updates[i].Contents, u => Assert.Equal("gpt-4o-mini-2024-07-18", u.ModelId)); 206Assert.Equal(i < 10 ? 1 : 0, updates[i].Contents.Count); 519Assert.All(updates[i].Contents, u => Assert.Equal("gpt-4o-mini-2024-07-18", u.ModelId)); 524FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(Assert.Single(updates[updates.Count - 1].Contents));
Microsoft.Extensions.AI.Integration.Tests (1)
ChatClientIntegrationTests.cs (1)
122UsageContent usage = chunks.SelectMany(c => c.Contents).OfType<UsageContent>().Single();
Microsoft.Extensions.AI.Ollama (2)
OllamaChatClient.cs (2)
140update.Contents.Add(new TextContent(message.Content) { ModelId = modelId }); 145update.Contents.Add(new UsageContent(usage) { ModelId = modelId });
Microsoft.Extensions.AI.Ollama.Tests (5)
OllamaChatClientTests.cs (5)
173Assert.Equal(i < updates.Count - 1 ? 1 : 2, updates[i].Contents.Count); 175Assert.All(updates[i].Contents, u => Assert.Equal("llama3.1", u.ModelId)); 181Assert.Equal(2, updates[updates.Count - 1].Contents.Count); 182Assert.IsType<TextContent>(updates[updates.Count - 1].Contents[0]); 183UsageContent usage = Assert.IsType<UsageContent>(updates[updates.Count - 1].Contents[1]);
Microsoft.Extensions.AI.OpenAI (3)
OpenAIChatClient.cs (3)
244completionUpdate.Contents.Add(aiContent); 295completionUpdate.Contents.Add(new UsageContent(usageDetails) 328completionUpdate.Contents.Add(callContent);
Microsoft.Extensions.AI.OpenAI.Tests (6)
OpenAIChatClientTests.cs (6)
250Assert.All(updates[i].Contents, u => Assert.Equal("gpt-4o-mini-2024-07-18", u.ModelId)); 254Assert.Equal(i == 10 ? 0 : 1, updates[i].Contents.Count); 258UsageContent usage = updates.SelectMany(u => u.Contents).OfType<UsageContent>().Single(); 568Assert.All(updates[i].Contents, u => Assert.Equal("gpt-4o-mini-2024-07-18", u.ModelId)); 575FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(Assert.Single(updates[updates.Count - 1].Contents)); 580UsageContent usage = updates.SelectMany(u => u.Contents).OfType<UsageContent>().Single();