v0.1.14 Consolidated versioning to .env
This commit is contained in:
9
Makefile
9
Makefile
@@ -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!"
|
||||
|
||||
@@ -9,7 +9,7 @@ services:
|
||||
dockerfile: ./Dockerfile
|
||||
args:
|
||||
- JAVA_VERSION=17
|
||||
- VERSION=0.1.13
|
||||
- VERSION=${SIREN_VERSION}
|
||||
volumes:
|
||||
- ./data:/app
|
||||
restart: unless-stopped
|
||||
|
||||
2
pom.xml
2
pom.xml
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user