From 27ef6d5b2d7b0b2e5817c56279105e5be23e6625 Mon Sep 17 00:00:00 2001 From: ohAlee Date: Mon, 20 Feb 2023 16:49:45 +0100 Subject: [PATCH] Added custom request builder --- build.gradle | 4 ++-- src/main/java/it/ohalee/minecraftgpt/OpenAI.java | 15 ++++++++------- .../minecraftgpt/handler/PlayerHandlers.java | 2 +- src/main/resources/config.yml | 8 ++++++++ src/main/resources/plugin.yml | 2 +- 5 files changed, 20 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index b787c56..88040bb 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group = 'it.ohalee.minecraftgpt' -version = '1.2.0' +version = '1.2.2' sourceCompatibility = 1.17 targetCompatibility = 1.17 @@ -15,7 +15,7 @@ tasks.withType(JavaCompile).configureEach { project.ext.majorVersion = '1' project.ext.minorVersion = '2' -project.ext.apiVersion = '0' +project.ext.apiVersion = '1' project.ext.fullVersion = project.ext.majorVersion + '.' + project.ext.minorVersion + '.' + project.ext.apiVersion repositories { diff --git a/src/main/java/it/ohalee/minecraftgpt/OpenAI.java b/src/main/java/it/ohalee/minecraftgpt/OpenAI.java index 5f6b712..a87e80c 100644 --- a/src/main/java/it/ohalee/minecraftgpt/OpenAI.java +++ b/src/main/java/it/ohalee/minecraftgpt/OpenAI.java @@ -2,6 +2,7 @@ package it.ohalee.minecraftgpt; import com.theokanning.openai.OpenAiService; import com.theokanning.openai.completion.CompletionRequest; +import org.bukkit.configuration.ConfigurationSection; import java.util.Arrays; import java.util.concurrent.CompletableFuture; @@ -14,18 +15,18 @@ public class OpenAI { service = new OpenAiService(key, 0); } - public static CompletableFuture getResponse(StringBuilder cached, String message) { + public static CompletableFuture getResponse(ConfigurationSection section, StringBuilder cached, String message) { cached.append("\nHuman:").append(message).append("\nAI:"); return CompletableFuture.supplyAsync(() -> { CompletionRequest request = CompletionRequest.builder() .prompt(cached.toString()) - .model("text-davinci-003") - .temperature(0.9) - .maxTokens(150) - .topP(1.0) - .frequencyPenalty(0.0) - .presencePenalty(0.6) + .model(section.getString("model")) + .temperature(section.getDouble("temperature")) + .maxTokens(section.getInt("max-tokens")) + .topP(section.getDouble("top-p")) + .frequencyPenalty(section.getDouble("frequency-penalty")) + .presencePenalty(section.getDouble("presence-penalty")) .stop(Arrays.asList("Human:", "AI:")) .build(); return service.createCompletion(request).getChoices().get(0).getText(); diff --git a/src/main/java/it/ohalee/minecraftgpt/handler/PlayerHandlers.java b/src/main/java/it/ohalee/minecraftgpt/handler/PlayerHandlers.java index 8a75b67..7a03812 100644 --- a/src/main/java/it/ohalee/minecraftgpt/handler/PlayerHandlers.java +++ b/src/main/java/it/ohalee/minecraftgpt/handler/PlayerHandlers.java @@ -53,7 +53,7 @@ public class PlayerHandlers implements Listener { StringBuilder builder = Main.CACHE.getIfPresent(player); if (builder == null) builder = new StringBuilder(); - OpenAI.getResponse(builder, e.getMessage()).whenComplete((response, throwable) -> { + OpenAI.getResponse(plugin.getConfig().getConfigurationSection("chatgpt"), builder, e.getMessage()).whenComplete((response, throwable) -> { if (throwable != null) { throwable.printStackTrace(); player.sendMessage(Messages.format(plugin.getConfig().getString("command.error"))); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index e93892e..c26f3dd 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -12,5 +12,13 @@ format: - "&b%player%: &7%message%" - "&bAI -> %player%: &a%message%" +chatgpt: + model: "text-davinci-003" + temperature: 0.9 + max-tokens: 150 + top-p: 1.0 + frequency-penalty: 0.0 + presence-penalty: 0.6 + # https://beta.openai.com/account/api-keys API_KEY: "" \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index f5a30f4..d2f8282 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: MinecraftGPT main: it.ohalee.minecraftgpt.Main -version: 1.2.0 +version: 1.2.2 author: ohAlee description: A Minecraft plugin that uses ChatGPT api-version: 1.16