主题
OpenAI 官方 SDK
NOTE
这是 OpenAI 官方 SDK 集成的文档,它使用 官方 OpenAI Java SDK。
LangChain4j 提供了 3 种不同的 OpenAI 集成来生成图像,这里是第 2 种:
- OpenAI 使用对 OpenAI REST API 的自定义 Java 实现,最适合与 Quarkus(因其使用 Quarkus REST 客户端)以及 Spring(因其使用 Spring 的 RestClient)搭配。
- OpenAI 官方 SDK 使用官方的 OpenAI Java SDK。
- Azure OpenAI 使用微软的 Azure SDK,最适合在你使用微软 Java 技术栈(包括高级 Azure 认证机制)时。
本集成的适用场景
本集成使用 OpenAI Java SDK GitHub 仓库,适用于所有可由以下方提供的 OpenAI 模型:
- OpenAI
- Microsoft Foundry
它也能与支持 OpenAI API 的模型配合使用。
OpenAI 文档
Maven 依赖
xml
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai-official</artifactId>
<version>1.22.0-beta32</version>
</dependency>配置模型
要使用 OpenAI 模型,你通常需要一个端点 URL、一个 API 密钥和一个模型名。这取决于模型托管在哪里,本集成尝试通过一些自动配置让它更简单:
通用配置
java
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();针对 Microsoft Foundry 与 GitHub Models 的具体配置。
与配置 OpenAI 官方聊天模型 类似,你可以使用 isAzure() 和 isGitHubModels() 方法,将 OpenAiOfficialImageModel 配置为 Microsoft Foundry 与 GitHub Models。
Microsoft Foundry
java
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();你也可以使用"无密码"认证,如 OpenAI 官方聊天模型 文档所述。
GitHub Models
java
ImageModel model = OpenAiOfficialImageModel.builder()
.modelName(GPT_IMAGE_1_MINI)
.isGitHubModels(true)
.build();使用模型
模型配置好后,即可用它生成图像:
java
String imageUrl = imageModel
.generate("A coffee mug in Paris, France")
.content()
.base64Data();