Introdução
A biblioteca cliente para Java oferece uma interface fácil de usar para interagir com os serviços da Port.
Instalação
Para integrar o cliente ao seu projeto, adicione a dependência usando Maven ou Gradle:
implementation("ai.port.client:port-client:0.1.5")
Recursos
Chamando Endpoints
A Port gerencia as solicitações de endpoint por meio de um sistema de filas, garantindo confiabilidade e escalabilidade. Use o método subscribe para enviar uma solicitação e aguardar o resultado.
Exemplo:
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", "um cachorro correndo no parque");
Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
String status = update.getStatus().toString();
String message = String.format("\nAtualização de status: %s, ID da solicitação: %s",
status, update.getRequestId());
System.out.println(message);
};
SubscribeOptions<JsonObject> options = SubscribeOptions.<JsonObject>builder()
.input(input)
.resultType(JsonObject.class)
.onQueueUpdate(statusUpdateHandler)
.logs(true)
.build();
// salve a solicitação de inscrição em uma variável e imprima-a
Output<JsonObject> response = client.subscribe("black-forest-labs/flux-kontext-pro/text-to-image", options);
System.out.println("Concluído!");
System.out.println(response.getData());
Gerenciamento de Fila
Gerencie suas solicitações com estes métodos:
Enviando uma Solicitação
Envie uma solicitação e recupere o request_id para uso posterior.
Exemplo:
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", "um cachorro correndo no parque");
Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
String status = update.getStatus().toString();
String message = String.format("\nAtualização de status: %s, ID da solicitação: %s",
status, update.getRequestId());
System.out.println(message);
};
SubscribeOptions<JsonObject> options = SubscribeOptions.<JsonObject>builder()
.input(input)
.resultType(JsonObject.class)
.onQueueUpdate(statusUpdateHandler)
.logs(true)
.build();
// salve a solicitação de inscrição em uma variável e imprima-a
var request = client.queue().submit("black-forest-labs/flux-kontext-pro/text-to-image", options);
Verificando o Status da Solicitação
Recupere o status de uma solicitação.
Exemplo:
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 Resultados da Solicitação
Busque o resultado de uma solicitação concluída.
Exemplo:
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"));
Upload de Arquivos
Tamanho máximo do arquivo: 100MB
Suporte
Junte-se à nossa comunidade para obter ajuda ou participar de discussões:
Estamos aqui para ajudá-lo!