From c77a53adba7067c7253bfec5e384a163b63db52a Mon Sep 17 00:00:00 2001 From: Kunal Patel Date: Wed, 5 Aug 2026 11:53:17 -0400 Subject: [PATCH] feat: do not lock full prompt rooms - last write wins is okay --- .../web/services/local/AnthropicEndpoints.java | 8 ++++++-- .../semoss/web/services/local/OpenAIEndpoints.java | 14 +++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/prerna/semoss/web/services/local/AnthropicEndpoints.java b/src/prerna/semoss/web/services/local/AnthropicEndpoints.java index b208a71b..44e8bd83 100644 --- a/src/prerna/semoss/web/services/local/AnthropicEndpoints.java +++ b/src/prerna/semoss/web/services/local/AnthropicEndpoints.java @@ -261,7 +261,10 @@ public Response createMessage(@Context HttpServletRequest request, @Context Http List> messagesList = (List>) messages; - room = RoomUtils.createRoomIfNotExists(roomId, insight, engine, null); + boolean appendFullPrompt = Boolean + .parseBoolean(String.valueOf(dataMap.remove(AbstractModelEngine.APPEND_FULL_PROMPT))); + room = appendFullPrompt ? RoomUtils.createRoomIfNotExists(roomId, insight, engine, null) + : RoomUtils.createRoomForStatelessAsk(roomId, insight, engine, null); Object tools = dataMap.remove("tools"); @@ -277,7 +280,7 @@ public Response createMessage(@Context HttpServletRequest request, @Context Http List> openAIMessages = (List>) openAIFormat.get("messages"); dataMap.put(AbstractModelEngine.FULL_PROMPT, openAIMessages); - dataMap.put("append_full_prompt", true); + dataMap.put(AbstractModelEngine.APPEND_FULL_PROMPT, appendFullPrompt); classLogger.info("Anthropic-normalized-prompt::{}::messages={} chars={}", JOB_ID, openAIMessages.size(), GSON.toJson(openAIMessages).length()); @@ -296,6 +299,7 @@ public Response createMessage(@Context HttpServletRequest request, @Context Http List> openAIMessages = (List>) openAIFormat.get("messages"); dataMap.put(AbstractModelEngine.FULL_PROMPT, openAIMessages); + dataMap.put(AbstractModelEngine.APPEND_FULL_PROMPT, appendFullPrompt); Gson gson = new GsonBuilder().setPrettyPrinting().create(); String openAIJson = gson.toJson(openAIMessages); classLogger.info("Anthropic-normalized-prompt::{}::messages={} chars={}", JOB_ID, openAIMessages.size(), diff --git a/src/prerna/semoss/web/services/local/OpenAIEndpoints.java b/src/prerna/semoss/web/services/local/OpenAIEndpoints.java index 6433039a..057ffb0c 100644 --- a/src/prerna/semoss/web/services/local/OpenAIEndpoints.java +++ b/src/prerna/semoss/web/services/local/OpenAIEndpoints.java @@ -216,11 +216,11 @@ public Response runModelChatCompletion(@Context HttpServletRequest request) { if (roomId == null) { roomId = (String) request.getAttribute("roomId"); } - // room name gets updated during parsing of full prompt - room = RoomUtils.createRoomIfNotExists(roomId, insight, engine, null); - // this is if you are passing full prompt but want us to maintain the history boolean appendFullPrompt = Boolean - .parseBoolean(WebUtility.inputSanitizer((String) dataMap.remove("append_full_prompt")) + ""); + .parseBoolean(String.valueOf(dataMap.remove(AbstractModelEngine.APPEND_FULL_PROMPT))); + // room name gets updated during parsing of full prompt + room = appendFullPrompt ? RoomUtils.createRoomIfNotExists(roomId, insight, engine, null) + : RoomUtils.createRoomForStatelessAsk(roomId, insight, engine, null); ModelPixelExecutor.initializeThreadStore(insight, SESSION_ID, JOB_ID); @@ -569,11 +569,15 @@ public Response runResponses(@Context HttpServletRequest request) { if (roomId == null) { roomId = resolveRoomIdFromCodexHeaders(request); } - room = RoomUtils.createRoomIfNotExists(roomId, insight, engine, null); + boolean appendFullPrompt = Boolean + .parseBoolean(String.valueOf(dataMap.remove(AbstractModelEngine.APPEND_FULL_PROMPT))); + room = appendFullPrompt ? RoomUtils.createRoomIfNotExists(roomId, insight, engine, null) + : RoomUtils.createRoomForStatelessAsk(roomId, insight, engine, null); ModelPixelExecutor.initializeThreadStore(insight, SESSION_ID, JOB_ID); dataMap.put(AbstractModelEngine.FULL_PROMPT, messages); + dataMap.put(AbstractModelEngine.APPEND_FULL_PROMPT, appendFullPrompt); if (!isStreamingRequest) { try {