Version Maven Central

Introduction

La bibliothèque cliente pour Java offre une interface simple à utiliser pour interagir avec les services de Sunra.

Installation

Pour intégrer le client dans votre projet, ajoutez la dépendance en utilisant Maven ou Gradle :
implementation("ai.sunra.client:sunra-client:0.1.5")

Fonctionnalités

Appeler des points de terminaison

Sunra gère les requêtes de point de terminaison via un système de file d’attente, garantissant fiabilité et évolutivité. Utilisez la méthode subscribe pour soumettre une requête et attendre le résultat. Exemple :
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", "un chien qui court dans le parc");

Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
    String status = update.getStatus().toString();
    String message = String.format("\nMise à jour du statut : %s, ID de la requête : %s",
        status, update.getRequestId());
    System.out.println(message);
};

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

// enregistrer la requête d'abonnement dans une variable et l'imprimer
Output<JsonObject> response = client.subscribe("black-forest-labs/flux-kontext-pro/text-to-image", options);
System.out.println("Terminé !");
System.out.println(response.getData());

Gestion de la file d’attente

Gérez vos requêtes avec ces méthodes :
Soumettre une requête
Soumettez une requête et récupérez le request_id pour une utilisation ultérieure. Exemple :
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", "un chien qui court dans le parc");

Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
    String status = update.getStatus().toString();
    String message = String.format("\nMise à jour du statut : %s, ID de la requête : %s",
        status, update.getRequestId());
    System.out.println(message);
};

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

// enregistrer la requête d'abonnement dans une variable et l'imprimer
var request = client.queue().submit("black-forest-labs/flux-kontext-pro/text-to-image", options);
Vérifier le statut de la requête
Récupérez le statut d’une requête. Exemple :
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"));
Récupérer les résultats de la requête
Récupérez le résultat d’une requête terminée. Exemple :
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"));

Téléchargements de fichiers

Pas encore implémenté.
Taille maximale du fichier : 100 Mo

Support

Rejoignez notre communauté pour obtenir de l’aide ou participer à des discussions : Nous sommes là pour vous aider !