Skip to content

Commit aebfa42

Browse files
committed
feature "rewrite-msg command": removing Optional and other adjustments
1 parent 0604f9b commit aebfa42

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

application/src/main/java/org/togetherjava/tjbot/features/messages/RewriteCommand.java

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import org.togetherjava.tjbot.features.chatgpt.ChatGptService;
1616

1717
import java.util.Arrays;
18-
import java.util.Optional;
1918

2019
/**
2120
* The implemented command is {@code /rewrite}, which allows users to have their message rewritten
@@ -93,11 +92,12 @@ public void onSlashCommand(SlashCommandInteractionEvent event) {
9392
}
9493

9594
String userMessage = messageOption.getAsString();
95+
9696
MessageTone tone = parseTone(event.getOption(TONE_OPTION));
9797

9898
event.deferReply(true).queue();
9999

100-
Optional<String> rewrittenMessage = rewrite(userMessage, tone);
100+
String rewrittenMessage = rewrite(userMessage, tone);
101101

102102
if (rewrittenMessage.isEmpty()) {
103103
logger.debug("Failed to obtain a response for /{}, original message: '{}'",
@@ -111,11 +111,9 @@ public void onSlashCommand(SlashCommandInteractionEvent event) {
111111
return;
112112
}
113113

114-
String rewrittenText = rewrittenMessage.orElseThrow();
115-
116-
logger.debug("Rewrite successful; rewritten message length: {}", rewrittenText.length());
114+
logger.debug("Rewrite successful; rewritten message length: {}", rewrittenMessage.length());
117115

118-
event.getHook().sendMessage(rewrittenText).setEphemeral(true).queue();
116+
event.getHook().sendMessage(rewrittenMessage).setEphemeral(true).queue();
119117
}
120118

121119
private MessageTone parseTone(@Nullable OptionMapping toneOption)
@@ -129,33 +127,35 @@ private MessageTone parseTone(@Nullable OptionMapping toneOption)
129127
return MessageTone.valueOf(toneOption.getAsString());
130128
}
131129

132-
private Optional<String> rewrite(String userMessage, MessageTone tone) {
130+
private String rewrite(String userMessage, MessageTone tone) {
133131

134132
String rewritePrompt = createAiPrompt(userMessage, tone);
135133

136134
ChatGptModel aiModel = tone.model;
137135

138-
Optional<String> attempt = chatGptService.askRaw(rewritePrompt, aiModel);
136+
String attempt = askAi(rewritePrompt, aiModel);
139137

140-
if (attempt.isEmpty()) {
141-
return attempt;
142-
}
143-
144-
String response = attempt.get();
145-
146-
if (response.length() <= MAX_MESSAGE_LENGTH) {
138+
if (attempt.length() <= MAX_MESSAGE_LENGTH) {
147139
return attempt;
148140
}
149141

150142
logger.debug("Rewritten message exceeded {} characters; retrying with stricter constraint",
151143
MAX_MESSAGE_LENGTH);
152144

153-
String shortenPrompt = rewritePrompt
154-
+ "\n\nConstraint reminder: Your previous rewrite exceeded " + MAX_MESSAGE_LENGTH
155-
+ " characters. Provide a revised rewrite strictly under " + MAX_MESSAGE_LENGTH
156-
+ " characters while preserving meaning and tone.";
145+
String shortenPrompt =
146+
"""
147+
%s
148+
149+
Constraint reminder: Your previous rewrite exceeded %d characters.
150+
Provide a revised rewrite strictly under %d characters while preserving meaning and tone.
151+
"""
152+
.formatted(rewritePrompt, MAX_MESSAGE_LENGTH, MAX_MESSAGE_LENGTH);
153+
154+
return askAi(shortenPrompt, aiModel);
155+
}
157156

158-
return chatGptService.askRaw(shortenPrompt, aiModel);
157+
private String askAi(String shortenPrompt, ChatGptModel aiModel) {
158+
return chatGptService.askRaw(shortenPrompt, aiModel).orElse("");
159159
}
160160

161161
private static String createAiPrompt(String userMessage, MessageTone tone) {

0 commit comments

Comments
 (0)