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
|
||||
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 := "<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 {
|
||||
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 := "<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{}
|
||||
nextMsg := NextMessage{
|
||||
NextMessages := []TemplateMessage{}
|
||||
nextMsg := TemplateMessage{
|
||||
Icon: "bouvai2", // Assuming Icon is a field you want to include from Message
|
||||
Content: "<br>" + markdownToHTML(welcomeMessage) + loginButton,
|
||||
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'>"
|
||||
|
||||
NextMessages := []NextMessage{}
|
||||
nextMsg := NextMessage{
|
||||
NextMessages := []TemplateMessage{}
|
||||
nextMsg := TemplateMessage{
|
||||
Icon: "bouvai2", // Assuming Icon is a field you want to include from Message
|
||||
Content: "<br>" + markdownToHTML(welcomeMessage),
|
||||
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 {
|
||||
model_id,
|
||||
content,
|
||||
area
|
||||
area,
|
||||
id
|
||||
}
|
||||
FILTER .id = <uuid>$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 := "<div class='message-header'>"
|
||||
out += "<p>"
|
||||
out += model2Name(modelID)
|
||||
out += model2Name(templateMessage.ModelID)
|
||||
out += " </p>"
|
||||
out += "</div>"
|
||||
out += "<div class='message-body'>"
|
||||
out += " <ct class='content'>"
|
||||
out += markdownToHTML(message.Content)
|
||||
out += templateMessage.Content
|
||||
out += " </ct>"
|
||||
out += "</div>"
|
||||
|
||||
@ -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),
|
||||
`<img src="icons/`+model2Icon(modelID)+`.png" alt="User Image">`,
|
||||
`<img src="icons/`+model2Icon(templateMessage.ModelID)+`.png" alt="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,
|
||||
)
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
<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 }}">
|
||||
<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>
|
||||
</button>
|
Loading…
x
Reference in New Issue
Block a user