Introduzione
La libreria client per Java offre un’interfaccia facile da usare per interagire con i servizi di Port.
Installazione
Per integrare il client nel tuo progetto, aggiungi la dipendenza usando Maven o Gradle:
implementation("ai.port.client:port-client:0.1.5")
Funzionalità
Chiamata degli endpoint
Port gestisce le richieste degli endpoint tramite un sistema di code, garantendo affidabilità e scalabilità. Usa il metodo subscribe per inviare una richiesta e attendere il risultato.
Esempio:
import ai.port.client.*;
import ai.port.client.queue.*;
import java.util.Map;
import com.google.gson.JsonObject;
import java.util.function.Consumer;
ClientConfig config = ClientConfig.builder()
.withCredentials(CredentialsResolver.fromEnv())
.build();
PortClient client = PortClient.withConfig(config);
Map<String, Object> input = Map.of(
"prompt", "un cane che corre nel parco");
Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
String status = update.getStatus().toString();
String message = String.format("\nAggiornamento stato: %s, ID richiesta: %s",
status, update.getRequestId());
System.out.println(message);
};
SubscribeOptions<JsonObject> options = SubscribeOptions.<JsonObject>builder()
.input(input)
.resultType(JsonObject.class)
.onQueueUpdate(statusUpdateHandler)
.logs(true)
.build();
// salva la richiesta di iscrizione in una variabile e stampala
Output<JsonObject> response = client.subscribe("black-forest-labs/flux-kontext-pro/text-to-image", options);
System.out.println("Completato!");
System.out.println(response.getData());
Gestione delle code
Gestisci le tue richieste con questi metodi:
Invio di una richiesta
Invia una richiesta e recupera il request_id per un uso successivo.
Esempio:
import ai.port.client.*;
import ai.port.client.queue.*;
import java.util.Map;
import com.google.gson.JsonObject;
import java.util.function.Consumer;
ClientConfig config = ClientConfig.builder()
.withCredentials(CredentialsResolver.fromEnv())
.build();
PortClient client = PortClient.withConfig(config);
Map<String, Object> input = Map.of(
"prompt", "un cane che corre nel parco");
Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
String status = update.getStatus().toString();
String message = String.format("\nAggiornamento stato: %s, ID richiesta: %s",
status, update.getRequestId());
System.out.println(message);
};
SubscribeOptions<JsonObject> options = SubscribeOptions.<JsonObject>builder()
.input(input)
.resultType(JsonObject.class)
.onQueueUpdate(statusUpdateHandler)
.logs(true)
.build();
// salva la richiesta di iscrizione in una variabile e stampala
var request = client.queue().submit("black-forest-labs/flux-kontext-pro/text-to-image", options);
Controllo dello stato della richiesta
Recupera lo stato di una richiesta.
Esempio:
import ai.port.client.*;
import ai.port.client.queue.*;
ClientConfig config = ClientConfig.builder()
.withCredentials(CredentialsResolver.fromEnv())
.build();
PortClient client = PortClient.withConfig(config);
var job = client.queue().status(QueueStatusOptions.withRequestId("pd_eTYYuw4EqYLzRBHgnAMHA8zH"));
Recupero dei risultati della richiesta
Recupera il risultato di una richiesta completata.
Esempio:
import ai.port.client.*;
import ai.port.client.queue.*;
ClientConfig config = ClientConfig.builder()
.withCredentials(CredentialsResolver.fromEnv())
.build();
PortClient client = PortClient.withConfig(config);
var result = client.queue().result(QueueStatusOptions.withRequestId("pd_eTYYuw4EqYLzRBHgnAMHA8zH"));
Caricamento di file
Dimensione massima del file: 100 MB
Supporto
Unisciti alla nostra community per aiuto o discussioni:
Siamo qui per aiutarti!