Maven Central Version

Giriş

Java için istemci kütüphanesi, Sunra’nın hizmetleriyle etkileşim kurmak için kullanımı kolay bir arayüz sunar.

Kurulum

İstemciyi projenize entegre etmek için Maven veya Gradle kullanarak bağımlılığı ekleyin:
implementation("ai.sunra.client:sunra-client:0.1.5")

Özellikler

Uç Noktaları Çağırma

Sunra, güvenilirlik ve ölçeklenebilirlik sağlayarak uç nokta isteklerini bir kuyruk sistemi aracılığıyla yönetir. Bir istek göndermek ve sonucu beklemek için subscribe yöntemini kullanın. Örnek:
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", "parkta koşan bir köpek");

Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
    String status = update.getStatus().toString();
    String message = String.format("\nDurum Güncellemesi: %s, İstek 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 isteğini bir değişkene kaydet ve yazdır
Output<JsonObject> response = client.subscribe("black-forest-labs/flux-kontext-pro/text-to-image", options);
System.out.println("Tamamlandı!");
System.out.println(response.getData());

Kuyruk Yönetimi

Bu yöntemlerle isteklerinizi yönetin:
İstek Gönderme
Bir istek gönderin ve daha sonra kullanmak üzere request_id’yi alın. Örnek:
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", "parkta koşan bir köpek");

Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
    String status = update.getStatus().toString();
    String message = String.format("\nDurum Güncellemesi: %s, İstek 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 isteğini bir değişkene kaydet ve yazdır
var request = client.queue().submit("black-forest-labs/flux-kontext-pro/text-to-image", options);
İstek Durumunu Kontrol Etme
Bir isteğin durumunu alın. Örnek:
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"));
İstek Sonuçlarını Alma
Tamamlanmış bir isteğin sonucunu getirin. Örnek:
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"));

Dosya Yüklemeleri

Henüz uygulanmadı.
Maksimum dosya boyutu: 100MB

Destek

Yardım veya tartışmalar için topluluğumuza katılın: Size yardımcı olmak için buradayız!