diff --git a/app/server/appsmith-plugins/openAiPlugin/src/main/java/com/external/plugins/commands/VisionCommand.java b/app/server/appsmith-plugins/openAiPlugin/src/main/java/com/external/plugins/commands/VisionCommand.java index dd44c076d8..f7416ba5c6 100644 --- a/app/server/appsmith-plugins/openAiPlugin/src/main/java/com/external/plugins/commands/VisionCommand.java +++ b/app/server/appsmith-plugins/openAiPlugin/src/main/java/com/external/plugins/commands/VisionCommand.java @@ -60,7 +60,8 @@ public class VisionCommand implements OpenAICommand { private final Gson gson; - private final String regex = "(ft:)?(gpt).*(vision).*"; + private final String regex = + "^(gpt-4-(vision-preview|\\d{4}-vision-preview)|gpt-4o(.*)?|ft:(gpt-4-(vision-preview|\\d{4}-vision-preview)|gpt-4o).*)$"; private final Pattern pattern = Pattern.compile(regex); @Override @@ -135,12 +136,12 @@ public class VisionCommand implements OpenAICommand { UserTextContent userContent = new UserTextContent(); userContent.setType(TEXT_TYPE); userContent.setText(userQuery.getContent()); - visionMessage.getContent().add(userContent); + ((List) visionMessage.getContent()).add(userContent); } else if (QueryType.IMAGE.equals(userQuery.getType())) { UserImageContent userContent = new UserImageContent(); userContent.setType(IMAGE_TYPE); userContent.setImageUrl(new UserImageContent.ImageUrl(userQuery.getContent())); - visionMessage.getContent().add(userContent); + ((List) visionMessage.getContent()).add(userContent); } } return List.of(visionMessage); @@ -168,7 +169,7 @@ public class VisionCommand implements OpenAICommand { VisionMessage visionMessage = new VisionMessage(); if (StringUtils.hasText(systemMessageMap.get(CONTENT))) { visionMessage.setRole(Role.system); - visionMessage.setContent(List.of(systemMessageMap.get(CONTENT))); + visionMessage.setContent(systemMessageMap.get(CONTENT)); visionMessages.add(visionMessage); } } diff --git a/app/server/appsmith-plugins/openAiPlugin/src/main/java/com/external/plugins/models/VisionMessage.java b/app/server/appsmith-plugins/openAiPlugin/src/main/java/com/external/plugins/models/VisionMessage.java index 1c33952661..eeaf6502d7 100644 --- a/app/server/appsmith-plugins/openAiPlugin/src/main/java/com/external/plugins/models/VisionMessage.java +++ b/app/server/appsmith-plugins/openAiPlugin/src/main/java/com/external/plugins/models/VisionMessage.java @@ -4,12 +4,10 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import java.util.List; - @Getter @Setter @NoArgsConstructor public class VisionMessage { Role role; - List content; + Object content; } diff --git a/app/server/appsmith-plugins/openAiPlugin/src/test/java/com/external/plugins/VisionCommandTest.java b/app/server/appsmith-plugins/openAiPlugin/src/test/java/com/external/plugins/VisionCommandTest.java index f22d27b585..983b667d3c 100644 --- a/app/server/appsmith-plugins/openAiPlugin/src/test/java/com/external/plugins/VisionCommandTest.java +++ b/app/server/appsmith-plugins/openAiPlugin/src/test/java/com/external/plugins/VisionCommandTest.java @@ -144,7 +144,7 @@ public class VisionCommandTest { "curie", "davinci", "gpt-4-vision-preview", - "gpt-4.5-vision-preview"); + "gpt-4o"); int counter = 0; for (String model : models) { JSONObject jsonObject = new JSONObject(String.format("{\"%s\": \"%s\" }", ID, model));