@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:
- SDK-Repository: https://github.com/AceDataCloud/SDK
- npm SDK: https://www.npmjs.com/package/@acedatacloud/sdk
Installation
- Die Paketversion ist
2026.504.2(CalVer, 2. Revision der 504. ISO-Woche des Jahres 2026). AceDataCloudist 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 Shellexport:
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)
id chatcmpl-DldCcLvkTFaioST8e6SjOl0wJScQAist die OpenAI-kompatible Antwort-ID, die im Konsolen Nutzungsverlauf gefunden werden kann.content ADC_TS_SDK_OKist 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.contentfunktioniert in.mjs, Node REPL, Bun; in streng typisierten TypeScript-Projekten könnte(res as any).idoder das Deaktivieren vonnoImplicitAnyin tsconfig erforderlich sein.
Beispiel 2: chat.completions (SSE-Streaming)
Wennstream: true aktiviert ist, gibt create einen asynchronen Iterator zurück, wobei jeder Frame ein ChatCompletionChunk ist.
- 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 mitfinish_reasonversehen 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.
image_urlist 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_idist 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.
- 401 wird automatisch als
AuthenticationErrorzugeordnet, der Anwendungscode kanninstanceoffür präzise Verzweigungen verwenden. code: invalid_tokenstammt 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.- Ein Code, ein Token, deckt die vier Arten von Modellservices OpenAI / Google / DeepSeek / xAI ab.
gemini-2.5-flashhat diesmal keinADC_OKzurü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
- Mit einer Anfrage werden 10 organische Ergebnisse abgerufen, das Feld heißt
organic(nichtorganic_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:
- Verwenden Sie X402
paymentHandler– Benutzer-Wallets zahlen pro Anfrage in USDC, kein Token erforderlich. - 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
TaskHandlefü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 SiepaymentHandler verwenden:
createX402PaymentHandlerakzeptiert auf der TypeScript-Seite{ network, evmProvider, evmAddress, preferScheme? }(EVM-Kette) oder{ network: 'solana', solanaWallet }(Solana). Wenn der Node-Server keinwindow.ethereumhat, verwenden Sieviem’screateWalletClient(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.

