Skip to main content
@acedatacloud/sdk ist das offizielle TypeScript / JavaScript SDK von Ace Data Cloud, das alle Dienste auf api.acedata.cloud in typisierte Methoden wie client.openai.chat.completions.create(...), client.images.generate(...), client.search.google(...) usw. kapselt, mit eingebautem SSE-Streaming, Retry-Backoff und typisierten Ausnahmen. Es kann in Node.js, Deno, Bun und modernen Browsern (mit Bundler) verwendet werden. Quellcode und Paketadresse:

Installation

Wenn eine Zahlung auf der X402-Chain erforderlich ist (kein API-Token-Pfad), installieren Sie zusätzlich:
Ausgabe der Versionsprüfung eines sauberen npm-Projekts:
Erklärung der Ergebnisse:
  • Die Paketversion ist 2026.504.2 (CalVer, 2. Revision der 504. ISO-Woche des Jahres 2026).
  • AceDataCloud ist die Hauptklasse zum Erstellen des Clients, die über den Standardexport zugänglich ist.

Vorbereitung des API-Tokens

Siehe SDK-Übersicht - API-Token beantragen um das Token zu erhalten, und dann im Shell export:
Beim Erstellen des Clients wird apiToken nicht übergeben, das SDK liest automatisch die Umgebungsvariable ACEDATACLOUD_API_TOKEN. Wenn in Ihrer Umgebung bereits ACEDATACLOUD_API_KEY gespeichert ist (Projekt-Repository-Vereinbarung), kann es explizit übergeben werden: new AceDataCloud({ apiToken: process.env.ACEDATACLOUD_API_KEY }).

Beispiel 1: chat.completions (nicht-streaming)

Ergebnis der Programmausführung:
Erklärung der Ergebnisse:
  • id chatcmpl-DldCcLvkTFaioST8e6SjOl0wJScQA ist die OpenAI-kompatible Antwort-ID, die im Konsolen Nutzungsverlauf gefunden werden kann.
  • content ADC_TS_SDK_OK ist die tatsächlich vom Modell zurückgegebene feste Kennung, die beweist, dass die Antwort nicht vom SDK verändert wurde.
  • Eine Chat-Vervollständigung verbraucht etwa 22 Token, basierend auf den Kosten von gpt-4o-mini.
  • Das SDK erklärt die Antwort als Record<string, unknown>, zur Laufzeit ist es ein JSON-Objekt, und der Zugriff über .id / .choices[0].message.content funktioniert in .mjs, Node REPL, Bun; in streng typisierten TypeScript-Projekten könnte (res as any).id oder das Deaktivieren von noImplicitAny in tsconfig erforderlich sein.

Beispiel 2: chat.completions (SSE-Streaming)

Wenn stream: true aktiviert ist, gibt create einen asynchronen Iterator zurück, wobei jeder Frame ein ChatCompletionChunk ist.
Ergebnis der Programmausführung:
Erklärung der Ergebnisse:
  • Die Verzögerung des ersten Frames von 2481 ms ist die Zeit, die das Modell benötigt, um das erste Token zu generieren; die nachfolgenden 12 Frames erreichen alle innerhalb von 135 ms.
  • Die 13 Frames ergeben zusammen "1 2 3 4 5", wobei jedes Token einzeln als Frame und der letzte Frame mit finish_reason versehen ist.
  • Streaming verbraucht nicht mehr Token als Nicht-Streaming, aber die Verzögerung des ersten Tokens ist deutlich reduziert, was sich gut für Echtzeit-UIs eignet.

Beispiel 3: images.generate (NanoBanana)

client.images.generate({ provider: 'nano-banana', ... }) gibt direkt synchron zurück, es ist kein wait-Parameter erforderlich — die NanoBanana-API generiert von sich aus synchron.
Ergebnis der Programmausführung:
Erklärung der Ergebnisse:
  • image_url ist die stabile Adresse auf dem CDN, die direkt in <img src /> verwendet oder heruntergeladen werden kann.
  • In 16,6 Sekunden entfällt die meiste Zeit auf die Modellinferenz, die lokalen SDK-Kosten sind vernachlässigbar.
  • trace_id ist die vom Plattform zugewiesene Anfrage-ID; wenn ein Problem auftritt, kann diese ID dem Kundenservice zur schnelleren Lokalisierung gegeben werden.
  • Für asynchrone Dienste (Midjourney, Sora, Veo usw.) ist eine TaskHandle-Abfrage erforderlich, siehe SDK-Taskabfrage und Streaming-Antworten.

Beispiel 4: Typisierte Fehlerbehandlung

Das SDK wirft Fehler entsprechend dem HTTP-Status als spezifische Unterklassen (z. B. AuthenticationError / BadRequestError / RateLimitError / InternalServerError / APIConnectionError usw.) und ermöglicht eine präzise Verzweigung mit instanceof.
Programmausgabe:
Erklärung der Ergebnisse:
  • 401 wird automatisch als AuthenticationError zugeordnet, der Anwendungscode kann instanceof für präzise Verzweigungen verwenden.
  • code: invalid_token stammt von PlatformGateway, um den Abgleich mit den Backend-Protokollen zu erleichtern.
  • Entsprechend 429 → RateLimitError, 400 → BadRequestError, 5xx → InternalServerError.

Beispiel 5: Mehrmodell-Routing

Der gleiche Client kann zwischen mehreren Diensten beliebig wechseln, solange die Modellnamen übereinstimmen.
Programmausgabe:
Erklärung der Ergebnisse:
  • Ein Code, ein Token, deckt die vier Arten von Modellservices OpenAI / Google / DeepSeek / xAI ab.
  • gemini-2.5-flash hat diesmal kein ADC_OK zurückgegeben, was auf Unterschiede im Ausgabe-Stil des Modells zurückzuführen ist – das SDK hat nichts stillschweigend unterdrückt, sondern die Worte des Modells treu an die Anwendung weitergegeben.
  • Die Preise werden basierend auf den tatsächlichen Token-Preisen berechnet, der Pfad führt nur einmal über das PlatformGateway.

Beispiel 6: Google-Suche

Programmausgabe:
Erklärung der Ergebnisse:
  • Mit einer Anfrage werden 10 organische Ergebnisse abgerufen, das Feld heißt organic (nicht organic_results).
  • Die Suche erfolgt über den Serp-Dienst und wird pro Anfrage abgerechnet.
  • Das gleiche Client-Exemplar kann sowohl chatten als auch suchen, ein Token reicht aus.

Konfigurationsoptionen

Verwendung im Browser

@acedatacloud/sdk ist ein ESM + ISO (isomorphes) Paket, das in modernen Browsern mit Bundler direkt import werden kann. Hinweis: API-Token nicht im Frontend-Code hartkodieren. Für das Frontend empfohlen:
  1. Verwenden Sie X402 paymentHandler – Benutzer-Wallets zahlen pro Anfrage in USDC, kein Token erforderlich.
  2. Oder verwenden Sie das SDK auf Ihrem eigenen Server, der Browser ruft nur Ihr eigenes Backend auf.

Fortgeschritten: Aufgaben-Polling und Streaming-Antworten

  • Dienstarten (Midjourney, Sora, Veo, Suno): Verwenden Sie TaskHandle für das Polling, Details zu Einheiten, Zeitüberschreitungen und Wiederholungen finden Sie in SDK-Aufgaben-Polling und Streaming-Antworten.
  • Streaming-Chat: Beispiel 2 auf dieser Seite hat dies bereits demonstriert; Streaming-Audio / -Video wird ebenfalls unterstützt.

Fortgeschritten: X402-Zahlungshaken

Wenn Sie kein API-Token beantragen und pro Anfrage on-chain bezahlen möchten, können Sie paymentHandler verwenden:
createX402PaymentHandler akzeptiert auf der TypeScript-Seite { network, evmProvider, evmAddress, preferScheme? } (EVM-Kette) oder { network: 'solana', solanaWallet } (Solana). Wenn der Node-Server kein window.ethereum hat, verwenden Sie viem’s createWalletClient (basierend auf dem privaten Schlüssel), um einen EIP-1193-kompatiblen Anbieter zu erstellen und ihn hier zu übergeben; detaillierte Vorgehensweise und echte Ergebnisse on-chain finden Sie in SDK + X402-Zahlungshaken.

So überprüfen Sie das verbleibende Guthaben

Über Ace Data Cloud-Konsole - Anwendungsübersicht können Sie das aktuelle verbleibende Guthaben Ihres Kontos einsehen. Über Ace Data Cloud-Konsole - Nutzungshistorie können Sie alle Nutzungshistorien und Abrechnungsdetails einsehen.

Mehr erfahren