Skip to main content
acedatacloud は Ace Data Cloud の公式 Python SDK で、api.acedata.cloud 上のすべてのサービスを型付きの client.openai.chat.completions.create(...)、client.images.generate(...)、client.search.google(...) などのメソッドにラップし、同期および非同期の2つのクライアントを提供します。 基盤は httpx に基づいており、SSE ストリーミング、自動再試行、型付き例外、および pydantic 型検証をサポートしています。 ソースコードとパッケージのアドレス:

インストール

X402 チェーン上での支払いが必要な場合(API トークンパスなし)、もう一つインストールします:
クリーンな venv のバージョンチェック出力:
結果の説明:
  • パッケージのバージョンは 2026.4.26.1(CalVer、2026 年 4 月 26 日修正)。
  • AceDataCloud は同期クライアントで、AsyncAceDataCloud は asyncio 非同期クライアントです。
  • 本 SDK は pydantic に依存せず、レスポンスボディは統一して dict を返します。この点は openai-python と異なるため、移行時には注意が必要です。

API トークンの準備

参考 SDK 概要 - API トークンの申請 からトークンを取得し、シェルで export します:
クライアントを構築する際に api_token を渡さないと、SDK は自動的に ACEDATACLOUD_API_TOKEN 環境変数を読み取ります。もしあなたの環境に ACEDATACLOUD_API_KEY がすでに保存されている場合(プロジェクトリポジトリの約定)、明示的に渡してください:AceDataCloud(api_token=os.environ["ACEDATACLOUD_API_KEY"])。

例 1:chat.completions(同期)

プログラムの実行結果:
結果の説明:
  • id はレスポンス ID で、使用履歴 で検索できます。
  • content ADC_PY_SDK_OK はモデルが実際に返した固定識別子です。
  • res["usage"] は dict を返し、pydantic モデルではありません;1 回の呼び出しで約 24 トークンを消費します。

例 2:chat.completions(SSE ストリーミング)

stream=True の場合、create は通常のジェネレーターを返し、毎回解析済みのチャンク dict を yield します。
プログラムの実行結果:
結果の説明:
  • 最初のフレームの遅延は 2104 ms で、以降の 11 フレームは 7 ms で揃いました——サービスがストリームを開始すると、ローカルで簡単に消費できます。
  • チャンクは通常の dict で、OpenAI SSE フォーマットに従って安全に .get() で値を取得できます。
  • 実際の生産環境では、yield しながら SSE をフロントエンドにプッシュすることを推奨し、全体の最初の遅延は約 2 秒になります。

例 3:AsyncAceDataCloud(非同期)

AsyncAceDataCloud の API は同期版と完全に対称で、すべての IO メソッドがコルーチンを返します。FastAPI / aiohttp / asyncio サービスに適しています。
プログラムの実行結果:
結果の説明:
  • 非同期版と同期版は同じ HTTP パスを通りますが、接続プールの実装が異なります(httpx.AsyncClient)。
  • 退出時に明示的に await client.close() で接続プールを閉じます;長寿命のサービスでは、プロセス終了前に一度閉じるだけで済みます。
  • 単回の遅延は同期とほぼ同じですが、同時実行シナリオでは非同期の利点が際立ちます——1 つのイベントループで数十から数百の inflight リクエストを同時に実行できます。

例 4:images.generate(NanoBanana)

NanoBanana API は同期生成の画像サービスで、wait を渡さないでください——SDK の呼び出しはサービスが 200 を返すまで常に待機します。
プログラムの実行結果:
結果の説明:
  • image_url は CDN 上の安定したアドレスで、直接ダウンロードまたはウェブページに埋め込むことができます。
  • 18.9 秒のほとんどはモデルの推論にかかっており、ローカル SDK のオーバーヘッドは数ミリ秒です。
  • Midjourney、Sora、Veo、Suno のような本当に非同期のタスクには、wait=True または手動で TaskHandle.wait() を使用してポーリングする必要があります。詳細は SDK タスクポーリングとストリーミングレスポンス を参照してください。

例 5:型エラー処理

例外の階層は TypeScript と一致します:AuthenticationError (401)、TokenMismatchError (トークンとサービスが一致しない)、InsufficientBalanceError (残高不足)、ResourceDisabledError (サービスが無効)、ValidationError (400)、RateLimitError (429)、ModerationError (403 コンテンツレビュー)、APIError (フォールバック)、TimeoutError(タイムアウト)、TransportError(ネットワーク層)。

設定オプション

Python SDK の timeout と TaskHandle の poll_interval / max_wait の単位は秒であり、TypeScript SDK はミリ秒を使用しています。言語間の移行時には特に注意が必要です。詳細は SDK タスクポーリングとストリーミングレスポンス を参照してください。
SDK はデフォルトで ACEDATACLOUD_API_TOKEN 環境変数を読み取ります;この記事では Claude Code VS Code チュートリアル など他のチュートリアルと統一するために、例では ACEDATACLOUD_API_KEY を使用しており、api_token=os.environ["ACEDATACLOUD_API_KEY"] を明示的に注入する必要があります。

上級:X402 支払いフック

完全なプロセスと実際のチェーン上の結果は SDK + X402 支払いフック を参照してください。

残高を確認する方法

Ace Data Cloud コンソール - アプリケーションリスト を通じて、現在のアカウントの残高を確認できます。 Ace Data Cloud コンソール - 使用履歴 を通じて、すべての使用履歴と請求の詳細を確認できます。

さらに詳しく