diff --git a/src/demo/java/io/github/sashirestela/openai/demo/ConversationV2Demo.java b/src/demo/java/io/github/sashirestela/openai/demo/ConversationV2Demo.java index 175e26c..e044054 100644 --- a/src/demo/java/io/github/sashirestela/openai/demo/ConversationV2Demo.java +++ b/src/demo/java/io/github/sashirestela/openai/demo/ConversationV2Demo.java @@ -80,7 +80,7 @@ public void prepareConversation() { .name("World Assistant") .model("gpt-4-turbo") .instructions("You are a skilled tutor on geo-politic topics.") - .tools(AssistantTool.functions(functionList)) + .tools(functionExecutor.getToolFunctions()) .tool(AssistantTool.FILE_SEARCH) .toolResources(ToolResourceFull.builder() .fileSearch(FileSearch.builder() diff --git a/src/demo/java/io/github/sashirestela/openai/demo/ThreadRunStepV2Demo.java b/src/demo/java/io/github/sashirestela/openai/demo/ThreadRunStepV2Demo.java index 89aa625..5ffec94 100644 --- a/src/demo/java/io/github/sashirestela/openai/demo/ThreadRunStepV2Demo.java +++ b/src/demo/java/io/github/sashirestela/openai/demo/ThreadRunStepV2Demo.java @@ -6,7 +6,6 @@ import io.github.sashirestela.openai.demo.ThreadRunV2Demo.CurrentTemperature; import io.github.sashirestela.openai.demo.ThreadRunV2Demo.RainProbability; import io.github.sashirestela.openai.domain.assistant.AssistantRequest; -import io.github.sashirestela.openai.domain.assistant.AssistantTool; import io.github.sashirestela.openai.domain.assistant.ThreadMessageRequest; import io.github.sashirestela.openai.domain.assistant.ThreadMessageRole; import io.github.sashirestela.openai.domain.assistant.ThreadRunRequest; @@ -45,7 +44,7 @@ private void prepareDemo() { .instructions("You are a very kind assistant. If you cannot find correct facts to answer the " + "questions, you have to refer to the attached files or use the functions provided. " + "Finally, if you receive math questions, you must write and run code to answer them.") - .tools(AssistantTool.functions(functionList)) + .tools(functionExecutor.getToolFunctions()) .temperature(0.2) .build()) .join(); diff --git a/src/demo/java/io/github/sashirestela/openai/demo/ThreadRunV2Demo.java b/src/demo/java/io/github/sashirestela/openai/demo/ThreadRunV2Demo.java index 2f6d7e3..7ab74d7 100644 --- a/src/demo/java/io/github/sashirestela/openai/demo/ThreadRunV2Demo.java +++ b/src/demo/java/io/github/sashirestela/openai/demo/ThreadRunV2Demo.java @@ -71,7 +71,7 @@ private void prepareDemo() { .instructions("You are a very kind assistant. If you cannot find correct facts to answer the " + "questions, you have to refer to the attached files or use the functions provided. " + "Finally, if you receive math questions, you must write and run code to answer them.") - .tools(AssistantTool.functions(functionList)) + .tools(functionExecutor.getToolFunctions()) .tool(AssistantTool.FILE_SEARCH) .toolResources(ToolResourceFull.builder() .fileSearch(FileSearch.builder() diff --git a/src/main/java/io/github/sashirestela/openai/common/tool/Tool.java b/src/main/java/io/github/sashirestela/openai/common/tool/Tool.java index c607ca4..79134fc 100644 --- a/src/main/java/io/github/sashirestela/openai/common/tool/Tool.java +++ b/src/main/java/io/github/sashirestela/openai/common/tool/Tool.java @@ -12,9 +12,6 @@ import lombok.NoArgsConstructor; import lombok.ToString; -import java.util.List; -import java.util.stream.Collectors; - @AllArgsConstructor @NoArgsConstructor @Getter @@ -33,12 +30,6 @@ public static Tool function(FunctionDef function) { JsonSchemaUtil.classToJsonSchema(function.getFunctionalClass()))); } - public static List functions(List functions) { - return functions.stream() - .map(funDef -> function(funDef)) - .collect(Collectors.toList()); - } - @AllArgsConstructor(access = AccessLevel.PROTECTED) @NoArgsConstructor @Getter diff --git a/src/main/java/io/github/sashirestela/openai/domain/assistant/Assistant.java b/src/main/java/io/github/sashirestela/openai/domain/assistant/Assistant.java index 1c8afee..f9ef5b6 100644 --- a/src/main/java/io/github/sashirestela/openai/domain/assistant/Assistant.java +++ b/src/main/java/io/github/sashirestela/openai/domain/assistant/Assistant.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; +import io.github.sashirestela.openai.common.tool.Tool; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.ToString; @@ -22,7 +23,7 @@ public class Assistant { private String description; private String model; private String instructions; - private List tools; + private List tools; private ToolResource toolResources; private Map metadata; private Double temperature; diff --git a/src/main/java/io/github/sashirestela/openai/domain/assistant/AssistantModifyRequest.java b/src/main/java/io/github/sashirestela/openai/domain/assistant/AssistantModifyRequest.java index 540029e..a0cb020 100644 --- a/src/main/java/io/github/sashirestela/openai/domain/assistant/AssistantModifyRequest.java +++ b/src/main/java/io/github/sashirestela/openai/domain/assistant/AssistantModifyRequest.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import io.github.sashirestela.openai.common.ResponseFormat; +import io.github.sashirestela.openai.common.tool.Tool; import io.github.sashirestela.slimvalidator.constraints.ObjectType; import io.github.sashirestela.slimvalidator.constraints.Range; import io.github.sashirestela.slimvalidator.constraints.Size; @@ -34,7 +35,7 @@ public class AssistantModifyRequest { @Singular @Size(max = 128) - private List tools; + private List tools; private ToolResource toolResources; diff --git a/src/main/java/io/github/sashirestela/openai/domain/assistant/ThreadCreateAndRunRequest.java b/src/main/java/io/github/sashirestela/openai/domain/assistant/ThreadCreateAndRunRequest.java index 9cae449..1ccc341 100644 --- a/src/main/java/io/github/sashirestela/openai/domain/assistant/ThreadCreateAndRunRequest.java +++ b/src/main/java/io/github/sashirestela/openai/domain/assistant/ThreadCreateAndRunRequest.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import io.github.sashirestela.openai.common.ResponseFormat; +import io.github.sashirestela.openai.common.tool.Tool; import io.github.sashirestela.openai.common.tool.ToolChoice; import io.github.sashirestela.openai.common.tool.ToolChoiceOption; import io.github.sashirestela.slimvalidator.constraints.ObjectType; @@ -34,7 +35,7 @@ public class ThreadCreateAndRunRequest { private String instructions; @Singular @Size(max = 20) - private List tools; + private List tools; private ToolResource toolResources; diff --git a/src/main/java/io/github/sashirestela/openai/domain/assistant/ThreadRun.java b/src/main/java/io/github/sashirestela/openai/domain/assistant/ThreadRun.java index ce291eb..4c44acd 100644 --- a/src/main/java/io/github/sashirestela/openai/domain/assistant/ThreadRun.java +++ b/src/main/java/io/github/sashirestela/openai/domain/assistant/ThreadRun.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import io.github.sashirestela.openai.common.Usage; +import io.github.sashirestela.openai.common.tool.Tool; import io.github.sashirestela.openai.common.tool.ToolCall; import lombok.Getter; import lombok.NoArgsConstructor; @@ -34,7 +35,7 @@ public class ThreadRun { private IncompleteDetail incompleteDetails; private String model; private String instructions; - private List tools; + private List tools; private Map metadata; private Usage usage; private Double temperature; diff --git a/src/main/java/io/github/sashirestela/openai/domain/assistant/ThreadRunRequest.java b/src/main/java/io/github/sashirestela/openai/domain/assistant/ThreadRunRequest.java index be47052..5797f0a 100644 --- a/src/main/java/io/github/sashirestela/openai/domain/assistant/ThreadRunRequest.java +++ b/src/main/java/io/github/sashirestela/openai/domain/assistant/ThreadRunRequest.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import io.github.sashirestela.openai.common.ResponseFormat; +import io.github.sashirestela.openai.common.tool.Tool; import io.github.sashirestela.openai.common.tool.ToolChoice; import io.github.sashirestela.openai.common.tool.ToolChoiceOption; import io.github.sashirestela.slimvalidator.constraints.ObjectType; @@ -38,7 +39,7 @@ public class ThreadRunRequest { @Singular @Size(max = 20) - private List tools; + private List tools; @Size(max = 16) private Map metadata;