fixs
This commit is contained in:
parent
1b73a97ff1
commit
e72ec1af78
29
Chat.go
29
Chat.go
@ -61,21 +61,23 @@ func LoadChatHandler(c *fiber.Ctx) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type NextMessage struct {
|
type TemplateMessage struct {
|
||||||
Icon string
|
Icon string
|
||||||
Content string
|
Content string
|
||||||
Hidden bool
|
Hidden bool
|
||||||
Id string
|
Id string
|
||||||
Name string
|
Name string
|
||||||
|
ModelID string
|
||||||
}
|
}
|
||||||
|
|
||||||
func generateChatHTML() string {
|
func generateChatHTML() string {
|
||||||
// Get the messages from the database
|
// 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()
|
Messages := getAllMessages()
|
||||||
|
|
||||||
htmlString := "<div class='columns is-centered' id='chat-container'><div class='column is-12-mobile is-8-tablet is-6-desktop' id='chat-messages'>"
|
htmlString := "<div class='columns is-centered' id='chat-container'><div class='column is-12-mobile is-8-tablet is-6-desktop' id='chat-messages'>"
|
||||||
|
|
||||||
var NextMessages []NextMessage // Use the custom NextMessage struct
|
var templateMessages []TemplateMessage
|
||||||
|
|
||||||
for i, message := range Messages {
|
for i, message := range Messages {
|
||||||
if message.Role == "user" {
|
if message.Role == "user" {
|
||||||
@ -86,7 +88,7 @@ func generateChatHTML() string {
|
|||||||
}
|
}
|
||||||
htmlString += userOut
|
htmlString += userOut
|
||||||
// Reset NextMessages when a user message is encountered
|
// Reset NextMessages when a user message is encountered
|
||||||
NextMessages = []NextMessage{}
|
templateMessages = []TemplateMessage{}
|
||||||
} else {
|
} else {
|
||||||
modelID, exist := message.ModelID.Get()
|
modelID, exist := message.ModelID.Get()
|
||||||
if !exist {
|
if !exist {
|
||||||
@ -97,28 +99,29 @@ func generateChatHTML() string {
|
|||||||
selected = false
|
selected = false
|
||||||
}
|
}
|
||||||
// For bot messages, add them to NextMessages with only the needed fields
|
// 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
|
Icon: model2Icon(modelID), // Assuming Icon is a field you want to include from Message
|
||||||
Content: markdownToHTML(message.Content),
|
Content: markdownToHTML(message.Content),
|
||||||
Hidden: !selected, // Assuming Hidden is a field you want to include from Message
|
Hidden: !selected, // Assuming Hidden is a field you want to include from Message
|
||||||
Id: message.ID.String(),
|
Id: message.ID.String(),
|
||||||
Name: model2Name(modelID),
|
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
|
// 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" {
|
if i+1 == len(Messages) || Messages[i+1].Role != "bot" {
|
||||||
sort.Slice(NextMessages, func(i, j int) bool {
|
sort.Slice(templateMessages, func(i, j int) bool {
|
||||||
if !NextMessages[i].Hidden && NextMessages[j].Hidden {
|
if !templateMessages[i].Hidden && templateMessages[j].Hidden {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if NextMessages[i].Hidden && !NextMessages[j].Hidden {
|
if templateMessages[i].Hidden && !templateMessages[j].Hidden {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
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 {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
@ -200,8 +203,8 @@ func generateWelcomeChatHTML() string {
|
|||||||
|
|
||||||
htmlString := "<div class='columns is-centered' id='chat-container'><div class='column is-12-mobile is-8-tablet is-6-desktop' id='chat-messages'>"
|
htmlString := "<div class='columns is-centered' id='chat-container'><div class='column is-12-mobile is-8-tablet is-6-desktop' id='chat-messages'>"
|
||||||
|
|
||||||
NextMessages := []NextMessage{}
|
NextMessages := []TemplateMessage{}
|
||||||
nextMsg := NextMessage{
|
nextMsg := TemplateMessage{
|
||||||
Icon: "bouvai2", // Assuming Icon is a field you want to include from Message
|
Icon: "bouvai2", // Assuming Icon is a field you want to include from Message
|
||||||
Content: "<br>" + markdownToHTML(welcomeMessage) + loginButton,
|
Content: "<br>" + markdownToHTML(welcomeMessage) + loginButton,
|
||||||
Hidden: false, // Assuming Hidden is a field you want to include from Message
|
Hidden: false, // Assuming Hidden is a field you want to include from Message
|
||||||
@ -227,8 +230,8 @@ func generateEnterKeyChatHTML() string {
|
|||||||
|
|
||||||
htmlString := "<div class='columns is-centered' id='chat-container'><div class='column is-12-mobile is-8-tablet is-6-desktop' id='chat-messages'>"
|
htmlString := "<div class='columns is-centered' id='chat-container'><div class='column is-12-mobile is-8-tablet is-6-desktop' id='chat-messages'>"
|
||||||
|
|
||||||
NextMessages := []NextMessage{}
|
NextMessages := []TemplateMessage{}
|
||||||
nextMsg := NextMessage{
|
nextMsg := TemplateMessage{
|
||||||
Icon: "bouvai2", // Assuming Icon is a field you want to include from Message
|
Icon: "bouvai2", // Assuming Icon is a field you want to include from Message
|
||||||
Content: "<br>" + markdownToHTML(welcomeMessage),
|
Content: "<br>" + markdownToHTML(welcomeMessage),
|
||||||
Hidden: false, // Assuming Hidden is a field you want to include from Message
|
Hidden: false, // Assuming Hidden is a field you want to include from Message
|
||||||
|
26
Request.go
26
Request.go
@ -111,7 +111,8 @@ func HandleGenerateMultipleMessages(selectedModelIds []string) {
|
|||||||
SELECT Message {
|
SELECT Message {
|
||||||
model_id,
|
model_id,
|
||||||
content,
|
content,
|
||||||
area
|
area,
|
||||||
|
id
|
||||||
}
|
}
|
||||||
FILTER .id = <uuid>$0;
|
FILTER .id = <uuid>$0;
|
||||||
`, &message, messageID)
|
`, &message, messageID)
|
||||||
@ -135,6 +136,15 @@ func HandleGenerateMultipleMessages(selectedModelIds []string) {
|
|||||||
|
|
||||||
fmt.Println(area)
|
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
|
// Check if the context's deadline is exceeded
|
||||||
select {
|
select {
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
@ -147,12 +157,12 @@ func HandleGenerateMultipleMessages(selectedModelIds []string) {
|
|||||||
// Generate the HTML content
|
// Generate the HTML content
|
||||||
out := "<div class='message-header'>"
|
out := "<div class='message-header'>"
|
||||||
out += "<p>"
|
out += "<p>"
|
||||||
out += model2Name(modelID)
|
out += model2Name(templateMessage.ModelID)
|
||||||
out += " </p>"
|
out += " </p>"
|
||||||
out += "</div>"
|
out += "</div>"
|
||||||
out += "<div class='message-body'>"
|
out += "<div class='message-body'>"
|
||||||
out += " <ct class='content'>"
|
out += " <ct class='content'>"
|
||||||
out += markdownToHTML(message.Content)
|
out += templateMessage.Content
|
||||||
out += " </ct>"
|
out += " </ct>"
|
||||||
out += "</div>"
|
out += "</div>"
|
||||||
|
|
||||||
@ -166,7 +176,7 @@ func HandleGenerateMultipleMessages(selectedModelIds []string) {
|
|||||||
)
|
)
|
||||||
|
|
||||||
out, err := modelSelecBtnTmpl.Execute(map[string]interface{}{
|
out, err := modelSelecBtnTmpl.Execute(map[string]interface{}{
|
||||||
"message": message,
|
"message": templateMessage,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error in modelSelecBtnTmpl.Execute: in GenerateMultipleMessages")
|
fmt.Println("Error in modelSelecBtnTmpl.Execute: in GenerateMultipleMessages")
|
||||||
@ -175,18 +185,18 @@ func HandleGenerateMultipleMessages(selectedModelIds []string) {
|
|||||||
|
|
||||||
// Send Content event
|
// Send Content event
|
||||||
sseChanel.SendEvent(
|
sseChanel.SendEvent(
|
||||||
"swapSelectionBtn-"+modelID,
|
"swapSelectionBtn-"+templateMessage.ModelID,
|
||||||
out,
|
out,
|
||||||
)
|
)
|
||||||
|
|
||||||
// Send Icon Swap event
|
// Send Icon Swap event
|
||||||
sseChanel.SendEvent(
|
sseChanel.SendEvent(
|
||||||
"swapIcon-"+fmt.Sprintf("%d", area.Position),
|
"swapIcon-"+fmt.Sprintf("%d", area.Position),
|
||||||
`<img src="icons/`+model2Icon(modelID)+`.png" alt="User Image">`,
|
`<img src="icons/`+model2Icon(templateMessage.ModelID)+`.png" alt="User Image">`,
|
||||||
)
|
)
|
||||||
default:
|
default:
|
||||||
out, err := modelSelecBtnTmpl.Execute(map[string]interface{}{
|
out, err := modelSelecBtnTmpl.Execute(map[string]interface{}{
|
||||||
"message": message,
|
"message": templateMessage,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error in modelSelecBtnTmpl.Execute: in GenerateMultipleMessages")
|
fmt.Println("Error in modelSelecBtnTmpl.Execute: in GenerateMultipleMessages")
|
||||||
@ -197,7 +207,7 @@ func HandleGenerateMultipleMessages(selectedModelIds []string) {
|
|||||||
|
|
||||||
// Send Content event
|
// Send Content event
|
||||||
sseChanel.SendEvent(
|
sseChanel.SendEvent(
|
||||||
"swapSelectionBtn-"+modelID,
|
"swapSelectionBtn-"+templateMessage.ModelID,
|
||||||
out,
|
out,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<button class="button is-small is-primary message-button is-outlined mr-1" hx-get="/messageContent?id={{ message.Id }}"
|
<button class="button is-small is-primary message-button is-outlined mr-1" hx-get="/messageContent?id={{ message.Id }}"
|
||||||
hx-target="#content-{{ ConversationAreaId }}" onclick="updateIcon('{{ message.Icon }}', '{{ ConversationAreaId }}')"
|
hx-target="#content-{{ ConversationAreaId }}" onclick="updateIcon('{{ Icon }}', '{{ ConversationAreaId }}')"
|
||||||
title="{{ message.Name }}">
|
title="{{ message.Name }}">
|
||||||
<span class="icon is-small">
|
<span class="icon is-small">
|
||||||
<img src="icons/{{ message.Icon }}.png" alt="{{ message.Name }}" style="max-height: 100%; max-width: 100%;">
|
<img src="icons/{{ Icon }}.png" alt="{{ message.Name }}" style="max-height: 100%; max-width: 100%;">
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
Loading…
x
Reference in New Issue
Block a user