Centralize ChatGPT stateful requests All stateful requests for ChatGPT are now handled by the ChatGptHttpClient class, which consistently applies the OpenAI assistant version HTTP header to every ChatGPT request. Change-Id: I43549936ffd85da238b021007e161b53f33f9289 Signed-off-by: Patrizio <patrizio.gelosi@amarulasolutions.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/http/HttpClient.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/http/HttpClient.java index cf7b88b..85abe94 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/http/HttpClient.java +++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/http/HttpClient.java
@@ -49,14 +49,10 @@ public Request createRequestFromJson(String uri, String bearer, Object requestObject, Map<String, String> additionalHeaders) { String bodyJson = getGson().toJson(requestObject); - log.info("ChatGPT request body: {}", bodyJson); + log.debug("Request body: {}", bodyJson); RequestBody body = RequestBody.create(bodyJson, MediaType.get("application/json")); return createRequest(uri, bearer, body, additionalHeaders); } - public Request createRequestFromJson(String uri, String bearer, Object requestObject) { - return createRequestFromJson(uri, bearer, requestObject, null); - } - }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptAssistant.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptAssistant.java index 7a8071a..d1c14c3 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptAssistant.java +++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptAssistant.java
@@ -5,7 +5,6 @@ import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.ClientBase; import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.chatgpt.ChatGptTools; import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritChange; -import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.http.HttpClient; import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptTool; import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.UriResourceLocatorStateful; import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git.GitRepoFiles; @@ -19,7 +18,6 @@ import java.net.URI; import java.nio.file.Path; -import java.util.Map; import static com.googlesource.gerrit.plugins.chatgpt.utils.FileUtils.createTempFileWithContent; import static com.googlesource.gerrit.plugins.chatgpt.utils.GsonUtils.getGson; @@ -30,7 +28,7 @@ public static final String KEY_ASSISTANT_ID = "assistantId"; public static final String CODE_INTERPRETER_TOOL_TYPE = "code_interpreter"; - private final HttpClient httpClient = new HttpClient(); + private final ChatGptHttpClient httpClient = new ChatGptHttpClient(); private final GerritChange change; private final GitRepoFiles gitRepoFiles; private final PluginDataHandler pluginDataHandler; @@ -80,7 +78,6 @@ private Request createRequest(String fileId) { URI uri = URI.create(config.getGptDomain() + UriResourceLocatorStateful.chatCreateAssistantsUri()); log.debug("ChatGPT Create Assistant request URI: {}", uri); - Map<String, String> additionalHeaders = Map.of("OpenAI-Beta", "assistants=v1"); ChatGptPromptStateful chatGptPromptStateful = new ChatGptPromptStateful(config, change); ChatGptParameters chatGptParameters = new ChatGptParameters(config, change.getIsCommentEvent()); ChatGptTool[] tools = new ChatGptTool[] { @@ -97,7 +94,7 @@ .tools(tools) .build(); - return httpClient.createRequestFromJson(uri.toString(), config.getGptToken(), requestBody, additionalHeaders); + return httpClient.createRequestFromJson(uri.toString(), config.getGptToken(), requestBody); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptHttpClient.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptHttpClient.java new file mode 100644 index 0000000..077daa9 --- /dev/null +++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptHttpClient.java
@@ -0,0 +1,15 @@ +package com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.chatgpt; + +import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.http.HttpClient; +import okhttp3.Request; + +import java.util.Map; + +public class ChatGptHttpClient extends HttpClient { + private static final Map<String, String> BETA_VERSION_HEADER = Map.of("OpenAI-Beta", "assistants=v1"); + + public Request createRequestFromJson(String uri, String bearer, Object requestObject) { + return createRequestFromJson(uri, bearer, requestObject, BETA_VERSION_HEADER); + } + +}