Maven Central Version

簡介

Java 客戶端函式庫提供了一個易於使用的介面,用於與 Sunra 的服務進行互動。

安裝

要將客戶端整合到您的專案中,請使用 Maven 或 Gradle 新增相依性:
implementation("ai.sunra.client:sunra-client:0.1.5")

功能

呼叫端點

Sunra 透過佇列系統管理端點請求,確保可靠性和可擴展性。使用 subscribe 方法提交請求並等待結果。 範例:
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", "一隻在公園裡奔跑的狗");

Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
    String status = update.getStatus().toString();
    String message = String.format("\n狀態更新:%s,請求 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();

// 將訂閱請求儲存到變數中並列印
Output<JsonObject> response = client.subscribe("black-forest-labs/flux-kontext-pro/text-to-image", options);
System.out.println("已完成!");
System.out.println(response.getData());

佇列管理

使用這些方法管理您的請求:
提交請求
提交請求並檢索 request_id 以供後續使用。 範例:
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", "一隻在公園裡奔跑的狗");

Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
    String status = update.getStatus().toString();
    String message = String.format("\n狀態更新:%s,請求 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();

// 將訂閱請求儲存到變數中並列印
var request = client.queue().submit("black-forest-labs/flux-kontext-pro/text-to-image", options);
檢查請求狀態
檢索請求的狀態。 範例:
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"));
檢索請求結果
擷取已完成請求的結果。 範例:
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"));

檔案上傳

尚未實作。
最大檔案大小:100MB

支援

加入我們的社群以獲得協助或參與討論: 我們隨時為您提供協助!