Magnolia GPT4 Image Recognizer

GPT4 Image recognizer in Magnolia CMS

Powering Up Magnolias Image Recognition with AI

Built on the base of Magnolia CMS's Image Recognition Module, the DEV5310 GPT-4 Vision Image Recognition module enhances its functionalities by integrating it with OpenAI's GPT-4 Vision model. The GPT-4 Vision model offers improved accuracy and an expanded knowledge base, allowing for comprehensive image recognition.

Setting Up for Success

Before getting started with the dev5310-gpt4-vision-image-recognition module, it's essential to ensure the core Magnolia CMS's Image Recognition Module has been installed. It serves as the base on which the new module will function.

Once confirmed, just like any typical module setup, you will need to add the dev5310-gpt4-vision-image-recognition dependency to the Maven pom.xml file. Next, Magnolia CMS is configured to recognize the new module as the go-to service for all image recognition needs.

Leveraging OpenAI's Vision Model

One of the highlights of the Dev5310 GPT-4 Vision Image Recognition module is its implementation of OpenAI's GPT-4 Vision model. The module seamlessly communicates with AI model to tag the input images with relevant labels. However, an API key is required for this interaction with OpenAI, and the flexibility provided here is commendable. Whether you opt to store the API key in an environment variable, directly in the module configuration, or via the Magnolia Passwords app, the module is designed to accommodate all these methods. It ensures a streamlined setup process is available, regardless of the method you choose.


In a nutshell, the DEV5310 GPT-4 Vision Image Recognition module offers a significant upgrade to Magnolia CMS's built-in functionalities. By integrating with the power of OpenAI's GPT-4, the module brings automated and precise image recognition to your CMS platform. It's straightforward to set up, easy to configure, and effectively enhances your image recognition capabilities. Get ready to explore the power of AI-powered image recognition like never before!

Exploring the Dev5310Gpt4ImageRecogniser Class

In the world of artificial intelligence, one of the trending topics revolves around image recognition. Specifically, the model OpenAI has made available for public usage named GPT-4 Vision. The purpose of this article is to present the Dev5310Gpt4ImageRecogniser class, which leverages this model for image recognition. 

The Dev5310Gpt4ImageRecogniser implements the ImageRecogniser interface. As the name suggests, an ImageRecogniser is tasked with interpreting images and returning their labels (tags). In this particular implementation, the GPT-4 Vision model is doing the heavy lifting.

java public class Dev5310Gpt4ImageRecogniser implements ImageRecogniser { ... }

This class uses a JSON string API_MESSAGE_BODY_TEMPLATE to define the payload for the OpenAI API. The payload includes instructions for the assistant and an image to be tagged. The image gets encoded to Base64 and is sent to the OpenAI image recognition assistant along with a request to tag the image.

An instance of Dev5310OpenAICredentialsProvider is set up in the class, responsible for fetching the necessary credentials to interact with the OpenAI service.

Image Recognition Method

The core functionality of Dev5310Gpt4ImageRecogniser is encapsulated in its recognise method:

java @Override public Collection recognise(final byte[] imageBytes) {...}

This function takes as input a byte array that represents an image, invokes the OpenAI API, and returns a collection of ImageLabel objects that represent the tags for the recognized image. 'ImageLabel' objects are essentially representations of recognized labels from the image.

In case the OpenAI service responds with an HTTP status code different from 200, recognition is skipped, logging the error along the way. If the response is successful, a GptResponse object is then created, the response is parsed, converted into tags, and returned as a collection of ImageLabel objects.

Supplementary Functionality

Apart from the recognise method, the class has multiple auxiliary methods, all dedicated to handling and preparing the image data:

  • getBodyImageInfo: Performs preliminary image checks - if the image is recognized, its type, size, MIME type, and generates the message body for the OpenAI API.

  • getBodyImageIO: It creates a base64 representation of the specified format and dimensions of the image.

  • scaleImageToFit: This function is used to resize the image while maintaining the original aspect ratio.

This class provides an example of how to interact with image recognition models such as GPT-4 Vision provided by OpenAI. It is straightforward, offering an elegant way of communicating with an image processing API, handling images, and returning their labels. Whether you are new to image processing, or you have already dabbled in it, this class is a great material to learn from and improve your development skills in the AI field.