Skip to main content

OpenAI Official SDK

note

This is the documentation for the OpenAI Official SDK integration, that uses the official OpenAI Java SDK.

LangChain4j provides 3 different integrations with OpenAI for generating images, and this is #2 :

  • OpenAI uses a custom Java implementation of the OpenAI REST API, that works best with Quarkus (as it uses the Quarkus REST client) and Spring (as it uses Spring's RestClient).
  • OpenAI Official SDK uses the official OpenAI Java SDK.
  • Azure OpenAI uses the Azure SDK from Microsoft, and works best if you are using the Microsoft Java stack, including advanced Azure authentication mechanisms.

Use cases for this integration​

This integration uses the OpenAI Java SDK GitHub Repository, and will work for all OpenAI models which can be provided by:

  • OpenAI
  • Microsoft Foundry

It will also work with models supporting the OpenAI API.

OpenAI Documentation​

Maven Dependency​

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai-official</artifactId>
<version>1.20.2-beta30</version>
</dependency>

Configuring the models​

To use OpenAI models, you usually need an endpoint URL, an API key, and a model name. This depends on where the model is hosted, and this integration tries to make it easier with some auto-configuration:

Generic configuration​

import com.openai.models.images.ImageModel;
import dev.langchain4j.model.image.ImageModel;
import dev.langchain4j.model.openaiofficial.OpenAiOfficialImageModel;

import static com.openai.models.images.ImageModel.GPT_IMAGE_1_MINI;

// ....

ImageModel model = OpenAiOfficialImageModel.builder()
.baseUrl(System.getenv("OPENAI_BASE_URL"))
.apiKey(System.getenv("OPENAI_API_KEY"))
.modelName(GPT_IMAGE_1_MINI)
.build();

Specific configurations for Microsoft Foundry and GitHub Models.​

Similar to configuring the OpenAI Official Chat Model, you can configure the OpenAiOfficialImageModel with Microsoft Foundry and GitHub Models, using the isAzure() and isGitHubModels() methods.

Microsoft Foundry​

ImageModel model = OpenAiOfficialImageModel.builder()
.baseUrl(System.getenv("AZURE_OPENAI_ENDPOINT"))
.apiKey(System.getenv("AZURE_OPENAI_KEY"))
.modelName(GPT_IMAGE_1_MINI)
.isAzure(true) // Not necessary if the base URL ends with `openai.azure.com`
.build();

You can also use "passwordless" authentication, as described in the OpenAI Official Chat Model documentation.

GitHub Models​

ImageModel model = OpenAiOfficialImageModel.builder()
.modelName(GPT_IMAGE_1_MINI)
.isGitHubModels(true)
.build();

Using the models​

Once the model is configured, you can use it to generate images:

String imageUrl = imageModel
.generate("A coffee mug in Paris, France")
.content()
.base64Data();