Azure OpenAI
备注
这是 Azure OpenAI
集成的文档,它使用来自微软的 Azure SDK,如果您使用的是微软 Java 技术栈(包括高级 Azure 身份验证机制),它会工作得最好。
LangChain4j 提供了 4 种不同的 OpenAI 集成方式来使用聊天模型,这是第 3 种:
- OpenAI 使用 OpenAI REST API 的自定义 Java 实现,与 Quarkus(因为它使用 Quarkus REST 客户端)和 Spring(因为它使用 Spring 的 RestClient)配合最佳。
- OpenAI 官方 SDK 使用官方 OpenAI Java SDK。
- Azure OpenAI 使用来自微软的 Azure SDK,如果您使用的是微软 Java 技术栈(包括高级 Azure 身份验证机制),它会工作得最好。
- GitHub Models 使用 Azure AI 推理 API 访问 GitHub 模型。
Azure OpenAI 提供托管在 Azure 上的 OpenAI 语言模型(gpt-4
、gpt-4o
等),使用 Azure OpenAI Java SDK。
Azure OpenAI 文档
Maven 依赖
纯 Java
langchain4j-azure-open-ai
库可在 Maven Central 上获取。
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-azure-open-ai</artifactId>
<version>1.0.0-beta3</version>
</dependency>
Spring Boot
Spring Boot 启动器可用于更轻松地配置 langchain4j-azure-open-ai
库。
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-azure-open-ai-spring-boot-starter</artifactId>
<version>1.0.0-beta3</version>
</dependency>
备注
在使用任何 Azure OpenAI 模型之前,您需要部署它们。
使用 API 密钥创建 AzureOpenAiChatModel
纯 Java
ChatLanguageModel model = AzureOpenAiChatModel.builder()
.endpoint(System.getenv("AZURE_OPENAI_URL"))
.apiKey(System.getenv("AZURE_OPENAI_KEY"))
.deploymentName("gpt-4o")
...
.build();
这将创建一个具有默认模型参数(例如 0.7
温度等)的 AzureOpenAiChatModel
实例,
并使用存储在 AZURE_OPENAI_KEY
环境变量中的 API 密钥。
可以通过在构建器中提供值来自定义默认模型参数。
Spring Boot
在 application.properties
中添加:
langchain4j.azure-open-ai.chat-model.endpoint=${AZURE_OPENAI_URL}
langchain4j.azure-open-ai.chat-model.service-version=...
langchain4j.azure-open-ai.chat-model.api-key=${AZURE_OPENAI_KEY}
langchain4j.azure-open-ai.chat-model.non-azure-api-key=${OPENAI_API_KEY}
langchain4j.azure-open-ai.chat-model.deployment-name=gpt-4o
langchain4j.azure-open-ai.chat-model.max-tokens=...
langchain4j.azure-open-ai.chat-model.temperature=...
langchain4j.azure-open-ai.chat-model.top-p=
langchain4j.azure-open-ai.chat-model.logit-bias=...
langchain4j.azure-open-ai.chat-model.user=
langchain4j.azure-open-ai.chat-model.stop=...
langchain4j.azure-open-ai.chat-model.presence-penalty=...
langchain4j.azure-open-ai.chat-model.frequency-penalty=...
langchain4j.azure-open-ai.chat-model.seed=...
langchain4j.azure-open-ai.chat-model.strict-json-schema=...
langchain4j.azure-open-ai.chat-model.timeout=...
langchain4j.azure-open-ai.chat-model.max-retries=...
langchain4j.azure-open-ai.chat-model.log-requests-and-responses=...
langchain4j.azure-open-ai.chat-model.user-agent-suffix=
langchain4j.azure-open-ai.chat-model.custom-headers=...
上述部分参数的描述可以在这里找到。
此配置将创建一个 AzureOpenAiChatModel
bean(具有默认模型参数),
可以由 AI 服务使用,
或在需要的地方自动装配,例如:
@RestController
class ChatLanguageModelController {
ChatLanguageModel chatLanguageModel;
ChatLanguageModelController(ChatLanguageModel chatLanguageModel) {
this.chatLanguageModel = chatLanguageModel;
}
@GetMapping("/model")
public String model(@RequestParam(value = "message", defaultValue = "Hello") String message) {
return chatLanguageModel.chat(message);
}
}