Files
lassistanoque/backend/internal/service/chat/title.go
T

39 lines
1.1 KiB
Go

package chat
import (
"context"
"log/slog"
"trankilou.fr/lassistanoque/backend/internal/domain"
)
func (s *Service) RefreshTitles(provider *domain.Provider, modelID string, teamID string) {
ctx := context.Background()
chats, err := s.repoChat.ListChatsWithUnfreshTitles(teamID)
if err != nil {
slog.Error("RefreshTitles.ListChats", "error", err)
}
for _, chat := range chats {
newchat, _ := s.repoChat.GetChat(chat.UserID, chat.TeamID, chat.ID)
if !chat.FreshTitle {
messages, err := s.repoChat.GetChatMessages(newchat.UserID, newchat.TeamID, newchat.ID, true)
if err != nil {
slog.Error("RefreshTitles.GetMessages", "error", err)
}
title, err := s.llmEngine.Generate(ctx, provider, modelID, append(messages, &domain.Message{
Role: string(domain.RoleUser),
Content: "resume toute la conversation dans un titre entre 5 et 10 mots",
}))
if err != nil {
slog.Error("RefreshTitles.Generate", "error", err)
}
newchat.FreshTitle = true
newchat.Title = title
s.repoChat.UpdateChat(newchat.UserID, newchat)
}
}
}