Hello!

When I use the "call" method from OpenAiChatModel Class (injected via the default constructor to @Autowired), passing as parameters a Prompt object instatied with a Usermessage with: - String textContent; and - Media media (generated from a PNG image)

don't get a result.

Like this:

@Autowired private OpenAiChatModel chatModel;

...

public String myFunction(String textContent, File file) { Media media = new Media(MimeTypeUtils.IMAGE_PNG, new FileSystemResource(file)); Prompt prompt = new Prompt(new UserMessage(textContent, media)); chatModel.call(prompt); .... }

When I make this call, I don't get a result with a PNG image, but with a JPG image, it works well.

I also tested with the "stream" method from the same Class and it works well with all types of images.

Additionally: If I manually instantiate the OpenAiChatModel by setting the RestClient.Builder of the OpenAiApi as: RestClient.builder(new RestTemplate()), then everything works well for the images.

Comment From: dev-jonghoonpark

@flplvr-magie Hi, in my case, it works well. Could you please provide a more specific example?

Comment From: flplvr-magie

@dev-jonghoonpark I think I found what is causing the problem. It is not directly related to the image type, JPG or PNG.

However, it is related to the size. I noticed that both PNG and JPG images larger than ~ 700KB have an issue with the call() method of the OpenAiChatModel class. I send the request and do not receive a response, but the stream() method apparently works well.

I imagine this might be some restriction intentionally or unintentionally included in the RestClient.Builder used in the OpenAiApi class, but not in the WebClient.Builder.

So when I set the RestClient.Builder as RestClient.builder(new RestTemplate()), perhaps I bypass this image size restriction.