From e72ec1af7845ec4da3b4531ccd2e85367112333c Mon Sep 17 00:00:00 2001 From: Adrien Date: Wed, 15 May 2024 19:09:21 +0200 Subject: [PATCH] fixs --- Chat.go | 29 ++++++++++++++----------- Request.go | 26 +++++++++++++++------- views/partials/model-selection-btn.html | 4 ++-- 3 files changed, 36 insertions(+), 23 deletions(-) diff --git a/Chat.go b/Chat.go index 0f85b5a..8aeb194 100644 --- a/Chat.go +++ b/Chat.go @@ -61,21 +61,23 @@ func LoadChatHandler(c *fiber.Ctx) error { } } -type NextMessage struct { +type TemplateMessage struct { Icon string Content string Hidden bool Id string Name string + ModelID string } func generateChatHTML() string { // Get the messages from the database + // Maybe redo that to be area by area because look like shit rn. It come from early stage of dev. It work tho soooo... Messages := getAllMessages() htmlString := "
" - var NextMessages []NextMessage // Use the custom NextMessage struct + var templateMessages []TemplateMessage for i, message := range Messages { if message.Role == "user" { @@ -86,7 +88,7 @@ func generateChatHTML() string { } htmlString += userOut // Reset NextMessages when a user message is encountered - NextMessages = []NextMessage{} + templateMessages = []TemplateMessage{} } else { modelID, exist := message.ModelID.Get() if !exist { @@ -97,28 +99,29 @@ func generateChatHTML() string { selected = false } // For bot messages, add them to NextMessages with only the needed fields - nextMsg := NextMessage{ + templateMessage := TemplateMessage{ Icon: model2Icon(modelID), // Assuming Icon is a field you want to include from Message Content: markdownToHTML(message.Content), Hidden: !selected, // Assuming Hidden is a field you want to include from Message Id: message.ID.String(), Name: model2Name(modelID), + ModelID: modelID, } - NextMessages = append(NextMessages, nextMsg) + templateMessages = append(templateMessages, templateMessage) // Check if the next message is not a bot or if it's the last message if i+1 == len(Messages) || Messages[i+1].Role != "bot" { - sort.Slice(NextMessages, func(i, j int) bool { - if !NextMessages[i].Hidden && NextMessages[j].Hidden { + sort.Slice(templateMessages, func(i, j int) bool { + if !templateMessages[i].Hidden && templateMessages[j].Hidden { return true } - if NextMessages[i].Hidden && !NextMessages[j].Hidden { + if templateMessages[i].Hidden && !templateMessages[j].Hidden { return false } return true }) - botOut, err := botTmpl.Execute(pongo2.Context{"Messages": NextMessages, "ConversationAreaId": i}) + botOut, err := botTmpl.Execute(pongo2.Context{"Messages": templateMessages, "ConversationAreaId": i}) if err != nil { panic(err) } @@ -200,8 +203,8 @@ func generateWelcomeChatHTML() string { htmlString := "
" - NextMessages := []NextMessage{} - nextMsg := NextMessage{ + NextMessages := []TemplateMessage{} + nextMsg := TemplateMessage{ Icon: "bouvai2", // Assuming Icon is a field you want to include from Message Content: "
" + markdownToHTML(welcomeMessage) + loginButton, Hidden: false, // Assuming Hidden is a field you want to include from Message @@ -227,8 +230,8 @@ func generateEnterKeyChatHTML() string { htmlString := "
" - NextMessages := []NextMessage{} - nextMsg := NextMessage{ + NextMessages := []TemplateMessage{} + nextMsg := TemplateMessage{ Icon: "bouvai2", // Assuming Icon is a field you want to include from Message Content: "
" + markdownToHTML(welcomeMessage), Hidden: false, // Assuming Hidden is a field you want to include from Message diff --git a/Request.go b/Request.go index e5ecf90..34a30f6 100644 --- a/Request.go +++ b/Request.go @@ -111,7 +111,8 @@ func HandleGenerateMultipleMessages(selectedModelIds []string) { SELECT Message { model_id, content, - area + area, + id } FILTER .id = $0; `, &message, messageID) @@ -135,6 +136,15 @@ func HandleGenerateMultipleMessages(selectedModelIds []string) { fmt.Println(area) + templateMessage := TemplateMessage{ + Icon: model2Icon(modelID), + Content: markdownToHTML(message.Content), + Hidden: false, + Id: message.ID.String(), + Name: model2Name(modelID), + ModelID: modelID, + } + // Check if the context's deadline is exceeded select { case <-ctx.Done(): @@ -147,12 +157,12 @@ func HandleGenerateMultipleMessages(selectedModelIds []string) { // Generate the HTML content out := "
" out += "

" - out += model2Name(modelID) + out += model2Name(templateMessage.ModelID) out += "

" out += "
" out += "
" out += " " - out += markdownToHTML(message.Content) + out += templateMessage.Content out += " " out += "
" @@ -166,7 +176,7 @@ func HandleGenerateMultipleMessages(selectedModelIds []string) { ) out, err := modelSelecBtnTmpl.Execute(map[string]interface{}{ - "message": message, + "message": templateMessage, }) if err != nil { fmt.Println("Error in modelSelecBtnTmpl.Execute: in GenerateMultipleMessages") @@ -175,18 +185,18 @@ func HandleGenerateMultipleMessages(selectedModelIds []string) { // Send Content event sseChanel.SendEvent( - "swapSelectionBtn-"+modelID, + "swapSelectionBtn-"+templateMessage.ModelID, out, ) // Send Icon Swap event sseChanel.SendEvent( "swapIcon-"+fmt.Sprintf("%d", area.Position), - `User Image`, + `User Image`, ) default: out, err := modelSelecBtnTmpl.Execute(map[string]interface{}{ - "message": message, + "message": templateMessage, }) if err != nil { fmt.Println("Error in modelSelecBtnTmpl.Execute: in GenerateMultipleMessages") @@ -197,7 +207,7 @@ func HandleGenerateMultipleMessages(selectedModelIds []string) { // Send Content event sseChanel.SendEvent( - "swapSelectionBtn-"+modelID, + "swapSelectionBtn-"+templateMessage.ModelID, out, ) } diff --git a/views/partials/model-selection-btn.html b/views/partials/model-selection-btn.html index 0c64e58..6de9f22 100644 --- a/views/partials/model-selection-btn.html +++ b/views/partials/model-selection-btn.html @@ -1,7 +1,7 @@ \ No newline at end of file