Skip to content

Commit

Permalink
split clone method from ai-assitant from test class
Browse files Browse the repository at this point in the history
  • Loading branch information
ntqdinh-axonivy committed Nov 20, 2024
1 parent 7e6148c commit c3f2c1f
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 30 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.axonivy.connector.openai.mock.utils;

import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;

public class AiAssistanceUtils {
private static ObjectNode completion() {
ObjectNode request = JsonNodeFactory.instance.objectNode();
request.put("model", "gpt-3.5-turbo");
request.put("temperature", 1);
request.put("top_p", 1);
request.put("frequency_penalty", 0);
request.put("presence_penalty", 0);
request.put("max_tokens", 1024);
return request;
}

private static ObjectNode message(String role, String content) {
return JsonNodeFactory.instance.objectNode().put("role", role).put("content", content);
}

public static Entity<JsonNode> buildPayloadFromQuestion(String question, boolean includeSystemPrompt) {
ArrayNode arrayNode = JsonNodeFactory.instance.arrayNode();
if (includeSystemPrompt) {
arrayNode.add(message("system", "SYSTEM_PROMT"));
}
arrayNode.add(message("user", question));
ObjectNode request = completion().set("messages", arrayNode);
return Entity.entity(request, MediaType.APPLICATION_JSON);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import com.axonivy.connector.openai.mock.utils.AiAssistanceUtils;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;

import ch.ivyteam.ivy.application.IApplication;
import ch.ivyteam.ivy.environment.AppFixture;
Expand Down Expand Up @@ -122,35 +120,10 @@ private static JsonNode chatAssist(JsonNode quest) {

private static JsonNode assistWithQuestion(String question, boolean includeSystemPrompt) {
WebTarget client = Ivy.rest().client(OPEN_AI);
Entity<JsonNode> request = buildPayloadFromQuestion(question, includeSystemPrompt);
Entity<JsonNode> request = AiAssistanceUtils.buildPayloadFromQuestion(question, includeSystemPrompt);
JsonNode result = client.path("chat/completions").request()
.post(request).readEntity(JsonNode.class);
return result;
}

private static Entity<JsonNode> buildPayloadFromQuestion(String question, boolean includeSystemPrompt) {
ArrayNode arrayNode = JsonNodeFactory.instance.arrayNode();
if (includeSystemPrompt) {
arrayNode.add(message("system", "SYSTEM_PROMT"));
}
arrayNode.add(message("user", question));
ObjectNode request = completion().set("messages", arrayNode);
return Entity.entity(request, MediaType.APPLICATION_JSON);
}

private static ObjectNode message(String role, String content) {
return JsonNodeFactory.instance.objectNode().put("role", role).put("content", content);
}

private static ObjectNode completion() {
ObjectNode request = JsonNodeFactory.instance.objectNode();
request.put("model", "gpt-3.5-turbo");
request.put("temperature", 1);
request.put("top_p", 1);
request.put("frequency_penalty", 0);
request.put("presence_penalty", 0);
request.put("max_tokens", 1024);
return request;
}
}

}

0 comments on commit c3f2c1f

Please sign in to comment.