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) } } }