From c226095b1a1696ada91e9686c072c71f8f6400cb Mon Sep 17 00:00:00 2001 From: Benjamin Sherriff Date: Sun, 16 Apr 2023 11:56:27 -0400 Subject: [PATCH] v0.1.19 Added audio settings, tweaked chat completion --- .version | 2 +- .../java/com/bensherriff/siren/Listener.java | 2 +- .../bensherriff/siren/ai/OpenAIManager.java | 5 ++++ .../bensherriff/siren/audio/AudioHandler.java | 6 ++-- .../bensherriff/siren/settings/Settings.java | 11 +++++++ .../siren/settings/TrackSettings.java | 22 ++++++++++++++ src/main/resources/log4j2.xml | 30 ++++++++++++------- 7 files changed, 63 insertions(+), 15 deletions(-) create mode 100644 src/main/java/com/bensherriff/siren/settings/TrackSettings.java diff --git a/.version b/.version index d24bcc8..d3a16cc 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -export SIREN_VERSION=0.1.18 \ No newline at end of file +export SIREN_VERSION=0.1.19 \ No newline at end of file diff --git a/src/main/java/com/bensherriff/siren/Listener.java b/src/main/java/com/bensherriff/siren/Listener.java index 045143c..fe7449d 100644 --- a/src/main/java/com/bensherriff/siren/Listener.java +++ b/src/main/java/com/bensherriff/siren/Listener.java @@ -133,7 +133,7 @@ public class Listener extends ListenerAdapter { commands.put("resume", new ResumeCommand(this)); commands.put("image", new ImageCommand(this)); jda.getGuilds().forEach(guild -> executor.execute(() -> { - LOGGER.debug("Updating commands for {}", guild.getId()); + LOGGER.debug("Updating commands for \"{}\" <{}>", guild.getName(), guild.getId()); guild.updateCommands().addCommands( commands.values().stream().map(Command::getSlashCommandData).collect(Collectors.toList()) ).queue(); diff --git a/src/main/java/com/bensherriff/siren/ai/OpenAIManager.java b/src/main/java/com/bensherriff/siren/ai/OpenAIManager.java index a9be659..1efb75b 100644 --- a/src/main/java/com/bensherriff/siren/ai/OpenAIManager.java +++ b/src/main/java/com/bensherriff/siren/ai/OpenAIManager.java @@ -150,11 +150,16 @@ public class OpenAIManager { .build(); List previousMessages = DatabaseManager.getMessages( query, event.getGuild().getIdLong(), event.getChannel().getIdLong()); + Set potentialTopics = new HashSet<>(); for (MessageData previousMessage : previousMessages) { ChatMessage previousChatMessage = createSystemMessage("For context, I previously sent you a message at " + previousMessage.getTimestamp() + " which said \"" + previousMessage.getMessageText() + "\". You replied with \"" + previousMessage.getMessageResponse() + "\"."); + potentialTopics.addAll(NLP.getTopicKeywords(previousMessage.getMessageText())); + potentialTopics.addAll(NLP.getTopicKeywords(previousMessage.getMessageResponse())); chatMessages.add(previousChatMessage); + LOGGER.trace("Potential topics: {}", potentialTopics); +// chatMessages.add(createSystemMessage("As an AI language model, only give replies that relate to " + topics)); } } diff --git a/src/main/java/com/bensherriff/siren/audio/AudioHandler.java b/src/main/java/com/bensherriff/siren/audio/AudioHandler.java index 3d108a6..4a633bc 100644 --- a/src/main/java/com/bensherriff/siren/audio/AudioHandler.java +++ b/src/main/java/com/bensherriff/siren/audio/AudioHandler.java @@ -41,7 +41,7 @@ public class AudioHandler extends AudioEventAdapter implements AudioSendHandler public void addTrack(AudioTrack track) { if (player.getPlayingTrack() == null) { - player.playTrack(track); + manager.getListener().getExecutor().execute(() -> player.playTrack(track)); } else { LOGGER.debug("Track '{}' has been queued", track.getInfo().title); if (!queue.offer(track)) { @@ -56,7 +56,7 @@ public class AudioHandler extends AudioEventAdapter implements AudioSendHandler } public void setPaused(boolean paused) { - player.setPaused(paused); + manager.getListener().getExecutor().execute(() -> player.setPaused(paused)); } public boolean isPaused() { @@ -95,7 +95,7 @@ public class AudioHandler extends AudioEventAdapter implements AudioSendHandler manager.getListener().closeAudioConnection(guildID); manager.getListener().getJDA().getPresence().setActivity(Activity.playing("nothing")); } else { - player.playTrack(queue.poll()); + manager.getListener().getExecutor().execute(() -> player.playTrack(queue.poll())); } } diff --git a/src/main/java/com/bensherriff/siren/settings/Settings.java b/src/main/java/com/bensherriff/siren/settings/Settings.java index 86083c1..da32a43 100644 --- a/src/main/java/com/bensherriff/siren/settings/Settings.java +++ b/src/main/java/com/bensherriff/siren/settings/Settings.java @@ -1,6 +1,8 @@ package com.bensherriff.siren.settings; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; public class Settings { @@ -10,6 +12,7 @@ public class Settings { private int threadPool = 2; private Map guildSettings = new HashMap<>(); private OpenAISettings openAISettings = new OpenAISettings(); + private List tracks = new ArrayList<>(); public String getToken() { return token; @@ -51,4 +54,12 @@ public class Settings { public void setOpenAISettings(OpenAISettings openAISettings) { this.openAISettings = openAISettings; } + + public List getTracks() { + return tracks; + } + + public void setTracks(List tracks) { + this.tracks = tracks; + } } diff --git a/src/main/java/com/bensherriff/siren/settings/TrackSettings.java b/src/main/java/com/bensherriff/siren/settings/TrackSettings.java new file mode 100644 index 0000000..c944937 --- /dev/null +++ b/src/main/java/com/bensherriff/siren/settings/TrackSettings.java @@ -0,0 +1,22 @@ +package com.bensherriff.siren.settings; + +public class TrackSettings { + private String file; + private String[] tags; + + public String getFile() { + return file; + } + + public void setFile(String file) { + this.file = file; + } + + public String[] getTags() { + return tags; + } + + public void setTags(String[] tags) { + this.tags = tags; + } +} diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml index 32c93a1..e6ae047 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -9,25 +9,35 @@ - - - - - + + - + - + + + + + + + + + + + + + + + + - - - \ No newline at end of file