Einführung
Die Client-Bibliothek für JavaScript/TypeScript bietet eine benutzerfreundliche Schnittstelle zur Interaktion mit den Diensten von Port AI.
Installation
Um den Client in Ihr Projekt zu integrieren, installieren Sie ihn mit npm:
npm install @portmoda/client
Funktionen
Endpunkte aufrufen
Port AI verwaltet Endpunktanfragen über ein Warteschlangensystem, das Zuverlässigkeit und Skalierbarkeit gewährleistet. Verwenden Sie die subscribe-Methode, um eine Anfrage zu senden und auf das Ergebnis zu warten.
Beispiel:
import { port } from "@portmoda/client";
const result = await port.subscribe("black-forest-labs/flux-kontext-pro/text-to-image", {
input: {
prompt: "Eine gläserne Teekanne mit blühendem Blumentee darin, auf einem Holztisch bei einem sonnendurchfluteten Fenster mit sanftem Morgenlicht.",
"aspect_ratio": "16:9",
"output_format": "jpeg",
},
logs: true,
onQueueUpdate: (update) => {
if (update.status === "IN_PROGRESS") {
console.log(update.logs)
}
},
});
console.log(result.data);
console.log(result.requestId);
Warteschlangenverwaltung
Verwalten Sie Ihre Anfragen mit diesen Methoden:
Eine Anfrage senden
Senden Sie eine Anfrage und rufen Sie die request_id zur späteren Verwendung ab.
Beispiel:
import { port } from "@portmoda/client";
const { request_id } = await port.queue.submit("black-forest-labs/flux-kontext-max", {
input: {
prompt: "Eine gläserne Teekanne mit blühendem Blumentee darin, auf einem Holztisch bei einem sonnendurchfluteten Fenster mit sanftem Morgenlicht.",
"aspect_ratio": "16:9",
"output_format": "jpeg",
},
});
Anfragestatus überprüfen
Rufen Sie den Status einer Anfrage ab.
Beispiel:
import { port } from "@portmoda/client";
const status = await port.queue.status({
requestId: "pd_eTYYuw4EqYLzRBHgnAMHA8zH",
logs: true,
});
Anforderungsergebnisse abrufen
Rufen Sie das Ergebnis einer abgeschlossenen Anfrage ab.
Beispiel:
import { port } from "@portmoda/client";
const result = await port.queue.result({
requestId: "pd_eTYYuw4EqYLzRBHgnAMHA8zH",
});
console.log(result.data);
console.log(result.requestId);
Speicher
Die storage-API ermöglicht es Ihnen, Dateien hochzuladen und eine URL zu erhalten, die dann in Ihren Modellanfragen verwendet werden kann. Dies ist besonders nützlich für Modelle, die Dateieingaben erfordern, wie z. B. Bild-zu-Video oder Sprache-zu-Text.
Maximale Dateigröße: 100MB
Dateien im Browser hochladen
Sie können Benutzern erlauben, Dateien direkt aus ihrem Browser hochzuladen. Das folgende Beispiel zeigt, wie Sie ein <input type="file">-Element verwenden, um eine Datei auszuwählen und hochzuladen.
import { port } from "@portmoda/client";
const fileInput = document.getElementById('file-input');
fileInput.addEventListener('change', async (event) => {
const file = event.target.files[0];
if (file) {
try {
const url = await port.storage.upload(file);
console.log('Datei erfolgreich hochgeladen:', url);
// Jetzt können Sie diese URL mit einem Modellendpunkt verwenden
} catch (error) {
console.error('Upload fehlgeschlagen:', error);
}
}
});
Dateien in Node.js hochladen
Auf der Serverseite mit Node.js können Sie Dateien aus dem lokalen Dateisystem lesen und hochladen.
import { port } from "@portmoda/client";
import { readFile } from "node:fs/promises";
import { basename } from "node:path";
async function uploadLocalFile(filePath) {
try {
const buffer = await readFile(filePath);
// Der Client benötigt ein File-Objekt, das wir aus einem Puffer erstellen können
const file = new File([buffer], basename(filePath));
const url = await port.storage.upload(file);
console.log('Datei erfolgreich hochgeladen:', url);
return url;
} catch (error) {
console.error('Upload fehlgeschlagen:', error);
}
}
uploadLocalFile("./pfad/zu/ihrem/bild.png");
Automatische Uploads mit Modellendpunkten
Das JavaScript-SDK kann Datei-Uploads automatisch für Sie erledigen. Wenn Sie ein File-Objekt, Blob oder eine Base64-Daten-URI an die Eingabe eines Modellendpunkts übergeben, lädt das SDK diese zuerst in den Speicher hoch und verwendet dann die resultierende URL in der Anfrage.
Dies vereinfacht den Prozess, da Sie keinen separaten Upload-Schritt durchführen müssen.
import { port } from "@portmoda/client";
// Ein File-Objekt aus einer Browser-Dateieingabe wird automatisch hochgeladen
const fileInput = document.getElementById('file-input');
const file = fileInput.files[0];
const result = await port.subscribe("ein-modell-das-bilder-annimmt", {
input: {
image: file, // SDK lädt diese Datei automatisch hoch
prompt: "Eine Aufforderung, die beschreibt, was mit dem Bild zu tun ist"
}
});
// Eine Base64-Daten-URI wird ebenfalls automatisch hochgeladen
const base64Image = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ...";
const result2 = await port.subscribe("ein-modell-das-bilder-annimmt", {
input: {
image: base64Image, // SDK konvertiert dies automatisch in ein Blob und lädt es hoch
prompt: "Eine Aufforderung, die beschreibt, was mit dem Bild zu tun ist"
}
});
Unterstützung
Treten Sie unserer Community für Hilfe oder Diskussionen bei:
Wir sind hier, um Ihnen zu helfen!