From bc46a98a018073531c2903c73b4f8fdad9f9a702 Mon Sep 17 00:00:00 2001
From: liangtao <547670718@qq.com>
Date: Fri, 10 May 2024 09:16:35 +0800
Subject: [PATCH 1/6] add release config
---
.github/release.yml | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
create mode 100644 .github/release.yml
diff --git a/.github/release.yml b/.github/release.yml
new file mode 100644
index 0000000..f3f9b28
--- /dev/null
+++ b/.github/release.yml
@@ -0,0 +1,23 @@
+changelog:
+ exclude:
+ labels:
+ - ignore-for-release
+ categories:
+ - title: 🏕 Features
+ labels:
+ - enhancement
+ - title: 🐛 Bug Fixes
+ labels:
+ - bug
+ - title: 👋 Deprecated
+ labels:
+ - deprecation
+ - title: 📄 documentation
+ labels:
+ - documentation
+ - title: 👒 Dependencies
+ labels:
+ - dependencies
+ - title: 'Other Changes'
+ labels:
+ - "*"
From 3883c933e9b9de1266436e8d829af062e594310d Mon Sep 17 00:00:00 2001
From: liangtao <547670718@qq.com>
Date: Fri, 10 May 2024 14:19:41 +0800
Subject: [PATCH 2/6] =?UTF-8?q?function=20=E5=AE=9A=E4=B9=89=E9=87=8D?=
=?UTF-8?q?=E6=9E=84;=E7=BB=9F=E4=B8=80=E4=BD=BF=E7=94=A8=E6=96=B9?=
=?UTF-8?q?=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api/pom.xml | 11 ++
.../assistant/AssistantFunction.java | 27 ----
.../assistants/assistant/FunctionTool.java | 3 +
.../openai/assistants/run/ToolCall.java | 1 +
.../chat/ChatCompletionRequest.java | 10 +-
.../openai/completion/chat/ChatFunction.java | 6 +
.../completion/chat/ChatFunctionDynamic.java | 6 +
.../chat/ChatFunctionParameters.java | 5 +
.../completion/chat/ChatFunctionProperty.java | 1 +
.../openai/completion/chat/ChatTool.java | 17 ++-
.../completion/chat/FunctionMessage.java | 2 +
.../openai/function/FunctionDefinition.java | 116 ++++++++++++++
.../function/FunctionExecutorManager.java | 143 ++++++++++++++++++
.../FunctionParametersSerializer.java | 31 ++++
.../example/FunctionOrToolCreateExample.java | 92 +++++++++++
service/pom.xml | 11 --
.../openai/service/ChatFunctionMixIn.java | 4 +
.../ChatFunctionParametersSerializer.java | 1 +
.../service/assistants/AssistantTest.java | 40 +++--
19 files changed, 459 insertions(+), 68 deletions(-)
delete mode 100644 api/src/main/java/com/theokanning/openai/assistants/assistant/AssistantFunction.java
create mode 100644 api/src/main/java/com/theokanning/openai/function/FunctionDefinition.java
create mode 100644 api/src/main/java/com/theokanning/openai/function/FunctionExecutorManager.java
create mode 100644 api/src/main/java/com/theokanning/openai/function/FunctionParametersSerializer.java
create mode 100644 example/src/main/java/example/FunctionOrToolCreateExample.java
diff --git a/api/pom.xml b/api/pom.xml
index cc138d8..f76ca05 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -33,6 +33,17 @@
jtokkit
0.5.1
+
+ com.kjetland
+ mbknor-jackson-jsonschema_2.12
+ 1.0.39
+
+
+ jackson-databind
+ com.fasterxml.jackson.core
+
+
+
diff --git a/api/src/main/java/com/theokanning/openai/assistants/assistant/AssistantFunction.java b/api/src/main/java/com/theokanning/openai/assistants/assistant/AssistantFunction.java
deleted file mode 100644
index 4f83ce5..0000000
--- a/api/src/main/java/com/theokanning/openai/assistants/assistant/AssistantFunction.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.theokanning.openai.assistants.assistant;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * @description:
- * @author: vacuity
- * @create: 2023-11-20 10:09
- **/
-
-
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-@Data
-public class AssistantFunction {
-
- private String description;
-
- private String name;
-
- private Object parameters;
-
-}
diff --git a/api/src/main/java/com/theokanning/openai/assistants/assistant/FunctionTool.java b/api/src/main/java/com/theokanning/openai/assistants/assistant/FunctionTool.java
index 4a22009..e36ba02 100644
--- a/api/src/main/java/com/theokanning/openai/assistants/assistant/FunctionTool.java
+++ b/api/src/main/java/com/theokanning/openai/assistants/assistant/FunctionTool.java
@@ -16,6 +16,9 @@ public class FunctionTool implements Tool {
/**
* Function definition, only used if type is "function"
+ * recommend to use {@link com.theokanning.openai.function.FunctionDefinition} or custom class
+ *
+ * @since 0.20.5 {@link com.theokanning.openai.completion.chat.ChatFunction} {@link com.theokanning.openai.completion.chat.ChatFunctionDynamic}will be deprecated
*/
Object function;
}
diff --git a/api/src/main/java/com/theokanning/openai/assistants/run/ToolCall.java b/api/src/main/java/com/theokanning/openai/assistants/run/ToolCall.java
index 65b0c54..e341544 100644
--- a/api/src/main/java/com/theokanning/openai/assistants/run/ToolCall.java
+++ b/api/src/main/java/com/theokanning/openai/assistants/run/ToolCall.java
@@ -20,6 +20,7 @@
@NoArgsConstructor
@AllArgsConstructor
public class ToolCall {
+
//may be need @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
Integer index;
diff --git a/api/src/main/java/com/theokanning/openai/completion/chat/ChatCompletionRequest.java b/api/src/main/java/com/theokanning/openai/completion/chat/ChatCompletionRequest.java
index 4c876b0..743df14 100644
--- a/api/src/main/java/com/theokanning/openai/completion/chat/ChatCompletionRequest.java
+++ b/api/src/main/java/com/theokanning/openai/completion/chat/ChatCompletionRequest.java
@@ -114,7 +114,9 @@ public class ChatCompletionRequest {
String user;
/**
- * A list of the available functions.
+ * @deprecated Replaced by {@link #tools}
+ * recommend to use {@link com.theokanning.openai.function.FunctionDefinition} or custom class
+ * @since 0.20.5 {@link com.theokanning.openai.completion.chat.ChatFunction} {@link com.theokanning.openai.completion.chat.ChatFunctionDynamic}will be deprecated
*/
@Deprecated
List> functions;
@@ -146,8 +148,12 @@ public class ChatCompletionRequest {
Integer topLogprobs;
+
/**
- * A list of tools the model may call. Currently, only functions are supported as a tool.
+ * Function definition, only used if type is "function"
+ * recommend to use {@link com.theokanning.openai.function.FunctionDefinition} or custom class
+ *
+ * @since 0.20.5 {@link com.theokanning.openai.completion.chat.ChatFunction} {@link com.theokanning.openai.completion.chat.ChatFunctionDynamic}will be deprecated
*/
List tools;
diff --git a/api/src/main/java/com/theokanning/openai/completion/chat/ChatFunction.java b/api/src/main/java/com/theokanning/openai/completion/chat/ChatFunction.java
index da215c2..9319efb 100644
--- a/api/src/main/java/com/theokanning/openai/completion/chat/ChatFunction.java
+++ b/api/src/main/java/com/theokanning/openai/completion/chat/ChatFunction.java
@@ -8,8 +8,13 @@
import java.util.function.Function;
+/**
+ * @deprecated This class is no longer used and will be removed in a future release.
+ * Please use {@link com.theokanning.openai.function.FunctionDefinition} instead.
+ */
@Data
@NoArgsConstructor
+@Deprecated
public class ChatFunction {
/**
@@ -29,6 +34,7 @@ public class ChatFunction {
@JsonProperty("parameters")
private Class> parametersClass;
+
@JsonIgnore
private Function