v0.1.14 Consolidated versioning to .env

This commit is contained in:
2023-04-15 07:20:56 -04:00
parent fbc9ac9dde
commit 1522dfd99b
5 changed files with 107 additions and 96 deletions

1
.env Normal file
View File

@@ -0,0 +1 @@
export SIREN_VERSION=0.1.14

View File

@@ -1,4 +1,5 @@
SHELL := /bin/bash
include .env
build:
docker rmi siren && docker-compose build
@@ -18,3 +19,11 @@ exec:
clean:
docker rmi siren
deploy:
@echo "Deploying application..."
@mvn clean deploy || { \
echo "Deployment failed!"; \
exit 1; \
}
@echo "Deployment successful!"

View File

@@ -9,7 +9,7 @@ services:
dockerfile: ./Dockerfile
args:
- JAVA_VERSION=17
- VERSION=0.1.13
- VERSION=${SIREN_VERSION}
volumes:
- ./data:/app
restart: unless-stopped

View File

@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.bensherriff</groupId>
<artifactId>siren</artifactId>
<version>0.1.13</version>
<version>${env.SIREN_VERSION}</version>
<packaging>jar</packaging>
<repositories>

View File

@@ -27,12 +27,13 @@ public class OpenAIManager {
private final Settings settings;
private final JDA jda;
private final ScheduledExecutorService executor;
private final Map<String, List<ChatMessage>> threadMessages = new HashMap<>();
private final Map<String, List<ChatMessage>> threadMessages;
public OpenAIManager(Listener listener) {
this.settings = listener.getSettings();
this.jda = listener.getJDA();
this.executor = listener.getExecutor();
this.threadMessages = new HashMap<>();
if (settings.getOpenAISettings().getToken().isEmpty()) {
LOGGER.warn("No OpenAI token; OpenAI functionality is disabled");
@@ -48,28 +49,33 @@ public class OpenAIManager {
* @param event The message event received
*/
public void handleEvent(MessageReceivedEvent event) {
if (shouldReply(event)) {
if (openAiService != null) {
executor.execute(() -> sendMessage(event));
} else {
event.getMessage().reply("OpenAI functionality is disabled. Please contact an administrator").queue();
}
}
}
private void sendMessage(MessageReceivedEvent event) {
String message = parseMessage(event.getMessage().getContentRaw());
long guildId = event.getGuild().getIdLong();
GuildSettings guildSettings = settings.getGuildSettings().get(guildId);
Model model = settings.getGuildSettings().get(guildId).getModel();
GuildSettings guildSettings = settings.getGuildSettings().get(guildId);
if (event.getAuthor().isBot()) {
return;
}
LOGGER.trace("Guild: <{}> User: <{}> Message: <{}>", guildId, event.getAuthor().getId(), message);
if (message.isEmpty() || message.isBlank()) {
event.getMessage().reply("Your message is empty. Please try again").queue();
return;
}
if (shouldReply(event)) {
if (openAiService != null) {
LOGGER.trace("Guild: <{}> User: <{}> Message: <{}>", guildId, event.getAuthor().getId(), message);
executor.execute(() -> {
try {
StringBuilder stringBuilder = new StringBuilder();
List<ChatMessage> chatMessages = new ArrayList<>();
ChatMessage chatMessage = createChatMessage(message, event);
try {
// Send OpenAI Message and get response
switch (model) {
case DAVINCI_3, DAVINCI_2, CURIE_1, BABBAGE_1, ADA_1 -> {
@@ -87,16 +93,15 @@ public class OpenAIManager {
completionResult.getChoices().forEach(choice -> stringBuilder.append(choice.getText().trim()));
}
case GPT_4, GPT_4_0314, GPT_4_32K, GPT_4_32K_0314, GPT_35_TURBO, GPT_35_TURBO_0301 -> {
//TODO check logic here, something is broken
//TODO Handle memories properly
// if (event.isFromThread()) {
// String channelId = event.getChannel().asThreadChannel().getId();
// // Update ThreadMessages with the new message, and add previous messages to be sent out
// if (threadMessages.containsKey(channelId)) {
// chatMessages.addAll(threadMessages.get(channelId));
// threadMessages.get(channelId).add(chatMessage);
// chatMessages.addAll(threadMessages.get(channelId));
// } else {
// threadMessages.put(channelId, List.of(chatMessage));
// threadMessages.put(channelId, new ArrayList<>(Arrays.asList(chatMessage)));
// }
// }
chatMessages.add(chatMessage);
@@ -127,25 +132,21 @@ public class OpenAIManager {
ThreadChannel channel = event.getChannel().asThreadChannel();
channel.sendMessage(stringBuilder.toString()).queue();
} else {
// The max discord title length is 100 characters
String threadTitle = message;
if (message.length() > 20) {
threadTitle = message.substring(0, 20);
if (message.length() > 100) {
threadTitle = message.substring(0, 100);
}
event.getMessage().createThreadChannel(threadTitle).queue(channel -> {
channel.sendMessage(stringBuilder.toString()).queue();
threadMessages.put(channel.getId(), List.of(chatMessage));
// threadMessages.put(channel.getId(), new ArrayList<>(Arrays.asList(chatMessage)));
});
}
} catch (Exception ex) {
LOGGER.error(ex.getMessage());
LOGGER.error("Caught exception while processing message; {}", ex.getMessage());
event.getMessage().reply("An error occurred while processing your message. Please contact your administrator.").queue();
}
});
} else {
event.getMessage().reply("OpenAI functionality is disabled. Please contact an administrator").queue();
}
}
}
private ChatMessage createChatMessage(String message, MessageReceivedEvent event) {
@@ -185,7 +186,7 @@ public class OpenAIManager {
}
}
} catch (Exception ex) {
LOGGER.error(ex.getMessage());
LOGGER.error("Failed to determine bot reply status; {}", ex.getMessage());
return false;
}
return shouldReply;