From efce799742ef5ceeee37f57890742f66a088b156 Mon Sep 17 00:00:00 2001 From: Jaho Islami Date: Fri, 10 Oct 2025 21:52:35 +0300 Subject: [PATCH 1/2] Fixed GPT-generated titles --- .../moderation/TransferQuestionCommand.java | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java index 69e59f9358..36ca012e74 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java @@ -100,6 +100,11 @@ public void onMessageContext(MessageContextInteractionEvent event) { .formatted(originalMessage); Optional chatGptTitle = chatGptService.ask(chatGptTitleRequest, null); String title = chatGptTitle.orElse(createTitle(originalMessage)); + + // Fix + title = title.replaceAll("^[\"']|[\"']$", ""); + // + if (title.length() > TITLE_MAX_LENGTH) { title = title.substring(0, TITLE_MAX_LENGTH); } @@ -137,6 +142,25 @@ public void onMessageContext(MessageContextInteractionEvent event) { event.replyModal(transferModal).queue(); } + + String generateTitle(String originalMessage) { + String chatGptTitleRequest = + "Summarize the following question into a concise title or heading not more than 5 words, remove quotations if any: %s" + .formatted(originalMessage); + Optional chatGptTitle = chatGptService.ask(chatGptTitleRequest, null); + String title = chatGptTitle.orElse(createTitle(originalMessage)); + + // 🔧 FIX: Remove surrounding quotes + title = title.replaceAll("^\"|\"$", ""); + + if (title.length() > TITLE_MAX_LENGTH) { + title = title.substring(0, TITLE_MAX_LENGTH); + } + + return title; + } + + @Override public void onModalSubmitted(ModalInteractionEvent event, List args) { event.deferReply(true).queue(); @@ -175,8 +199,7 @@ private void transferFlow(ModalInteractionEvent event, String channelId, String .retrieveUserById(authorId) .flatMap(fetchedUser -> createForumPost(event, fetchedUser)) .flatMap(createdForumPost -> dmUser(event.getChannel(), createdForumPost, - event.getGuild()) - .and(sendMessageToTransferrer.apply(createdForumPost))) + event.getGuild()).and(sendMessageToTransferrer.apply(createdForumPost))) .flatMap(dmSent -> deleteOriginalMessage(event.getJDA(), channelId, messageId)) .queue(); } From 7b938975880edf63ba8ed3e2e9ce1a5371ff96bc Mon Sep 17 00:00:00 2001 From: Jaho Islami Date: Fri, 10 Oct 2025 21:57:58 +0300 Subject: [PATCH 2/2] Fixed GPT-generated titles --- .../tjbot/features/moderation/TransferQuestionCommand.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java index 36ca012e74..6c270f873b 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java @@ -100,10 +100,7 @@ public void onMessageContext(MessageContextInteractionEvent event) { .formatted(originalMessage); Optional chatGptTitle = chatGptService.ask(chatGptTitleRequest, null); String title = chatGptTitle.orElse(createTitle(originalMessage)); - - // Fix title = title.replaceAll("^[\"']|[\"']$", ""); - // if (title.length() > TITLE_MAX_LENGTH) { title = title.substring(0, TITLE_MAX_LENGTH);