Responses API SDK使用说明
bella-openai4j 库完整支持 OpenAI Response API,包括流式(SSE)和非流式两种模式。
目录
快速开始
Maven 依赖
<dependency>
<groupId>top.bella</groupId>
<artifactId>openai-service</artifactId>
<version>${bella-openai.version}</version>
</dependency>
获取最新版本号:
- 访问 Maven 中央仓库:https://repo1.maven.org/maven2/top/bella/openai-service/
- 选择最新的版本目录即可获取当前可用的最新版本号
- 0.23.83之后的版本支持response api client
初始化
import com.theokanning.openai.service.OpenAiService;
// 从环境变量读取 API Key
OpenAiService service = new OpenAiService();
// 或者直接指定 API Key
OpenAiService service = new OpenAiService("your-api-key");
// 自定义超时时间
OpenAiService service = new OpenAiService(Duration.ofSeconds(60));
非流式模式
基本用法
import com.theokanning.openai.response.*;
// 创建请求
CreateResponseRequest request = CreateResponseRequest.builder()
.model("gpt-4o-mini")
.input(InputValue.of("Hello, how are you?"))
.build();
// 发送请求并获取完整响应
Response response = service.createResponse(request);
// 获取响应内容
System.out.println("Response ID: " + response.getId());
System.out.println("Status: " + response.getStatus());
System.out.println("Output: " + response.getOutput());
带指令的请求
CreateResponseRequest request = CreateResponseRequest.builder()
.model("gpt-4o-mini")
.input(InputValue.of("What is 2+2?"))
.instructions("You are a helpful math teacher. Be concise.")
.temperature(0.7)
.maxOutputTokens(100)
.build();
Response response = service.createResponse(request);
对话上下文
使用previous_response_id
// 第一轮对话
CreateResponseRequest request1 = CreateResponseRequest.builder()
.model("gpt-4o-mini")
.input(InputValue.of("My name is Alice"))
.build();
Response response1 = service.createResponse(request1);
// 第二轮对话 - 引用前一个 response
String previousId = response1.getId();
CreateResponseRequest request2 = CreateResponseRequest.builder()
.model("gpt-4o-mini")
.input(InputValue.of("What is my name?"))
.previousResponseId(previousId)
.build();
Response response2 = service.createResponse(request2);
使用conversationId
// 第一轮对话
CreateResponseRequest request1 = CreateResponseRequest.builder()
.model("gpt-4o-mini")
.input(InputValue.of("My name is Alice"))
.build();
Response response1 = service.createResponse(request1);
// 第二轮对话 - 引用前一个 response
String conversationId = response1.getConversation().getStringValue();
CreateResponseRequest request2 = CreateResponseRequest.builder()
.model("gpt-4o-mini")
.input(InputValue.of("What is my name?"))
.conversation(ConversationValue.of(conversationId))
.build();
Response response2 = service.createResponse(request2);
获取已创建的 Response
String responseId = "resp_xxxxx";
Response response = service.getResponse(responseId);
添加元数据
CreateResponseRequest request = CreateResponseRequest.builder()
.model("gpt-4o-mini")
.input(InputValue.of("Hello"))
.metadata(Map.of(
"user_id", "user123",
"session", "session456"
))
.build();
Response response = service.createResponse(request);
存储控制
Response API支持两种存储模式,通过store参数控制: