89 writes to MessageId
Microsoft.Extensions.AI (1)
ChatCompletion\FunctionInvokingChatClient.cs (1)
659MessageId = messageId,
Microsoft.Extensions.AI.Abstractions (2)
ChatCompletion\ChatResponse.cs (1)
153MessageId = message.MessageId,
ChatCompletion\ChatResponseUpdate.cs (1)
78MessageId = MessageId,
Microsoft.Extensions.AI.Abstractions.Tests (66)
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (63)
31new(ChatRole.Assistant, "Hello") { ResponseId = "someResponse", MessageId = "12345", CreatedAt = new DateTimeOffset(2024, 2, 3, 4, 5, 6, TimeSpan.Zero), ModelId = "model123" }, 75new(null, "!") { MessageId = "1" }, 76new(ChatRole.Assistant, "a") { MessageId = "1" }, 77new(ChatRole.Assistant, "b") { MessageId = "2" }, 78new(ChatRole.User, "c") { MessageId = "2" }, 79new(ChatRole.User, "d") { MessageId = "2" }, 80new(ChatRole.Assistant, "e") { MessageId = "3" }, 81new(ChatRole.Tool, "f") { MessageId = "4" }, 82new(ChatRole.Tool, "g") { MessageId = "4" }, 83new(ChatRole.Tool, "h") { MessageId = "5" }, 84new(new("human"), "i") { MessageId = "6" }, 85new(new("human"), "j") { MessageId = "7" }, 86new(new("human"), "k") { MessageId = "7" }, 87new(null, "l") { MessageId = "7" }, 88new(null, "m") { MessageId = "8" }, 186new(ChatRole.Assistant, "A") { MessageId = "1", AuthorName = "Alice" }, 187new(null, "B") { MessageId = "1", AuthorName = "Alice" }, 190new(null, "C") { MessageId = "1", AuthorName = "Bob" }, 193new(null, "D") { MessageId = "2", AuthorName = "Bob" }, 194new(null, "E") { MessageId = "2", AuthorName = "Bob" }, 197new(ChatRole.User, "F") { MessageId = "2", AuthorName = "Bob" }, 200new(ChatRole.Tool, "G") { MessageId = "3", AuthorName = "Charlie" }, 201new(null, "H") { MessageId = "3", AuthorName = "Charlie" }, 280new(ChatRole.Assistant, "Hello") { MessageId = "1" }, 281new(null, " there") { MessageId = "1" }, 284new(null, " I'm Bob") { MessageId = "1", AuthorName = "Bob" }, 285new(null, " speaking") { MessageId = "1", AuthorName = "Bob" }, 288new(null, "Now Alice") { MessageId = "1", AuthorName = "Alice" }, 319new(null, " from") { MessageId = "msg1" }, 320new(null, " AI") { MessageId = "msg1" }, 323new(null, "Next message") { MessageId = "msg2" }, 350new(ChatRole.Assistant, "Hello") { MessageId = "msg1" }, 351new(null, " world") { MessageId = "msg1" }, 354new(null, "!") { MessageId = "" }, 360new(null, " are") { MessageId = "" }, 383new(null, "Hello") { MessageId = "1" }, 384new(null, " there") { MessageId = "1" }, 387new(ChatRole.Assistant, " from") { MessageId = "1" }, 388new(null, " AI") { MessageId = "1" }, 391new(ChatRole.User, "User message") { MessageId = "1" }, 418new(new ChatRole("agent1"), "Hello") { MessageId = "1" }, 419new(null, " from") { MessageId = "1" }, 420new(new ChatRole("agent1"), " agent1") { MessageId = "1" }, 423new(new ChatRole("agent2"), "Hi") { MessageId = "1" }, 424new(null, " from") { MessageId = "1" }, 425new(new ChatRole("agent2"), " agent2") { MessageId = "1" }, 428new(ChatRole.Assistant, "Assistant here") { MessageId = "1" }, 456new(ChatRole.Assistant, "First message") { MessageId = "msg1", AdditionalProperties = new() { ["key1"] = "value1" } }, 457new(null, " part 2") { MessageId = "msg1", AdditionalProperties = new() { ["key2"] = "value2" } }, 460new(ChatRole.User, "Second message") { MessageId = "msg2", AdditionalProperties = new() { ["key1"] = "different_value1" } }, 461new(null, " part 2") { MessageId = "msg2", AdditionalProperties = new() { ["key3"] = "value3" } }, 464new(ChatRole.Assistant, "Third message") { MessageId = "msg3" }, 508new(ChatRole.Assistant, "Hello") { MessageId = "msg1", AdditionalProperties = new() { ["messageKey"] = "messageValue" } }, 542new(ChatRole.Assistant, "Hello") { MessageId = "msg1", CreatedAt = new DateTimeOffset(2024, 1, 1, 10, 0, 0, TimeSpan.Zero), AuthorName = "Assistant" }, 543new(null, " from") { MessageId = "msg1", CreatedAt = new DateTimeOffset(2024, 1, 1, 10, 1, 0, TimeSpan.Zero) }, // Later CreatedAt should not overwrite first 544new(null, " AI") { MessageId = "msg1", AuthorName = "Assistant" }, // Keep same AuthorName to avoid creating new message 547new(null, "More text") { MessageId = "msg2", CreatedAt = new DateTimeOffset(2024, 1, 1, 10, 2, 0, TimeSpan.Zero), AuthorName = "Assistant" }, 550new(ChatRole.User, "How") { MessageId = "msg3", CreatedAt = new DateTimeOffset(2024, 1, 1, 11, 0, 0, TimeSpan.Zero), AuthorName = "User" }, 551new(null, " are") { MessageId = "msg3", CreatedAt = new DateTimeOffset(2024, 1, 1, 11, 1, 0, TimeSpan.Zero) }, 552new(null, " you?") { MessageId = "msg3", AuthorName = "User" }, // Keep same AuthorName 555new(ChatRole.Assistant, "I'm doing well,") { MessageId = "msg4", CreatedAt = new DateTimeOffset(2024, 1, 1, 12, 0, 0, TimeSpan.Zero) }, 556new(null, " thank you!") { MessageId = "msg4", CreatedAt = new DateTimeOffset(2024, 1, 1, 12, 2, 0, TimeSpan.Zero) }, // Later CreatedAt should not overwrite first 834new(ChatRole.Tool, "a") { MessageId = "4", CreatedAt = early },
ChatCompletion\ChatResponseUpdateTests.cs (3)
72update.MessageId = "messageid"; 129MessageId = "messageid", 188MessageId = "msg456",
Microsoft.Extensions.AI.OpenAI (8)
OpenAIAssistantsChatClient.cs (5)
172MessageId = responseId, 216MessageId = responseId, 247MessageId = responseId, 259MessageId = responseId, 308MessageId = responseId,
OpenAIChatClient.cs (2)
367MessageId = update.CompletionId, // There is no per-message ID, but there's only one message per response, so use the response ID 441MessageId = responseId, // There is no per-message ID, but there's only one message per response, so use the response ID
OpenAIResponsesChatClient.cs (1)
326MessageId = lastMessageId,
Microsoft.Extensions.AI.OpenAI.Tests (3)
OpenAIConversionTests.cs (3)
1184MessageId = "message-456", 1410MessageId = "message-1" 1417MessageId = "message-1",
Microsoft.Extensions.AI.Tests (9)
ChatCompletion\DistributedCachingChatClientTest.cs (1)
394MessageId = "someMessageId123",
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (7)
975yield return new ChatResponseUpdate(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = messageId }; 983{ MessageId = messageId }; 1048yield return new ChatResponseUpdate(ChatRole.Assistant, [new TextContent("Text 1")]) { MessageId = messageId }; 1050yield return new ChatResponseUpdate(ChatRole.Assistant, [new TextContent("Text 2")]) { MessageId = messageId }; 1052yield return new ChatResponseUpdate(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]) { MessageId = messageId }; 1059{ MessageId = messageId }; 1061yield return new ChatResponseUpdate(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func3")]) { MessageId = messageId };
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
1203update.MessageId = messageId;
23 references to MessageId
Microsoft.Extensions.AI.Abstractions (9)
ChatCompletion\ChatResponseExtensions.cs (8)
55/// method may use <see cref="ChatResponseUpdate.MessageId"/> to determine message boundaries, as well as coalesce 109/// method may use <see cref="ChatResponseUpdate.MessageId"/> to determine message boundaries, as well as coalesce 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 495NotEmptyOrEqual(update.MessageId, lastMessage.MessageId) || 532if (update.MessageId is { Length: > 0 }) 536message.MessageId = update.MessageId; 543if (update.MessageId is { Length: > 0 })
ChatCompletion\ChatResponseUpdate.cs (1)
78MessageId = MessageId,
Microsoft.Extensions.AI.Abstractions.Tests (11)
ChatCompletion\ChatResponseTests.cs (3)
145Assert.Equal("someMessage", update0.MessageId); 187Assert.Equal("someMessage", update0.MessageId); 196Assert.Equal("anotherMessage", update1.MessageId);
ChatCompletion\ChatResponseUpdateTests.cs (8)
24Assert.Null(update.MessageId); 71Assert.Null(update.MessageId); 73Assert.Equal("messageid", update.MessageId); 160Assert.Equal("messageid", result.MessageId); 207Assert.Equal(original.MessageId, clone.MessageId); 239Assert.Null(clone.MessageId); 262Assert.Null(clone.MessageId);
Microsoft.Extensions.AI.OpenAI.Tests (2)
OpenAIChatClientTests.cs (2)
251Assert.Equal("chatcmpl-ADxFKtX6xIwdWRN42QvBj2u1RZpCK", updates[i].MessageId); 1340Assert.Equal("chatcmpl-ADymNiWWeqCJqHNFXiI1QtRcLuXcl", updates[i].MessageId);
Microsoft.Extensions.AI.Tests (1)
ChatCompletion\DistributedCachingChatClientTest.cs (1)
420Assert.Equal("someMessageId123", item.MessageId);