Skip to main content
@acedatacloud/sdk — це офіційний TypeScript / JavaScript SDK Ace Data Cloud, який обгортає всі сервіси на api.acedata.cloud в типізовані методи, такі як client.openai.chat.completions.create(...), client.images.generate(...), client.search.google(...) тощо, з вбудованими SSE потоками, повторними спробами та типізованими виключеннями. Можна використовувати в Node.js, Deno, Bun та сучасних браузерах (з bundler). Адреса вихідного коду та пакету:

Встановлення

Якщо потрібно платити на ланцюзі X402 (без API Token), встановіть ще один:
Вивід перевірки версії чистого npm проекту:
Результати пояснюють:
  • Версія пакету — 2026.504.2 (CalVer, 504-й ISO тиждень 2026 року, 2-ге виправлення).
  • AceDataCloud — це головний клас для побудови клієнта, доступний з експорту за замовчуванням.

Підготовка API Token

Згідно з Оглядом SDK - Отримання API Token, отримайте токен, а потім у shell export:
При побудові клієнта не передавайте apiToken, SDK автоматично зчитуватиме змінну середовища ACEDATACLOUD_API_TOKEN. Якщо у вашому середовищі вже зберігається ACEDATACLOUD_API_KEY (угода проекту), ви можете явно передати: new AceDataCloud({ apiToken: process.env.ACEDATACLOUD_API_KEY }).

Приклад 1: chat.completions (непотоковий)

Результат виконання програми:
Результати пояснюють:
  • id chatcmpl-DldCcLvkTFaioST8e6SjOl0wJScQA — це ID відповіді, сумісний з OpenAI, який можна знайти в консолі історії використання.
  • content ADC_TS_SDK_OK — це справжній фіксований ідентифікатор, повернутий моделлю, що підтверджує, що відповідь не була змінена SDK.
  • Одне завершення чату витрачає приблизно 22 токена, згідно з тарифами gpt-4o-mini.
  • SDK оголошує відповідь як Record<string, unknown>, в час виконання це JSON об’єкт, доступ до .id / .choices[0].message.content через крапку працює в .mjs, Node REPL, Bun; в строгих проектах TypeScript може знадобитися (res as any).id або вимкнення noImplicitAny в tsconfig.

Приклад 2: chat.completions (SSE потоковий)

Відкривши stream: true, create повертає асинхронний ітератор, кожен фрейм якого є ChatCompletionChunk.
Результат виконання програми:
Результати пояснюють:
  • Затримка першого фрейму 2481 мс — це час, необхідний моделі для генерації першого токена; наступні 12 фреймів прибули за 135 мс.
  • 13 фреймів разом становлять "1 2 3 4 5", кожен токен окремо в фреймі + останній фрейм з finish_reason.
  • Потокове не економить токени більше, ніж непотокове, але затримка першого слова значно знижена, що підходить для реального UI.

Приклад 3: images.generate (NanoBanana)

client.images.generate({ provider: 'nano-banana', ... }) повертає результат синхронно, не потрібно передавати параметр wait — API NanoBanana сам по собі є синхронним.
Результат виконання програми:
Результати пояснюють:
  • image_url — це стабільна адреса на CDN, яку можна безпосередньо використовувати в <img src /> або завантажити.
  • 16.6 секунд, більшість часу витрачається на інференцію моделі, витрати локального SDK можна ігнорувати.
  • trace_id — це ID запиту, наданий платформою, якщо виникнуть проблеми, надайте цей ID службі підтримки для швидшого вирішення.
  • Для асинхронних сервісів (Midjourney, Sora, Veo тощо) потрібно опитувати TaskHandle, деталі див. в SDK опитування завдань та потокові відповіді.

Приклад 4: типізоване оброблення помилок

SDK буде кидати помилки у вигляді конкретних підкласів ( AuthenticationError / BadRequestError / RateLimitError / InternalServerError / APIConnectionError тощо) відповідно до HTTP статусу, що дозволяє використовувати instanceof для точного розгалуження.
Результат програми:
Опис результату:
  • 401 автоматично відображається як AuthenticationError, бізнес-код може використовувати instanceof для точного розгалуження.
  • code: invalid_token походить з PlatformGateway, що полегшує порівняння з журналами на сервері.
  • Аналогічно 429 → RateLimitError, 400 → BadRequestError, 5xx → InternalServerError.

Приклад 5: маршрутизація кількох моделей

Один і той же клієнт може вільно перемикатися між кількома сервісами, якщо назви моделей збігаються.
Результат програми:
Опис результату:
  • Один код, один токен, охоплює чотири типи сервісів моделей OpenAI / Google / DeepSeek / xAI.
  • gemini-2.5-flash цього разу не повернув ADC_OK, це різниця у стилі виходу моделі — SDK не приховує нічого, а точно передає слова моделі бізнесу.
  • Ціни нараховуються відповідно до реальної ціни токена, шлях проходить лише один раз через PlatformGateway.

Приклад 6: Пошук Google

Результат програми:
Опис результату:
  • Один запит отримує 10 органічних результатів, назва поля organic (не organic_results).
  • Пошук проходить через Serp сервіс, нарахування за запит.
  • Один і той же екземпляр клієнта може як чатити, так і шукати, одного токена достатньо.

Налаштування

Використання в браузері

@acedatacloud/sdk є ESM + ISO (гомогенний) пакет, який можна безпосередньо import в сучасних браузерах з бандлером. Зверніть увагу: не кодуйте API Token в фронтенд-коді. Рекомендується для фронтенду:
  1. Використовуйте X402 paymentHandler — гаманець користувача підписує USDC за запитом, без потреби в токені.
  2. Або використовуйте SDK на своєму сервері, браузер лише викликає ваш власний бекенд.

Розширене: опитування завдань і потокові відповіді

  • Сервіси завдань (Midjourney, Sora, Veo, Suno): використовуйте TaskHandle для опитування, деталі одиниць, тайм-ауту та повторів дивіться в SDK опитування завдань і потокових відповідей.
  • Потоковий чат: приклад 2 на цій сторінці вже продемонстровано; потокове аудіо / відео також підтримується.

Розширене: X402 платіжні гачки

Якщо ви не хочете запитувати API Token, хочете платити за запитом на блокчейні, можна використовувати paymentHandler:
createX402PaymentHandler на стороні TypeScript приймає { network, evmProvider, evmAddress, preferScheme? } (EVM ланцюг) або { network: 'solana', solanaWallet } (Solana). На серверній стороні Node, якщо window.ethereum немає, використовуйте viem’s createWalletClient (на основі приватного ключа), щоб упакувати сумісний з EIP-1193 провайдер, а потім передайте його; детальніше про це та реальні результати на блокчейні дивіться в SDK + X402 платіжні гачки.

Як перевірити залишок

Через консоль Ace Data Cloud - Список додатків ви можете перевірити залишок на рахунку. Через консоль Ace Data Cloud - Історія використання ви можете переглянути всю історію використання та деталі витрат.

Дізнатися більше