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("\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();

// 将 subscribe 请求保存到变量并打印
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("\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();

// 将 subscribe 请求保存到变量并打印
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

支持

加入我们的社区获得帮助或讨论: 我们在这里为您提供帮助!