From 5ca1203ff5d2f5ec9130462e50d91fd65c21fa66 Mon Sep 17 00:00:00 2001 From: Haiping Chen Date: Mon, 13 Nov 2023 22:56:06 -0600 Subject: [PATCH] Add Sender in ChatResponse. --- .../Controllers/ConversationController.cs | 4 ++-- .../{MessageResponseModel.cs => ChatResponseModel.cs} | 10 +++++++++- .../ViewModels/Conversations/ConversationViewModel.cs | 1 + .../BotSharp.OpenAPI/ViewModels/Users/UserViewModel.cs | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) rename src/Infrastructure/BotSharp.OpenAPI/ViewModels/Conversations/{MessageResponseModel.cs => ChatResponseModel.cs} (68%) diff --git a/src/Infrastructure/BotSharp.OpenAPI/Controllers/ConversationController.cs b/src/Infrastructure/BotSharp.OpenAPI/Controllers/ConversationController.cs index 39fc861a..7ef15481 100644 --- a/src/Infrastructure/BotSharp.OpenAPI/Controllers/ConversationController.cs +++ b/src/Infrastructure/BotSharp.OpenAPI/Controllers/ConversationController.cs @@ -72,7 +72,7 @@ public class ConversationController : ControllerBase, IApiAdapter } [HttpPost("/conversation/{agentId}/{conversationId}")] - public async Task SendMessage([FromRoute] string agentId, + public async Task SendMessage([FromRoute] string agentId, [FromRoute] string conversationId, [FromBody] NewMessageModel input) { @@ -84,7 +84,7 @@ public class ConversationController : ControllerBase, IApiAdapter .SetState("temperature", input.Temperature) .SetState("sampling_factor", input.SamplingFactor); - var response = new MessageResponseModel(); + var response = new ChatResponseModel(); var inputMsg = new RoleDialogModel("user", input.Text); await conv.SendMessage(agentId, inputMsg, async msg => diff --git a/src/Infrastructure/BotSharp.OpenAPI/ViewModels/Conversations/MessageResponseModel.cs b/src/Infrastructure/BotSharp.OpenAPI/ViewModels/Conversations/ChatResponseModel.cs similarity index 68% rename from src/Infrastructure/BotSharp.OpenAPI/ViewModels/Conversations/MessageResponseModel.cs rename to src/Infrastructure/BotSharp.OpenAPI/ViewModels/Conversations/ChatResponseModel.cs index c33bb3ae..af85fd24 100644 --- a/src/Infrastructure/BotSharp.OpenAPI/ViewModels/Conversations/MessageResponseModel.cs +++ b/src/Infrastructure/BotSharp.OpenAPI/ViewModels/Conversations/ChatResponseModel.cs @@ -1,11 +1,17 @@ using BotSharp.Abstraction.Functions.Models; using BotSharp.Abstraction.Instructs.Models; +using BotSharp.OpenAPI.ViewModels.Users; using System.Text.Json.Serialization; namespace BotSharp.OpenAPI.ViewModels.Conversations; -public class MessageResponseModel : InstructResult +public class ChatResponseModel : InstructResult { + [JsonPropertyName("conversation_id")] + public string ConversationId { get; set; } + + public UserViewModel Sender { get; set; } + public string Function { get; set; } /// @@ -20,4 +26,6 @@ public class MessageResponseModel : InstructResult [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("rich_content")] public object? RichContent { get; set; } + + public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } diff --git a/src/Infrastructure/BotSharp.OpenAPI/ViewModels/Conversations/ConversationViewModel.cs b/src/Infrastructure/BotSharp.OpenAPI/ViewModels/Conversations/ConversationViewModel.cs index ee819cf1..76c5680b 100644 --- a/src/Infrastructure/BotSharp.OpenAPI/ViewModels/Conversations/ConversationViewModel.cs +++ b/src/Infrastructure/BotSharp.OpenAPI/ViewModels/Conversations/ConversationViewModel.cs @@ -9,6 +9,7 @@ public class ConversationViewModel public string AgentId { get; set; } public string Title { get; set; } = string.Empty; public UserViewModel User { get; set; } = new UserViewModel(); + public int UnreadMsgCount { get; set; } public DateTime UpdatedTime { get; set; } = DateTime.UtcNow; public DateTime CreatedTime { get; set; } = DateTime.UtcNow; diff --git a/src/Infrastructure/BotSharp.OpenAPI/ViewModels/Users/UserViewModel.cs b/src/Infrastructure/BotSharp.OpenAPI/ViewModels/Users/UserViewModel.cs index 5bed438e..a2dbf5bf 100644 --- a/src/Infrastructure/BotSharp.OpenAPI/ViewModels/Users/UserViewModel.cs +++ b/src/Infrastructure/BotSharp.OpenAPI/ViewModels/Users/UserViewModel.cs @@ -1,3 +1,4 @@ +using BotSharp.Abstraction.Users.Enums; using BotSharp.Abstraction.Users.Models; namespace BotSharp.OpenAPI.ViewModels.Users; @@ -8,6 +9,7 @@ public class UserViewModel public string FirstName { get; set; } public string LastName { get; set; } public string Email { get; set; } + public string Role { get; set; } = UserRole.Client; public string FullName => $"{FirstName} {LastName}"; @@ -18,7 +20,8 @@ public class UserViewModel Id = user.Id, FirstName = user.FirstName, LastName = user.LastName, - Email = user.Email + Email = user.Email, + Role = user.Role }; } }