Java
Java 接入 零派智能API 可以使用 OkHttp 发送 HTTP 请求,也可以使用 OpenAI 官方 Java SDK。本页提供两种方案的完整示例。
环境变量设置
export API_KEY="sk-your-api-key"export BASE_URL="https://your-domain.com"export MODEL="gpt-4o"方案一:使用 OkHttp
Maven 依赖
在 pom.xml 中添加 OkHttp 依赖:
<dependencies> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.12.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.17.0</version> </dependency></dependencies>配置说明
- API Key:通过环境变量
API_KEY读取 - Base URL:通过环境变量
BASE_URL读取,无需包含/v1后缀(代码中会拼接) - Model:通过环境变量
MODEL读取
完整请求示例
import com.fasterxml.jackson.databind.JsonNode;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.node.ArrayNode;import com.fasterxml.jackson.databind.node.ObjectNode;import okhttp3.*;
import java.io.IOException;
public class NewApiExample { private static final String API_KEY = System.getenv("API_KEY"); private static final String BASE_URL = System.getenv("BASE_URL"); private static final String MODEL = System.getenv("MODEL");
public static void main(String[] args) throws IOException { ObjectMapper mapper = new ObjectMapper();
ObjectNode requestBody = mapper.createObjectNode(); requestBody.put("model", MODEL);
ArrayNode messages = requestBody.putArray("messages"); ObjectNode systemMsg = messages.addObject(); systemMsg.put("role", "system"); systemMsg.put("content", "你是一个有帮助的助手。"); ObjectNode userMsg = messages.addObject(); userMsg.put("role", "user"); userMsg.put("content", "用一句话解释什么是 Java。");
MediaType jsonType = MediaType.get("application/json; charset=utf-8"); RequestBody body = RequestBody.create(mapper.writeValueAsString(requestBody), jsonType);
Request request = new Request.Builder() .url(BASE_URL + "/v1/chat/completions") .addHeader("Authorization", "Bearer " + API_KEY) .addHeader("Content-Type", "application/json") .post(body) .build();
OkHttpClient client = new OkHttpClient(); try (Response response = client.newCall(request).execute()) { JsonNode responseJson = mapper.readTree(response.body().string()); System.out.println(responseJson.get("choices").get(0).get("message").get("content").asText()); } }}方案二:使用 OpenAI Java SDK
Maven 依赖
<dependencies> <dependency> <groupId>com.openai</groupId> <artifactId>openai-java</artifactId> <version>0.28.0</version> </dependency></dependencies>完整请求示例
import com.openai.client.OpenAIClient;import com.openai.client.okhttp.OpenAIOkHttpClient;import com.openai.models.*;
public class NewApiSdkExample { public static void main(String[] args) { OpenAIClient client = OpenAIOkHttpClient.builder() .apiKey(System.getenv("API_KEY")) .baseUrl(System.getenv("BASE_URL") + "/v1") .build();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder() .model(System.getenv("MODEL")) .addMessage(ChatCompletionMessageParam.builder() .role(ChatCompletionMessageParam.Role.SYSTEM) .content(ChatCompletionContentPartParam.builder() .text("你是一个有帮助的助手。") .build()) .build()) .addMessage(ChatCompletionMessageParam.builder() .role(ChatCompletionMessageParam.Role.USER) .content(ChatCompletionContentPartParam.builder() .text("用一句话解释什么是 Java。") .build()) .build()) .build();
ChatCompletion completion = client.chat().completions().create(params); System.out.println(completion.choices().get(0).message().content()); }}运行
mvn compile exec:java -Dexec.mainClass="NewApiExample"