Pendahuluan
Pustaka klien untuk Java menawarkan antarmuka yang mudah digunakan untuk berinteraksi dengan layanan Port.
Instalasi
Untuk mengintegrasikan klien ke dalam proyek Anda, tambahkan dependensi menggunakan Maven atau Gradle:
implementation("ai.port.client:port-client:0.1.5")
Fitur
Memanggil Titik Akhir
Port mengelola permintaan titik akhir melalui sistem antrian, memastikan keandalan dan skalabilitas. Gunakan metode subscribe untuk mengirim permintaan dan menunggu hasilnya.
Contoh:
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", "seekor anjing berlari di taman");
Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
String status = update.getStatus().toString();
String message = String.format("\nPembaruan Status: %s, ID Permintaan: %s",
status, update.getRequestId());
System.out.println(message);
};
SubscribeOptions<JsonObject> options = SubscribeOptions.<JsonObject>builder()
.input(input)
.resultType(JsonObject.class)
.onQueueUpdate(statusUpdateHandler)
.logs(true)
.build();
// simpan permintaan langganan ke variabel dan cetak
Output<JsonObject> response = client.subscribe("black-forest-labs/flux-kontext-pro/text-to-image", options);
System.out.println("Selesai!");
System.out.println(response.getData());
Manajemen Antrian
Kelola permintaan Anda dengan metode ini:
Mengirim Permintaan
Kirim permintaan dan dapatkan request_id untuk penggunaan nanti.
Contoh:
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", "seekor anjing berlari di taman");
Consumer<QueueStatus.StatusUpdate> statusUpdateHandler = update -> {
String status = update.getStatus().toString();
String message = String.format("\nPembaruan Status: %s, ID Permintaan: %s",
status, update.getRequestId());
System.out.println(message);
};
SubscribeOptions<JsonObject> options = SubscribeOptions.<JsonObject>builder()
.input(input)
.resultType(JsonObject.class)
.onQueueUpdate(statusUpdateHandler)
.logs(true)
.build();
// simpan permintaan langganan ke variabel dan cetak
var request = client.queue().submit("black-forest-labs/flux-kontext-pro/text-to-image", options);
Memeriksa Status Permintaan
Ambil status permintaan.
Contoh:
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"));
Mengambil Hasil Permintaan
Ambil hasil dari permintaan yang sudah selesai.
Contoh:
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"));
Unggahan File
Ukuran file maksimum: 100MB
Dukungan
Bergabunglah dengan komunitas kami untuk bantuan atau diskusi:
Kami di sini untuk membantu Anda!