Langsung ke konten utama
Versi Maven Central

Pendahuluan

Pustaka klien untuk Java menawarkan antarmuka yang mudah digunakan untuk berinteraksi dengan layanan Sunra.

Instalasi

Untuk mengintegrasikan klien ke dalam proyek Anda, tambahkan dependensi menggunakan Maven atau Gradle:
implementation("ai.sunra.client:sunra-client:0.1.5")

Fitur

Memanggil Titik Akhir

Sunra mengelola permintaan titik akhir melalui sistem antrian, memastikan keandalan dan skalabilitas. Gunakan metode subscribe untuk mengirim permintaan dan menunggu hasilnya. Contoh:
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", "seekor anjing berlari di taman");

Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
    String status = update.getStatus().toString();
    String message = String.format("\nPembaruan Status: %s, ID Permintaan: %s",
        status, update.getRequestId());
    System.out.println(message);
};

SubscribeOptions<JsonObject> options = SubscribeOptions.<JsonObject>builder()
    .input(input)
    .resultType(JsonObject.class)
    .onQueueUpdate(statusUpdateHandler)
    .logs(true)
    .build();

// simpan permintaan langganan ke variabel dan cetak
Output<JsonObject> response = client.subscribe("black-forest-labs/flux-kontext-pro/text-to-image", options);
System.out.println("Selesai!");
System.out.println(response.getData());

Manajemen Antrian

Kelola permintaan Anda dengan metode ini:
Mengirim Permintaan
Kirim permintaan dan dapatkan request_id untuk penggunaan nanti. Contoh:
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", "seekor anjing berlari di taman");

Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
    String status = update.getStatus().toString();
    String message = String.format("\nPembaruan Status: %s, ID Permintaan: %s",
        status, update.getRequestId());
    System.out.println(message);
};

SubscribeOptions<JsonObject> options = SubscribeOptions.<JsonObject>builder()
    .input(input)
    .resultType(JsonObject.class)
    .onQueueUpdate(statusUpdateHandler)
    .logs(true)
    .build();

// simpan permintaan langganan ke variabel dan cetak
var request = client.queue().submit("black-forest-labs/flux-kontext-pro/text-to-image", options);
Memeriksa Status Permintaan
Ambil status permintaan. Contoh:
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"));
Mengambil Hasil Permintaan
Ambil hasil dari permintaan yang sudah selesai. Contoh:
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"));

Unggahan File

Belum diimplementasikan.
Ukuran file maksimum: 100MB

Dukungan

Bergabunglah dengan komunitas kami untuk bantuan atau diskusi: Kami di sini untuk membantu Anda!