Maven Central 버전

소개

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

지원

도움이나 토론을 위해 커뮤니티에 가입하십시오. 저희가 도와드리겠습니다!