From 1f81aee738ae857fa309c8bf905c0e77b8723251 Mon Sep 17 00:00:00 2001 From: wilm281 <173095437+wilm281@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:53:31 -0600 Subject: [PATCH 1/2] add vision api support for assistants --- .../openai/assistants/message/content/ImageFile.java | 11 ++++++++++- .../openai/completion/chat/ImageContent.java | 6 +++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/com/theokanning/openai/assistants/message/content/ImageFile.java b/api/src/main/java/com/theokanning/openai/assistants/message/content/ImageFile.java index 22ba61d..0388ac0 100644 --- a/api/src/main/java/com/theokanning/openai/assistants/message/content/ImageFile.java +++ b/api/src/main/java/com/theokanning/openai/assistants/message/content/ImageFile.java @@ -12,7 +12,6 @@ */ @Data @NoArgsConstructor -@AllArgsConstructor public class ImageFile { /** @@ -22,4 +21,14 @@ public class ImageFile { String fileId; String detail; + + public ImageFile(String fileId) { + this.fileId = fileId; + this.detail = "low"; + } + + public ImageFile(String fileId, String detail) { + this.fileId = fileId; + this.detail = detail; + } } diff --git a/api/src/main/java/com/theokanning/openai/completion/chat/ImageContent.java b/api/src/main/java/com/theokanning/openai/completion/chat/ImageContent.java index 3088366..b3fb4f5 100644 --- a/api/src/main/java/com/theokanning/openai/completion/chat/ImageContent.java +++ b/api/src/main/java/com/theokanning/openai/completion/chat/ImageContent.java @@ -44,7 +44,11 @@ public class ImageContent { @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("input_audio") private InputAudio inputAudio; - + + public ImageContent(ImageFile imageFile) { + this.type = "image_file"; + this.imageFile = imageFile; + } public ImageContent(String text) { this.type = "text"; From 8fb9e77fd48354e20021c5991b80903a957a3903 Mon Sep 17 00:00:00 2001 From: wilm281 <173095437+wilm281@users.noreply.github.com> Date: Sun, 8 Dec 2024 21:16:08 -0600 Subject: [PATCH 2/2] requested: MultiMediaContent --- .../openai/assistants/message/MessageRequest.java | 1 + .../openai/completion/chat/ImageContent.java | 10 +++++----- .../openai/completion/chat/MultiMediaContent.java | 5 +++++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/api/src/main/java/com/theokanning/openai/assistants/message/MessageRequest.java b/api/src/main/java/com/theokanning/openai/assistants/message/MessageRequest.java index 96180ba..d224a17 100644 --- a/api/src/main/java/com/theokanning/openai/assistants/message/MessageRequest.java +++ b/api/src/main/java/com/theokanning/openai/assistants/message/MessageRequest.java @@ -62,6 +62,7 @@ public static class MessageRequestBuilder { private Object content; private List attachments; private Map metadata; + @Deprecated public MessageRequestBuilder content(String content) { this.content = content; return this; diff --git a/api/src/main/java/com/theokanning/openai/completion/chat/ImageContent.java b/api/src/main/java/com/theokanning/openai/completion/chat/ImageContent.java index b3fb4f5..cc43032 100644 --- a/api/src/main/java/com/theokanning/openai/completion/chat/ImageContent.java +++ b/api/src/main/java/com/theokanning/openai/completion/chat/ImageContent.java @@ -44,11 +44,6 @@ public class ImageContent { @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("input_audio") private InputAudio inputAudio; - - public ImageContent(ImageFile imageFile) { - this.type = "image_file"; - this.imageFile = imageFile; - } public ImageContent(String text) { this.type = "text"; @@ -60,6 +55,11 @@ public ImageContent(ImageUrl imageUrl) { this.imageUrl = imageUrl; } + public ImageContent(ImageFile imageFile) { + this.type = "image_file"; + this.imageFile = imageFile; + } + /** * @deprecated {@link #ofImagePath(Path)} */ diff --git a/api/src/main/java/com/theokanning/openai/completion/chat/MultiMediaContent.java b/api/src/main/java/com/theokanning/openai/completion/chat/MultiMediaContent.java index 521a54a..2a8aa67 100644 --- a/api/src/main/java/com/theokanning/openai/completion/chat/MultiMediaContent.java +++ b/api/src/main/java/com/theokanning/openai/completion/chat/MultiMediaContent.java @@ -53,6 +53,11 @@ public MultiMediaContent(ImageUrl imageUrl) { this.imageUrl = imageUrl; } + public MultiMediaContent(ImageFile imageFile) { + this.type = "image_file"; + this.imageFile = imageFile; + } + public MultiMediaContent(InputAudio inputAudio) { this.type = "input_audio"; this.inputAudio = inputAudio;