958 instantiations of ChatMessage
Aspire.Azure.AI.Inference.Tests (1)
Aspire.Azure.AI.OpenAI.Tests (2)
Aspire.Dashboard (29)
Model\Assistant\Prompts\KnownChatMessages.cs (25)
43return new ChatMessage(ChatRole.System, systemChatMessage);
67return new(ChatRole.User, resolvedPromptText);
78return new(ChatRole.User, prompt);
89return new(ChatRole.User, prompt);
99return new(ChatRole.User, message);
112return new(ChatRole.User, prompt);
122return new(ChatRole.User, prompt);
133return new(ChatRole.User, prompt);
142return new(ChatRole.User, prompt);
155return new(ChatRole.User, prompt);
165return new(ChatRole.User, prompt);
174return new(ChatRole.User, prompt);
196return new(ChatRole.User, prompt);
214return new(ChatRole.User, prompt);
224return new(ChatRole.User, prompt);
234return new(ChatRole.User, prompt);
243return new(ChatRole.User, prompt);
255return new(ChatRole.User, message);
264return new(ChatRole.User, message);
274return new ChatMessage(ChatRole.User, message);
284return new ChatMessage(ChatRole.User, message);
311return new(ChatRole.User, prompt);
338return new(ChatRole.User, prompt);
356return new(ChatRole.User, prompt);
365return new(ChatRole.User, prompt);
Aspire.OpenAI.Tests (2)
Microsoft.Extensions.AI (12)
ChatCompletion\ChatClientStructuredOutputExtensions.cs (3)
61GetResponseAsync<T>(chatClient, new ChatMessage(ChatRole.User, chatMessage), options, useJsonSchemaResponseFormat, cancellationToken);
101GetResponseAsync<T>(chatClient, new ChatMessage(ChatRole.User, chatMessage), serializerOptions, options, useJsonSchemaResponseFormat, cancellationToken);
190promptAugmentation = new ChatMessage(ChatRole.User, $$"""
Microsoft.Extensions.AI.Abstractions (5)
ChatCompletion\ChatMessage.cs (1)
51new()
Microsoft.Extensions.AI.Abstractions.Tests (21)
Microsoft.Extensions.AI.Evaluation (3)
Microsoft.Extensions.AI.Evaluation.Integration.Tests (9)
Microsoft.Extensions.AI.Evaluation.NLP.Tests (17)
Microsoft.Extensions.AI.Evaluation.Quality (22)
Microsoft.Extensions.AI.Evaluation.Reporting (3)
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (7)
Microsoft.Extensions.AI.Evaluation.Safety (2)
Microsoft.Extensions.AI.Evaluation.Tests (3)
Microsoft.Extensions.AI.Integration.Tests (111)
ChatClientIntegrationTests.cs (65)
78new(ChatRole.User, "Pick a city, any city"),
79new(ChatRole.Assistant, "Seattle"),
80new(ChatRole.User, "And another one"),
81new(ChatRole.Assistant, "Jakarta"),
82new(ChatRole.User, "What continent are they each in?"),
96new(ChatRole.System, []),
97new(ChatRole.User, []),
98new(ChatRole.Assistant, []),
99new(ChatRole.User, "What is 1 + 2? Reply with a single number."),
112new(ChatRole.User, "Quote, word for word, Neil Armstrong's famous words.")
170List<ChatMessage> history = [new(ChatRole.User, "Explain in 100 words how AI works")];
193new(ChatRole.User,
211new(ChatRole.User,
241new(ChatRole.User, "What is the current secret number?")
308new(ChatRole.User, "What is the secret number for id foo?")
340new(ChatRole.User, "What is the secret number for John aged 19?")
370new(ChatRole.User, "Can you add bacon, lettuce, and tomatoes to Peter's shopping cart?")
649var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000");
665var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000");
690var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000");
742var message = new ChatMessage(ChatRole.User, "What is the temperature?");
781var message = new ChatMessage(ChatRole.User, "What is the temperature?");
823var message = new ChatMessage(ChatRole.User, "What is the temperature?");
851await chatClient.GetResponseAsync([new(ChatRole.User, "What's the biggest animal?")]);
950var response = await chatClient.GetResponseAsync([new(ChatRole.User, "What's the biggest animal?")]);
1146new(ChatRole.User, "My name is Alice and I love hiking in the mountains."),
1147new(ChatRole.Assistant, "Nice to meet you, Alice! Hiking in the mountains sounds wonderful. Do you have a favorite trail?"),
1148new(ChatRole.User, "Yes, I love the Pacific Crest Trail. I hiked a section last summer."),
1149new(ChatRole.Assistant, "The Pacific Crest Trail is amazing! Which section did you hike?"),
1150new(ChatRole.User, "I hiked the section through the Sierra Nevada. It was challenging but beautiful."),
1151new(ChatRole.Assistant, "The Sierra Nevada section is known for its stunning views. How long did it take you?"),
1152new(ChatRole.User, "What's my name and what activity do I enjoy?")
1188new(ChatRole.System, "You are a pirate. Always respond in pirate speak."),
1189new(ChatRole.User, "Tell me about the weather"),
1190new(ChatRole.Assistant, "Ahoy matey! The weather be fine today, with clear skies on the horizon!"),
1191new(ChatRole.User, "What about tomorrow?"),
1192new(ChatRole.Assistant, "Arr, tomorrow be lookin' a bit cloudy, might be some rain blowin' in from the east!"),
1193new(ChatRole.User, "Should I bring an umbrella?"),
1194new(ChatRole.Assistant, "Aye, ye best be bringin' yer umbrella, unless ye want to be soaked like a barnacle!"),
1195new(ChatRole.User, "What's 2 + 2?")
1249new(ChatRole.User, "What's the weather in Seattle?"),
1250new(ChatRole.Assistant, "Let me check the weather in Seattle for you."),
1251new(ChatRole.User, "And what about Miami?"),
1252new(ChatRole.Assistant, "I'll check Miami's weather as well."),
1253new(ChatRole.User, "Which city had better weather?")
1283new(ChatRole.User, "I'm Bob and I work as a software engineer at a startup."),
1284new(ChatRole.Assistant, "Nice to meet you, Bob! Working at a startup must be exciting. What kind of software do you develop?"),
1285new(ChatRole.User, "We build AI-powered tools for education."),
1286new(ChatRole.Assistant, "That sounds impactful! AI in education has so much potential."),
1287new(ChatRole.User, "Yes, we focus on personalized learning experiences."),
1288new(ChatRole.Assistant, "Personalized learning is the future of education!"),
1289new(ChatRole.User, "Was anyone named in the conversation? Provide their name and job.")
1329new(ChatRole.User, "I have 3 cats and 2 dogs."),
1330new(ChatRole.Assistant, "That's 5 pets total! You must have a lively household."),
1331new(ChatRole.User, "Yes, and I spend about $200 per month on pet food."),
1332new(ChatRole.Assistant, "That's a significant expense, but I'm sure they're worth it!"),
1333new(ChatRole.User, "They eat 10 cans of food per week."),
1334new(ChatRole.Assistant, "That's quite a bit of food for your furry friends!"),
1335new(ChatRole.User, "How many pets do I have in total?")
1471history.Add(new ChatMessage(ChatRole.User, "What will the weather be in Seattle tomorrow?"));
1480history.Add(new ChatMessage(ChatRole.User, "Please translate 'good evening' into French."));
1535new(ChatRole.User, "What will the weather be like in Redmond next week?")
1600history.Add(new ChatMessage(ChatRole.User, "What's the weather like tomorrow in Seattle?"));
1613history.Add(new ChatMessage(ChatRole.User, "And what about next week?"));
1705history.Add(new ChatMessage(ChatRole.User, "What will the weather be like in London tomorrow?"));
ImageGeneratingChatClientIntegrationTests.cs (12)
129[new ChatMessage(ChatRole.User, "Please generate an image of a cat")],
167[new ChatMessage(ChatRole.User, [new TextContent("Please edit this image to add a red border"), originalImageData])],
196new(ChatRole.User, "Please generate an image of a dog")
204chatHistory.Add(new ChatMessage(ChatRole.User, "Please edit the image to make it more colorful"));
246new(ChatRole.User, "Please generate an image of a tree")
254chatHistory.Add(new ChatMessage(ChatRole.User, "Please edit the image to add flowers"));
259chatHistory.Add(new ChatMessage(ChatRole.User, "Please edit that last image to add birds"));
291new(ChatRole.User, "Please generate an image of a tree")
299chatHistory.Add(new ChatMessage(ChatRole.User, "Please edit the image to add fruit"));
304chatHistory.Add(new ChatMessage(ChatRole.User, "That didn't work out. Please edit the original image to add birds"));
342[new ChatMessage(ChatRole.User, "Generate an image of a castle")],
380new ChatMessage(ChatRole.User,
ReducingChatClientTests.cs (5)
45new ChatMessage(ChatRole.User, "Hi there! Can you tell me about golden retrievers?"),
46new 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."),
47new ChatMessage(ChatRole.User, "What kind of exercise do they need?"),
48new 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."),
49new ChatMessage(ChatRole.User, "Are they good with kids?"),
ToolReductionTests.cs (26)
32new[] { new ChatMessage(ChatRole.User, "Tell me about weather") },
50new[] { new ChatMessage(ChatRole.User, "anything") },
67new ChatMessage(ChatRole.User, "Can you do some weather math for forecasting?")
88new[] { new ChatMessage(ChatRole.User, "Explain weather math please") },
103var messages = new[] { new ChatMessage(ChatRole.User, "weather") };
122new[] { new ChatMessage(ChatRole.User, "anything") }, null);
127new[] { new ChatMessage(ChatRole.User, "weather") }, options);
145new[] { new ChatMessage(ChatRole.User, "Pick something") },
161new[] { new ChatMessage(ChatRole.User, "any") },
178new[] { new ChatMessage(ChatRole.User, "math") },
193new[] { new ChatMessage(ChatRole.User, "translate") },
211new[] { new ChatMessage(ChatRole.User, "weather") },
227new ChatMessage(ChatRole.User, "Please tell me the weather tomorrow."),
228new ChatMessage(ChatRole.Assistant, "Sure, I can help."),
229new ChatMessage(ChatRole.User, "Now instead solve a math problem.")
258new[] { new ChatMessage(ChatRole.User, "weather and math") },
277new ChatMessage(ChatRole.User, userLine),
278new ChatMessage(ChatRole.Assistant,
309new ChatMessage(ChatRole.User,
334new[] { new ChatMessage(ChatRole.User, "math") },
353new[] { new ChatMessage(ChatRole.User, "weather math") },
381new[] { new ChatMessage(ChatRole.User, "weather math please") },
411new[] { new ChatMessage(ChatRole.User, "math") },
433var messages = new[] { new ChatMessage(ChatRole.User, " ") };
456var messages = new[] { new ChatMessage(ChatRole.User, " ") };
479new ChatMessage(ChatRole.User, "This content will be ignored by custom selector.")
Microsoft.Extensions.AI.OpenAI (4)
Microsoft.Extensions.AI.OpenAI.Tests (92)
OpenAIChatClientTests.cs (17)
820new(ChatRole.System, "You are a really nice friend."),
821new(ChatRole.User, "hello!"),
822new(ChatRole.Assistant, "hi, how are you?"),
823new(ChatRole.User, "i'm good. how are you?"),
927new(ChatRole.System, [new TextContent("You are a really nice friend."), new TextContent("Really nice.")]),
928new(ChatRole.User, "hello!"),
1023new(ChatRole.System, "You are a really nice friend."),
1024new(ChatRole.User, "hello!"),
1025new(ChatRole.Assistant, (string?)null),
1026new(ChatRole.User, "i'm good. how are you?"),
1465new(ChatRole.System, "You are a really nice friend."),
1466new(ChatRole.User, "hello!"),
1467new(ChatRole.Assistant,
1473new (ChatRole.Tool,
1478new(ChatRole.Assistant, "You are great."),
1479new(ChatRole.User, "Thanks!"),
1585new(ChatRole.User,
OpenAIConversionTests.cs (35)
641new(ChatRole.System, "You are a helpful assistant."),
642new(ChatRole.User, "Hello") { AuthorName = "Jane" },
643new(ChatRole.Assistant,
652new(ChatRole.Tool, [new FunctionResultContent("callid123", "theresult")]),
653new(ChatRole.Assistant, "The answer is 42.") { AuthorName = "@#$#$@$" },
710new(ChatRole.System, "You are a helpful assistant."),
711new(ChatRole.User, "Hello"),
712new(ChatRole.Assistant,
721new(ChatRole.Tool, [new FunctionResultContent("callid123", "theresult")]),
722new(ChatRole.Assistant, "The answer is 42."),
763new(ChatRole.User,
771new(ChatRole.Assistant,
776new(ChatRole.User,
926new(ChatRole.Assistant, "Hi there!")
952new(ChatRole.Assistant,
988var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant,
1027var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello"));
1057var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant,
1102var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Test"))
1125var chatResponse = new ChatResponse(new ChatMessage(inputRole, "Test"));
1464var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Test"))
1477var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello, world!"))
1502var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Test message"))
1552new(ChatRole.Assistant, "First message"),
1553new(ChatRole.Assistant, "Second message"),
1554new(ChatRole.Assistant,
1589new(ChatRole.Assistant,
1594new(ChatRole.Tool, [new FunctionResultContent("call-456", "The weather is sunny")]),
1595new(ChatRole.Assistant, "The weather in Seattle is sunny!")
1624new(ChatRole.System, "You are a helpful assistant."),
1625new(ChatRole.User, "Hello, how are you?"),
1626new(ChatRole.Assistant, "I'm doing well, thank you for asking!")
1651var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Default test"));
1669var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Model test"));
1684var chatResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "Model priority test"))
OpenAIResponseClientIntegrationTests.cs (12)
184List<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")];
203var approvalResponse = new ChatMessage(ChatRole.Tool,
406List<ChatMessage> input = [new ChatMessage(ChatRole.User, "What is on my calendar for today?")];
417input.Add(new ChatMessage(ChatRole.Tool, [approvalRequest.CreateResponse(true)]));
579List<ChatMessage> chatHistory = [new ChatMessage(ChatRole.User, "What is 2+2? Think step by step but be very brief.")];
597chatHistory.Add(new ChatMessage(ChatRole.User, "What is 3+3?"));
616deserializedHistory.Add(new ChatMessage(ChatRole.User, "What is 4+4?"));
631deserializedHistory.Add(new ChatMessage(ChatRole.User, "What is 5+5?"));
659List<ChatMessage> chatHistory = [new ChatMessage(ChatRole.User, "What is 2+2? Think step by step but be very brief.")];
677chatHistory.Add(new ChatMessage(ChatRole.User, "What is 3+3?"));
696deserializedHistory.Add(new ChatMessage(ChatRole.User, "What is 4+4?"));
711deserializedHistory.Add(new ChatMessage(ChatRole.User, "What is 5+5?"));
OpenAIResponseClientTests.cs (28)
810var response = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "Search the web for the temperature today in Fremont")], chatOptions);
904await foreach (var update in client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "Search the web for the temperature today in Fremont")], chatOptions))
1527new ChatMessage(new ChatRole(role), [approvalRequest.CreateResponse(true)]), chatOptions);
4190new ChatMessage(ChatRole.User, "test"),
4191new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call_123", new TextContent("Result text"))])
4246new ChatMessage(ChatRole.User, "test"),
4247new ChatMessage(ChatRole.Tool, [
4308new ChatMessage(ChatRole.User, "test"),
4309new ChatMessage(ChatRole.Tool, [
4365new ChatMessage(ChatRole.User, "test"),
4366new ChatMessage(ChatRole.Tool, [
4422new ChatMessage(ChatRole.User, "test"),
4423new ChatMessage(ChatRole.Tool, [
4481new ChatMessage(ChatRole.User, "test"),
4482new ChatMessage(ChatRole.Tool, [
4544new ChatMessage(ChatRole.User, "test"),
4545new ChatMessage(ChatRole.Tool, [
4599new ChatMessage(ChatRole.User, "test"),
4600new ChatMessage(ChatRole.Tool, [
4654new ChatMessage(ChatRole.User, "test"),
4655new ChatMessage(ChatRole.Tool, [
4711new ChatMessage(ChatRole.User, "test"),
4712new ChatMessage(ChatRole.Tool, [
4768new ChatMessage(ChatRole.User, "test"),
4769new ChatMessage(ChatRole.Tool, [
4935new ChatMessage(ChatRole.User, [
5183[new ChatMessage(ChatRole.User, "test")],
5381var response = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "")]);
Microsoft.Extensions.AI.Tests (588)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (15)
75var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
136var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
198new ChatMessage(ChatRole.Assistant,
203new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callid123", "result")]),
239var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "This is not valid JSON"));
245var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
258var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "null"));
264var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
277var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, [new UriContent("https://example.com", "image/*")]));
283var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
311var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
339var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
364var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, JsonSerializer.Serialize(expectedResult, jso)));
401var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
429var chatHistory = new List<ChatMessage> { new(ChatRole.User, "Hello") };
ChatCompletion\DistributedCachingChatClientTest.cs (12)
49new ChatMessage(new ChatRole("fakeRole"), "This is some content")
141return new ChatResponse(new ChatMessage(ChatRole.Assistant, "Hello"));
185var input = new ChatMessage(ChatRole.User, "abc");
215return new ChatResponse(new ChatMessage(ChatRole.Assistant, "A good result"));
224var input = new ChatMessage(ChatRole.User, "abc");
495var input = new ChatMessage(ChatRole.User, "abc");
533var input = new ChatMessage(ChatRole.User, "abc");
560return new(new ChatMessage(ChatRole.Assistant, options!.AdditionalProperties!["someKey"]!.ToString()));
611return new(new ChatMessage(ChatRole.Assistant, innerCallCount.ToString()));
657return new(new ChatMessage(ChatRole.Assistant, options!.AdditionalProperties!["someKey"]!.ToString()));
686new ChatMessage(new ChatRole("fakeRole"),
745new ChatMessage(ChatRole.Assistant, [new TextContent("Hey")])));
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (168)
36new ChatMessage(ChatRole.User, "hello"),
41new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
46new ChatMessage(ChatRole.Assistant,
72new ChatMessage(ChatRole.User, "hello"),
77new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
82new ChatMessage(ChatRole.Assistant,
116new ChatMessage(ChatRole.User, "hello"),
121new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
126new ChatMessage(ChatRole.Assistant,
152new ChatMessage(ChatRole.User, "hello"),
153new ChatMessage(ChatRole.Assistant,
158new ChatMessage(ChatRole.User,
167new ChatMessage(ChatRole.User, "hello"),
168new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
169new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
174new ChatMessage(ChatRole.Assistant, "world"),
179new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
180new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
181new ChatMessage(ChatRole.Assistant, "world"),
204new ChatMessage(ChatRole.User, "hello"),
205new ChatMessage(ChatRole.Assistant,
210new ChatMessage(ChatRole.User,
220new ChatMessage(ChatRole.User, "hello"),
221new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
222new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
227new ChatMessage(ChatRole.Assistant, "world"),
232new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
233new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
234new ChatMessage(ChatRole.Assistant, "world"),
256new ChatMessage(ChatRole.User, "hello"),
257new ChatMessage(ChatRole.Assistant,
261new ChatMessage(ChatRole.Assistant,
265new ChatMessage(ChatRole.User,
269new ChatMessage(ChatRole.User,
277new ChatMessage(ChatRole.User, "hello"),
278new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = "resp1" },
279new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]) { MessageId = "resp2" },
280new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
285new ChatMessage(ChatRole.Assistant, "world"),
290new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = "resp1" },
291new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]) { MessageId = "resp2" },
292new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
293new ChatMessage(ChatRole.Assistant, "world"),
315new ChatMessage(ChatRole.User, "hello"),
316new ChatMessage(ChatRole.Assistant,
321new ChatMessage(ChatRole.User,
330new ChatMessage(ChatRole.User, "hello"),
331new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
332new ChatMessage(ChatRole.Tool,
341new ChatMessage(ChatRole.Assistant, "world"),
346new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
347new ChatMessage(ChatRole.Tool,
352new ChatMessage(ChatRole.Assistant, "world"),
374new ChatMessage(ChatRole.User, "hello"),
375new ChatMessage(ChatRole.Assistant,
380new ChatMessage(ChatRole.User,
389new ChatMessage(ChatRole.User, "hello"),
390new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
391new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Tool call invocation rejected.")]),
392new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
397new ChatMessage(ChatRole.Assistant, "world"),
402new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
403new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Tool call invocation rejected.")]),
404new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
405new ChatMessage(ChatRole.Assistant, "world"),
410new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
411new ChatMessage(ChatRole.Tool,
416new ChatMessage(ChatRole.Assistant, "world"),
438new ChatMessage(ChatRole.User, "hello"),
439new ChatMessage(ChatRole.Assistant,
444new ChatMessage(ChatRole.User,
459new ChatMessage(ChatRole.User, "hello"),
460new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
461new ChatMessage(ChatRole.Tool,
470new ChatMessage(ChatRole.Assistant, "world"),
475new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
476new ChatMessage(ChatRole.Tool,
481new ChatMessage(ChatRole.Assistant, "world"),
504new ChatMessage(ChatRole.User, "hello"),
505new ChatMessage(ChatRole.Assistant,
511new ChatMessage(ChatRole.User,
521new ChatMessage(ChatRole.User, "hello"),
522new ChatMessage(ChatRole.Assistant,
528new ChatMessage(ChatRole.Tool,
533new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 3: test")]),
538new ChatMessage(ChatRole.Assistant, "world"),
543new ChatMessage(ChatRole.Assistant,
549new ChatMessage(ChatRole.Tool,
554new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 3: test")]),
555new ChatMessage(ChatRole.Assistant, "world"),
560new ChatMessage(ChatRole.Assistant,
566new ChatMessage(ChatRole.Tool,
572new ChatMessage(ChatRole.Assistant, "world"),
596new ChatMessage(ChatRole.User, "hello"),
597new ChatMessage(ChatRole.Assistant,
601new ChatMessage(ChatRole.User,
612new ChatMessage(ChatRole.User, "hello"),
613new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
614new ChatMessage(ChatRole.Tool,
622new ChatMessage(ChatRole.Assistant, "world"),
627new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
628new ChatMessage(ChatRole.Tool,
632new ChatMessage(ChatRole.Assistant, "world"),
654new ChatMessage(ChatRole.User, "hello"),
655new ChatMessage(ChatRole.Assistant,
660new ChatMessage(ChatRole.User,
669new ChatMessage(ChatRole.User, "hello"),
670new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
671new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
676new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 3 } })]),
681new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
682new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
683new ChatMessage(ChatRole.Assistant,
708new ChatMessage(ChatRole.User, "hello"),
709new ChatMessage(ChatRole.Assistant,
714new ChatMessage(ChatRole.User,
719new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
720new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
721new ChatMessage(ChatRole.Assistant,
725new ChatMessage(ChatRole.User,
733new ChatMessage(ChatRole.User, "hello"),
734new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
735new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
736new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "Func1")]),
737new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 1")]),
742new ChatMessage(ChatRole.Assistant, "World"),
747new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "Func1")]),
748new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 1")]),
749new ChatMessage(ChatRole.Assistant, "World"),
779new ChatMessage(ChatRole.User, "hello"),
786new ChatMessage(ChatRole.User, "hello"),
790new ChatMessage(ChatRole.User, "hello"),
791new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
792new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")])
800new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
804new ChatMessage(ChatRole.Assistant, "World again"),
810new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
811new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
812new ChatMessage(ChatRole.Assistant, "World again"),
834new ChatMessage(ChatRole.User, "hello"),
835new ChatMessage(ChatRole.Assistant,
864new ChatMessage(ChatRole.User, "hello"),
865new ChatMessage(ChatRole.User,
874new ChatMessage(ChatRole.User, "hello"),
875new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
876new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
881new ChatMessage(ChatRole.Assistant, "world"),
886new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
887new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
888new ChatMessage(ChatRole.Assistant, "world"),
911new ChatMessage(ChatRole.User,
920new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
925new ChatMessage(ChatRole.Assistant, "world"),
930new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1"), new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
931new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
932new ChatMessage(ChatRole.Assistant, "world"),
960List<ChatMessage> input = [new ChatMessage(ChatRole.User, "hello")];
1033List<ChatMessage> input = [new ChatMessage(ChatRole.User, "hello")];
1131List<ChatMessage> input = [new ChatMessage(ChatRole.User, "hello")];
1137new ChatMessage(ChatRole.Assistant, [alreadyProcessedFunctionCall]),
1143new ChatMessage(ChatRole.Assistant, [alreadyProcessedFunctionCall]),
1175new ChatMessage(ChatRole.User, "hello"),
1176new ChatMessage(ChatRole.Assistant,
1180new ChatMessage(ChatRole.User,
1188new ChatMessage(ChatRole.Assistant, "world"),
1194new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("function-call-id", "Func1")]) { MessageId = OriginalMessageId },
1195new ChatMessage(ChatRole.Tool, [new FunctionResultContent("function-call-id", result: "Result 1")]),
1196new ChatMessage(ChatRole.Assistant, "world"),
ChatCompletion\FunctionInvokingChatClientTests.cs (267)
93new ChatMessage(ChatRole.User, "hello"),
94new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
95new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
96new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
97new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
98new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]),
99new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
100new ChatMessage(ChatRole.Assistant, "world"),
127new ChatMessage(ChatRole.User, "hello"),
128new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
129new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
130new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
131new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
132new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]),
133new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
134new ChatMessage(ChatRole.Assistant, "world"),
160new ChatMessage(ChatRole.User, "hello"),
161new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
162new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
163new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
164new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
165new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]),
166new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
167new ChatMessage(ChatRole.Assistant, "world"),
191new ChatMessage(ChatRole.User, "hello"),
192new ChatMessage(ChatRole.Assistant,
198new ChatMessage(ChatRole.Tool,
204new ChatMessage(ChatRole.Assistant,
209new ChatMessage(ChatRole.Tool,
214new ChatMessage(ChatRole.Assistant, "world"),
251new ChatMessage(ChatRole.User, "hello"),
252new ChatMessage(ChatRole.Assistant,
257new ChatMessage(ChatRole.Tool,
262new ChatMessage(ChatRole.Assistant, "done"),
295new ChatMessage(ChatRole.User, "hello"),
296new ChatMessage(ChatRole.Assistant,
301new ChatMessage(ChatRole.Tool,
306new ChatMessage(ChatRole.Assistant, "done"),
329new ChatMessage(ChatRole.User, "hello"),
330new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
331new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1 from delegate")]),
332new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
333new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42 from delegate")]),
334new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]),
335new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
336new ChatMessage(ChatRole.Assistant, "world"),
380new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")])));
384return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "done")));
393new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")])).ToChatResponseUpdates());
397return YieldAsync(new ChatResponse(new ChatMessage(ChatRole.Assistant, "done")).ToChatResponseUpdates());
416new ChatMessage(ChatRole.User, "hello"),
461new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")])));
465return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "done")));
474new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")])).ToChatResponseUpdates());
478return YieldAsync(new ChatResponse(new ChatMessage(ChatRole.Assistant, "done")).ToChatResponseUpdates());
495new ChatMessage(ChatRole.User, "hello"),
542new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")])));
546return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "done")));
555new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")])).ToChatResponseUpdates());
559return YieldAsync(new ChatResponse(new ChatMessage(ChatRole.Assistant, "done")).ToChatResponseUpdates());
579new ChatMessage(ChatRole.User, "hello"),
636new ChatMessage(ChatRole.User, "hello"),
637new ChatMessage(ChatRole.Assistant, [new FunctionCallContent($"callId0", "VoidReturn")]),
644plan.Add(new ChatMessage(ChatRole.Tool, [new FunctionResultContent($"callId{i}", result: "Success: Function completed.")]));
645plan.Add(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent($"callId{(i + 1)}", "VoidReturn")]));
668var message = new ChatMessage(ChatRole.Assistant, [new FunctionCallContent($"callId{capturedOptions.Count}", "Func1")]);
712var message = new ChatMessage(ChatRole.Assistant, [new FunctionCallContent($"callId{capturedOptions.Count}", "Func1")]);
759var message = new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]);
764var message = new ChatMessage(ChatRole.Assistant, "Done");
804var message = new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]);
858new ChatMessage(ChatRole.User, "hello"),
936new ChatMessage(ChatRole.User, "hello"),
953var assistantMessage = new ChatMessage(ChatRole.Assistant, []);
954var toolMessage = new ChatMessage(ChatRole.Tool, []);
983new ChatMessage(ChatRole.User, "hello"),
984new ChatMessage(ChatRole.Assistant, [new TextContent("extra"), new FunctionCallContent("callId1", "Func1"), new TextContent("stuff")]),
985new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 1")]),
986new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
987new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
988new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } }), new TextContent("more")]),
989new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
990new ChatMessage(ChatRole.Assistant, "world"),
1020new ChatMessage(ChatRole.User, "hello"),
1021new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1022new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: detailedErrors ? "Error: Function failed. Exception: Oh no!" : "Error: Function failed.")]),
1023new ChatMessage(ChatRole.Assistant, "world"),
1042new ChatMessage(ChatRole.User, "hello"),
1043new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]),
1044new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1045new ChatMessage(ChatRole.Assistant, "world"),
1099new ChatMessage(ChatRole.User, "hello"),
1100new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]),
1101new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1102new ChatMessage(ChatRole.Assistant, "world"),
1177new(ChatRole.User, "Hello"),
1235new(ChatRole.User, "Hello"),
1245new(ChatRole.Assistant, [new FunctionCallContent($"callId{chatContents.Count()}", "Func1")]) :
1246new(ChatRole.Assistant, "The answer is 42.");
1293new ChatMessage(ChatRole.User, "hello"),
1294new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["i"] = 41 })]),
1295new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 41")]),
1296new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func1", new Dictionary<string, object?> { ["i"] = 42 })]),
1297new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 42")]),
1304new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "Func1", new Dictionary<string, object?> { ["i"] = 43 })]),
1305new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 43")]),
1306new ChatMessage(ChatRole.Assistant, "world"),
1369var message = new ChatMessage(ChatRole.Assistant, resultContents);
1377List<ChatMessage> messages = [new(ChatRole.User, "hello")];
1412return new ChatResponse(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId-abc", "Func1")]))
1420return new ChatResponse(new ChatMessage(ChatRole.Assistant, "done!"));
1449new ChatMessage(ChatRole.User, "hello"),
1450new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]),
1451new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1452new ChatMessage(ChatRole.Assistant, "world"),
1478new ChatMessage(ChatRole.User, "hello"),
1479new ChatMessage(ChatRole.Assistant, [
1483new ChatMessage(ChatRole.Tool,
1488new ChatMessage(ChatRole.Assistant, "world"),
1531new(ChatRole.User, "hello"),
1532new(ChatRole.Assistant, [
1536new(ChatRole.Tool, [
1540new(ChatRole.Assistant, "done"),
1550new(ChatRole.User, "hello"),
1551new(ChatRole.Assistant, [
1555new(ChatRole.Tool, [
1559new(ChatRole.Assistant, "done"),
1579new(ChatRole.User, "hello"),
1580new(ChatRole.Assistant, [new FunctionCallContent("callId1", "DefOnly")]),
1581new(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Should not be produced")]),
1582new(ChatRole.Assistant, "world"),
1608new(ChatRole.User, "hi"),
1609new(ChatRole.Assistant, [
1613new(ChatRole.Tool, [new FunctionResultContent("callId1", result: "OK"), new FunctionResultContent("callId2", result: "nope")]),
1614new(ChatRole.Assistant, "done"),
1645messages.Add(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]));
1678new ChatMessage(ChatRole.User, "hello"),
1679new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1680new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1681new ChatMessage(ChatRole.Assistant, "world"),
1727new ChatMessage(ChatRole.User, "hello"),
1728new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1729new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1730new ChatMessage(ChatRole.Assistant, "world"),
1767new ChatMessage(ChatRole.User, "hello"),
1768new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1769new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1770new ChatMessage(ChatRole.Assistant, "world"),
1816new ChatMessage(ChatRole.User, "hello"),
1817new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "secret" })]),
1818new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1819new ChatMessage(ChatRole.Assistant, "world"),
1888new ChatMessage(ChatRole.User, "hello"),
1889new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1890new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1891new ChatMessage(ChatRole.Assistant, "world"),
1937new ChatMessage(ChatRole.User, "hello"),
1938new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
1939new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1940new ChatMessage(ChatRole.Assistant, "world"),
1974var message = new ChatMessage(ChatRole.Assistant, [alreadyProcessedFunctionCall]);
1980var message = new ChatMessage(ChatRole.Assistant, [alreadyProcessedFunctionCall]);
1988? await client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "hello")], options).ToChatResponseAsync()
1989: await client.GetResponseAsync([new ChatMessage(ChatRole.User, "hello")], options);
2029var message = new ChatMessage(ChatRole.Assistant, [needsProcessing, alreadyProcessed]);
2035var message = new ChatMessage(ChatRole.Assistant, "done");
2044var message = new ChatMessage(ChatRole.Assistant, [needsProcessing, alreadyProcessed]);
2050var message = new ChatMessage(ChatRole.Assistant, "done");
2059? await client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "hello")], options).ToChatResponseAsync()
2060: await client.GetResponseAsync([new ChatMessage(ChatRole.User, "hello")], options);
2093return new ChatResponse(new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]));
2097return new ChatResponse(new ChatMessage(ChatRole.Assistant, "Done"));
2106var response = await client2.GetResponseAsync([new ChatMessage(ChatRole.User, "hello")], options);
2156var message = new ChatMessage(ChatRole.Assistant, CloneContents(plan[contents.Count()].Contents))
2220ChatMessage message = new(ChatRole.Assistant, CloneContents(plan[contents.Count()].Contents))
2320return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2327return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2333return new ChatResponse([new ChatMessage(ChatRole.Assistant, "Done")]);
2343message = new ChatMessage(ChatRole.Assistant,
2349message = new ChatMessage(ChatRole.Assistant,
2354message = new ChatMessage(ChatRole.Assistant, "Done");
2365var result = await client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "test")], options).ToChatResponseAsync();
2370var result = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "test")], options);
2414return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2421return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2427return new ChatResponse([new ChatMessage(ChatRole.Assistant, "Done")]);
2437message = new ChatMessage(ChatRole.Assistant,
2443message = new ChatMessage(ChatRole.Assistant,
2448message = new ChatMessage(ChatRole.Assistant, "Done");
2459var result = await client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "test")], options).ToChatResponseAsync();
2468var result = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "test")], options);
2521return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2527return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2532return new ChatResponse([new ChatMessage(ChatRole.Assistant, "Done")]);
2542message = new ChatMessage(ChatRole.Assistant,
2548message = new ChatMessage(ChatRole.Assistant,
2553message = new ChatMessage(ChatRole.Assistant, "Done");
2564var result = await client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "test")], options).ToChatResponseAsync();
2574var result = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "test")], options);
2619return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2627return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2633return new ChatResponse([new ChatMessage(ChatRole.Assistant, "Done")]);
2643message = new ChatMessage(ChatRole.Assistant,
2649message = new ChatMessage(ChatRole.Assistant,
2655message = new ChatMessage(ChatRole.Assistant, "Done");
2669var result = await client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "test")], options).ToChatResponseAsync();
2677var result = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "test")], options);
2723return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2729return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2734return new ChatResponse([new ChatMessage(ChatRole.Assistant, "Done")]);
2744message = new ChatMessage(ChatRole.Assistant,
2750message = new ChatMessage(ChatRole.Assistant,
2755message = new ChatMessage(ChatRole.Assistant, "Done");
2769var result = await client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "test")], options).ToChatResponseAsync();
2779var result = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "test")], options);
2821return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2826return new ChatResponse([new ChatMessage(ChatRole.Assistant, "Done")]);
2836message = new ChatMessage(ChatRole.Assistant,
2841message = new ChatMessage(ChatRole.Assistant, "Done");
2852var result = await client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "test")], options).ToChatResponseAsync();
2857var result = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "test")], options);
2899return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2907return new ChatResponse([new ChatMessage(ChatRole.Assistant,
2912return new ChatResponse([new ChatMessage(ChatRole.Assistant, "Done")]);
2922message = new ChatMessage(ChatRole.Assistant,
2928message = new ChatMessage(ChatRole.Assistant,
2933message = new ChatMessage(ChatRole.Assistant, "Done");
2944var result = await client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "test")], options).ToChatResponseAsync();
2953var result = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "test")], options);
3000return new ChatResponse([new ChatMessage(ChatRole.Assistant,
3008return new ChatResponse([new ChatMessage(ChatRole.Assistant,
3013return new ChatResponse([new ChatMessage(ChatRole.Assistant, "Done")]);
3023message = new ChatMessage(ChatRole.Assistant,
3029message = new ChatMessage(ChatRole.Assistant,
3034message = new ChatMessage(ChatRole.Assistant, "Done");
3045var result = await client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "test")], options).ToChatResponseAsync();
3055var result = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "test")], options);
3106return new ChatResponse([new ChatMessage(ChatRole.Assistant,
3114return new ChatResponse([new ChatMessage(ChatRole.Assistant,
3119return new ChatResponse([new ChatMessage(ChatRole.Assistant, "Done")]);
3129message = new ChatMessage(ChatRole.Assistant,
3135message = new ChatMessage(ChatRole.Assistant,
3140message = new ChatMessage(ChatRole.Assistant, "Done");
3151var result = await client.GetStreamingResponseAsync([new ChatMessage(ChatRole.User, "test")], options).ToChatResponseAsync();
3162var result = await client.GetResponseAsync([new ChatMessage(ChatRole.User, "test")], options);
3189new ChatMessage(ChatRole.User, "hello"),
3190new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "UnknownFunc")]),
3191new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Error: Requested function \"UnknownFunc\" not found.")]),
3192new ChatMessage(ChatRole.Assistant, "world"),
3219new ChatMessage(ChatRole.User, "hello"),
3220new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
3221new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Should not be produced")]),
3222new ChatMessage(ChatRole.Assistant, "world"),
3255new ChatMessage(ChatRole.User, "hello"),
3256new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "TerminatingFunc")]),
3257new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Terminated")]),
3284new ChatMessage(ChatRole.User, "hello"),
3285new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]),
3291new ChatMessage(ChatRole.User, "hello"),
3292new ChatMessage(ChatRole.Assistant,
3318Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "world")))
3327new ChatMessage(ChatRole.User, "hello"),
3328new ChatMessage(ChatRole.Assistant,
3332new ChatMessage(ChatRole.User,
3355Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "world")))
3364new ChatMessage(ChatRole.User, "hello"),
3365new ChatMessage(ChatRole.Assistant,
3369new ChatMessage(ChatRole.User,
ChatCompletion\ImageGeneratingChatClientTests.cs (14)
39return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "test response")));
52var response = await client.GetResponseAsync([new(ChatRole.User, "test")], chatOptions);
76return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "test response")));
89var response = await client.GetResponseAsync([new(ChatRole.User, "test")], chatOptions);
123return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "test response")));
137var response = await client.GetResponseAsync([new(ChatRole.User, "test")], chatOptions);
241await foreach (var update in client.GetStreamingResponseAsync([new(ChatRole.User, "test")], chatOptions))
261return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "test response")));
269var response = await client.GetResponseAsync([new(ChatRole.User, "test")], null);
284return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "test response")));
297await client.GetResponseAsync([new(ChatRole.User, "test")], chatOptions);
316var responseMessage = new ChatMessage(ChatRole.Assistant,
331var response = await client.GetResponseAsync([new(ChatRole.User, "test")], chatOptions);
373await foreach (var responseUpdate in client.GetStreamingResponseAsync([new(ChatRole.User, "test")], chatOptions))
ChatCompletion\OpenTelemetryChatClientTests.cs (18)
38return new ChatResponse(new ChatMessage(ChatRole.Assistant, "The blue whale, I think."))
109new(ChatRole.System, "You are a close friend."),
110new(ChatRole.User, "Hey!") { AuthorName = "Alice" },
111new(ChatRole.Assistant, [new FunctionCallContent("12345", "GetPersonName")]),
112new(ChatRole.Tool, [new FunctionResultContent("12345", "John")]),
113new(ChatRole.Assistant, "Hey John, what's up?") { AuthorName = "BotAssistant" },
114new(ChatRole.User, "What's the biggest animal?")
356return new ChatResponse(new ChatMessage(ChatRole.Assistant,
394new(ChatRole.User,
402new(ChatRole.Assistant, [new FunctionCallContent("call-456", "SearchFiles")]),
403new(ChatRole.Tool, [new FunctionResultContent("call-456", "Found 3 files")]),
540return new ChatResponse(new ChatMessage(ChatRole.Assistant, "The blue whale, I think."));
555new(ChatRole.User,
610return new ChatResponse(new ChatMessage(ChatRole.Assistant,
648new(ChatRole.User, "Execute code and generate an image"),
766return new ChatResponse(new ChatMessage(ChatRole.Assistant, "Done"));
786new(ChatRole.Assistant,
790new(ChatRole.User,
ChatCompletion\ReducingChatClientTests.cs (9)
37new(ChatRole.System, "You are a helpful assistant"),
38new(ChatRole.User, "Hello"),
39new(ChatRole.Assistant, "Hi there!"),
40new(ChatRole.User, "What's the weather?")
45new(ChatRole.System, "You are a helpful assistant"),
46new(ChatRole.User, "What's the weather?")
50var expectedResponse = new ChatResponse(new ChatMessage(ChatRole.Assistant, "It's sunny!"));
98var reducedMessages = new List<ChatMessage> { new(ChatRole.User, "Reduced message") };
119await client.GetResponseAsync(new List<ChatMessage> { new(ChatRole.User, "Original message") });
ChatReduction\MessageCountingChatReducerTests.cs (28)
53new ChatMessage(ChatRole.System, "You are a helpful assistant."),
54new ChatMessage(ChatRole.User, "Hello"),
55new ChatMessage(ChatRole.Assistant, "Hi there!"),
56new ChatMessage(ChatRole.User, "How are you?"),
57new ChatMessage(ChatRole.Assistant, "I'm doing well, thanks!"),
88new ChatMessage(ChatRole.System, "First system message"),
89new ChatMessage(ChatRole.User, "Hello"),
90new ChatMessage(ChatRole.System, "Second system message"),
91new ChatMessage(ChatRole.Assistant, "Hi"),
92new ChatMessage(ChatRole.User, "How are you?"),
93new ChatMessage(ChatRole.Assistant, "I'm fine!"),
127new ChatMessage(ChatRole.User, "What's the weather?"),
128new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call1", "get_weather", new Dictionary<string, object?> { ["location"] = "Seattle" })]),
129new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "Sunny, 72°F")]),
130new ChatMessage(ChatRole.Assistant, "The weather in Seattle is sunny and 72°F."),
131new ChatMessage(ChatRole.User, "Thanks!"),
132new ChatMessage(ChatRole.Assistant, "You're welcome!"),
167messages.Add(new ChatMessage(i % 2 == 0 ? ChatRole.User : ChatRole.Assistant, $"Message {i}"));
202new ChatMessage(ChatRole.System, "System prompt"),
223new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call1", "func", null)]),
224new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "result")]),
225new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call2", "func", null)]),
226new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call2", "result")]),
241new ChatMessage(ChatRole.System, "System"),
242new ChatMessage(ChatRole.User, "First"),
243new ChatMessage(ChatRole.Assistant, "Second"),
244new ChatMessage(ChatRole.User, "Third"),
245new ChatMessage(ChatRole.Assistant, "Fourth"),
ChatReduction\SummarizingChatReducerTests.cs (51)
69new ChatMessage(ChatRole.System, "You are a helpful assistant."),
70new ChatMessage(ChatRole.User, "Hello"),
71new ChatMessage(ChatRole.Assistant, "Hi there!"),
72new ChatMessage(ChatRole.User, "How are you?"),
76Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary of conversation")));
96new ChatMessage(ChatRole.User, "What's the time?"),
97new ChatMessage(ChatRole.Assistant, "Let me check"),
98new ChatMessage(ChatRole.User, "What's the weather?"),
99new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call1", "get_weather"), new TestUserInputRequestContent("uir1")]),
100new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "Sunny")]),
101new ChatMessage(ChatRole.User, [new TestUserInputResponseContent("uir1")]),
102new ChatMessage(ChatRole.Assistant, "It's sunny"),
108return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Asked about time")));
141new ChatMessage(ChatRole.User, "First question"),
142new ChatMessage(ChatRole.Assistant, "First answer"),
143new ChatMessage(ChatRole.User, "Second question"),
144new ChatMessage(ChatRole.Assistant, "Second answer"),
145new ChatMessage(ChatRole.User, "Third question"),
146new ChatMessage(ChatRole.Assistant, "Third answer"),
156return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary of first exchange")));
187new ChatMessage(ChatRole.User, "What's the weather in Seattle?"),
188new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call1", "get_weather", new Dictionary<string, object?> { ["location"] = "Seattle" }), new TestUserInputRequestContent("uir2")]),
189new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "Sunny, 72°F")]),
190new ChatMessage(ChatRole.User, [new TestUserInputResponseContent("uir2")]),
191new ChatMessage(ChatRole.Assistant, "It's sunny and 72°F in Seattle."),
192new ChatMessage(ChatRole.User, "What about New York?"),
193new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("call2", "get_weather", new Dictionary<string, object?> { ["location"] = "New York" })]),
194new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call2", "Rainy, 65°F")]),
195new ChatMessage(ChatRole.Assistant, "It's rainy and 65°F in New York."),
209return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "User asked about weather in Seattle and New York.")));
242messages.Add(new ChatMessage(ChatRole.Assistant, $"Message {i}"));
249return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary")));
276new ChatMessage(ChatRole.User, "Message 1"),
277new ChatMessage(ChatRole.Assistant, "Response 1"),
278new ChatMessage(ChatRole.User, "Message 2"),
287return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary")));
302new ChatMessage(ChatRole.System, "First system message"),
303new ChatMessage(ChatRole.User, "Hello"),
304new ChatMessage(ChatRole.System, "Second system message"),
305new ChatMessage(ChatRole.Assistant, "Hi"),
306new ChatMessage(ChatRole.User, "How are you?"),
310Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, "Summary")));
330new ChatMessage(ChatRole.User, "Hi there! Can you tell me about golden retrievers?"),
331new 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."),
332new ChatMessage(ChatRole.User, "What kind of exercise do they need?"),
333new 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."),
334new ChatMessage(ChatRole.User, "Are they good with kids?"),
350return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, Summary)));
361messages.Add(new ChatMessage(ChatRole.Assistant, "Golden retrievers get along well with kids! They're able to be playful and energetic while remaining gentle."));
362messages.Add(new ChatMessage(ChatRole.User, "Do they make good lap dogs?"));
377return Task.FromResult(new ChatResponse(new ChatMessage(ChatRole.Assistant, Summary)));
Microsoft.Extensions.DataIngestion (7)
Microsoft.Extensions.DataIngestion.Tests (6)
Microsoft.ML.GenAI.Core (1)
Microsoft.ML.GenAI.Core.Tests (3)
Microsoft.ML.GenAI.LLaMA.Tests (3)
Microsoft.ML.GenAI.Samples (5)
938 references to ChatMessage
Aspire.Azure.AI.OpenAI.Tests (1)
Aspire.Dashboard (48)
Model\Assistant\Prompts\KnownChatMessages.cs (25)
17public static ChatMessage CreateSystemMessage()
46public static ChatMessage CreateInitialMessage(string promptText, string applicationName, List<ResourceViewModel> resources, DashboardOptions dashboardOptions)
70public static ChatMessage CreateFollowUpMessage(int questionCount)
81public static ChatMessage CreateRecentActivityMessage()
92public static ChatMessage CreateResourceRecentActivityMessage(ResourceViewModel resource)
105public static ChatMessage CreateAnalyzeResourceMessage(ResourceViewModel resource)
115public static ChatMessage CreateSummarizeResourcesMessage()
125public static ChatMessage CreateUnhealthyResourcesMessage()
136public static ChatMessage CreateHelpMessage()
148public static ChatMessage CreateAllConsoleLogsMessage()
158public static ChatMessage CreateResourceConsoleLogsMessage(ResourceViewModel resource)
168public static ChatMessage CreateHelpMessage()
180public static ChatMessage CreateErrorStructuredLogsMessage(List<OtlpLogEntry> errorLogs, DashboardOptions options, Func<IOtlpResource, string> getResourceName)
199public static ChatMessage CreateAnalyzeLogEntryMessage(OtlpLogEntry logEntry, DashboardOptions options, Func<IOtlpResource, string> getResourceName)
217public static ChatMessage CreateResourceStructuredLogsMessage(OtlpResource resource)
227public static ChatMessage CreateAllStructuredLogsMessage()
237public static ChatMessage CreateHelpMessage()
249public static ChatMessage CreateAllTracesPerformanceMessage()
258public static ChatMessage CreateResourceTracesPerformanceMessage(string resourceName)
267public static ChatMessage CreateAllTracesMessage()
277public static ChatMessage CreateResourceTracesMessage(OtlpResource resource)
287public static ChatMessage CreateAnalyzeTraceMessage(OtlpTrace trace, List<OtlpLogEntry> traceLogEntries, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers, DashboardOptions options, Func<IOtlpResource, string> getResourceName)
314public static ChatMessage CreateAnalyzeSpanMessage(OtlpSpan span, List<OtlpLogEntry> traceLogEntries, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers, DashboardOptions options, Func<IOtlpResource, string> getResourceName)
341public static ChatMessage CreateErrorTracesMessage(List<OtlpTrace> errorTraces, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers, DashboardOptions options, Func<IOtlpResource, string> getResourceName)
359public static ChatMessage CreateHelpMessage()
Aspire.OpenAI.Tests (1)
Microsoft.Extensions.AI (133)
ChatCompletion\AnonymousDelegatingChatClient.cs (11)
21private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatResponse>>? _getResponseFunc;
29private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? _getStreamingResponseFunc;
32private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task>, CancellationToken, Task>? _sharedFunc;
51Func<IEnumerable<ChatMessage>, ChatOptions?, Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task>, CancellationToken, Task> sharedFunc)
77Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatResponse>>? getResponseFunc,
78Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? getStreamingResponseFunc)
89IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
98IEnumerable<ChatMessage> messages, ChatOptions? options, CancellationToken cancellationToken)
128IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
ChatCompletion\CachingChatClient.cs (6)
47IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
57IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
75IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
85IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default)
150protected abstract string GetCacheKey(IEnumerable<ChatMessage> messages, ChatOptions? options, params ReadOnlySpan<object?> additionalValues);
209protected virtual bool EnableCaching(IEnumerable<ChatMessage> messages, ChatOptions? options)
ChatCompletion\ChatClientBuilder.cs (4)
108public ChatClientBuilder Use(Func<IEnumerable<ChatMessage>, ChatOptions?, Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task>, CancellationToken, Task> sharedFunc)
143Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatResponse>>? getResponseFunc,
144Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? getStreamingResponseFunc)
ChatCompletion\FunctionInvokingChatClient.cs (52)
268IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
279List<ChatMessage> originalMessages = [.. messages];
282List<ChatMessage>? augmentedHistory = null; // the actual history of messages sent on turns other than the first
284List<ChatMessage>? responseMessages = null; // tracked list of messages, across multiple turns, to be used for the final response
299(IList<ChatMessage>? invokedApprovedFunctionApprovalResponses, bool shouldTerminate, consecutiveErrorCount) =
416IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default)
428List<ChatMessage> originalMessages = [.. messages];
431List<ChatMessage>? augmentedHistory = null; // the actual history of messages sent on turns other than the first
433List<ChatMessage>? responseMessages = null; // tracked list of messages, across multiple turns, to be used in fallback cases to reconstitute history
460foreach (var message in preDownstreamCallHistory)
468(IList<ChatMessage>? invokedApprovedFunctionApprovalResponses, bool shouldTerminate, consecutiveErrorCount) =
473foreach (var message in invokedApprovedFunctionApprovalResponses)
632foreach (var message in modeAndMessages.MessagesAdded)
649private static ChatResponseUpdate ConvertToolResultMessageToUpdate(ChatMessage message, string? conversationId, string? messageId) =>
688IEnumerable<ChatMessage> originalMessages,
689ref IEnumerable<ChatMessage> messages,
690[NotNull] ref List<ChatMessage>? augmentedHistory,
692List<ChatMessage> allTurnsResponseMessages,
806private static bool HasAnyApprovalContent(List<ChatMessage> messages) =>
811IList<ChatMessage> messages, [NotNullWhen(true)] ref List<FunctionCallContent>? functionCalls)
992private async Task<(bool ShouldTerminate, int NewConsecutiveErrorCount, IList<ChatMessage> MessagesAdded)> ProcessFunctionCallsAsync(
993List<ChatMessage> messages, ChatOptions? options,
1011IList<ChatMessage> addedMessages = CreateResponseMessages([result]);
1056IList<ChatMessage> addedMessages = CreateResponseMessages(results.ToArray());
1071private void UpdateConsecutiveErrorCountOrThrow(IList<ChatMessage> added, ref int consecutiveErrorCount)
1103private void ThrowIfNoFunctionResultsAdded(IList<ChatMessage>? messages)
1122List<ChatMessage> messages, ChatOptions? options,
1196protected virtual IList<ChatMessage> CreateResponseMessages(
1389private (List<ChatMessage>? preDownstreamCallHistory, List<ApprovalResultWithRequestMessage>? approvals) ProcessFunctionApprovalResponses(
1390List<ChatMessage> originalMessages, bool hasConversationId, string? toolMessageId, string? functionCallContentFallbackMessageId)
1397ICollection<ChatMessage>? allPreDownstreamCallMessages = ConvertToFunctionCallContentMessages(
1403ChatMessage? rejectedPreDownstreamCallResultsMessage = rejectedFunctionCallResults is not null ?
1410List<ChatMessage>? preDownstreamCallHistory = null;
1441List<ChatMessage> messages)
1443Dictionary<string, ChatMessage>? allApprovalRequestsMessages = null;
1457var message = messages[i];
1497var newMessage = message.Clone();
1544ChatMessage? requestMessage = null;
1582private static ICollection<ChatMessage>? ConvertToFunctionCallContentMessages(
1587ChatMessage? currentMessage = null;
1588Dictionary<string, ChatMessage>? messagesById = null;
1636if (messagesById?.Values is ICollection<ChatMessage> cm)
1651/// Takes the <see cref="FunctionCallContent"/> from the <paramref name="resultWithRequestMessage"/> and wraps it in a <see cref="ChatMessage"/>
1654private static ChatMessage ConvertToFunctionCallContentMessage(ApprovalResultWithRequestMessage resultWithRequestMessage, string? fallbackMessageId)
1656ChatMessage functionCallMessage = resultWithRequestMessage.RequestMessage?.Clone() ?? new() { Role = ChatRole.Assistant };
1726private IList<ChatMessage> ReplaceFunctionCallsWithApprovalRequests(
1727IList<ChatMessage> messages,
1764var message = lastMessageIndex != messageIndex ? outputMessages[messageIndex].Clone() : outputMessages[messageIndex];
1788/// wrapped in <see cref="ChatMessage"/> objects.
1790private async Task<(IList<ChatMessage>? FunctionResultContentMessages, bool ShouldTerminate, int ConsecutiveErrorCount)> InvokeApprovedFunctionApprovalResponsesAsync(
1792List<ChatMessage> originalMessages,
1906public ChatMessage? RequestMessage { get; set; }
Microsoft.Extensions.AI.Abstractions (52)
ChatCompletion\ChatResponseExtensions.cs (17)
30public static void AddMessages(this IList<ChatMessage> list, ChatResponse response)
35if (list is List<ChatMessage> listConcrete)
41foreach (var message in response.Messages)
48/// <summary>Converts the <paramref name="updates"/> into <see cref="ChatMessage"/> instances and adds them to <paramref name="list"/>.</summary>
54/// As part of combining <paramref name="updates"/> into a series of <see cref="ChatMessage"/> instances, the
59public static void AddMessages(this IList<ChatMessage> list, IEnumerable<ChatResponseUpdate> updates)
72/// <summary>Converts the <paramref name="update"/> into a <see cref="ChatMessage"/> instance and adds it to <paramref name="list"/>.</summary>
80/// no <see cref="ChatMessage"/> will be added to the <paramref name="list"/>.
82public static void AddMessages(this IList<ChatMessage> list, ChatResponseUpdate update, Func<AIContent, bool>? filter = null)
100/// <summary>Converts the <paramref name="updates"/> into <see cref="ChatMessage"/> instances and adds them to <paramref name="list"/>.</summary>
108/// As part of combining <paramref name="updates"/> into a series of <see cref="ChatMessage"/> instances, tne
114this IList<ChatMessage> list, IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken = default)
122IList<ChatMessage> list, IAsyncEnumerable<ChatResponseUpdate> updates, CancellationToken cancellationToken) =>
132/// <see cref="ChatMessage"/> instances. This includes using <see cref="ChatResponseUpdate.MessageId"/> to determine
160/// <see cref="ChatMessage"/> instances. This includes using <see cref="ChatResponseUpdate.MessageId"/> to determine
492var lastMessage = response.Messages[response.Messages.Count - 1];
500ChatMessage message;
Microsoft.Extensions.AI.Abstractions.Tests (51)
TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; }
22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; }
29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.Extensions.AI.Evaluation (49)
Microsoft.Extensions.AI.Evaluation.Integration.Tests (41)
Microsoft.Extensions.AI.Evaluation.NLP (3)
Microsoft.Extensions.AI.Evaluation.Quality (64)
Microsoft.Extensions.AI.Evaluation.Reporting (12)
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (4)
Microsoft.Extensions.AI.Evaluation.Safety (36)
ContentSafetyServicePayloadUtilities.cs (22)
17IEnumerable<ChatMessage> conversation,
79IEnumerable<ChatMessage> conversation,
90List<Dictionary<string, ChatMessage>> turns;
110if (turn.TryGetValue("question", out ChatMessage? question))
115if (turn.TryGetValue("answer", out ChatMessage? answer))
165IEnumerable<ChatMessage> conversation,
182List<Dictionary<string, ChatMessage>> turns;
202if (turn.TryGetValue("question", out ChatMessage? question))
207if (turn.TryGetValue("answer", out ChatMessage? answer))
246IEnumerable<ChatMessage> conversation,
260List<Dictionary<string, ChatMessage>> turns;
274IEnumerable<JsonObject> GetMessages(Dictionary<string, ChatMessage> turn, int turnIndex)
278if (turn.TryGetValue("question", out ChatMessage? question))
289if (turn.TryGetValue("answer", out ChatMessage? answer))
314IEnumerable<JsonObject> GetContents(ChatMessage message)
384(List<Dictionary<string, ChatMessage>> turns,
388IEnumerable<ChatMessage> conversation,
395List<Dictionary<string, ChatMessage>> turns = [];
396Dictionary<string, ChatMessage> currentTurn = [];
416foreach (ChatMessage message in conversation)
450void ValidateContents(ChatMessage message)
478foreach (var message in turn.Values)
Microsoft.Extensions.AI.Evaluation.Tests (3)
Microsoft.Extensions.AI.Integration.Tests (53)
ChatClientIntegrationTests.cs (26)
110IList<ChatMessage> chatHistory =
170List<ChatMessage> history = [new(ChatRole.User, "Explain in 100 words how AI works")];
239List<ChatMessage> messages =
306List<ChatMessage> messages =
338List<ChatMessage> messages =
368List<ChatMessage> messages =
649var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000");
665var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000");
690var message = new ChatMessage(ChatRole.User, "Pick a random number, uniformly distributed between 1 and 1000000");
742var message = new ChatMessage(ChatRole.User, "What is the temperature?");
781var message = new ChatMessage(ChatRole.User, "What is the temperature?");
823var message = new ChatMessage(ChatRole.User, "What is the temperature?");
1144List<ChatMessage> messages =
1186List<ChatMessage> messages =
1247List<ChatMessage> messages =
1281List<ChatMessage> messages =
1327List<ChatMessage> messages =
1346var summaryMessage = chatClient.LastSummarizedConversation[0];
1368public IReadOnlyList<ChatMessage>? LastSummarizedConversation { get; private set; }
1392public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
1395public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
1468List<ChatMessage> history = [];
1533var history = new List<ChatMessage>
1597List<ChatMessage> history = [];
1704List<ChatMessage> history = [];
1729IEnumerable<ChatMessage> messages,
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; }
22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; }
29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
ToolReductionTests.cs (4)
646public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; }
647public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; }
649public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) =>
652public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) =>
Microsoft.Extensions.AI.OllamaSharp.Integration.Tests (1)
Microsoft.Extensions.AI.OpenAI (27)
Microsoft.Extensions.AI.OpenAI.Tests (48)
Microsoft.Extensions.AI.Tests (277)
ChatCompletion\DistributedCachingChatClientTest.cs (9)
123private sealed class CustomCachingChatClient(IChatClient innerClient, IDistributedCache storage, Func<IEnumerable<ChatMessage>, ChatOptions?, bool> enableCaching) :
126protected override bool EnableCaching(IEnumerable<ChatMessage> messages, ChatOptions? options) => enableCaching(messages, options);
185var input = new ChatMessage(ChatRole.User, "abc");
224var input = new ChatMessage(ChatRole.User, "abc");
495var input = new ChatMessage(ChatRole.User, "abc");
533var input = new ChatMessage(ChatRole.User, "abc");
803ChatMessage expectedMessage = expected.Messages.Last();
804ChatMessage actualMessage = actual.Messages.Last();
878protected override string GetCacheKey(IEnumerable<ChatMessage> messages, ChatOptions? options, params ReadOnlySpan<object?> additionalValues)
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (110)
34List<ChatMessage> input =
39List<ChatMessage> downstreamClientOutput =
44List<ChatMessage> expectedOutput =
70List<ChatMessage> input =
75List<ChatMessage> downstreamClientOutput =
80List<ChatMessage> expectedOutput =
114List<ChatMessage> input =
119List<ChatMessage> downstreamClientOutput =
124List<ChatMessage> expectedOutput =
150List<ChatMessage> input =
165List<ChatMessage> expectedDownstreamClientInput =
172List<ChatMessage> downstreamClientOutput =
177List<ChatMessage> output =
202List<ChatMessage> input =
218List<ChatMessage> expectedDownstreamClientInput =
225List<ChatMessage> downstreamClientOutput =
230List<ChatMessage> output =
254List<ChatMessage> input =
275List<ChatMessage> expectedDownstreamClientInput =
283List<ChatMessage> downstreamClientOutput =
288List<ChatMessage> output =
313List<ChatMessage> input =
328List<ChatMessage> expectedDownstreamClientInput =
339List<ChatMessage> downstreamClientOutput =
344List<ChatMessage> output =
372List<ChatMessage> input =
387List<ChatMessage> expectedDownstreamClientInput =
395List<ChatMessage> downstreamClientOutput =
400List<ChatMessage> nonStreamingOutput =
408List<ChatMessage> streamingOutput =
436List<ChatMessage> input =
457List<ChatMessage> expectedDownstreamClientInput =
468List<ChatMessage> downstreamClientOutput =
473List<ChatMessage> output =
502List<ChatMessage> input =
519List<ChatMessage> expectedDownstreamClientInput =
536List<ChatMessage> downstreamClientOutput =
541List<ChatMessage> nonStreamingOutput =
558List<ChatMessage> streamingOutput =
594List<ChatMessage> input =
610List<ChatMessage> expectedDownstreamClientInput =
620List<ChatMessage> downstreamClientOutput =
625List<ChatMessage> output =
652List<ChatMessage> input =
667List<ChatMessage> expectedDownstreamClientInput =
674List<ChatMessage> downstreamClientOutput =
679List<ChatMessage> output =
706List<ChatMessage> input =
731List<ChatMessage> expectedDownstreamClientInput =
740List<ChatMessage> downstreamClientOutput =
745List<ChatMessage> output =
777List<ChatMessage> input =
782Func<Queue<List<ChatMessage>>> expectedDownstreamClientInput = () => new Queue<List<ChatMessage>>(
784new List<ChatMessage>
788new List<ChatMessage>
796Func<Queue<List<ChatMessage>>> downstreamClientOutput = () => new Queue<List<ChatMessage>>(
798new List<ChatMessage>
802new List<ChatMessage>
808List<ChatMessage> output =
832List<ChatMessage> input =
862List<ChatMessage> input =
872List<ChatMessage> expectedDownstreamClientInput =
879List<ChatMessage> downstreamClientOutput =
884List<ChatMessage> output =
909List<ChatMessage> input =
918List<ChatMessage> expectedDownstreamClientInput =
923List<ChatMessage> downstreamClientOutput =
928List<ChatMessage> output =
960List<ChatMessage> input = [new ChatMessage(ChatRole.User, "hello")];
968IEnumerable<ChatMessage> contents, ChatOptions? actualOptions, [EnumeratorCancellation] CancellationToken actualCancellationToken)
989var updates = service.GetStreamingResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(input), options, cts.Token);
1033List<ChatMessage> input = [new ChatMessage(ChatRole.User, "hello")];
1041IEnumerable<ChatMessage> contents, ChatOptions? actualOptions, [EnumeratorCancellation] CancellationToken actualCancellationToken)
1067var updates = service.GetStreamingResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(input), options, cts.Token);
1131List<ChatMessage> input = [new ChatMessage(ChatRole.User, "hello")];
1135List<ChatMessage> downstreamClientOutput =
1141List<ChatMessage> expectedOutput =
1173List<ChatMessage> input =
1186List<ChatMessage> downstreamClientOutput =
1192List<ChatMessage> expectedOutput =
1208private static Task<List<ChatMessage>> InvokeAndAssertAsync(
1210List<ChatMessage> input,
1211List<ChatMessage> downstreamClientOutput,
1212List<ChatMessage> expectedOutput,
1213List<ChatMessage>? expectedDownstreamClientInput = null,
1219new Queue<List<ChatMessage>>(new[] { downstreamClientOutput }),
1221expectedDownstreamClientInput is null ? null : new Queue<List<ChatMessage>>(new[] { expectedDownstreamClientInput }),
1225private static async Task<List<ChatMessage>> InvokeAndAssertMultiRoundAsync(
1227List<ChatMessage> input,
1228Queue<List<ChatMessage>> downstreamClientOutput,
1229List<ChatMessage> expectedOutput,
1230Queue<List<ChatMessage>>? expectedDownstreamClientInput = null,
1264var result = await service.GetResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(input), options, cts.Token);
1267var actualOutput = result.Messages as List<ChatMessage> ?? result.Messages.ToList();
1296private static Task<List<ChatMessage>> InvokeAndAssertStreamingAsync(
1298List<ChatMessage> input,
1299List<ChatMessage> downstreamClientOutput,
1300List<ChatMessage> expectedOutput,
1301List<ChatMessage>? expectedDownstreamClientInput = null,
1307new Queue<List<ChatMessage>>(new[] { downstreamClientOutput }),
1309expectedDownstreamClientInput is null ? null : new Queue<List<ChatMessage>>(new[] { expectedDownstreamClientInput }),
1313private static async Task<List<ChatMessage>> InvokeAndAssertStreamingMultiRoundAsync(
1315List<ChatMessage> input,
1316Queue<List<ChatMessage>> downstreamClientOutput,
1317List<ChatMessage> expectedOutput,
1318Queue<List<ChatMessage>>? expectedDownstreamClientInput = null,
1346var result = await service.GetStreamingResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(input), options, cts.Token).ToChatResponseAsync();
1349var actualOutput = result.Messages as List<ChatMessage> ?? result.Messages.ToList();
ChatCompletion\FunctionInvokingChatClientTests.cs (97)
91List<ChatMessage> plan =
125List<ChatMessage> plan =
158List<ChatMessage> plan =
189List<ChatMessage> plan =
249List<ChatMessage> plan =
293List<ChatMessage> plan =
327List<ChatMessage> plan =
376var toolMessage = msgs.FirstOrDefault(m => m.Role == ChatRole.Tool);
389var toolMessage = msgs.FirstOrDefault(m => m.Role == ChatRole.Tool);
414var messages = new List<ChatMessage>
430var toolMessage = response.Messages.First(m => m.Role == ChatRole.Tool);
457var toolMessage = msgs.FirstOrDefault(m => m.Role == ChatRole.Tool);
470var toolMessage = msgs.FirstOrDefault(m => m.Role == ChatRole.Tool);
493var messages = new List<ChatMessage>
510var toolMessage = response.Messages.First(m => m.Role == ChatRole.Tool);
538var toolMessage = msgs.FirstOrDefault(m => m.Role == ChatRole.Tool);
551var toolMessage = msgs.FirstOrDefault(m => m.Role == ChatRole.Tool);
577var messages = new List<ChatMessage>
594var toolMessage = response.Messages.First(m => m.Role == ChatRole.Tool);
634List<ChatMessage> plan =
668var message = new ChatMessage(ChatRole.Assistant, [new FunctionCallContent($"callId{capturedOptions.Count}", "Func1")]);
712var message = new ChatMessage(ChatRole.Assistant, [new FunctionCallContent($"callId{capturedOptions.Count}", "Func1")]);
759var message = new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]);
764var message = new ChatMessage(ChatRole.Assistant, "Done");
804var message = new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]);
856List<ChatMessage> plan =
934List<ChatMessage> plan =
951private static IEnumerable<ChatMessage> CreateFunctionCallIterationPlan(ref int callIndex, params bool[] shouldThrow)
953var assistantMessage = new ChatMessage(ChatRole.Assistant, []);
954var toolMessage = new ChatMessage(ChatRole.Tool, []);
981List<ChatMessage> plan =
998static void Validate(List<ChatMessage> finalChat)
1018List<ChatMessage> plan =
1040List<ChatMessage> plan =
1097List<ChatMessage> plan =
1175var messages = new List<ChatMessage>
1233var messages = new List<ChatMessage>
1244ChatMessage message = chatContents.Count() is 1 or 3 ?
1291List<ChatMessage> planBeforeTermination =
1301List<ChatMessage> plan =
1316async Task InvokeAsync(Func<Task<List<ChatMessage>>> work)
1360var existingSearchResult = chatContents.SingleOrDefault(m => m.Role == ChatRole.Tool);
1369var message = new ChatMessage(ChatRole.Assistant, resultContents);
1377List<ChatMessage> messages = [new(ChatRole.User, "hello")];
1383var lastMessage = messages.Last();
1404Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, ChatResponse> callback =
1447List<ChatMessage> plan =
1476List<ChatMessage> plan =
1529List<ChatMessage> planForContinue =
1548List<ChatMessage> fullPlanWithUnknown =
1577List<ChatMessage> fullPlan =
1585List<ChatMessage> expected = fullPlan.Take(2).ToList();
1606List<ChatMessage> fullPlan =
1617List<ChatMessage> expected = fullPlan.Take(2).ToList();
1640List<ChatMessage> messages = [];
1676List<ChatMessage> plan =
1725List<ChatMessage> plan =
1765List<ChatMessage> plan =
1814List<ChatMessage> plan =
1886List<ChatMessage> plan =
1935List<ChatMessage> plan =
1946var functionCallMessage = chat.First(m => m.Contents.Any(c => c is FunctionCallContent));
1974var message = new ChatMessage(ChatRole.Assistant, [alreadyProcessedFunctionCall]);
1980var message = new ChatMessage(ChatRole.Assistant, [alreadyProcessedFunctionCall]);
2029var message = new ChatMessage(ChatRole.Assistant, [needsProcessing, alreadyProcessed]);
2035var message = new ChatMessage(ChatRole.Assistant, "done");
2044var message = new ChatMessage(ChatRole.Assistant, [needsProcessing, alreadyProcessed]);
2050var message = new ChatMessage(ChatRole.Assistant, "done");
2130private static async Task<List<ChatMessage>> InvokeAndAssertAsync(
2132List<ChatMessage> plan,
2133List<ChatMessage>? expected = null,
2142List<ChatMessage> chat = [plan[0]];
2156var message = new ChatMessage(ChatRole.Assistant, CloneContents(plan[contents.Count()].Contents))
2166var result = await service.GetResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(chat), options, cts.Token);
2200private static async Task<List<ChatMessage>> InvokeAndAssertStreamingAsync(
2202List<ChatMessage> plan,
2203List<ChatMessage>? expected = null,
2212List<ChatMessage> chat = [plan[0]];
2220ChatMessage message = new(ChatRole.Assistant, CloneContents(plan[contents.Count()].Contents))
2230var result = await service.GetStreamingResponseAsync(new EnumeratedOnceEnumerable<ChatMessage>(chat), options, cts.Token).ToChatResponseAsync();
2340ChatMessage message;
2434ChatMessage message;
2539ChatMessage message;
2640ChatMessage message;
2741ChatMessage message;
2833ChatMessage message;
2919ChatMessage message;
3020ChatMessage message;
3126ChatMessage message;
3187List<ChatMessage> plan =
3217List<ChatMessage> plan =
3225List<ChatMessage> expected = plan.Take(2).ToList();
3253List<ChatMessage> plan =
3282List<ChatMessage> plan =
3289List<ChatMessage> expected =
3325var messages = new List<ChatMessage>
3362var messages = new List<ChatMessage>
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; }
22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; }
29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.Extensions.DataIngestion (8)
Microsoft.Extensions.DataIngestion.Tests (4)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; }
22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; }
29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.ML.GenAI.Core (7)
Microsoft.ML.GenAI.Core.Tests (3)
Microsoft.ML.GenAI.LLaMA (4)
Microsoft.ML.GenAI.Phi (4)
Microsoft.ML.GenAI.Samples (4)