Introduction
The client library for Java offers an easy-to-use interface to interact with Sunra’s services.
Installation
To integrate the client into your project, install it using npm:
implementation("ai.sunra.client:sunra-client:0.1.4")
Features
Calling Endpoints
Sunra manages endpoint requests through a queue system, ensuring reliability and scalability. Use the subscribe
method to submit a request and await the result.
Example:
import ai.sunra.client.*;
import ai.sunra.client.queue.*;
import java.util.Map;
import com.google.gson.JsonObject;
import java.util.function.Consumer;
ClientConfig config = ClientConfig.builder()
.withCredentials(CredentialsResolver.fromEnv())
.build();
SunraClient client = SunraClient.withConfig(config);
Map<String, Object> input = Map.of(
"prompt", "a dog running in the park");
Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
String status = update.getStatus().toString();
String message = String.format("\nStatus Update: %s, Request ID: %s",
status, update.getRequestId());
System.out.println(message);
};
SubscribeOptions<JsonObject> options = SubscribeOptions.<JsonObject>builder()
.input(input)
.resultType(JsonObject.class)
.onQueueUpdate(statusUpdateHandler)
.logs(true)
.build();
// save the subscribe request to a variable and print it
Output<JsonObject> response = client.subscribe("black-forest-labs/flux-kontext-pro/text-to-image", options);
System.out.println("Completed!");
System.out.println(response.getData());
Queue Management
Manage your requests with these methods:
Submitting a Request
Submit a request and retrieve the request_id
for later use.
Example:
import ai.sunra.client.*;
import ai.sunra.client.queue.*;
import java.util.Map;
import com.google.gson.JsonObject;
import java.util.function.Consumer;
ClientConfig config = ClientConfig.builder()
.withCredentials(CredentialsResolver.fromEnv())
.build();
SunraClient client = SunraClient.withConfig(config);
Map<String, Object> input = Map.of(
"prompt", "a dog running in the park");
Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
String status = update.getStatus().toString();
String message = String.format("\nStatus Update: %s, Request ID: %s",
status, update.getRequestId());
System.out.println(message);
};
SubscribeOptions<JsonObject> options = SubscribeOptions.<JsonObject>builder()
.input(input)
.resultType(JsonObject.class)
.onQueueUpdate(statusUpdateHandler)
.logs(true)
.build();
// save the subscribe request to a variable and print it
var request = client.queue().submit("black-forest-labs/flux-kontext-pro/text-to-image", options);
Checking Request Status
Retrieve the status of a request.
Example:
import ai.sunra.client.*;
import ai.sunra.client.queue.*;
ClientConfig config = ClientConfig.builder()
.withCredentials(CredentialsResolver.fromEnv())
.build();
SunraClient client = SunraClient.withConfig(config);
var job = client.queue().status(QueueStatusOptions.withRequestId("pd_eTYYuw4EqYLzRBHgnAMHA8zH"));
Retrieving Request Results
Fetch the result of a completed request.
Example:
import ai.sunra.client.*;
import ai.sunra.client.queue.*;
ClientConfig config = ClientConfig.builder()
.withCredentials(CredentialsResolver.fromEnv())
.build();
SunraClient client = SunraClient.withConfig(config);
var result = client.queue().result(QueueStatusOptions.withRequestId("pd_eTYYuw4EqYLzRBHgnAMHA8zH"));
File Uploads
Support
Join our community for help or discussions:
We’re here to assist you!