OpenAI 模型接入
大约 2 分钟
第三章:接入 OpenAI(Chat/Streaming)与关键参数
3.1 你需要关注的 6 个参数
无论你接哪家模型,生产里最常用的参数就是这几个:
- modelName:决定能力与价格
- temperature:决定随机性(业务场景一般 0.0~0.4)
- timeout:避免请求挂死
- maxRetries:失败重试(只对可重试错误)
- baseUrl:兼容代理/私有网关/OpenAI-compatible
- logRequests/logResponses:排障时极其有用,但注意脱敏
3.2 Spring Boot starter(推荐):配置驱动
3.2.1 依赖
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
<version>1.12.2-beta22</version>
</dependency>3.2.2 application.yml(Chat + Streaming)
langchain4j:
open-ai:
chat-model:
api-key: ${OPENAI_API_KEY:}
model-name: gpt-4o-mini
temperature: 0.2
timeout: PT60S
streaming-chat-model:
api-key: ${OPENAI_API_KEY:}
model-name: gpt-4o-mini
temperature: 0.2
timeout: PT60S当你引入了 starter,通常会自动提供:
ChatLanguageModel(同步)StreamingChatModel(流式)
3.3 纯 Java:显式创建模型(更“可控”,也更啰嗦)
package com.example.langchain4j.openai;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;
import java.time.Duration;
public class OpenAiChatExample {
public static void main(String[] args) {
String apiKey = System.getenv("OPENAI_API_KEY");
if (apiKey == null || apiKey.isBlank()) {
throw new IllegalStateException("请先设置环境变量 OPENAI_API_KEY");
}
ChatLanguageModel model = OpenAiChatModel.builder()
.apiKey(apiKey)
.modelName("gpt-4o-mini")
.timeout(Duration.ofSeconds(60))
.temperature(0.2)
.build();
System.out.println(model.chat("给我一个可落地的客服机器人流程图要点(最多 8 条)。"));
}
}3.4 baseUrl:你后面接 DeepSeek 会用到
OpenAI integration 支持配置 base-url,用于:
- 走企业网关/代理
- 对接 OpenAI-compatible(例如 DeepSeek)
langchain4j:
open-ai:
chat-model:
base-url: https://api.openai.com/v13.5 本章小结
你现在已经把 OpenAI 的同步与流式都接好了,并且知道了生产里最关键的参数该放在哪里。下一章我们用同样的工程化方法接入千问(DashScope/Qwen),并补上一个非常重要的主题:不同供应商的差异如何“收敛”到业务代码里。
