Skip to content

Commit 023d1c3

Browse files
committed
adding a couple of samples and tests for them
1 parent cfba221 commit 023d1c3

File tree

3 files changed

+173
-0
lines changed

3 files changed

+173
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.azure.ai.openai.responses;
2+
3+
import com.azure.ai.openai.responses.models.*;
4+
import com.azure.core.credential.AzureKeyCredential;
5+
import com.azure.core.util.Configuration;
6+
7+
import java.util.Arrays;
8+
import java.util.List;
9+
10+
public class ChatbotResponsesSample {
11+
public static void main(String[] args) throws InterruptedException {
12+
// Create a client
13+
ResponsesClient client = new ResponsesClientBuilder()
14+
.endpoint(Configuration.getGlobalConfiguration().get("AZURE_OPENAI_ENDPOINT"))
15+
.credential(new AzureKeyCredential(Configuration.getGlobalConfiguration().get("AZURE_OPENAI_KEY")))
16+
.serviceVersion(AzureResponsesServiceVersion.V2025_03_01_PREVIEW)
17+
.buildClient();
18+
19+
String prompt = "Tell me 3 jokes about trains";
20+
21+
// Create a request
22+
CreateResponsesRequest request = createJokesRequest(prompt);
23+
24+
// Send the request and get the response
25+
ResponsesResponse response = client.createResponse(request);
26+
ResponsesAssistantMessage responseMessage = (ResponsesAssistantMessage) response.getOutput().getFirst();
27+
ResponsesOutputContentText outputContent = (ResponsesOutputContentText) responseMessage.getContent().getFirst();
28+
29+
// Print the response
30+
System.out.println("Response: " + response);
31+
System.out.println("Jokes: " + outputContent.getText());
32+
}
33+
34+
public static CreateResponsesRequest createJokesRequest(String prompt) {
35+
return new CreateResponsesRequest(
36+
CreateResponsesRequestModel.GPT_4O,
37+
Arrays.asList(
38+
new ResponsesSystemMessage(List.of(
39+
new ResponsesInputContentText("You are a humorous assistant who tells jokes")
40+
)),
41+
new ResponsesUserMessage(Arrays.asList(
42+
new ResponsesInputContentText("Please tell me some jokes about trains"),
43+
new ResponsesInputContentText(prompt)
44+
))
45+
)
46+
);
47+
}
48+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package com.azure.ai.openai.responses;
2+
3+
import com.azure.ai.openai.responses.models.*;
4+
import com.azure.core.credential.AzureKeyCredential;
5+
import com.azure.core.util.Configuration;
6+
7+
import java.util.Arrays;
8+
import java.util.List;
9+
10+
public class SummarizeTextResponsesSample {
11+
public static void main(String[] args) throws InterruptedException {
12+
// Create a client
13+
ResponsesClient client = new ResponsesClientBuilder()
14+
.endpoint(Configuration.getGlobalConfiguration().get("AZURE_OPENAI_ENDPOINT"))
15+
.credential(new AzureKeyCredential(Configuration.getGlobalConfiguration().get("AZURE_OPENAI_KEY")))
16+
.serviceVersion(AzureResponsesServiceVersion.V2025_03_01_PREVIEW)
17+
.buildClient();
18+
19+
String summarizationPrompt = getSummarizationPrompt();
20+
21+
// Create a request
22+
CreateResponsesRequest request = createSummarizationRequest(summarizationPrompt);
23+
24+
// Send the request and get the response
25+
ResponsesResponse response = client.createResponse(request);
26+
ResponsesAssistantMessage responseMessage = (ResponsesAssistantMessage) response.getOutput().getFirst();
27+
ResponsesOutputContentText outputContent = (ResponsesOutputContentText) responseMessage.getContent().getFirst();
28+
29+
// Print the response
30+
System.out.println("Response: " + response);
31+
System.out.println("Summary: " + outputContent.getText());
32+
}
33+
34+
public static String getSummarizationPrompt() {
35+
String textToSummarize = "On December 5, 192 giant lasers at the laboratory’s National Ignition Facility blasted a small cylinder about the size of a pencil eraser that contained a frozen nubbin of hydrogen encased in diamond. "
36+
+ "The laser beams entered at the top and bottom of the cylinder, vaporizing it. That generated an inward onslaught of X-rays that compresses a BB-size fuel pellet of deuterium and tritium, the heavier forms of hydrogen. "
37+
+ "In a brief moment lasting less than 100 trillionths of a second, 2.05 megajoules of energy — roughly the equivalent of a pound of TNT — bombarded the hydrogen pellet. Out flowed a flood of neutron particles — the product of fusion — which carried about 3 megajoules of energy, a factor of 1.5 in energy gain.";
38+
39+
return "Summarize the following text.%n" + "Text:%n" + textToSummarize + "%n Summary:%n";
40+
}
41+
42+
public static CreateResponsesRequest createSummarizationRequest(String summarizationPrompt) {
43+
return new CreateResponsesRequest(
44+
CreateResponsesRequestModel.GPT_4O,
45+
Arrays.asList(
46+
new ResponsesSystemMessage(List.of(
47+
new ResponsesInputContentText("You are a helpful assistant that summarizes texts")
48+
)),
49+
new ResponsesUserMessage(Arrays.asList(
50+
new ResponsesInputContentText("Please summarize the following text"),
51+
new ResponsesInputContentText(summarizationPrompt)
52+
))
53+
)
54+
);
55+
}
56+
}

sdk/openai/azure-ai-openai/src/test/java/com/azure/ai/openai/responses/AzureResponsesTest.java

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@
88
import com.azure.ai.openai.responses.models.CreateResponsesRequestModel;
99
import com.azure.ai.openai.responses.models.DeleteResponseResponse;
1010
import com.azure.ai.openai.responses.models.ListInputItemsRequestOrder;
11+
import com.azure.ai.openai.responses.models.ResponsesAssistantMessage;
1112
import com.azure.ai.openai.responses.models.ResponsesInputContentText;
1213
import com.azure.ai.openai.responses.models.ResponsesItem;
1314
import com.azure.ai.openai.responses.models.ResponsesResponse;
1415
import com.azure.ai.openai.responses.models.ResponsesStreamEvent;
1516
import com.azure.ai.openai.responses.models.ResponsesStreamEventCompleted;
1617
import com.azure.ai.openai.responses.models.ResponsesUserMessage;
18+
import com.azure.ai.openai.responses.models.ResponsesOutputContentText;
19+
import com.azure.core.exception.HttpResponseException;
1720
import com.azure.core.http.HttpClient;
1821
import com.azure.core.http.rest.PagedIterable;
1922
import com.azure.core.http.rest.RequestOptions;
@@ -24,9 +27,13 @@
2427

2528
import java.util.Arrays;
2629

30+
import static com.azure.ai.openai.responses.ChatbotResponsesSample.createJokesRequest;
31+
import static com.azure.ai.openai.responses.SummarizeTextResponsesSample.createSummarizationRequest;
32+
import static com.azure.ai.openai.responses.SummarizeTextResponsesSample.getSummarizationPrompt;
2733
import static com.azure.ai.openai.responses.TestUtils.DISPLAY_NAME_WITH_ARGUMENTS;
2834
import static org.junit.jupiter.api.Assertions.assertEquals;
2935
import static org.junit.jupiter.api.Assertions.assertNotNull;
36+
import static org.junit.jupiter.api.Assertions.assertThrows;
3037
import static org.junit.jupiter.api.Assertions.assertTrue;
3138

3239
public class AzureResponsesTest extends AzureResponsesTestBase {
@@ -213,4 +220,66 @@ public void chatWithCua(HttpClient httpClient, AzureResponsesServiceVersion serv
213220
assertResponsesResponse(response);
214221
});
215222
}
223+
224+
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
225+
@MethodSource("com.azure.ai.openai.responses.TestUtils#getTestParametersResponses")
226+
public void testSummarizeTextResponsesSuccess(HttpClient httpClient, AzureResponsesServiceVersion serviceVersion) {
227+
ResponsesClient client = getAzureResponseClient(httpClient, serviceVersion);
228+
229+
String summarizationPrompt = getSummarizationPrompt();
230+
CreateResponsesRequest request = createSummarizationRequest(summarizationPrompt);
231+
232+
ResponsesResponse response = client.createResponse(request);
233+
ResponsesAssistantMessage assistantMessage = (ResponsesAssistantMessage) response.getOutput().getFirst();
234+
ResponsesOutputContentText outputContent = (ResponsesOutputContentText) assistantMessage.getContent().getFirst();
235+
236+
assertNotNull(assistantMessage);
237+
assertNotNull(outputContent);
238+
assertNotNull(outputContent.getText());
239+
}
240+
241+
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
242+
@MethodSource("com.azure.ai.openai.responses.TestUtils#getTestParametersResponses")
243+
public void testSummarizeTextResponsesFailure(HttpClient httpClient, AzureResponsesServiceVersion serviceVersion) {
244+
ResponsesClient client = getAzureResponseClient(httpClient, serviceVersion);
245+
246+
CreateResponsesRequest request = createSummarizationRequest(null);
247+
248+
HttpResponseException exception = assertThrows(HttpResponseException.class,
249+
() -> client.createResponse(request));
250+
251+
assertEquals(400, exception.getResponse().getStatusCode());
252+
assertTrue(exception.getMessage().contains("Missing required parameter"));
253+
}
254+
255+
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
256+
@MethodSource("com.azure.ai.openai.responses.TestUtils#getTestParametersResponses")
257+
public void testChatbotResponsesSuccess(HttpClient httpClient, AzureResponsesServiceVersion serviceVersion) {
258+
ResponsesClient client = getAzureResponseClient(httpClient, serviceVersion);
259+
260+
String prompt = "Tell me 3 jokes about trains";
261+
CreateResponsesRequest request = createJokesRequest(prompt);
262+
263+
ResponsesResponse response = client.createResponse(request);
264+
ResponsesAssistantMessage assistantMessage = (ResponsesAssistantMessage) response.getOutput().getFirst();
265+
ResponsesOutputContentText outputContent = (ResponsesOutputContentText) assistantMessage.getContent().getFirst();
266+
267+
assertNotNull(assistantMessage);
268+
assertNotNull(outputContent);
269+
assertNotNull(outputContent.getText());
270+
}
271+
272+
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
273+
@MethodSource("com.azure.ai.openai.responses.TestUtils#getTestParametersResponses")
274+
public void testChatbotResponsesFailure(HttpClient httpClient, AzureResponsesServiceVersion serviceVersion) {
275+
ResponsesClient client = getAzureResponseClient(httpClient, serviceVersion);
276+
277+
CreateResponsesRequest request = createJokesRequest(null);
278+
279+
HttpResponseException exception = assertThrows(HttpResponseException.class,
280+
() -> client.createResponse(request));
281+
282+
assertEquals(400, exception.getResponse().getStatusCode());
283+
assertTrue(exception.getMessage().contains("Missing required parameter"));
284+
}
216285
}

0 commit comments

Comments
 (0)