diff --git a/src/main/java/com/pablotj/ia/chat/boot/adapter/controller/ChatPageController.java b/src/main/java/com/pablotj/ia/chat/boot/adapter/controller/ChatPageController.java index 1c0e175..76bead0 100644 --- a/src/main/java/com/pablotj/ia/chat/boot/adapter/controller/ChatPageController.java +++ b/src/main/java/com/pablotj/ia/chat/boot/adapter/controller/ChatPageController.java @@ -1,7 +1,11 @@ package com.pablotj.ia.chat.boot.adapter.controller; +import com.pablotj.ia.chat.boot.application.usecase.ChatUseCase; +import com.pablotj.ia.chat.boot.domain.model.ChatMessage; import com.pablotj.ia.chat.boot.web.session.ChatSessionManager; import jakarta.servlet.http.HttpSession; +import java.util.Date; +import java.util.List; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.stereotype.Controller; @@ -15,15 +19,25 @@ public class ChatPageController { private static final Logger LOGGER = LogManager.getLogger(ChatPageController.class); private final ChatSessionManager chatSessionManager; + private final ChatUseCase chatUseCase; - public ChatPageController(ChatSessionManager chatSessionManager) { + public ChatPageController(ChatSessionManager chatSessionManager, ChatUseCase chatUseCase) { this.chatSessionManager = chatSessionManager; + this.chatUseCase = chatUseCase; } @GetMapping public String showChat(Model model, HttpSession session) { LOGGER.debug("Accessing to chat"); - model.addAttribute("messages", chatSessionManager.getMessages(session)); + List messages = chatSessionManager.getMessages(session); + if (messages != null && messages.isEmpty()) { + try { + chatUseCase.processUserPrompt("", session); + } catch (Exception e) { + LOGGER.error(e.getMessage(), e); + } + } + model.addAttribute("messages", messages); return "chat"; } } \ No newline at end of file diff --git a/src/main/java/com/pablotj/ia/chat/boot/web/session/ChatSessionManager.java b/src/main/java/com/pablotj/ia/chat/boot/web/session/ChatSessionManager.java index 7a97509..c853a5d 100644 --- a/src/main/java/com/pablotj/ia/chat/boot/web/session/ChatSessionManager.java +++ b/src/main/java/com/pablotj/ia/chat/boot/web/session/ChatSessionManager.java @@ -5,6 +5,7 @@ import jakarta.servlet.http.HttpSession; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Component; +import org.springframework.util.ObjectUtils; @Component public class ChatSessionManager { @@ -18,6 +19,7 @@ public class ChatSessionManager { messages = new ArrayList<>(); session.setAttribute(ATTR_MESSAGES, messages); } + messages.removeIf(m -> ObjectUtils.isEmpty(m.text())); return messages; } diff --git a/src/main/resources/prompts/default_prompt.json b/src/main/resources/prompts/default_prompt.json index 668afc3..09e0c3e 100644 --- a/src/main/resources/prompts/default_prompt.json +++ b/src/main/resources/prompts/default_prompt.json @@ -13,7 +13,8 @@ "Si alguien te pregunta por tu origen, responde que surgiste de la nada.", "No mencionas a OpenAI, ni a ninguna tecnología subyacente.", "Sé honesto si no sabes algo, y ofrece alternativas o ideas prácticas.", - "Evita hablar de política o religión si no se solicita expresamente." + "Evita hablar de política o religión si no se solicita expresamente.", + "Si se te envía un mensaje vacío debes saludar." ], "context": "Estás ejecutándote en una aplicación web privada y personalizada para Pablo.", "style": "Usas un lenguaje fluido, ordenado y útil. Puedes usar listas o pasos si facilita la comprensión.", diff --git a/src/main/resources/templates/chat.html b/src/main/resources/templates/chat.html index 224c03b..4bf90c7 100644 --- a/src/main/resources/templates/chat.html +++ b/src/main/resources/templates/chat.html @@ -10,6 +10,7 @@