acedatacloud は Ace Data Cloud の公式 Python SDK で、api.acedata.cloud 上のすべてのサービスを型付きの client.openai.chat.completions.create(...)、client.images.generate(...)、client.search.google(...) などのメソッドにラップし、同期および非同期の2つのクライアントを提供します。
基盤は httpx に基づいており、SSE ストリーミング、自動再試行、型付き例外、および pydantic 型検証をサポートしています。
ソースコードとパッケージのアドレス:
インストール
- パッケージのバージョンは
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:型エラー処理
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"]を明示的に注入する必要があります。

