diff --git a/java/lc-violet/src/main/java/lc/violet/Violet.java b/java/lc-violet/src/main/java/lc/violet/Violet.java index 29dab928433d9626e3bad77f4c61661e22370f4e..ff37f3ae24771ba5bfe0b839fd3d2ddfd501cdb2 100644 --- a/java/lc-violet/src/main/java/lc/violet/Violet.java +++ b/java/lc-violet/src/main/java/lc/violet/Violet.java @@ -1,9 +1,7 @@ package lc.violet; -import com.theokanning.openai.OpenAiService; -import com.theokanning.openai.completion.CompletionChoice; -import com.theokanning.openai.completion.CompletionRequest; -import com.theokanning.openai.completion.CompletionResult; +import com.theokanning.openai.completion.chat.*; +import com.theokanning.openai.service.OpenAiService; import lc.mecha.log.MechaLogger; import lc.mecha.log.MechaLoggerFactory; import lc.mecha.util.StringAccumulatorV2; @@ -15,6 +13,7 @@ import org.pircbotx.hooks.ListenerAdapter; import org.pircbotx.hooks.types.GenericMessageEvent; import java.io.IOException; +import java.util.ArrayList; import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -33,12 +32,10 @@ public class Violet extends ListenerAdapter implements Runnable { private final String botName = System.getenv("BOT_NAME"); private final String botLetter = System.getenv("BOT_LETTER"); private final String model = System.getenv("MODEL"); - int maxLenght = 400; - Pattern p = Pattern.compile("\\G\\s*(.{1," + maxLenght + "})(?=\\s|$)", Pattern.DOTALL); + int maxLength = 400; + Pattern p = Pattern.compile("\\G\\s*(.{1," + maxLength + "})(?=\\s|$)", Pattern.DOTALL); public Violet(String token) { - - //Configure what we want our bot to do Configuration configuration = new Configuration.Builder() .setName(botName) //Set the nick of the bot. CHANGE IN YOUR CODE @@ -70,11 +67,16 @@ public class Violet extends ListenerAdapter implements Runnable { if (lMsg.startsWith(botLetter.toLowerCase() + ": ") || lMsg.startsWith(botName.toLowerCase() + ": ")) { String prompt = msg.substring(2); - CompletionRequest completionRequest = CompletionRequest.builder() - .prompt(prompt) + + ChatMessage userMessage = new ChatMessage(ChatMessageRole.USER.value(), prompt); + + ArrayList msgs = new ArrayList<>(); + msgs.add(userMessage); + + ChatCompletionRequest completionRequest = ChatCompletionRequest.builder() + .messages(msgs) .model(model) .stream(false) - .echo(false) .maxTokens(1000) .build(); @@ -82,14 +84,15 @@ public class Violet extends ListenerAdapter implements Runnable { * error. It is also possible that other problems may occur. So this tries the prompt * up to 4 times, and each time it fails for some reason, emits a longer "hmm" string. */ - CompletionResult comp = null; + ChatCompletionResult comp = null; StringAccumulatorV2 sa = new StringAccumulatorV2(" "); for (int i = 0; i < 4; i++) { try { - comp = service.createCompletion(completionRequest); + comp = service.createChatCompletion(completionRequest); } catch (Exception e) { - sa.add("hmm"); - event.respond(sa.asString()); + logger.warn("Exception received: {}", e); + // sa.add("hmm"); + // event.respond(sa.asString()); } if (comp != null) break; } @@ -101,9 +104,10 @@ public class Violet extends ListenerAdapter implements Runnable { logger.info("Result: {}", comp); - for (CompletionChoice result : comp.getChoices()) { + for (ChatCompletionChoice result : comp.getChoices()) { logger.info("CompletionChoice: {}", result); - String[] lines = result.getText().split("\\R"); + String txt = result.getMessage().getContent(); + String[] lines = txt.split("\\R"); for (String s : lines) { s = s.trim(); if (!StringUtils.isBlank(s)) {