56 instantiations of ChatRole
Microsoft.Extensions.AI (1)
Common\OtelMessageSerializer.cs (1)
58
message.Role == ChatRole.System || message.Role == new
ChatRole
("developer") ? "system" :
Microsoft.Extensions.AI.Abstractions (5)
ChatCompletion\ChatRole.cs (5)
22
public static ChatRole System { get; } =
new
("system");
25
public static ChatRole Assistant { get; } =
new
("assistant");
28
public static ChatRole User { get; } =
new
("user");
31
public static ChatRole Tool { get; } =
new
("tool");
96
new
(reader.GetString()!);
Microsoft.Extensions.AI.Abstractions.Tests (42)
ChatCompletion\ChatResponseTests.cs (3)
241
ChatResponse response = new(new ChatMessage(new
ChatRole
("customRole"), "Text") { MessageId = "someMessage" })
273
new ChatMessage(new
ChatRole
("customRole"), "Text")
278
new ChatMessage(new
ChatRole
("secondRole"), "Another message")
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (11)
84
new(
new
("human"), "i") { MessageId = "6" },
85
new(
new
("human"), "j") { MessageId = "7" },
86
new(
new
("human"), "k") { MessageId = "7" },
115
Assert.Equal(new
ChatRole
("human"), response.Messages[6].Role);
118
Assert.Equal(new
ChatRole
("human"), response.Messages[7].Role);
418
new(new
ChatRole
("agent1"), "Hello") { MessageId = "1" },
420
new(new
ChatRole
("agent1"), " agent1") { MessageId = "1" },
423
new(new
ChatRole
("agent2"), "Hi") { MessageId = "1" },
425
new(new
ChatRole
("agent2"), " agent2") { MessageId = "1" },
438
Assert.Equal(new
ChatRole
("agent1"), response.Messages[0].Role);
441
Assert.Equal(new
ChatRole
("agent2"), response.Messages[1].Role);
ChatCompletion\ChatRoleTests.cs (28)
15
Assert.Equal("abc", new
ChatRole
("abc").Value);
21
Assert.Throws<ArgumentNullException>("value", () => new
ChatRole
(null!));
22
Assert.Throws<ArgumentException>("value", () => new
ChatRole
(" "));
28
Assert.True(new
ChatRole
("abc").Equals(new
ChatRole
("ABC")));
29
Assert.True(new
ChatRole
("abc").Equals((object)new
ChatRole
("ABC")));
30
Assert.True(new
ChatRole
("abc") == new
ChatRole
("ABC"));
31
Assert.False(new
ChatRole
("abc") != new
ChatRole
("ABC"));
33
Assert.False(new
ChatRole
("abc").Equals(new
ChatRole
("def")));
34
Assert.False(new
ChatRole
("abc").Equals((object)new
ChatRole
("def")));
35
Assert.False(new
ChatRole
("abc").Equals(null));
36
Assert.False(new
ChatRole
("abc").Equals("abc"));
37
Assert.False(new
ChatRole
("abc") == new
ChatRole
("def"));
38
Assert.True(new
ChatRole
("abc") != new
ChatRole
("def"));
40
Assert.Equal(new
ChatRole
("abc").GetHashCode(), new
ChatRole
("abc").GetHashCode());
41
Assert.Equal(new
ChatRole
("abc").GetHashCode(), new
ChatRole
("ABC").GetHashCode());
42
Assert.NotEqual(new
ChatRole
("abc").GetHashCode(), new
ChatRole
("def").GetHashCode()); // not guaranteed
57
ChatRole role =
new
("abc");
Microsoft.Extensions.AI.OpenAI (2)
OpenAIChatClient.cs (1)
765
_ => new
ChatRole
(role.ToString()),
OpenAIClientExtensions.cs (1)
39
internal static ChatRole ChatRoleDeveloper { get; } = new
ChatRole
("developer");
Microsoft.Extensions.AI.OpenAI.Tests (2)
OpenAIResponseClientTests.cs (2)
1723
new ChatMessage(new
ChatRole
(role), [approvalRequest.CreateResponse(true)]), chatOptions);
1871
new(new
ChatRole
(role), [anchorContent, codeInterpreterApproval, imageGenApproval]),
Microsoft.Extensions.AI.Tests (4)
ChatCompletion\DistributedCachingChatClientTest.cs (4)
49
new ChatMessage(new
ChatRole
("fakeRole"), "This is some content")
252
Role = new
ChatRole
("fakeRole2"),
265
Role = new
ChatRole
("fakeRole2"),
686
new ChatMessage(new
ChatRole
("fakeRole"),
1476 references to ChatRole
Aspire.OpenAI.Tests (1)
AspireOpenAIClientBuilderChatClientExtensionsTests.cs (1)
275
=> Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Hello from middleware")));
DotNetInvocationHostedAgent (3)
EchoAIAgent.cs (3)
23
var response = new AgentResponse(new ChatMessage(
ChatRole
.Assistant, $"Echo: {GetInputText(messages)}"));
35
Role =
ChatRole
.Assistant,
67
if (message.Role ==
ChatRole
.User)
Microsoft.AspNetCore.Components.AI (9)
Blocks\ContentBlock.cs (1)
35
public
ChatRole
? Role { get; internal set; }
Components\MessageInput.cs (1)
158
await _agentContext.SendMessageAsync(new ChatMessage(
ChatRole
.User, text));
Components\MessageListContext.cs (1)
47
var role = block.Role ==
ChatRole
.User ? "user" : "assistant";
Engine\AgentContext.cs (5)
65
return SendMessageAsync(new ChatMessage(
ChatRole
.User, text), cancellationToken);
113
if (block.Role ==
ChatRole
.User)
318
var
role = result is FunctionResultContent ?
ChatRole
.Tool :
ChatRole
.User;
Engine\UIAgent.cs (1)
258
if (update.Role ==
ChatRole
.User)
Microsoft.Extensions.AI (19)
ChatCompletion\ChatClientStructuredOutputExtensions.cs (3)
61
GetResponseAsync<T>(chatClient, new ChatMessage(
ChatRole
.User, chatMessage), options, useJsonSchemaResponseFormat, cancellationToken);
101
GetResponseAsync<T>(chatClient, new ChatMessage(
ChatRole
.User, chatMessage), serializerOptions, options, useJsonSchemaResponseFormat, cancellationToken);
190
promptAugmentation = new ChatMessage(
ChatRole
.User, $$"""
ChatCompletion\FunctionInvokingChatClient.cs (3)
1276
return [new(
ChatRole
.Tool, contents)];
1385
new ChatMessage(
ChatRole
.Tool, rejectedFunctionCallResults) { MessageId = toolMessageId } :
1650
ChatMessage functionCallMessage = resultWithRequestMessage.RequestMessage?.Clone() ?? new() { Role =
ChatRole
.Assistant };
ChatCompletion\OpenTelemetryImageGenerator.cs (2)
190
OtelMessageSerializer.SerializeChatMessages([new(
ChatRole
.User, content)]));
237
OtelMessageSerializer.SerializeChatMessages([new(
ChatRole
.Assistant, contents)]));
ChatReduction\MessageCountingChatReducer.cs (1)
53
if (message.Role ==
ChatRole
.System)
ChatReduction\SummarizingChatReducer.cs (5)
104
if (message.Role ==
ChatRole
.System)
173
if (unsummarizedMessages[i].Role ==
ChatRole
.User)
193
yield return new ChatMessage(
ChatRole
.Assistant, summary);
219
yield return new ChatMessage(
ChatRole
.Assistant, summary);
231
yield return new ChatMessage(
ChatRole
.System, summarizationPrompt);
ChatRouting\SemanticRoutingChatClient.cs (1)
178
static message => message.Role ==
ChatRole
.User)?.Text;
Common\OtelMessageSerializer.cs (3)
56
message.Role ==
ChatRole
.Assistant ? "assistant" :
57
message.Role ==
ChatRole
.Tool ? "tool" :
58
message.Role ==
ChatRole
.System || message.Role == new ChatRole("developer") ? "system" :
SpeechToText\OpenTelemetrySpeechToTextClient.cs (1)
350
OtelMessageSerializer.SerializeChatMessages([new(
ChatRole
.Assistant, response.Contents)]));
Microsoft.Extensions.AI.Abstractions (41)
ChatCompletion\ChatClientExtensions.cs (2)
100
return client.GetResponseAsync(new ChatMessage(
ChatRole
.User, chatMessage), options, cancellationToken);
140
return client.GetStreamingResponseAsync(new ChatMessage(
ChatRole
.User, chatMessage), options, cancellationToken);
ChatCompletion\ChatMessage.cs (5)
21
/// <remarks>The instance defaults to having a role of <see cref="
ChatRole
.User"/>.</remarks>
30
public ChatMessage(
ChatRole
role, string? content)
38
public ChatMessage(
ChatRole
role, IList<AIContent>? contents)
73
public
ChatRole
Role { get; set; } =
ChatRole
.User;
ChatCompletion\ChatResponseExtensions.cs (5)
90
list.Add(new(update.Role ??
ChatRole
.Assistant, contentsList)
556
message = new(
ChatRole
.Assistant, []);
580
if (update.Role is
ChatRole
role)
670
private static bool NotNullOrEqual(
ChatRole
? r1,
ChatRole
? r2) =>
ChatCompletion\ChatResponseUpdate.cs (3)
47
public ChatResponseUpdate(
ChatRole
? role, string? content)
55
public ChatResponseUpdate(
ChatRole
? role, IList<AIContent>? contents)
93
public
ChatRole
? Role { get; set; }
ChatCompletion\ChatRole.cs (24)
19
public readonly struct ChatRole : IEquatable<
ChatRole
>
22
public static
ChatRole
System { get; } = new("system");
25
public static
ChatRole
Assistant { get; } = new("assistant");
28
public static
ChatRole
User { get; } = new("user");
31
public static
ChatRole
Tool { get; } = new("tool");
34
/// Gets the value associated with this <see cref="
ChatRole
"/>.
42
/// Initializes a new instance of the <see cref="
ChatRole
"/> struct with the provided value.
44
/// <param name="value">The value to associate with this <see cref="
ChatRole
"/>.</param>
52
/// Returns a value indicating whether two <see cref="
ChatRole
"/> instances are equivalent, as determined by a
55
/// <param name="left">The first <see cref="
ChatRole
"/> instance to compare.</param>
56
/// <param name="right">The second <see cref="
ChatRole
"/> instance to compare.</param>
58
public static bool operator ==(
ChatRole
left,
ChatRole
right)
64
/// Returns a value indicating whether two <see cref="
ChatRole
"/> instances are not equivalent, as determined by a
67
/// <param name="left">The first <see cref="
ChatRole
"/> instance to compare. </param>
68
/// <param name="right">The second <see cref="
ChatRole
"/> instance to compare. </param>
70
public static bool operator !=(
ChatRole
left,
ChatRole
right)
77
=> obj is
ChatRole
otherRole && Equals(otherRole);
80
public bool Equals(
ChatRole
other)
90
/// <summary>Provides a <see cref="JsonConverter{ChatRole}"/> for serializing <see cref="
ChatRole
"/> instances.</summary>
92
public sealed class Converter : JsonConverter<
ChatRole
>
95
public override
ChatRole
Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
99
public override void Write(Utf8JsonWriter writer,
ChatRole
value, JsonSerializerOptions options) =>
Realtime\RealtimeConversationItem.cs (2)
26
public RealtimeConversationItem(IList<AIContent> contents, string? id = null,
ChatRole
? role = null)
49
public
ChatRole
? Role { get; set; }
Microsoft.Extensions.AI.Abstractions.Tests (121)
ChatCompletion\ChatClientExtensionsTests.cs (4)
112
Assert.Equal(
ChatRole
.User, m.Role);
139
Assert.Equal(
ChatRole
.User, m.Role);
146
return YieldAsync([new ChatResponseUpdate(
ChatRole
.Assistant, "world")]);
233
return YieldAsync([new ChatResponseUpdate(
ChatRole
.Assistant, "world")]);
ChatCompletion\ChatMessageTests.cs (11)
21
Assert.Equal(
ChatRole
.User, message.Role);
36
ChatMessage message = new(
ChatRole
.Assistant, text);
38
Assert.Equal(
ChatRole
.Assistant, message.Role);
68
message = new(
ChatRole
.User, (string?)null);
72
message = new(
ChatRole
.User, (IList<AIContent>?)null);
76
message = new ChatMessage(
ChatRole
.User, Array.Empty<AIContent>());
93
ChatMessage message = new(
ChatRole
.System, content);
95
Assert.Equal(
ChatRole
.System, message.Role);
144
ChatMessage message = new(
ChatRole
.User,
276
var chatMessage = new ChatMessage(
ChatRole
.User, contents: items)
377
Assert.Equal(
ChatRole
.User, result.Role);
ChatCompletion\ChatResponseTests.cs (6)
87
ChatResponse original = new(new ChatMessage(
ChatRole
.Assistant, "the message"))
104
Assert.Equal(
ChatRole
.Assistant, result.Messages.Single().Role);
124
ChatResponse original = new(new ChatMessage(
ChatRole
.Assistant, "the message"))
142
Assert.Equal(
ChatRole
.Assistant, result.Messages.Single().Role);
204
Assert.Equal(
ChatRole
.Assistant, result.Messages[0].Role);
233
ChatResponse response = new(new ChatMessage(
ChatRole
.Assistant, $"This is a test.{Environment.NewLine}It's multiple lines."));
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (60)
31
new(
ChatRole
.Assistant, "Hello") { ResponseId = "someResponse", MessageId = "12345", CreatedAt = new DateTimeOffset(2024, 2, 3, 4, 5, 6, TimeSpan.Zero), ModelId = "model123" },
32
new(
ChatRole
.Assistant, ", ") { AuthorName = "Someone", AdditionalProperties = new() { ["a"] = "b" } },
56
Assert.Equal(
ChatRole
.Assistant, message.Role);
76
new(
ChatRole
.Assistant, "a") { MessageId = "1" },
77
new(
ChatRole
.Assistant, "b") { MessageId = "2" },
78
new(
ChatRole
.User, "c") { MessageId = "2" },
79
new(
ChatRole
.User, "d") { MessageId = "2" },
80
new(
ChatRole
.Assistant, "e") { MessageId = "3" },
81
new(
ChatRole
.Tool, "f") { MessageId = "4" },
82
new(
ChatRole
.Tool, "g") { MessageId = "4" },
83
new(
ChatRole
.Tool, "h") { MessageId = "5" },
97
Assert.Equal(
ChatRole
.Assistant, response.Messages[0].Role);
100
Assert.Equal(
ChatRole
.Assistant, response.Messages[1].Role);
103
Assert.Equal(
ChatRole
.User, response.Messages[2].Role);
106
Assert.Equal(
ChatRole
.Assistant, response.Messages[3].Role);
109
Assert.Equal(
ChatRole
.Tool, response.Messages[4].Role);
112
Assert.Equal(
ChatRole
.Tool, response.Messages[5].Role);
121
Assert.Equal(
ChatRole
.Assistant, response.Messages[8].Role);
133
new(
ChatRole
.Assistant, "Hello ") { AuthorName = "Alice" },
143
new(
ChatRole
.Assistant, "Greetings ") { AuthorName = "Charlie" },
162
Assert.Equal(
ChatRole
.Assistant, response.Messages[0].Role);
166
Assert.Equal(
ChatRole
.Assistant, response.Messages[1].Role);
170
Assert.Equal(
ChatRole
.Assistant, response.Messages[2].Role);
174
Assert.Equal(
ChatRole
.Assistant, response.Messages[3].Role);
186
new(
ChatRole
.Assistant, "A") { MessageId = "1", AuthorName = "Alice" },
197
new(
ChatRole
.User, "F") { MessageId = "2", AuthorName = "Bob" },
200
new(
ChatRole
.Tool, "G") { MessageId = "3", AuthorName = "Charlie" },
212
Assert.Equal(
ChatRole
.Assistant, response.Messages[0].Role);
217
Assert.Equal(
ChatRole
.Assistant, response.Messages[1].Role);
222
Assert.Equal(
ChatRole
.Assistant, response.Messages[2].Role);
227
Assert.Equal(
ChatRole
.User, response.Messages[3].Role);
232
Assert.Equal(
ChatRole
.Tool, response.Messages[4].Role);
245
new(
ChatRole
.Assistant, "Hello") { AuthorName = "Assistant" },
268
Assert.Equal(
ChatRole
.Assistant, message.Role);
280
new(
ChatRole
.Assistant, "Hello") { MessageId = "1" },
315
new(
ChatRole
.Assistant, "Hello"),
334
Assert.Equal(
ChatRole
.Assistant, response.Messages[0].Role);
338
Assert.Equal(
ChatRole
.Assistant, response.Messages[1].Role);
350
new(
ChatRole
.Assistant, "Hello") { MessageId = "msg1" },
371
Assert.Equal(
ChatRole
.Assistant, message.Role);
387
new(
ChatRole
.Assistant, " from") { MessageId = "1" },
391
new(
ChatRole
.User, "User message") { MessageId = "1" },
401
Assert.Equal(
ChatRole
.Assistant, response.Messages[0].Role);
405
Assert.Equal(
ChatRole
.User, response.Messages[1].Role);
428
new(
ChatRole
.Assistant, "Assistant here") { MessageId = "1" },
444
Assert.Equal(
ChatRole
.Assistant, response.Messages[2].Role);
456
new(
ChatRole
.Assistant, "First message") { MessageId = "msg1", AdditionalProperties = new() { ["key1"] = "value1" } },
460
new(
ChatRole
.User, "Second message") { MessageId = "msg2", AdditionalProperties = new() { ["key1"] = "different_value1" } },
464
new(
ChatRole
.Assistant, "Third message") { MessageId = "msg3" },
508
new(
ChatRole
.Assistant, "Hello") { MessageId = "msg1", AdditionalProperties = new() { ["messageKey"] = "messageValue" } },
542
new(
ChatRole
.Assistant, "Hello") { MessageId = "msg1", CreatedAt = new DateTimeOffset(2024, 1, 1, 10, 0, 0, TimeSpan.Zero), AuthorName = "Assistant" },
550
new(
ChatRole
.User, "How") { MessageId = "msg3", CreatedAt = new DateTimeOffset(2024, 1, 1, 11, 0, 0, TimeSpan.Zero), AuthorName = "User" },
555
new(
ChatRole
.Assistant, "I'm doing well,") { MessageId = "msg4", CreatedAt = new DateTimeOffset(2024, 1, 1, 12, 0, 0, TimeSpan.Zero) },
572
Assert.Equal(
ChatRole
.Assistant, message1.Role);
580
Assert.Equal(
ChatRole
.Assistant, message2.Role);
588
Assert.Equal(
ChatRole
.User, message3.Role);
596
Assert.Equal(
ChatRole
.Assistant, message4.Role);
834
new(
ChatRole
.Tool, "a") { MessageId = "4", CreatedAt = early },
864
Assert.Equal(
ChatRole
.Tool, response.Messages[0].Role);
903
new(
ChatRole
.Assistant, "a") { CreatedAt = first },
ChatCompletion\ChatResponseUpdateTests.cs (15)
40
update.Role =
ChatRole
.Assistant;
41
Assert.Equal(
ChatRole
.Assistant, update.Role);
89
Role =
ChatRole
.User,
118
Role =
ChatRole
.Assistant,
160
Assert.Equal(
ChatRole
.Assistant, result.Role);
181
Role =
ChatRole
.Assistant,
224
Assert.Equal(
ChatRole
.Assistant, result.Role);
264
Role =
ChatRole
.Assistant,
296
Role =
ChatRole
.User,
305
Assert.Equal(
ChatRole
.User, clone.Role);
349
Role =
ChatRole
.User,
357
clone.Role =
ChatRole
.Assistant;
363
Assert.Equal(
ChatRole
.User, original.Role);
369
Assert.Equal(
ChatRole
.Assistant, clone.Role);
439
Assert.Equal(
ChatRole
.Assistant, result.Role);
ChatCompletion\ChatRoleTests.cs (6)
48
Assert.Equal("assistant",
ChatRole
.Assistant.Value);
49
Assert.Equal("system",
ChatRole
.System.Value);
50
Assert.Equal("tool",
ChatRole
.Tool.Value);
51
Assert.Equal("user",
ChatRole
.User.Value);
57
ChatRole
role = new("abc");
61
ChatRole
? result = JsonSerializer.Deserialize(json, TestJsonSerializerContext.Default.ChatRole);
ChatCompletion\DelegatingChatClientTests.cs (2)
61
new(
ChatRole
.User, "Message 1"),
62
new(
ChatRole
.User, "Message 2")
ChatRouting\RoutingChatClientTests.cs (6)
23
var messages = new ChatMessage[] { new(
ChatRole
.User, "hi") };
26
ChatResponse expected = new(new ChatMessage(
ChatRole
.Assistant, "ok"));
76
() => router.GetResponseAsync([new(
ChatRole
.User, "hi")]));
88
() => router.GetResponseAsync([new(
ChatRole
.User, "hi")]));
90
() => CollectAsync(router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")])));
113
_ = await router.GetResponseAsync([new(
ChatRole
.User, "hi")]);
ChatRouting\RoutingContextTests.cs (1)
15
var messages = new List<ChatMessage> { new(
ChatRole
.User, "initial") };
Contents\AIContentTests.cs (1)
65
ChatMessage message = new(
ChatRole
.User,
Contents\ToolCallContentTests.cs (1)
54
ChatMessage message = new(
ChatRole
.Assistant,
Contents\ToolResultContentTests.cs (1)
53
ChatMessage message = new(
ChatRole
.Tool,
Realtime\RealtimeClientMessageTests.cs (2)
41
var item = new RealtimeConversationItem(contents, "item_1",
ChatRole
.User);
140
new RealtimeConversationItem([new TextContent("Hello")], "item_1",
ChatRole
.User),
Realtime\RealtimeConversationItemTests.cs (4)
29
var item = new RealtimeConversationItem(contents, "item_123",
ChatRole
.User);
33
Assert.Equal(
ChatRole
.User, item.Role);
44
item.Role =
ChatRole
.Assistant;
49
Assert.Equal(
ChatRole
.Assistant, item.Role);
Realtime\RealtimeServerMessageTests.cs (1)
248
var item = new RealtimeConversationItem([new TextContent("output")], "item_out_1",
ChatRole
.Assistant);
Microsoft.Extensions.AI.Evaluation (9)
ChatMessageExtensions.cs (6)
26
/// last <see cref="ChatMessage"/> has <see cref="ChatMessage.Role"/> set to <see cref="
ChatRole
.User"/>;
31
/// <paramref name="messages"/> has <see cref="ChatMessage.Role"/> set to <see cref="
ChatRole
.User"/>;
39
messages.LastOrDefault() is ChatMessage lastMessage && lastMessage.Role ==
ChatRole
.User
56
/// last <see cref="ChatMessage"/> has <see cref="ChatMessage.Role"/> set to <see cref="
ChatRole
.User"/>;
65
/// <paramref name="messages"/> has <see cref="ChatMessage.Role"/> set to <see cref="
ChatRole
.User"/>;
78
lastMessage.Role ==
ChatRole
.User)
EvaluatorExtensions.cs (3)
51
modelResponse: new ChatMessage(
ChatRole
.Assistant, modelResponse),
95
userRequest: new ChatMessage(
ChatRole
.User, userRequest),
96
modelResponse: new ChatMessage(
ChatRole
.Assistant, modelResponse),
Microsoft.Extensions.AI.Evaluation.Integration.Tests (9)
SafetyEvaluatorTests.cs (6)
337
Role =
ChatRole
.User,
375
Role =
ChatRole
.Assistant,
409
Role =
ChatRole
.User,
422
Role =
ChatRole
.Assistant,
458
Role =
ChatRole
.User,
471
Role =
ChatRole
.Assistant,
test\Libraries\Microsoft.Extensions.AI.Evaluation.Tests\ChatMessageUtilities.cs (3)
9
=> new ChatMessage(
ChatRole
.System, message);
12
=> new ChatMessage(
ChatRole
.User, message);
15
=> new ChatMessage(
ChatRole
.Assistant, message);
Microsoft.Extensions.AI.Evaluation.NLP.Tests (17)
BLEUEvaluatorTests.cs (6)
19
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "The quick brown fox jumps over the lazy dog."));
35
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Completely unrelated sentence."));
50
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Some text."));
70
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, hypothesis));
90
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, hypothesis));
103
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, ""));
F1EvaluatorTests.cs (5)
19
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "The quick brown fox jumps over the lazy dog."));
35
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Completely unrelated sentence."));
50
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Some text."));
70
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, hypothesis));
83
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, ""));
GLEUEvaluatorTests.cs (6)
19
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "The quick brown fox jumps over the lazy dog."));
35
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Completely unrelated sentence."));
50
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Some text."));
70
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, hypothesis));
90
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, hypothesis));
103
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, ""));
Microsoft.Extensions.AI.Evaluation.Quality (22)
CoherenceEvaluator.cs (2)
117
List<ChatMessage> evaluationInstructions = [new ChatMessage(
ChatRole
.System, SystemPrompt)];
195
evaluationInstructions.Add(new ChatMessage(
ChatRole
.User, evaluationPrompt));
CompletenessEvaluator.cs (2)
125
List<ChatMessage> evaluationInstructions = [new ChatMessage(
ChatRole
.System, SystemPrompt)];
187
evaluationInstructions.Add(new ChatMessage(
ChatRole
.User, evaluationPrompt));
EquivalenceEvaluator.cs (2)
124
List<ChatMessage> evaluationInstructions = [new ChatMessage(
ChatRole
.System, SystemPrompt)];
174
evaluationInstructions.Add(new ChatMessage(
ChatRole
.User, evaluationPrompt));
FluencyEvaluator.cs (2)
109
List<ChatMessage> evaluationInstructions = [new ChatMessage(
ChatRole
.System, SystemPrompt)];
175
evaluationInstructions.Add(new ChatMessage(
ChatRole
.User, evaluationPrompt));
GroundednessEvaluator.cs (2)
127
List<ChatMessage> evaluationInstructions = [new ChatMessage(
ChatRole
.System, SystemPrompt)];
297
evaluationInstructions.Add(new ChatMessage(
ChatRole
.User, evaluationPrompt));
IntentResolutionEvaluator.cs (2)
173
List<ChatMessage> evaluationInstructions = [new ChatMessage(
ChatRole
.System, SystemPrompt)];
316
evaluationInstructions.Add(new ChatMessage(
ChatRole
.User, evaluationPrompt));
RelevanceEvaluator.cs (2)
122
List<ChatMessage> evaluationInstructions = [new ChatMessage(
ChatRole
.System, SystemPrompt)];
201
evaluationInstructions.Add(new ChatMessage(
ChatRole
.User, evaluationPrompt));
RelevanceTruthAndCompletenessEvaluator.cs (1)
266
return [new ChatMessage(
ChatRole
.User, evaluationPrompt)];
RetrievalEvaluator.cs (2)
141
List<ChatMessage> evaluationInstructions = [new ChatMessage(
ChatRole
.System, SystemPrompt)];
226
evaluationInstructions.Add(new ChatMessage(
ChatRole
.User, evaluationPrompt));
TaskAdherenceEvaluator.cs (1)
264
List<ChatMessage> evaluationInstructions = [new ChatMessage(
ChatRole
.System, systemPrompt)];
ToolCallAccuracyEvaluator.cs (2)
170
List<ChatMessage> evaluationInstructions = [new ChatMessage(
ChatRole
.System, SystemPrompt)];
219
evaluationInstructions.Add(new ChatMessage(
ChatRole
.User, evaluationPrompt));
Utilities\JsonOutputFixer.cs (2)
67
new ChatMessage(
ChatRole
.System, SystemPrompt),
68
new ChatMessage(
ChatRole
.User, fixPrompt)
Microsoft.Extensions.AI.Evaluation.Reporting (3)
ScenarioRunExtensions.cs (3)
36
modelResponse: new ChatMessage(
ChatRole
.Assistant, modelResponse),
65
userRequest: new ChatMessage(
ChatRole
.User, userRequest),
66
modelResponse: new ChatMessage(
ChatRole
.Assistant, modelResponse),
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (14)
AzureStorage\AzureStoragePathValidationTests.cs (2)
44
messages: [new ChatMessage(
ChatRole
.User, "User prompt")],
45
modelResponse: new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "LLM response")),
DiskBased\DiskBasedResultStoreTests.cs (2)
80
messages: [new ChatMessage(
ChatRole
.User, "prompt")],
81
modelResponse: new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "response")),
ResultStoreTester.cs (2)
33
messages: [new ChatMessage(
ChatRole
.User, "User prompt")],
34
modelResponse: new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "LLM response")),
ScenarioRunResultTests.cs (6)
88
messages: [new ChatMessage(
ChatRole
.User, "prompt")],
89
modelResponse: new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "response")),
180
messages: [new ChatMessage(
ChatRole
.User, "prompt")],
181
modelResponse: new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "response")),
235
ChatRole
.User,
244
ChatRole
.Assistant,
SerializationChainingTests.cs (2)
30
Role =
ChatRole
.User,
46
Assert.Equal(
ChatRole
.User, resp.ModelResponse.Messages[0].Role);
Microsoft.Extensions.AI.Evaluation.Safety (11)
ContentSafetyChatClient.cs (2)
67
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, annotationResult))
100
yield return new ChatResponseUpdate(
ChatRole
.Assistant, annotationResult)
ContentSafetyEvaluator.cs (1)
133
var payloadMessage = new ChatMessage(
ChatRole
.User, payload);
ContentSafetyServicePayloadUtilities.cs (8)
420
if (message.Role ==
ChatRole
.User)
429
else if (message.Role ==
ChatRole
.Assistant)
493
$"{evaluatorName} only considers messages with role '{
ChatRole
.User}' and '{
ChatRole
.Assistant}'. " +
494
$"The unsupported messages (which may include messages with role '{
ChatRole
.System}' and '{
ChatRole
.Tool}') were ignored.")];
503
$"These turns were either missing a message with role '{
ChatRole
.User}' or '{
ChatRole
.Assistant}'. " +
Microsoft.Extensions.AI.Evaluation.Tests (3)
ChatMessageUtilities.cs (3)
9
=> new ChatMessage(
ChatRole
.System, message);
12
=> new ChatMessage(
ChatRole
.User, message);
15
=> new ChatMessage(
ChatRole
.Assistant, message);
Microsoft.Extensions.AI.Integration.Tests (86)
ChatClientIntegrationTests.cs (65)
68
new(
ChatRole
.User, "Pick a city, any city"),
69
new(
ChatRole
.Assistant, "Seattle"),
70
new(
ChatRole
.User, "And another one"),
71
new(
ChatRole
.Assistant, "Jakarta"),
72
new(
ChatRole
.User, "What continent are they each in?"),
86
new(
ChatRole
.System, []),
87
new(
ChatRole
.User, []),
88
new(
ChatRole
.Assistant, []),
89
new(
ChatRole
.User, "What is 1 + 2? Reply with a single number."),
102
new(
ChatRole
.User, "Quote, word for word, Neil Armstrong's famous words.")
160
List<ChatMessage> history = [new(
ChatRole
.User, "Explain in 100 words how AI works")];
167
Assert.Equal(
ChatRole
.Assistant, history[1].Role);
183
new(
ChatRole
.User,
201
new(
ChatRole
.User,
231
new(
ChatRole
.User, "What is the current secret number?")
298
new(
ChatRole
.User, "What is the secret number for id foo?")
330
new(
ChatRole
.User, "What is the secret number for John aged 19?")
360
new(
ChatRole
.User, "Can you add bacon, lettuce, and tomatoes to Peter's shopping cart?")
640
var message = new ChatMessage(
ChatRole
.User, "Pick a random number, uniformly distributed between 1 and 1000000");
656
var message = new ChatMessage(
ChatRole
.User, "Pick a random number, uniformly distributed between 1 and 1000000");
681
var message = new ChatMessage(
ChatRole
.User, "Pick a random number, uniformly distributed between 1 and 1000000");
733
var message = new ChatMessage(
ChatRole
.User, "What is the temperature?");
772
var message = new ChatMessage(
ChatRole
.User, "What is the temperature?");
814
var message = new ChatMessage(
ChatRole
.User, "What is the temperature?");
842
await chatClient.GetResponseAsync([new(
ChatRole
.User, "What's the biggest animal?")]);
941
var response = await chatClient.GetResponseAsync([new(
ChatRole
.User, "What's the biggest animal?")]);
1137
new(
ChatRole
.User, "My name is Alice and I love hiking in the mountains."),
1138
new(
ChatRole
.Assistant, "Nice to meet you, Alice! Hiking in the mountains sounds wonderful. Do you have a favorite trail?"),
1139
new(
ChatRole
.User, "Yes, I love the Pacific Crest Trail. I hiked a section last summer."),
1140
new(
ChatRole
.Assistant, "The Pacific Crest Trail is amazing! Which section did you hike?"),
1141
new(
ChatRole
.User, "I hiked the section through the Sierra Nevada. It was challenging but beautiful."),
1142
new(
ChatRole
.Assistant, "The Sierra Nevada section is known for its stunning views. How long did it take you?"),
1143
new(
ChatRole
.User, "What's my name and what activity do I enjoy?")
1155
Assert.Equal(
ChatRole
.Assistant, m.Role); // Indicates this is the assistant's summary
1179
new(
ChatRole
.System, "You are a pirate. Always respond in pirate speak."),
1180
new(
ChatRole
.User, "Tell me about the weather"),
1181
new(
ChatRole
.Assistant, "Ahoy matey! The weather be fine today, with clear skies on the horizon!"),
1182
new(
ChatRole
.User, "What about tomorrow?"),
1183
new(
ChatRole
.Assistant, "Arr, tomorrow be lookin' a bit cloudy, might be some rain blowin' in from the east!"),
1184
new(
ChatRole
.User, "Should I bring an umbrella?"),
1185
new(
ChatRole
.Assistant, "Aye, ye best be bringin' yer umbrella, unless ye want to be soaked like a barnacle!"),
1186
new(
ChatRole
.User, "What's 2 + 2?")
1198
Assert.Equal(
ChatRole
.System, m.Role);
1201
m => Assert.Equal(
ChatRole
.Assistant, m.Role), // Summary message
1240
new(
ChatRole
.User, "What's the weather in Seattle?"),
1241
new(
ChatRole
.Assistant, "Let me check the weather in Seattle for you."),
1242
new(
ChatRole
.User, "And what about Miami?"),
1243
new(
ChatRole
.Assistant, "I'll check Miami's weather as well."),
1244
new(
ChatRole
.User, "Which city had better weather?")
1274
new(
ChatRole
.User, "I'm Bob and I work as a software engineer at a startup."),
1275
new(
ChatRole
.Assistant, "Nice to meet you, Bob! Working at a startup must be exciting. What kind of software do you develop?"),
1276
new(
ChatRole
.User, "We build AI-powered tools for education."),
1277
new(
ChatRole
.Assistant, "That sounds impactful! AI in education has so much potential."),
1278
new(
ChatRole
.User, "Yes, we focus on personalized learning experiences."),
1279
new(
ChatRole
.Assistant, "Personalized learning is the future of education!"),
1280
new(
ChatRole
.User, "Was anyone named in the conversation? Provide their name and job.")
1296
Assert.Equal(
ChatRole
.Assistant, m.Role); // Summary
1320
new(
ChatRole
.User, "I have 3 cats and 2 dogs."),
1321
new(
ChatRole
.Assistant, "That's 5 pets total! You must have a lively household."),
1322
new(
ChatRole
.User, "Yes, and I spend about $200 per month on pet food."),
1323
new(
ChatRole
.Assistant, "That's a significant expense, but I'm sure they're worth it!"),
1324
new(
ChatRole
.User, "They eat 10 cans of food per week."),
1325
new(
ChatRole
.Assistant, "That's quite a bit of food for your furry friends!"),
1326
new(
ChatRole
.User, "How many pets do I have in total?")
1338
Assert.Equal(
ChatRole
.Assistant, summaryMessage.Role);
ImageGeneratingChatClientIntegrationTests.cs (13)
128
[new ChatMessage(
ChatRole
.User, "Please generate an image of a cat")],
166
[new ChatMessage(
ChatRole
.User, [new TextContent("Please edit this image to add a red border"), originalImageData])],
195
new(
ChatRole
.User, "Please generate an image of a dog")
203
chatHistory.Add(new ChatMessage(
ChatRole
.User, "Please edit the image to make it more colorful"));
245
new(
ChatRole
.User, "Please generate an image of a tree")
253
chatHistory.Add(new ChatMessage(
ChatRole
.User, "Please edit the image to add flowers"));
258
chatHistory.Add(new ChatMessage(
ChatRole
.User, "Please edit that last image to add birds"));
290
new(
ChatRole
.User, "Please generate an image of a tree")
298
chatHistory.Add(new ChatMessage(
ChatRole
.User, "Please edit the image to add fruit"));
303
chatHistory.Add(new ChatMessage(
ChatRole
.User, "That didn't work out. Please edit the original image to add birds"));
341
[new ChatMessage(
ChatRole
.User, "Generate an image of a castle")],
379
new ChatMessage(
ChatRole
.User,
391
var userMessage = processedMessages.First(m => m.Role ==
ChatRole
.User);
PromptBasedFunctionCallingChatClient.cs (3)
72
chatMessagesList[messageIndex] = new ChatMessage(
ChatRole
.User, $"<tool_call_result>{toolCallResultJson}</tool_call_result>");
77
chatMessagesList[messageIndex] = new ChatMessage(
ChatRole
.Assistant, $"<tool_call_json>{toolCallJson}</tool_call_json>");
186
return new ChatMessage(
ChatRole
.System, prompt);
ReducingChatClientTests.cs (5)
45
new ChatMessage(
ChatRole
.User, "Hi there! Can you tell me about golden retrievers?"),
46
new 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."),
47
new ChatMessage(
ChatRole
.User, "What kind of exercise do they need?"),
48
new 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."),
49
new ChatMessage(
ChatRole
.User, "Are they good with kids?"),
Microsoft.Extensions.AI.OpenAI (38)
MicrosoftExtensionsAIChatExtensions.cs (7)
193
resultMessage.Role =
ChatRole
.Assistant;
206
resultMessage.Role =
ChatRole
.User;
213
resultMessage.Role =
ChatRole
.System;
220
resultMessage.Role =
ChatRole
.System;
226
resultMessage.Role =
ChatRole
.Tool;
279
/// <summary>Converts the <see cref="
ChatRole
"/> to a <see cref="ChatMessageRole"/>.</summary>
280
private static ChatMessageRole ToChatMessageRole(
ChatRole
? role) =>
OpenAIChatClient.cs (11)
168
if (input.Role ==
ChatRole
.System ||
169
input.Role ==
ChatRole
.User ||
175
input.Role ==
ChatRole
.System ? new SystemChatMessage(parts) { ParticipantName = name } :
181
else if (input.Role ==
ChatRole
.Tool)
204
else if (input.Role ==
ChatRole
.Assistant)
354
ChatRole
? streamedRole = null;
755
private static
ChatRole
FromOpenAIChatRole(ChatMessageRole role) =>
758
ChatMessageRole.System =>
ChatRole
.System,
759
ChatMessageRole.User =>
ChatRole
.User,
760
ChatMessageRole.Assistant =>
ChatRole
.Assistant,
761
ChatMessageRole.Tool =>
ChatRole
.Tool,
OpenAIClientExtensions.cs (2)
38
/// <summary>Gets a <see cref="
ChatRole
"/> for "developer".</summary>
39
internal static
ChatRole
ChatRoleDeveloper { get; } = new ChatRole("developer");
OpenAIRealtimeClientSession.cs (4)
1162
ChatRole
? role = messageItem.Role == Sdk.RealtimeMessageRole.Assistant ?
ChatRole
.Assistant
1163
: messageItem.Role == Sdk.RealtimeMessageRole.User ?
ChatRole
.User
1164
: messageItem.Role == Sdk.RealtimeMessageRole.System ?
ChatRole
.System
OpenAIResponsesChatClient.cs (14)
189
message ??= new(
ChatRole
.Assistant, (string?)null);
372
ChatRole
? lastRole = null;
469
lastRole =
ChatRole
.Assistant;
559
lastRole ??=
ChatRole
.Assistant;
927
/// <summary>Creates a <see cref="
ChatRole
"/> from a <see cref="MessageRole"/>.</summary>
928
private static
ChatRole
AsChatRole(MessageRole? role) =>
931
MessageRole.System =>
ChatRole
.System,
933
MessageRole.User =>
ChatRole
.User,
934
_ =>
ChatRole
.Assistant,
1303
if (input.Role ==
ChatRole
.System ||
1309
yield return input.Role ==
ChatRole
.System ?
1317
if (input.Role ==
ChatRole
.User)
1412
if (input.Role ==
ChatRole
.Tool)
1546
if (input.Role ==
ChatRole
.Assistant)
Microsoft.Extensions.AI.OpenAI.Tests (160)
OpenAIChatClientTests.cs (36)
166
Assert.Equal(
ChatRole
.Assistant, response.Messages.Single().Role);
254
Assert.Equal(
ChatRole
.Assistant, updates[i].Role);
853
new(
ChatRole
.System, "You are a really nice friend."),
854
new(
ChatRole
.User, "hello!"),
855
new(
ChatRole
.Assistant, "hi, how are you?"),
856
new(
ChatRole
.User, "i'm good. how are you?"),
872
Assert.Equal(
ChatRole
.Assistant, response.Messages.Single().Role);
960
new(
ChatRole
.System, [new TextContent("You are a really nice friend."), new TextContent("Really nice.")]),
961
new(
ChatRole
.User, "hello!"),
970
Assert.Equal(
ChatRole
.Assistant, response.Messages.Single().Role);
1056
new(
ChatRole
.System, "You are a really nice friend."),
1057
new(
ChatRole
.User, "hello!"),
1058
new(
ChatRole
.Assistant, (string?)null),
1059
new(
ChatRole
.User, "i'm good. how are you?"),
1068
Assert.Equal(
ChatRole
.Assistant, response.Messages.Single().Role);
1181
Assert.Equal(
ChatRole
.Assistant, response.Messages.Single().Role);
1266
Assert.Equal(
ChatRole
.Assistant, response.Messages.Single().Role);
1376
Assert.Equal(
ChatRole
.Assistant, updates[i].Role);
1499
new(
ChatRole
.System, "You are a really nice friend."),
1500
new(
ChatRole
.User, "hello!"),
1501
new(
ChatRole
.Assistant,
1507
new (
ChatRole
.Tool,
1512
new(
ChatRole
.Assistant, "You are great."),
1513
new(
ChatRole
.User, "Thanks!"),
1522
Assert.Equal(
ChatRole
.Assistant, response.Messages.Single().Role);
1624
new(
ChatRole
.User,
1641
Assert.Equal(
ChatRole
.Assistant, response.Messages.Single().Role);
1790
Assert.Equal(
ChatRole
.System, extMessages[0].Role);
1801
Assert.Equal(
ChatRole
.User, extMessages[0].Role);
1812
Assert.Equal(
ChatRole
.Assistant, extMessages[0].Role);
1823
Assert.Equal(
ChatRole
.System, extMessages[0].Role);
1834
Assert.Equal(
ChatRole
.Tool, extMessages[0].Role);
1854
Assert.Equal(
ChatRole
.System, extMessages[0].Role);
1855
Assert.Equal(
ChatRole
.User, extMessages[1].Role);
1856
Assert.Equal(
ChatRole
.Assistant, extMessages[2].Role);
1857
Assert.Equal(
ChatRole
.System, extMessages[3].Role);
OpenAIConversionTests.cs (58)
726
new(
ChatRole
.System, "You are a helpful assistant."),
727
new(
ChatRole
.User, "Hello") { AuthorName = "Jane" },
728
new(
ChatRole
.Assistant,
737
new(
ChatRole
.Tool, [new FunctionResultContent("callid123", "theresult")]),
738
new(
ChatRole
.Assistant, "The answer is 42.") { AuthorName = "@#$#$@$" },
795
new(
ChatRole
.System, "You are a helpful assistant."),
796
new(
ChatRole
.User, "Hello"),
797
new(
ChatRole
.Assistant,
806
new(
ChatRole
.Tool, [new FunctionResultContent("callid123", "theresult")]),
807
new(
ChatRole
.Assistant, "The answer is 42."),
848
new(
ChatRole
.User,
856
new(
ChatRole
.Assistant,
861
new(
ChatRole
.User,
905
Assert.Equal(
ChatRole
.User, message.Role);
936
Assert.Equal(
ChatRole
.Assistant, message.Role);
1191
new(
ChatRole
.Assistant, "Hi there!")
1201
Assert.Equal(
ChatRole
.Assistant, message.Role);
1217
new(
ChatRole
.Assistant,
1230
Assert.Equal(
ChatRole
.Assistant, message.Role);
1295
Assert.Equal(
ChatRole
.Assistant, message.Role);
1455
Assert.Equal(
ChatRole
.User, message.Role);
1475
Assert.Equal(
ChatRole
.User, message.Role);
1492
var items = new ChatMessage[] { new(
ChatRole
.Assistant, [mcpToolCall, mcpToolResult]) }.AsOpenAIResponseItems().ToArray();
1519
var chatResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant,
1558
var chatResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Hello"));
1588
var chatResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant,
1633
var chatResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Test"))
1648
(
ChatRole
.Assistant, ChatMessageRole.Assistant),
1649
(
ChatRole
.User, ChatMessageRole.User),
1650
(
ChatRole
.System, ChatMessageRole.System),
1651
(
ChatRole
.Tool, ChatMessageRole.Tool)
1694
var responseUpdate = new ChatResponseUpdate(
ChatRole
.Assistant, "Hello")
1712
var responseUpdate = new ChatResponseUpdate(
ChatRole
.Assistant, "Hello, world!")
1780
var responseUpdate = new ChatResponseUpdate(
ChatRole
.Assistant, [functionCallContent])
1815
var responseUpdate = new ChatResponseUpdate(
ChatRole
.Assistant, [functionCall1, functionCall2])
1843
var responseUpdate = new ChatResponseUpdate(
ChatRole
.Assistant,
1883
(
ChatRole
.Assistant, ChatMessageRole.Assistant),
1884
(
ChatRole
.User, ChatMessageRole.User),
1885
(
ChatRole
.System, ChatMessageRole.System),
1886
(
ChatRole
.Tool, ChatMessageRole.Tool)
1917
var responseUpdate = new ChatResponseUpdate(
ChatRole
.Assistant, "Test")
1938
new ChatResponseUpdate(
ChatRole
.Assistant, "Hello, ")
1945
new ChatResponseUpdate(
ChatRole
.Assistant, "world!")
1994
var chatResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Test"))
2007
var chatResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Hello, world!"))
2032
var chatResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Test message"))
2082
new(
ChatRole
.Assistant, "First message"),
2083
new(
ChatRole
.Assistant, "Second message"),
2084
new(
ChatRole
.Assistant,
2119
new(
ChatRole
.Assistant,
2124
new(
ChatRole
.Tool, [new FunctionResultContent("call-456", "The weather is sunny")]),
2125
new(
ChatRole
.Assistant, "The weather in Seattle is sunny!")
2154
new(
ChatRole
.System, "You are a helpful assistant."),
2155
new(
ChatRole
.User, "Hello, how are you?"),
2156
new(
ChatRole
.Assistant, "I'm doing well, thank you for asking!")
2181
var chatResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Default test"));
2199
var chatResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Model test"));
2214
var chatResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Model priority test"))
OpenAIResponseClientIntegrationTests.cs (12)
267
List<ChatMessage> input = [new ChatMessage(
ChatRole
.User, "Tell me the path to the README.md file for Microsoft.Extensions.AI.Abstractions in the dotnet/extensions repository")];
286
var approvalResponse = new ChatMessage(
ChatRole
.Tool,
531
List<ChatMessage> input = [new ChatMessage(
ChatRole
.User, "What is on my calendar for today?")];
543
input.Add(new ChatMessage(
ChatRole
.Tool, [approvalRequest.CreateResponse(true)]));
706
List<ChatMessage> chatHistory = [new ChatMessage(
ChatRole
.User, "What is 2+2? Think step by step but be very brief.")];
724
chatHistory.Add(new ChatMessage(
ChatRole
.User, "What is 3+3?"));
743
deserializedHistory.Add(new ChatMessage(
ChatRole
.User, "What is 4+4?"));
758
deserializedHistory.Add(new ChatMessage(
ChatRole
.User, "What is 5+5?"));
787
List<ChatMessage> chatHistory = [new ChatMessage(
ChatRole
.User, "What is 2+2? Think step by step but be very brief.")];
805
chatHistory.Add(new ChatMessage(
ChatRole
.User, "What is 3+3?"));
824
deserializedHistory.Add(new ChatMessage(
ChatRole
.User, "What is 4+4?"));
839
deserializedHistory.Add(new ChatMessage(
ChatRole
.User, "What is 5+5?"));
OpenAIResponseClientTests.cs (54)
164
Assert.Equal(
ChatRole
.Assistant, response.Messages.Single().Role);
441
Assert.Equal("The solution is 42.", string.Concat(updates.Where(u => u.Role ==
ChatRole
.Assistant).Select(u => u.Text)));
469
var assistantUpdate = updates.First(u => u.Role ==
ChatRole
.Assistant && !string.IsNullOrEmpty(u.Text));
679
var assistantMessage = chatHistory.Single(m => m.Role ==
ChatRole
.Assistant);
754
chatHistory.Add(new ChatMessage(
ChatRole
.User, "Are you sure?"));
880
Assert.Equal(
ChatRole
.Assistant, updates[i].Role);
1003
var response = await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "Search the web for the temperature today in Fremont")], chatOptions);
1013
Assert.Equal(
ChatRole
.Assistant, responseMessage.Role);
1099
await foreach (var update in client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "Search the web for the temperature today in Fremont")], chatOptions))
1481
Assert.Equal(
ChatRole
.Assistant, response.Messages[0].Role);
1483
Assert.Equal(
ChatRole
.Assistant, response.Messages[1].Role);
1734
Assert.Equal(
ChatRole
.Assistant, response.Messages[0].Role);
1878
Assert.Equal(
ChatRole
.Assistant, message.Role);
2111
Assert.Equal(
ChatRole
.Assistant, response.Messages[0].Role);
2522
Assert.Equal(
ChatRole
.Assistant, response.Messages[0].Role);
2731
Assert.Equal(
ChatRole
.Assistant, response.Messages[0].Role);
3107
Assert.Equal(
ChatRole
.Assistant, response.Messages.Single().Role);
3499
Assert.Equal(
ChatRole
.Assistant, message.Role);
3719
Assert.Equal(
ChatRole
.Assistant, message.Role);
4928
new ChatMessage(
ChatRole
.User, "test"),
4929
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("call_123", new TextContent("Result text"))])
4984
new ChatMessage(
ChatRole
.User, "test"),
4985
new ChatMessage(
ChatRole
.Tool, [
5046
new ChatMessage(
ChatRole
.User, "test"),
5047
new ChatMessage(
ChatRole
.Tool, [
5103
new ChatMessage(
ChatRole
.User, "test"),
5104
new ChatMessage(
ChatRole
.Tool, [
5160
new ChatMessage(
ChatRole
.User, "test"),
5161
new ChatMessage(
ChatRole
.Tool, [
5219
new ChatMessage(
ChatRole
.User, "test"),
5220
new ChatMessage(
ChatRole
.Tool, [
5282
new ChatMessage(
ChatRole
.User, "test"),
5283
new ChatMessage(
ChatRole
.Tool, [
5337
new ChatMessage(
ChatRole
.User, "test"),
5338
new ChatMessage(
ChatRole
.Tool, [
5392
new ChatMessage(
ChatRole
.User, "test"),
5393
new ChatMessage(
ChatRole
.Tool, [
5449
new ChatMessage(
ChatRole
.User, "test"),
5450
new ChatMessage(
ChatRole
.Tool, [
5506
new ChatMessage(
ChatRole
.User, "test"),
5507
new ChatMessage(
ChatRole
.Tool, [
5675
new ChatMessage(
ChatRole
.User, [
5727
new ChatMessage(
ChatRole
.User, [
5970
[new ChatMessage(
ChatRole
.User, "test")],
6216
Assert.Equal(
ChatRole
.Assistant, functionCallUpdate.Role);
6224
Assert.Equal(
ChatRole
.Assistant, functionResultUpdate.Role);
6239
Assert.Equal(
ChatRole
.Assistant, message.Role);
6279
var response = await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "")]);
6378
var userMessage = response.Messages.FirstOrDefault(m => m.Role ==
ChatRole
.User);
6387
var assistantMessage = response.Messages.LastOrDefault(m => m.Role ==
ChatRole
.Assistant);
6441
var userMessage = response.Messages.FirstOrDefault(m => m.Role ==
ChatRole
.User);
6450
var assistantMessage = response.Messages.LastOrDefault(m => m.Role ==
ChatRole
.Assistant);
6526
Assert.Equal(
ChatRole
.Assistant, response.Messages[0].Role);
7622
Assert.Equal(
ChatRole
.Assistant, message.Role);
Microsoft.Extensions.AI.Tests (885)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (23)
23
var expectedResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Animal)))
75
var chatHistory = new List<ChatMessage> { new(
ChatRole
.User, "Hello") };
100
var expectedResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options)))
123
Assert.Equal(
ChatRole
.User, message.Role);
136
var chatHistory = new List<ChatMessage> { new(
ChatRole
.User, "Hello") };
161
var expectedResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options)));
198
new ChatMessage(
ChatRole
.Assistant,
203
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callid123", "result")]),
204
new ChatMessage(
ChatRole
.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options))
239
var expectedResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "This is not valid JSON"));
245
var chatHistory = new List<ChatMessage> { new(
ChatRole
.User, "Hello") };
258
var expectedResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "null"));
264
var chatHistory = new List<ChatMessage> { new(
ChatRole
.User, "Hello") };
277
var expectedResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, [new UriContent("https://example.com", "image/*")]));
283
var chatHistory = new List<ChatMessage> { new(
ChatRole
.User, "Hello") };
297
var expectedResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, JsonSerializer.Serialize(expectedResult, JsonContext2.Default.Options)));
311
var chatHistory = new List<ChatMessage> { new(
ChatRole
.User, "Hello") };
332
var expectedResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, JsonSerializer.Serialize(payload, JsonContext2.Default.Options)));
339
var chatHistory = new List<ChatMessage> { new(
ChatRole
.User, "Hello") };
364
var expectedResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, JsonSerializer.Serialize(expectedResult, jso)));
401
var chatHistory = new List<ChatMessage> { new(
ChatRole
.User, "Hello") };
425
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, resultDuplicatedJson)));
429
var chatHistory = new List<ChatMessage> { new(
ChatRole
.User, "Hello") };
ChatCompletion\DistributedCachingChatClientTest.cs (23)
141
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Hello"));
185
var input = new ChatMessage(
ChatRole
.User, "abc");
215
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "A good result"));
224
var input = new ChatMessage(
ChatRole
.User, "abc");
314
new(
ChatRole
.Assistant, "This"),
315
new(
ChatRole
.Assistant, " becomes one chunk"),
316
new() { Role =
ChatRole
.Assistant, Contents = [new FunctionCallContent("callId1", "separator")] },
317
new(
ChatRole
.Assistant, "... and this"),
318
new(
ChatRole
.Assistant, " becomes another"),
319
new(
ChatRole
.Assistant, " one."),
369
new() { Role =
ChatRole
.Assistant, Contents = [new TextContent("Hello")] },
370
new() { Role =
ChatRole
.Assistant, Contents = [new TextContent(" world, ")] },
373
Role =
ChatRole
.Assistant,
384
Role =
ChatRole
.Assistant,
437
new(
ChatRole
.Assistant, "Chunk 1"),
485
() => new(
ChatRole
.Assistant, "Chunk 1"),
495
var input = new ChatMessage(
ChatRole
.User, "abc");
524
[() => new(
ChatRole
.Assistant, "A good result")]);
533
var input = new ChatMessage(
ChatRole
.User, "abc");
560
return new(new ChatMessage(
ChatRole
.Assistant, options!.AdditionalProperties!["someKey"]!.ToString()));
611
return new(new ChatMessage(
ChatRole
.Assistant, innerCallCount.ToString()));
657
return new(new ChatMessage(
ChatRole
.Assistant, options!.AdditionalProperties!["someKey"]!.ToString()));
745
new ChatMessage(
ChatRole
.Assistant, [new TextContent("Hey")])));
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (268)
36
new ChatMessage(
ChatRole
.User, "hello"),
41
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
46
new ChatMessage(
ChatRole
.Assistant,
72
new ChatMessage(
ChatRole
.User, "hello"),
77
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
82
new ChatMessage(
ChatRole
.Assistant,
119
new ChatMessage(
ChatRole
.User, "hello"),
124
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
131
new ChatMessage(
ChatRole
.Assistant,
169
new ChatMessage(
ChatRole
.User, "hello"),
174
new ChatMessage(
ChatRole
.Assistant, [
182
new ChatMessage(
ChatRole
.Assistant,
214
new ChatMessage(
ChatRole
.User, "hello"),
219
new ChatMessage(
ChatRole
.Assistant, [
227
new ChatMessage(
ChatRole
.Assistant,
256
new ChatMessage(
ChatRole
.User, "hello"),
257
new ChatMessage(
ChatRole
.Assistant,
262
new ChatMessage(
ChatRole
.User,
271
new ChatMessage(
ChatRole
.User, "hello"),
272
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
273
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
278
new ChatMessage(
ChatRole
.Assistant, "world"),
283
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
284
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
285
new ChatMessage(
ChatRole
.Assistant, "world"),
308
new ChatMessage(
ChatRole
.User, "hello"),
309
new ChatMessage(
ChatRole
.Assistant,
314
new ChatMessage(
ChatRole
.User,
324
new ChatMessage(
ChatRole
.User, "hello"),
325
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
326
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
331
new ChatMessage(
ChatRole
.Assistant, "world"),
336
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
337
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
338
new ChatMessage(
ChatRole
.Assistant, "world"),
360
new ChatMessage(
ChatRole
.User, "hello"),
361
new ChatMessage(
ChatRole
.Assistant,
365
new ChatMessage(
ChatRole
.Assistant,
369
new ChatMessage(
ChatRole
.User,
373
new ChatMessage(
ChatRole
.User,
381
new ChatMessage(
ChatRole
.User, "hello"),
382
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = "resp1" },
383
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]) { MessageId = "resp2" },
384
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
389
new ChatMessage(
ChatRole
.Assistant, "world"),
394
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = "resp1" },
395
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]) { MessageId = "resp2" },
396
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
397
new ChatMessage(
ChatRole
.Assistant, "world"),
419
new ChatMessage(
ChatRole
.User, "hello"),
420
new ChatMessage(
ChatRole
.Assistant,
425
new ChatMessage(
ChatRole
.User,
434
new ChatMessage(
ChatRole
.User, "hello"),
435
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
436
new ChatMessage(
ChatRole
.Tool,
445
new ChatMessage(
ChatRole
.Assistant, "world"),
450
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
451
new ChatMessage(
ChatRole
.Tool,
456
new ChatMessage(
ChatRole
.Assistant, "world"),
478
new ChatMessage(
ChatRole
.User, "hello"),
479
new ChatMessage(
ChatRole
.Assistant,
484
new ChatMessage(
ChatRole
.User,
493
new ChatMessage(
ChatRole
.User, "hello"),
494
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
495
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried.")]),
496
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
501
new ChatMessage(
ChatRole
.Assistant, "world"),
506
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
507
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried.")]),
508
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
509
new ChatMessage(
ChatRole
.Assistant, "world"),
514
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
515
new ChatMessage(
ChatRole
.Tool,
520
new ChatMessage(
ChatRole
.Assistant, "world"),
542
new ChatMessage(
ChatRole
.User, "hello"),
543
new ChatMessage(
ChatRole
.Assistant,
548
new ChatMessage(
ChatRole
.User,
563
new ChatMessage(
ChatRole
.User, "hello"),
564
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
565
new ChatMessage(
ChatRole
.Tool,
574
new ChatMessage(
ChatRole
.Assistant, "world"),
579
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
580
new ChatMessage(
ChatRole
.Tool,
585
new ChatMessage(
ChatRole
.Assistant, "world"),
608
new ChatMessage(
ChatRole
.User, "hello"),
609
new ChatMessage(
ChatRole
.Assistant,
615
new ChatMessage(
ChatRole
.User,
625
new ChatMessage(
ChatRole
.User, "hello"),
626
new ChatMessage(
ChatRole
.Assistant,
632
new ChatMessage(
ChatRole
.Tool,
637
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId3", result: "Result 3: test")]),
642
new ChatMessage(
ChatRole
.Assistant, "world"),
647
new ChatMessage(
ChatRole
.Assistant,
653
new ChatMessage(
ChatRole
.Tool,
658
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId3", result: "Result 3: test")]),
659
new ChatMessage(
ChatRole
.Assistant, "world"),
664
new ChatMessage(
ChatRole
.Assistant,
670
new ChatMessage(
ChatRole
.Tool,
676
new ChatMessage(
ChatRole
.Assistant, "world"),
700
new ChatMessage(
ChatRole
.User, "hello"),
701
new ChatMessage(
ChatRole
.Assistant,
705
new ChatMessage(
ChatRole
.User,
716
new ChatMessage(
ChatRole
.User, "hello"),
717
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
718
new ChatMessage(
ChatRole
.Tool,
726
new ChatMessage(
ChatRole
.Assistant, "world"),
731
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
732
new ChatMessage(
ChatRole
.Tool,
736
new ChatMessage(
ChatRole
.Assistant, "world"),
758
new ChatMessage(
ChatRole
.User, "hello"),
759
new ChatMessage(
ChatRole
.Assistant,
764
new ChatMessage(
ChatRole
.User,
773
new ChatMessage(
ChatRole
.User, "hello"),
774
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
775
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
780
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 3 } })]),
785
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
786
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
787
new ChatMessage(
ChatRole
.Assistant,
812
new ChatMessage(
ChatRole
.User, "hello"),
813
new ChatMessage(
ChatRole
.Assistant,
818
new ChatMessage(
ChatRole
.User,
823
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
824
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
825
new ChatMessage(
ChatRole
.Assistant,
829
new ChatMessage(
ChatRole
.User,
837
new ChatMessage(
ChatRole
.User, "hello"),
838
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
839
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
840
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId3", "Func1")]),
841
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId3", result: "Result 1")]),
846
new ChatMessage(
ChatRole
.Assistant, "World"),
851
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId3", "Func1")]),
852
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId3", result: "Result 1")]),
853
new ChatMessage(
ChatRole
.Assistant, "World"),
891
new ChatMessage(
ChatRole
.User, "hello"),
892
new ChatMessage(
ChatRole
.Assistant,
896
new ChatMessage(
ChatRole
.User,
905
Task.FromResult(new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "world")])),
907
YieldAsync(new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "world")]).ToChatResponseUpdates()),
963
new ChatMessage(
ChatRole
.User, "hello"),
964
new ChatMessage(
ChatRole
.Assistant,
968
new ChatMessage(
ChatRole
.User,
972
new ChatMessage(
ChatRole
.Assistant,
976
new ChatMessage(
ChatRole
.User,
985
Task.FromResult(new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "world")])),
987
YieldAsync(new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "world")]).ToChatResponseUpdates()),
1028
new ChatMessage(
ChatRole
.User, "hello"),
1035
new ChatMessage(
ChatRole
.User, "hello"),
1039
new ChatMessage(
ChatRole
.User, "hello"),
1040
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
1041
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")])
1049
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
1053
new ChatMessage(
ChatRole
.Assistant, "World again"),
1059
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
1060
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
1061
new ChatMessage(
ChatRole
.Assistant, "World again"),
1083
new ChatMessage(
ChatRole
.User, "hello"),
1084
new ChatMessage(
ChatRole
.Assistant,
1113
new ChatMessage(
ChatRole
.User, "hello"),
1114
new ChatMessage(
ChatRole
.User,
1123
new ChatMessage(
ChatRole
.User, "hello"),
1124
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
1125
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
1130
new ChatMessage(
ChatRole
.Assistant, "world"),
1135
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
1136
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
1137
new ChatMessage(
ChatRole
.Assistant, "world"),
1160
new ChatMessage(
ChatRole
.User,
1169
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
1174
new ChatMessage(
ChatRole
.Assistant, "world"),
1179
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
1180
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
1181
new ChatMessage(
ChatRole
.Assistant, "world"),
1204
new ChatMessage(
ChatRole
.User,
1210
new ChatMessage(
ChatRole
.User, "By the way, please keep the answer concise."),
1217
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1218
new ChatMessage(
ChatRole
.User, "By the way, please keep the answer concise."),
1223
new ChatMessage(
ChatRole
.Assistant, "world"),
1228
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1229
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1230
new ChatMessage(
ChatRole
.Assistant, "world"),
1254
new ChatMessage(
ChatRole
.User,
1265
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1266
new ChatMessage(
ChatRole
.User, "please proceed"),
1271
new ChatMessage(
ChatRole
.Assistant, "world"),
1276
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1277
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1278
new ChatMessage(
ChatRole
.Assistant, "world"),
1299
new ChatMessage(
ChatRole
.User, "hello"),
1300
new ChatMessage(
ChatRole
.Assistant,
1304
new ChatMessage(
ChatRole
.User,
1310
new ChatMessage(
ChatRole
.User, "By the way, please keep the answer concise."),
1317
new ChatMessage(
ChatRole
.User, "hello"),
1318
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1319
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1320
new ChatMessage(
ChatRole
.User, "By the way, please keep the answer concise."),
1325
new ChatMessage(
ChatRole
.Assistant, "world"),
1330
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1331
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1332
new ChatMessage(
ChatRole
.Assistant, "world"),
1354
new ChatMessage(
ChatRole
.User, "hello"),
1355
new ChatMessage(
ChatRole
.Assistant,
1359
new ChatMessage(
ChatRole
.User,
1368
new ChatMessage(
ChatRole
.User, "hello"),
1369
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1370
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1371
new ChatMessage(
ChatRole
.User, "please proceed"),
1376
new ChatMessage(
ChatRole
.Assistant, "world"),
1381
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1382
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1383
new ChatMessage(
ChatRole
.Assistant, "world"),
1412
new ChatMessage(
ChatRole
.User, "hello"),
1413
new ChatMessage(
ChatRole
.Assistant,
1417
new ChatMessage(
ChatRole
.User,
1425
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1426
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1469
new ChatMessage(
ChatRole
.User, "hello"),
1470
new ChatMessage(
ChatRole
.Assistant,
1474
new ChatMessage(
ChatRole
.User,
1482
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1483
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Error: Function failed.")]),
1524
List<ChatMessage> input = [new ChatMessage(
ChatRole
.User, "hello")];
1539
yield return new ChatResponseUpdate(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = messageId };
1543
ChatRole
.Assistant,
1600
List<ChatMessage> input = [new ChatMessage(
ChatRole
.User, "hello")];
1615
yield return new ChatResponseUpdate(
ChatRole
.Assistant, [new TextContent("Text 1")]) { MessageId = messageId };
1617
yield return new ChatResponseUpdate(
ChatRole
.Assistant, [new TextContent("Text 2")]) { MessageId = messageId };
1619
yield return new ChatResponseUpdate(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = messageId };
1622
ChatRole
.Assistant,
1628
yield return new ChatResponseUpdate(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func3")]) { MessageId = messageId };
1698
List<ChatMessage> input = [new ChatMessage(
ChatRole
.User, "hello")];
1704
new ChatMessage(
ChatRole
.Assistant, [alreadyProcessedFunctionCall]),
1710
new ChatMessage(
ChatRole
.Assistant, [alreadyProcessedFunctionCall]),
1742
new ChatMessage(
ChatRole
.User, "hello"),
1743
new ChatMessage(
ChatRole
.Assistant,
1747
new ChatMessage(
ChatRole
.User,
1755
new ChatMessage(
ChatRole
.Assistant, "world"),
1761
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("function-call-id", "Func1")]) { MessageId = OriginalMessageId },
1762
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("function-call-id", result: "Result 1")]),
1763
new ChatMessage(
ChatRole
.Assistant, "world"),
1793
new ChatMessage(
ChatRole
.User, "hello"),
1798
new ChatMessage(
ChatRole
.Assistant,
1807
new ChatMessage(
ChatRole
.Assistant,
1836
new ChatMessage(
ChatRole
.User, "hello"),
1837
new ChatMessage(
ChatRole
.Assistant,
1842
new ChatMessage(
ChatRole
.User,
1851
new ChatMessage(
ChatRole
.User, "hello"),
1852
new ChatMessage(
ChatRole
.Assistant,
1856
new ChatMessage(
ChatRole
.Assistant,
1860
new ChatMessage(
ChatRole
.Tool,
1864
new ChatMessage(
ChatRole
.User,
1872
new ChatMessage(
ChatRole
.Assistant, [
1880
new ChatMessage(
ChatRole
.Assistant,
1884
new ChatMessage(
ChatRole
.Tool,
1888
new ChatMessage(
ChatRole
.Assistant, [
1920
new ChatMessage(
ChatRole
.User, "hello"),
1921
new ChatMessage(
ChatRole
.Assistant,
1926
new ChatMessage(
ChatRole
.User,
1934
new ChatMessage(
ChatRole
.User, "hello"),
1935
new ChatMessage(
ChatRole
.Assistant,
1939
new ChatMessage(
ChatRole
.Assistant,
1943
new ChatMessage(
ChatRole
.Tool,
1949
new ChatMessage(
ChatRole
.User,
1957
new ChatMessage(
ChatRole
.Assistant, [
1966
new ChatMessage(
ChatRole
.Assistant,
1970
new ChatMessage(
ChatRole
.Tool,
1976
new ChatMessage(
ChatRole
.Assistant, [
ChatCompletion\FunctionInvokingChatClientTests.cs (319)
93
new ChatMessage(
ChatRole
.User, "hello"),
94
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
95
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
96
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
97
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
98
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]),
99
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
100
new ChatMessage(
ChatRole
.Assistant, "world"),
127
new ChatMessage(
ChatRole
.User, "hello"),
128
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
129
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
130
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
131
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
132
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]),
133
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
134
new ChatMessage(
ChatRole
.Assistant, "world"),
160
new ChatMessage(
ChatRole
.User, "hello"),
161
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
162
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
163
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
164
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
165
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]),
166
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
167
new ChatMessage(
ChatRole
.Assistant, "world"),
191
new ChatMessage(
ChatRole
.User, "hello"),
192
new ChatMessage(
ChatRole
.Assistant,
198
new ChatMessage(
ChatRole
.Tool,
204
new ChatMessage(
ChatRole
.Assistant,
209
new ChatMessage(
ChatRole
.Tool,
214
new ChatMessage(
ChatRole
.Assistant, "world"),
251
new ChatMessage(
ChatRole
.User, "hello"),
252
new ChatMessage(
ChatRole
.Assistant,
257
new ChatMessage(
ChatRole
.Tool,
262
new ChatMessage(
ChatRole
.Assistant, "done"),
295
new ChatMessage(
ChatRole
.User, "hello"),
296
new ChatMessage(
ChatRole
.Assistant,
301
new ChatMessage(
ChatRole
.Tool,
306
new ChatMessage(
ChatRole
.Assistant, "done"),
329
new ChatMessage(
ChatRole
.User, "hello"),
330
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
331
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1 from delegate")]),
332
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
333
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42 from delegate")]),
334
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]),
335
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
336
new ChatMessage(
ChatRole
.Assistant, "world"),
376
var toolMessage = msgs.FirstOrDefault(m => m.Role ==
ChatRole
.Tool);
380
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")])));
384
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "done")));
389
var toolMessage = msgs.FirstOrDefault(m => m.Role ==
ChatRole
.Tool);
393
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")])).ToChatResponseUpdates());
397
return YieldAsync(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "done")).ToChatResponseUpdates());
416
new ChatMessage(
ChatRole
.User, "hello"),
430
var toolMessage = response.Messages.First(m => m.Role ==
ChatRole
.Tool);
457
var toolMessage = msgs.FirstOrDefault(m => m.Role ==
ChatRole
.Tool);
461
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")])));
465
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "done")));
470
var toolMessage = msgs.FirstOrDefault(m => m.Role ==
ChatRole
.Tool);
474
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")])).ToChatResponseUpdates());
478
return YieldAsync(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "done")).ToChatResponseUpdates());
495
new ChatMessage(
ChatRole
.User, "hello"),
510
var toolMessage = response.Messages.First(m => m.Role ==
ChatRole
.Tool);
538
var toolMessage = msgs.FirstOrDefault(m => m.Role ==
ChatRole
.Tool);
542
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")])));
546
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "done")));
551
var toolMessage = msgs.FirstOrDefault(m => m.Role ==
ChatRole
.Tool);
555
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")])).ToChatResponseUpdates());
559
return YieldAsync(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "done")).ToChatResponseUpdates());
579
new ChatMessage(
ChatRole
.User, "hello"),
594
var toolMessage = response.Messages.First(m => m.Role ==
ChatRole
.Tool);
636
new ChatMessage(
ChatRole
.User, "hello"),
637
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent($"callId0", "VoidReturn")]),
644
plan.Add(new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent($"callId{i}", result: "Success: Function completed.")]));
645
plan.Add(new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent($"callId{(i + 1)}", "VoidReturn")]));
668
var message = new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent($"callId{capturedOptions.Count}", "Func1")]);
712
var message = new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent($"callId{capturedOptions.Count}", "Func1")]);
759
var message = new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]);
764
var message = new ChatMessage(
ChatRole
.Assistant, "Done");
804
var message = new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]);
858
new ChatMessage(
ChatRole
.User, "hello"),
936
new ChatMessage(
ChatRole
.User, "hello"),
953
var assistantMessage = new ChatMessage(
ChatRole
.Assistant, []);
954
var toolMessage = new ChatMessage(
ChatRole
.Tool, []);
983
new ChatMessage(
ChatRole
.User, "hello"),
984
new ChatMessage(
ChatRole
.Assistant, [new TextContent("extra"), new FunctionCallContent("callId1", "Func1"), new TextContent("stuff")]),
985
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId2", result: "Result 1")]),
986
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
987
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
988
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } }), new TextContent("more")]),
989
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
990
new ChatMessage(
ChatRole
.Assistant, "world"),
1020
new ChatMessage(
ChatRole
.User, "hello"),
1021
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1022
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: detailedErrors ? "Error: Function failed. Exception: Oh no!" : "Error: Function failed.")]),
1023
new ChatMessage(
ChatRole
.Assistant, "world"),
1042
new ChatMessage(
ChatRole
.User, "hello"),
1043
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]),
1044
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1045
new ChatMessage(
ChatRole
.Assistant, "world"),
1099
new ChatMessage(
ChatRole
.User, "hello"),
1100
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]),
1101
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1102
new ChatMessage(
ChatRole
.Assistant, "world"),
1177
new(
ChatRole
.User, "Hello"),
1235
new(
ChatRole
.User, "Hello"),
1245
new(
ChatRole
.Assistant, [new FunctionCallContent($"callId{chatContents.Count()}", "Func1")]) :
1246
new(
ChatRole
.Assistant, "The answer is 42.");
1293
new ChatMessage(
ChatRole
.User, "hello"),
1294
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["i"] = 41 })]),
1295
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 41")]),
1296
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId2", "Func1", new Dictionary<string, object?> { ["i"] = 42 })]),
1297
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId2", result: "Result 42")]),
1304
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId3", "Func1", new Dictionary<string, object?> { ["i"] = 43 })]),
1305
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId3", result: "Result 43")]),
1306
new ChatMessage(
ChatRole
.Assistant, "world"),
1360
var existingSearchResult = chatContents.SingleOrDefault(m => m.Role ==
ChatRole
.Tool);
1369
var message = new ChatMessage(
ChatRole
.Assistant, resultContents);
1377
List<ChatMessage> messages = [new(
ChatRole
.User, "hello")];
1384
Assert.Equal(
ChatRole
.Tool, lastMessage.Role);
1411
new ChatMessage(
ChatRole
.User, "hello"),
1412
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1413
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Error: Function failed.")]),
1420
new ChatMessage(
ChatRole
.Assistant, "world"),
1453
new ChatMessage(
ChatRole
.User, "hello"),
1454
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2")]),
1455
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Error: Function failed.")]),
1461
new ChatMessage(
ChatRole
.Assistant, "world"),
1490
new ChatMessage(
ChatRole
.User, "hello"),
1491
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2")]),
1492
new ChatMessage(
ChatRole
.Tool,
1502
new ChatMessage(
ChatRole
.Assistant, "world"),
1533
Assert.DoesNotContain(contents, m => m.Role ==
ChatRole
.Tool);
1534
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")])));
1541
Assert.Equal(
ChatRole
.Tool, response.Messages.Last().Role);
1565
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId-abc", "Func1")]))
1573
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "done!"));
1602
new ChatMessage(
ChatRole
.User, "hello"),
1603
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]),
1604
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1605
new ChatMessage(
ChatRole
.Assistant, "world"),
1631
new ChatMessage(
ChatRole
.User, "hello"),
1632
new ChatMessage(
ChatRole
.Assistant, [
1636
new ChatMessage(
ChatRole
.Tool,
1641
new ChatMessage(
ChatRole
.Assistant, "world"),
1684
new(
ChatRole
.User, "hello"),
1685
new(
ChatRole
.Assistant, [
1689
new(
ChatRole
.Tool, [
1693
new(
ChatRole
.Assistant, "done"),
1703
new(
ChatRole
.User, "hello"),
1704
new(
ChatRole
.Assistant, [
1708
new(
ChatRole
.Tool, [
1712
new(
ChatRole
.Assistant, "done"),
1732
new(
ChatRole
.User, "hello"),
1733
new(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "DefOnly")]),
1734
new(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Should not be produced")]),
1735
new(
ChatRole
.Assistant, "world"),
1761
new(
ChatRole
.User, "hi"),
1762
new(
ChatRole
.Assistant, [
1766
new(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "OK"), new FunctionResultContent("callId2", result: "nope")]),
1767
new(
ChatRole
.Assistant, "done"),
1798
messages.Add(new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]));
1834
new ChatMessage(
ChatRole
.User, "hello"),
1835
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1836
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1837
new ChatMessage(
ChatRole
.Assistant, "world"),
1894
? new(
ChatRole
.Assistant, [new FunctionCallContent("call1", "Func1")])
1895
: new(
ChatRole
.Assistant, "Done");
1915
[new ChatMessage(
ChatRole
.User, "hello")], options))
1945
new ChatMessage(
ChatRole
.User, "hello"),
1946
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1947
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1948
new ChatMessage(
ChatRole
.Assistant, "world"),
1987
new ChatMessage(
ChatRole
.User, "hello"),
1988
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1989
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1990
new ChatMessage(
ChatRole
.Assistant, "world"),
2037
new ChatMessage(
ChatRole
.User, "hello"),
2038
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "secret" })]),
2039
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
2040
new ChatMessage(
ChatRole
.Assistant, "world"),
2109
new ChatMessage(
ChatRole
.User, "hello"),
2110
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
2111
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
2112
new ChatMessage(
ChatRole
.Assistant, "world"),
2158
new ChatMessage(
ChatRole
.User, "hello"),
2159
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
2160
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
2161
new ChatMessage(
ChatRole
.Assistant, "world"),
2195
var message = new ChatMessage(
ChatRole
.Assistant, [alreadyProcessedFunctionCall]);
2201
var message = new ChatMessage(
ChatRole
.Assistant, [alreadyProcessedFunctionCall]);
2209
? await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "hello")], options).ToChatResponseAsync()
2210
: await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "hello")], options);
2250
var message = new ChatMessage(
ChatRole
.Assistant, [needsProcessing, alreadyProcessed]);
2256
var message = new ChatMessage(
ChatRole
.Assistant, "done");
2265
var message = new ChatMessage(
ChatRole
.Assistant, [needsProcessing, alreadyProcessed]);
2271
var message = new ChatMessage(
ChatRole
.Assistant, "done");
2280
? await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "hello")], options).ToChatResponseAsync()
2281
: await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "hello")], options);
2314
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]));
2318
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Done"));
2327
var response = await client2.GetResponseAsync([new ChatMessage(
ChatRole
.User, "hello")], options);
2377
var message = new ChatMessage(
ChatRole
.Assistant, CloneContents(plan[contents.Count()].Contents))
2441
ChatMessage message = new(
ChatRole
.Assistant, CloneContents(plan[contents.Count()].Contents))
2541
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
2548
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
2554
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "Done")]);
2564
message = new ChatMessage(
ChatRole
.Assistant,
2570
message = new ChatMessage(
ChatRole
.Assistant,
2575
message = new ChatMessage(
ChatRole
.Assistant, "Done");
2586
var result = await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options).ToChatResponseAsync();
2591
var result = await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options);
2635
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
2642
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
2648
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "Done")]);
2658
message = new ChatMessage(
ChatRole
.Assistant,
2664
message = new ChatMessage(
ChatRole
.Assistant,
2669
message = new ChatMessage(
ChatRole
.Assistant, "Done");
2680
var result = await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options).ToChatResponseAsync();
2689
var result = await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options);
2742
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
2748
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
2753
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "Done")]);
2763
message = new ChatMessage(
ChatRole
.Assistant,
2769
message = new ChatMessage(
ChatRole
.Assistant,
2774
message = new ChatMessage(
ChatRole
.Assistant, "Done");
2785
var result = await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options).ToChatResponseAsync();
2795
var result = await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options);
2840
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
2848
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
2854
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "Done")]);
2864
message = new ChatMessage(
ChatRole
.Assistant,
2870
message = new ChatMessage(
ChatRole
.Assistant,
2876
message = new ChatMessage(
ChatRole
.Assistant, "Done");
2890
var result = await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options).ToChatResponseAsync();
2898
var result = await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options);
2944
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
2950
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
2955
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "Done")]);
2965
message = new ChatMessage(
ChatRole
.Assistant,
2971
message = new ChatMessage(
ChatRole
.Assistant,
2976
message = new ChatMessage(
ChatRole
.Assistant, "Done");
2990
var result = await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options).ToChatResponseAsync();
3000
var result = await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options);
3042
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
3047
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "Done")]);
3057
message = new ChatMessage(
ChatRole
.Assistant,
3062
message = new ChatMessage(
ChatRole
.Assistant, "Done");
3073
var result = await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options).ToChatResponseAsync();
3078
var result = await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options);
3120
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
3128
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
3133
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "Done")]);
3143
message = new ChatMessage(
ChatRole
.Assistant,
3149
message = new ChatMessage(
ChatRole
.Assistant,
3154
message = new ChatMessage(
ChatRole
.Assistant, "Done");
3165
var result = await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options).ToChatResponseAsync();
3174
var result = await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options);
3221
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
3229
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
3234
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "Done")]);
3244
message = new ChatMessage(
ChatRole
.Assistant,
3250
message = new ChatMessage(
ChatRole
.Assistant,
3255
message = new ChatMessage(
ChatRole
.Assistant, "Done");
3266
var result = await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options).ToChatResponseAsync();
3276
var result = await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options);
3327
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
3335
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant,
3340
return new ChatResponse([new ChatMessage(
ChatRole
.Assistant, "Done")]);
3350
message = new ChatMessage(
ChatRole
.Assistant,
3356
message = new ChatMessage(
ChatRole
.Assistant,
3361
message = new ChatMessage(
ChatRole
.Assistant, "Done");
3372
var result = await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options).ToChatResponseAsync();
3383
var result = await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "test")], options);
3410
new ChatMessage(
ChatRole
.User, "hello"),
3411
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "UnknownFunc")]),
3412
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Error: Requested function \"UnknownFunc\" not found.")]),
3413
new ChatMessage(
ChatRole
.Assistant, "world"),
3440
new ChatMessage(
ChatRole
.User, "hello"),
3441
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
3442
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Should not be produced")]),
3443
new ChatMessage(
ChatRole
.Assistant, "world"),
3476
new ChatMessage(
ChatRole
.User, "hello"),
3477
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "TerminatingFunc")]),
3478
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Terminated")]),
3508
new ChatMessage(
ChatRole
.User, "hello"),
3509
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "TerminatingFunc")]),
3510
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", result: "Error: Function failed.")]),
3537
new ChatMessage(
ChatRole
.User, "hello"),
3538
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
3544
new ChatMessage(
ChatRole
.User, "hello"),
3545
new ChatMessage(
ChatRole
.Assistant,
3571
Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "world")))
3580
new ChatMessage(
ChatRole
.User, "hello"),
3581
new ChatMessage(
ChatRole
.Assistant,
3585
new ChatMessage(
ChatRole
.User,
3608
Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "world")))
3617
new ChatMessage(
ChatRole
.User, "hello"),
3618
new ChatMessage(
ChatRole
.Assistant,
3622
new ChatMessage(
ChatRole
.User,
3659
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
3660
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", "Server Result")]),
3667
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]),
3668
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", "Server Result")]),
3677
? await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "hello")], options).ToChatResponseAsync()
3678
: await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "hello")], options);
3723
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2")]),
3724
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", "Server Result 1")]),
3729
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "done"));
3738
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2")]),
3739
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("callId1", "Server Result 1")]),
3745
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "done"));
3754
? await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "hello")], options).ToChatResponseAsync()
3755
: await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "hello")], options);
3792
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]));
3796
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "done"));
3803
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("callId1", "Func1")]));
3808
var response = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "done"));
3817
? await client.GetStreamingResponseAsync([new ChatMessage(
ChatRole
.User, "hello")], options).ToChatResponseAsync()
3818
: await client.GetResponseAsync([new ChatMessage(
ChatRole
.User, "hello")], options);
ChatCompletion\ImageGeneratingChatClientTests.cs (20)
39
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "test response")));
52
var response = await client.GetResponseAsync([new(
ChatRole
.User, "test")], chatOptions);
76
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "test response")));
89
var response = await client.GetResponseAsync([new(
ChatRole
.User, "test")], chatOptions);
123
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "test response")));
137
var response = await client.GetResponseAsync([new(
ChatRole
.User, "test")], chatOptions);
229
yield return new(
ChatRole
.Assistant, "test");
241
await foreach (var update in client.GetStreamingResponseAsync([new(
ChatRole
.User, "test")], chatOptions))
261
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "test response")));
269
var response = await client.GetResponseAsync([new(
ChatRole
.User, "test")], null);
284
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "test response")));
297
await client.GetResponseAsync([new(
ChatRole
.User, "test")], chatOptions);
316
var responseMessage = new ChatMessage(
ChatRole
.Assistant,
331
var response = await client.GetResponseAsync([new(
ChatRole
.User, "test")], chatOptions);
359
yield return new ChatResponseUpdate(
ChatRole
.Assistant,
373
await foreach (var responseUpdate in client.GetStreamingResponseAsync([new(
ChatRole
.User, "test")], chatOptions))
413
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, contents)));
426
var response = await client.GetResponseAsync([new(
ChatRole
.User, "test")], chatOptions);
488
yield return new ChatResponseUpdate(
ChatRole
.Assistant, contents);
501
await foreach (var update in client.GetStreamingResponseAsync([new(
ChatRole
.User, "test")], chatOptions))
ChatCompletion\LoggingChatClientTests.cs (5)
59
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "blue whale")));
69
[new(
ChatRole
.User, "What's the biggest animal?")],
108
yield return new(
ChatRole
.Assistant, "blue ");
109
yield return new(
ChatRole
.Assistant, "whale");
118
[new(
ChatRole
.User, "What's the biggest animal?")],
ChatCompletion\OpenTelemetryChatClientTests.cs (32)
41
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "The blue whale, I think."))
74
yield return new ChatResponseUpdate(
ChatRole
.Assistant, text)
114
new(
ChatRole
.System, "You are a close friend."),
115
new(
ChatRole
.User, "Hey!") { AuthorName = "Alice" },
116
new(
ChatRole
.Assistant, [new FunctionCallContent("12345", "GetPersonName")]),
117
new(
ChatRole
.Tool, [new FunctionResultContent("12345", "John")]),
118
new(
ChatRole
.Assistant, "Hey John, what's up?") { AuthorName = "BotAssistant" },
119
new(
ChatRole
.User, "What's the biggest animal?")
404
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant,
422
yield return new(
ChatRole
.Assistant, "Assistant response text");
442
new(
ChatRole
.User,
450
new(
ChatRole
.Assistant, [new FunctionCallContent("call-456", "SearchFiles")]),
451
new(
ChatRole
.Tool, [new FunctionResultContent("call-456", "Found 3 files")]),
588
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "The blue whale, I think."));
603
new(
ChatRole
.User,
658
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant,
676
yield return new(
ChatRole
.Assistant, "Processing with tools...");
705
new(
ChatRole
.User, "Execute code and generate an image"),
823
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Done"));
843
new(
ChatRole
.Assistant,
847
new(
ChatRole
.User,
917
yield return new ChatResponseUpdate(
ChatRole
.Assistant, "First") { ResponseId = "id1", ModelId = "responsemodel" };
919
yield return new ChatResponseUpdate(
ChatRole
.Assistant, "Second") { ResponseId = "id1" };
921
yield return new ChatResponseUpdate(
ChatRole
.Assistant, "Third") { ResponseId = "id1" };
932
await foreach (var update in chatClient.GetStreamingResponseAsync([new(
ChatRole
.User, "Hello")], new ChatOptions { ModelId = "mymodel" }))
980
return new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Response"));
992
await chatClient.GetResponseAsync([new(
ChatRole
.User, "Hello")]);
1037
await foreach (var update in chatClient.GetStreamingResponseAsync([new(
ChatRole
.User, "Hello")]))
1046
chatClient.GetResponseAsync([new(
ChatRole
.User, "Hello")]));
1091
await foreach (var update in chatClient.GetStreamingResponseAsync([new(
ChatRole
.User, "Hello")]))
1104
yield return new ChatResponseUpdate(
ChatRole
.Assistant, "chunk1");
1106
yield return new ChatResponseUpdate(
ChatRole
.Assistant, "chunk2");
ChatCompletion\ReducingChatClientTests.cs (10)
37
new(
ChatRole
.System, "You are a helpful assistant"),
38
new(
ChatRole
.User, "Hello"),
39
new(
ChatRole
.Assistant, "Hi there!"),
40
new(
ChatRole
.User, "What's the weather?")
45
new(
ChatRole
.System, "You are a helpful assistant"),
46
new(
ChatRole
.User, "What's the weather?")
50
var expectedResponse = new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "It's sunny!"));
51
var expectedUpdates = new[] { new ChatResponseUpdate(
ChatRole
.Assistant, "It's"), new ChatResponseUpdate(null, " sunny!") };
98
var reducedMessages = new List<ChatMessage> { new(
ChatRole
.User, "Reduced message") };
119
await client.GetResponseAsync(new List<ChatMessage> { new(
ChatRole
.User, "Original message") });
ChatCompletion\UseDelegateChatClientTests.cs (3)
42
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "hello")));
91
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "hello")));
184
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "non-streaming hello")));
ChatReduction\MessageCountingChatReducerTests.cs (44)
53
new ChatMessage(
ChatRole
.System, "You are a helpful assistant."),
54
new ChatMessage(
ChatRole
.User, "Hello"),
55
new ChatMessage(
ChatRole
.Assistant, "Hi there!"),
56
new ChatMessage(
ChatRole
.User, "How are you?"),
57
new ChatMessage(
ChatRole
.Assistant, "I'm doing well, thanks!"),
66
Assert.Equal(
ChatRole
.System, m.Role);
71
Assert.Equal(
ChatRole
.User, m.Role);
76
Assert.Equal(
ChatRole
.Assistant, m.Role);
88
new ChatMessage(
ChatRole
.System, "First system message"),
89
new ChatMessage(
ChatRole
.User, "Hello"),
90
new ChatMessage(
ChatRole
.System, "Second system message"),
91
new ChatMessage(
ChatRole
.Assistant, "Hi"),
92
new ChatMessage(
ChatRole
.User, "How are you?"),
93
new ChatMessage(
ChatRole
.Assistant, "I'm fine!"),
102
Assert.Equal(
ChatRole
.System, m.Role);
107
Assert.Equal(
ChatRole
.User, m.Role);
112
Assert.Equal(
ChatRole
.Assistant, m.Role);
117
Assert.Equal(1, resultList.Count(m => m.Role ==
ChatRole
.System));
127
new ChatMessage(
ChatRole
.User, "What's the weather?"),
128
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("call1", "get_weather", new Dictionary<string, object?> { ["location"] = "Seattle" })]),
129
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("call1", "Sunny, 72°F")]),
130
new ChatMessage(
ChatRole
.Assistant, "The weather in Seattle is sunny and 72°F."),
131
new ChatMessage(
ChatRole
.User, "Thanks!"),
132
new ChatMessage(
ChatRole
.Assistant, "You're welcome!"),
141
Assert.Equal(
ChatRole
.User, m.Role);
148
Assert.Equal(
ChatRole
.Assistant, m.Role);
167
messages.Add(new ChatMessage(i % 2 == 0 ?
ChatRole
.User :
ChatRole
.Assistant, $"Message {i}"));
183
var
expectedRole = expectedIndex % 2 == 0 ?
ChatRole
.User :
ChatRole
.Assistant;
202
new ChatMessage(
ChatRole
.System, "System prompt"),
211
Assert.Equal(
ChatRole
.System, m.Role);
223
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("call1", "func", null)]),
224
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("call1", "result")]),
225
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("call2", "func", null)]),
226
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("call2", "result")]),
241
new ChatMessage(
ChatRole
.System, "System"),
242
new ChatMessage(
ChatRole
.User, "First"),
243
new ChatMessage(
ChatRole
.Assistant, "Second"),
244
new ChatMessage(
ChatRole
.User, "Third"),
245
new ChatMessage(
ChatRole
.Assistant, "Fourth"),
254
Assert.Equal(
ChatRole
.System, m.Role);
259
Assert.Equal(
ChatRole
.Assistant, m.Role);
ChatReduction\SummarizingChatReducerTests.cs (57)
69
new ChatMessage(
ChatRole
.System, "You are a helpful assistant."),
70
new ChatMessage(
ChatRole
.User, "Hello"),
71
new ChatMessage(
ChatRole
.Assistant, "Hi there!"),
72
new ChatMessage(
ChatRole
.User, "How are you?"),
76
Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Summary of conversation")));
82
Assert.Equal(
ChatRole
.System, resultList[0].Role);
96
new ChatMessage(
ChatRole
.User, "What's the time?"),
97
new ChatMessage(
ChatRole
.Assistant, "Let me check"),
98
new ChatMessage(
ChatRole
.User, "What's the weather?"),
99
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("call1", "get_weather"), new TestInputRequestContent("uir1")]),
100
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("call1", "Sunny")]),
101
new ChatMessage(
ChatRole
.User, [new TestInputResponseContent("uir1")]),
102
new ChatMessage(
ChatRole
.Assistant, "It's sunny"),
108
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Asked about time")));
141
new ChatMessage(
ChatRole
.User, "First question"),
142
new ChatMessage(
ChatRole
.Assistant, "First answer"),
143
new ChatMessage(
ChatRole
.User, "Second question"),
144
new ChatMessage(
ChatRole
.Assistant, "Second answer"),
145
new ChatMessage(
ChatRole
.User, "Third question"),
146
new ChatMessage(
ChatRole
.Assistant, "Third answer"),
156
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Summary of first exchange")));
187
new ChatMessage(
ChatRole
.User, "What's the weather in Seattle?"),
188
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("call1", "get_weather", new Dictionary<string, object?> { ["location"] = "Seattle" }), new TestInputRequestContent("uir2")]),
189
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("call1", "Sunny, 72°F")]),
190
new ChatMessage(
ChatRole
.User, [new TestInputResponseContent("uir2")]),
191
new ChatMessage(
ChatRole
.Assistant, "It's sunny and 72°F in Seattle."),
192
new ChatMessage(
ChatRole
.User, "What about New York?"),
193
new ChatMessage(
ChatRole
.Assistant, [new FunctionCallContent("call2", "get_weather", new Dictionary<string, object?> { ["location"] = "New York" })]),
194
new ChatMessage(
ChatRole
.Tool, [new FunctionResultContent("call2", "Rainy, 65°F")]),
195
new ChatMessage(
ChatRole
.Assistant, "It's rainy and 65°F in New York."),
207
Assert.Contains(msgList, m => m.Role ==
ChatRole
.System);
209
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "User asked about weather in Seattle and New York.")));
242
messages.Add(new ChatMessage(
ChatRole
.Assistant, $"Message {i}"));
249
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Summary")));
276
new ChatMessage(
ChatRole
.User, "Message 1"),
277
new ChatMessage(
ChatRole
.Assistant, "Response 1"),
278
new ChatMessage(
ChatRole
.User, "Message 2"),
287
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Summary")));
302
new ChatMessage(
ChatRole
.System, "First system message"),
303
new ChatMessage(
ChatRole
.User, "Hello"),
304
new ChatMessage(
ChatRole
.System, "Second system message"),
305
new ChatMessage(
ChatRole
.Assistant, "Hi"),
306
new ChatMessage(
ChatRole
.User, "How are you?"),
310
Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "Summary")));
315
Assert.Equal(
ChatRole
.System, resultList[0].Role);
319
Assert.Equal(1, resultList.Count(m => m.Role ==
ChatRole
.System));
330
new ChatMessage(
ChatRole
.User, "Hi there! Can you tell me about golden retrievers?"),
331
new 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."),
332
new ChatMessage(
ChatRole
.User, "What kind of exercise do they need?"),
333
new 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."),
334
new ChatMessage(
ChatRole
.User, "Are they good with kids?"),
344
m => Assert.Equal(
ChatRole
.System, m.Role));
350
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, Summary)));
361
messages.Add(new ChatMessage(
ChatRole
.Assistant, "Golden retrievers get along well with kids! They're able to be playful and energetic while remaining gentle."));
362
messages.Add(new ChatMessage(
ChatRole
.User, "Do they make good lap dogs?"));
371
m => Assert.Equal(
ChatRole
.System, m.Role));
377
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, Summary)));
ChatRouting\FailoverChatClientTests.cs (49)
58
? router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]).ToChatResponseAsync()
59
: router.GetResponseAsync([new(
ChatRole
.User, "hi")]);
83
[new(
ChatRole
.User, "hi")],
86
[new(
ChatRole
.User, "hi")],
106
? router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]).ToChatResponseAsync()
107
: router.GetResponseAsync([new(
ChatRole
.User, "hi")]);
134
() => router.GetResponseAsync([new(
ChatRole
.User, "hi")]));
165
() => router.GetResponseAsync([new(
ChatRole
.User, "hi")]));
196
() => router.GetResponseAsync([new(
ChatRole
.User, "hi")]));
225
_ = await router.GetResponseAsync([new(
ChatRole
.User, "hi")], requestOptions);
257
ChatResponse expected = new(new ChatMessage(
ChatRole
.Assistant, "ok"));
276
? await router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")], requestOptions).ToChatResponseAsync()
277
: await router.GetResponseAsync([new(
ChatRole
.User, "hi")], requestOptions);
303
return Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "ok")));
323
? await router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")], requestOptions).ToChatResponseAsync()
324
: await router.GetResponseAsync([new(
ChatRole
.User, "hi")], requestOptions);
352
() => router.GetResponseAsync([new(
ChatRole
.User, "hi")]));
367
ChatResponse expected = new(new ChatMessage(
ChatRole
.Assistant, "ok"));
395
ChatResponse response = await router.GetResponseAsync([new(
ChatRole
.User, "hi")]);
423
_ = await router.GetResponseAsync([new(
ChatRole
.User, "hi")]);
432
ChatResponse expected = new(new ChatMessage(
ChatRole
.Assistant, "ok"));
446
ChatResponse response = await router.GetResponseAsync([new(
ChatRole
.User, "hi")]);
474
() => router.GetResponseAsync([new(
ChatRole
.User, "hi")]));
502
ChatResponse? response = await router.GetResponseAsync([new(
ChatRole
.User, "hi")]);
529
[new(
ChatRole
.User, "hi")],
557
[new(
ChatRole
.User, "hi")],
590
[new(
ChatRole
.User, "hi")],
628
() => CollectAsync(router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")])));
652
await router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]).ToChatResponseAsync();
686
[new(
ChatRole
.User, "hi")],
730
[new(
ChatRole
.User, "hi")],
743
ChatResponse expected = new(new ChatMessage(
ChatRole
.Assistant, "ok"));
758
ChatResponse response = await client.GetResponseAsync([new(
ChatRole
.User, "hi")]);
783
await client.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]).ToChatResponseAsync();
811
await client.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]).ToChatResponseAsync();
839
() => CollectAsync(router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")])));
862
await router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]).ToChatResponseAsync();
885
await router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]).ToChatResponseAsync();
916
await router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]).ToChatResponseAsync();
955
[new(
ChatRole
.User, "hi")],
1004
await router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]).ToChatResponseAsync();
1018
[new ChatResponseUpdate(
ChatRole
.Assistant, "first")],
1042
await foreach (ChatResponseUpdate update in router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]))
1080
await CollectAsync(router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]));
1111
await CollectAsync(router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]));
1135
await ConsumeOneAsync(router.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]));
1166
yield return new ChatResponseUpdate(
ChatRole
.Assistant, text);
1175
yield return new ChatResponseUpdate(
ChatRole
.Assistant, "never");
1187
yield return new ChatResponseUpdate(
ChatRole
.Assistant, "never");
ChatRouting\OrderedFailoverChatClientTests.cs (17)
38
ChatResponse expected = new(new ChatMessage(
ChatRole
.Assistant, "ok"));
49
ChatResponse response = await client.GetResponseAsync([new(
ChatRole
.User, "hi")]);
59
ChatResponse expected = new(new ChatMessage(
ChatRole
.Assistant, "ok"));
80
ChatResponse response = await client.GetResponseAsync([new(
ChatRole
.User, "hi")]);
101
() => client.GetResponseAsync([new(
ChatRole
.User, "hi")]));
121
() => client.GetResponseAsync([new(
ChatRole
.User, "hi")]));
144
_ = await client.GetResponseAsync([new(
ChatRole
.User, "one")]);
145
_ = await client.GetResponseAsync([new(
ChatRole
.User, "two")]);
183
client.GetResponseAsync([new(
ChatRole
.User, index.ToString())])),
205
client.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]).GetAsyncEnumerator())
217
ChatResponse expected = new(new ChatMessage(
ChatRole
.Assistant, "ok"));
226
ChatResponse response = await failover.GetResponseAsync([new(
ChatRole
.User, "hi")]);
262
[new(
ChatRole
.User, "hi")],
288
await client.GetStreamingResponseAsync([new(
ChatRole
.User, "hi")]).ToChatResponseAsync();
315
[new(
ChatRole
.User, "hi")],
354
ChatResponse expected = new(new ChatMessage(
ChatRole
.Assistant, "ok"));
362
ChatResponse response = await outer.GetResponseAsync([new(
ChatRole
.User, "hi")]);
ChatRouting\SemanticRoutingChatClientTests.cs (10)
97
ChatResponse expected = new(new ChatMessage(
ChatRole
.Assistant, "code"));
105
Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "writing"))),
118
ChatResponse first = await router.GetResponseAsync([new(
ChatRole
.User, "debug this code")]);
119
ChatResponse second = await router.GetResponseAsync([new(
ChatRole
.User, "debug this code")]);
149
Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "code"))),
154
Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "writing"))),
170
ChatResponse response = await router.GetResponseAsync([new(
ChatRole
.User, "query")]);
192
Task.FromResult(new ChatResponse(new ChatMessage(
ChatRole
.Assistant, "profiled"))),
194
ChatResponse expected = new(new ChatMessage(
ChatRole
.Assistant, "default"));
211
await router.GetResponseAsync([new(
ChatRole
.User, "unrelated query")]);
Realtime\OpenTelemetryRealtimeClientTests.cs (5)
590
var contentItem = new RealtimeConversationItem([new FunctionResultContent("call_1", "result_value")], role:
ChatRole
.Tool);
603
role:
ChatRole
.Assistant);
1001
var item = new RealtimeConversationItem([new TextContent("Hello from client")], role:
ChatRole
.User);
1010
var item = new RealtimeConversationItem([new TextContent("User text message")], role:
ChatRole
.User);
1021
var item = new RealtimeConversationItem([imageData], role:
ChatRole
.User);
Microsoft.Extensions.DataIngestion (7)
Processors\ClassificationEnricher.cs (1)
97
return new(
ChatRole
.System, sb.ToString());
Processors\ImageAlternativeTextEnricher.cs (2)
31
_systemPrompt = new(
ChatRole
.System, "For each of the following images, write a detailed alternative text with fewer than 50 words.");
99
[_systemPrompt, new(
ChatRole
.User, contents)],
Processors\KeywordEnricher.cs (1)
107
return new(
ChatRole
.System, sb.ToString());
Processors\SentimentEnricher.cs (1)
40
_systemPrompt = new(
ChatRole
.System, prompt);
Processors\SummaryEnricher.cs (1)
35
_systemPrompt = new(
ChatRole
.System, $"For each of the following texts, write a summary text with no more than {wordCount} words.");
Utils\Batching.cs (1)
41
new(
ChatRole
.User, contents)
Microsoft.Extensions.DataIngestion.Tests (18)
Processors\AlternativeTextEnricherTests.cs (6)
48
Assert.Equal(
ChatRole
.System, materializedMessages[0].Role);
49
Assert.Equal(
ChatRole
.User, materializedMessages[1].Role);
61
new ChatMessage(
ChatRole
.Assistant, JsonSerializer.Serialize(new Envelope<string[]> { data = descriptions }))
135
Assert.Equal(
ChatRole
.System, materializedMessages[0].Role);
136
Assert.Equal(
ChatRole
.User, materializedMessages[1].Role);
147
return Task.FromResult(new ChatResponse(new[] { new ChatMessage(
ChatRole
.Assistant, JsonSerializer.Serialize(data)) }));
Processors\ClassificationEnricherTests.cs (3)
78
Assert.Equal(
ChatRole
.System, materializedMessages[0].Role);
79
Assert.Equal(
ChatRole
.User, materializedMessages[1].Role);
84
new ChatMessage(
ChatRole
.Assistant, response)
Processors\KeywordEnricherTests.cs (3)
78
Assert.Equal(
ChatRole
.System, materializedMessages[0].Role);
79
Assert.Equal(
ChatRole
.User, materializedMessages[1].Role);
84
new ChatMessage(
ChatRole
.Assistant, response)
Processors\SentimentEnricherTests.cs (3)
62
Assert.Equal(
ChatRole
.System, materializedMessages[0].Role);
63
Assert.Equal(
ChatRole
.User, materializedMessages[1].Role);
68
new ChatMessage(
ChatRole
.Assistant, response)
Processors\SummaryEnricherTests.cs (3)
62
Assert.Equal(
ChatRole
.System, materializedMessages[0].Role);
63
Assert.Equal(
ChatRole
.User, materializedMessages[1].Role);
68
new ChatMessage(
ChatRole
.Assistant, response)