Saltar al contenido principal
Maven Central Version

Introducción

La biblioteca cliente para Java ofrece una interfaz fácil de usar para interactuar con los servicios de Port.

Instalación

Para integrar el cliente en tu proyecto, agrega la dependencia usando Maven o Gradle:
implementation("ai.port.client:port-client:0.1.5")

Características

Llamando a los Endpoints

Port gestiona las solicitudes de los endpoints a través de un sistema de colas, lo que garantiza la fiabilidad y la escalabilidad. Usa el método subscribe para enviar una solicitud y esperar el resultado. Ejemplo:
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 perro corriendo en el parque");

Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
    String status = update.getStatus().toString();
    String message = String.format("\nActualización de estado: %s, ID de solicitud: %s",
        status, update.getRequestId());
    System.out.println(message);
};

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

// guarda la solicitud de suscripción en una variable e imprímela
Output<JsonObject> response = client.subscribe("black-forest-labs/flux-kontext-pro/text-to-image", options);
System.out.println("¡Completado!");
System.out.println(response.getData());

Gestión de la Cola

Gestiona tus solicitudes con estos métodos:
Enviando una Solicitud
Envía una solicitud y recupera el request_id para usarlo más tarde. Ejemplo:
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 perro corriendo en el parque");

Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
    String status = update.getStatus().toString();
    String message = String.format("\nActualización de estado: %s, ID de solicitud: %s",
        status, update.getRequestId());
    System.out.println(message);
};

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

// guarda la solicitud de suscripción en una variable e imprímela
var request = client.queue().submit("black-forest-labs/flux-kontext-pro/text-to-image", options);
Comprobando el Estado de la Solicitud
Recupera el estado de una solicitud. Ejemplo:
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"));
Recuperando los Resultados de la Solicitud
Obtén el resultado de una solicitud completada. Ejemplo:
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"));

Carga de Archivos

Aún no implementado.
Tamaño máximo de archivo: 100MB

Soporte

Únete a nuestra comunidad para obtener ayuda o participar en debates: ¡Estamos aquí para ayudarte!