Java SDK
SDKMAX 完全兼容 OpenAI 接口协议,Java 项目可直接使用 OpenAI 官方 Java SDK(com.openai:openai-java),通过自定义 baseUrl 接入 SDKMAX,无需单独的 SDKMAX SDK。
安装(Maven)
xml
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
<version>2.6.0</version>
</dependency>Gradle:
groovy
implementation("com.openai:openai-java:2.6.0")版本号
以上版本号仅作示例,请以 Maven Central 上的最新版本为准。
初始化客户端
java
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
OpenAIClient client = OpenAIOkHttpClient.builder()
.apiKey("sk-你的密钥")
.baseUrl("https://api.sdkmax.com/v1")
.build();也可以通过环境变量配置后使用无参构建:
bash
export OPENAI_API_KEY="sk-你的密钥"
export OPENAI_BASE_URL="https://api.sdkmax.com/v1"java
OpenAIClient client = OpenAIOkHttpClient.fromEnv();对话补全
java
import com.openai.models.chat.completions.ChatCompletion;
import com.openai.models.chat.completions.ChatCompletionCreateParams;
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.model("gpt-4o")
.addUserMessage("介绍一下 SDKMAX 的核心能力")
.build();
ChatCompletion completion = client.chat().completions().create(params);
System.out.println(completion.choices().get(0).message().content().orElse(""));流式输出
java
import com.openai.core.http.StreamResponse;
import com.openai.models.chat.completions.ChatCompletionChunk;
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.model("gpt-4o")
.addUserMessage("写一首关于 AI 网关的短诗")
.build();
try (StreamResponse<ChatCompletionChunk> stream = client.chat().completions().createStreaming(params)) {
stream.stream().forEach(chunk ->
chunk.choices().forEach(choice ->
choice.delta().content().ifPresent(System.out::print)
)
);
}切换模型
java
for (String model : new String[] { "gpt-4o", "claude-opus-4-8", "deepseek-chat" }) {
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.model(model)
.addUserMessage("1+1等于几?")
.build();
ChatCompletion completion = client.chat().completions().create(params);
System.out.println(model + " -> " + completion.choices().get(0).message().content().orElse(""));
}错误处理
java
import com.openai.errors.RateLimitException;
import com.openai.errors.OpenAIServiceException;
try {
client.chat().completions().create(params);
} catch (RateLimitException e) {
// 429:额度耗尽或触发限流,建议退避重试
} catch (OpenAIServiceException e) {
System.err.println(e.statusCode() + " " + e.getMessage());
}完整错误码含义见 错误码。
不使用官方 SDK?
只要你的 HTTP 客户端能设置自定义请求头和 Body,也可以直接用 OkHttp / HttpClient 手动拼请求,接口协议见 API 调用方法。
