Skip to content

Commit 98ed424

Browse files
TomerAberbachstainless-app[bot]
authored andcommitted
docs: add stream cancellation example
1 parent 5836153 commit 98ed424

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.openai.example;
2+
3+
import com.openai.client.OpenAIClientAsync;
4+
import com.openai.client.okhttp.OpenAIOkHttpClientAsync;
5+
import com.openai.core.http.AsyncStreamResponse;
6+
import com.openai.models.ChatCompletionChunk;
7+
import com.openai.models.ChatCompletionCreateParams;
8+
import com.openai.models.ChatModel;
9+
10+
public final class CompletionsStreamingCancellationAsyncExample {
11+
private CompletionsStreamingCancellationAsyncExample() {}
12+
13+
public static void main(String[] args) {
14+
// Configures using one of:
15+
// - The `OPENAI_API_KEY` environment variable
16+
// - The `AZURE_OPENAI_ENDPOINT` and `AZURE_OPENAI_KEY` environment variables
17+
OpenAIClientAsync client = OpenAIOkHttpClientAsync.fromEnv();
18+
19+
ChatCompletionCreateParams createParams = ChatCompletionCreateParams.builder()
20+
.model(ChatModel.GPT_3_5_TURBO)
21+
.maxCompletionTokens(2048)
22+
.addDeveloperMessage("Make sure you mention Stainless!")
23+
.addUserMessage("Tell me a story about building the best SDK!")
24+
.build();
25+
26+
AsyncStreamResponse<ChatCompletionChunk> streamResponse =
27+
client.chat().completions().createStreaming(createParams);
28+
streamResponse
29+
.subscribe(completion -> completion.choices().stream()
30+
.flatMap(choice -> choice.delta().content().stream())
31+
.forEach(text -> {
32+
System.out.print(text);
33+
if (text.contains("SDK")) {
34+
// Close the stream early.
35+
streamResponse.close();
36+
}
37+
}))
38+
.onCompleteFuture()
39+
.join();
40+
}
41+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.openai.example;
2+
3+
import com.openai.client.OpenAIClient;
4+
import com.openai.client.okhttp.OpenAIOkHttpClient;
5+
import com.openai.core.http.StreamResponse;
6+
import com.openai.models.ChatCompletionChunk;
7+
import com.openai.models.ChatCompletionCreateParams;
8+
import com.openai.models.ChatModel;
9+
10+
public final class CompletionsStreamingCancellationExample {
11+
private CompletionsStreamingCancellationExample() {}
12+
13+
public static void main(String[] args) {
14+
// Configures using one of:
15+
// - The `OPENAI_API_KEY` environment variable
16+
// - The `AZURE_OPENAI_ENDPOINT` and `AZURE_OPENAI_KEY` environment variables
17+
OpenAIClient client = OpenAIOkHttpClient.fromEnv();
18+
19+
ChatCompletionCreateParams createParams = ChatCompletionCreateParams.builder()
20+
.model(ChatModel.GPT_3_5_TURBO)
21+
.maxCompletionTokens(2048)
22+
.addDeveloperMessage("Make sure you mention Stainless!")
23+
.addUserMessage("Tell me a story about building the best SDK!")
24+
.build();
25+
26+
try (StreamResponse<ChatCompletionChunk> streamResponse =
27+
client.chat().completions().createStreaming(createParams)) {
28+
streamResponse.stream()
29+
.flatMap(completion -> completion.choices().stream())
30+
.flatMap(choice -> choice.delta().content().stream())
31+
.forEach(text -> {
32+
System.out.print(text);
33+
if (text.contains("SDK")) {
34+
// Close the stream early.
35+
streamResponse.close();
36+
}
37+
});
38+
}
39+
}
40+
}

0 commit comments

Comments
 (0)