@sunra/client npm package

Einführung

Die Client-Bibliothek für JavaScript/TypeScript bietet eine benutzerfreundliche Schnittstelle zur Interaktion mit den Diensten von Sunra AI.

Installation

Um den Client in Ihr Projekt zu integrieren, installieren Sie ihn mit npm:
npm install @sunra/client

Funktionen

Endpunkte aufrufen

Sunra 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 { sunra } from "@sunra/client";

const result = await sunra.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 { sunra } from "@sunra/client";

const { request_id } = await sunra.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 { sunra } from "@sunra/client";

const status = await sunra.queue.status({
  requestId: "pd_eTYYuw4EqYLzRBHgnAMHA8zH",
  logs: true,
});
Anforderungsergebnisse abrufen
Rufen Sie das Ergebnis einer abgeschlossenen Anfrage ab. Beispiel:
import { sunra } from "@sunra/client";

const result = await sunra.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 { sunra } from "@sunra/client";

const fileInput = document.getElementById('file-input');

fileInput.addEventListener('change', async (event) => {
  const file = event.target.files[0];
  if (file) {
    try {
      const url = await sunra.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 { sunra } from "@sunra/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 sunra.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 { sunra } from "@sunra/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 sunra.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 sunra.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!