Skip to main content
acedatacloud är Ace Data Clouds officiella Python SDK, som kapslar in alla tjänster på api.acedata.cloud i typade metoder som client.openai.chat.completions.create(...), client.images.generate(...), client.search.google(...) osv., och erbjuder både synkrona och asynkrona klienter. Den är baserad på httpx, stödjer SSE-strömning, automatisk omförsök, typade undantag och pydantic-typvalidering. Källkod och paketadress:

Installation

Om du behöver betala på X402-kedjan (utan API-tokenväg), installera en till:
Kontrollera versionen i en ren venv:
Resultatförklaring:
  • Paketversionen är 2026.4.26.1 (CalVer, revidering den 26 april 2026).
  • AceDataCloud är den synkrona klienten, AsyncAceDataCloud är asyncio-asynkron klient.
  • Denna SDK är inte beroende av pydantic, svarskroppen returnerar enhetligt dict. Detta skiljer sig från openai-python, så var uppmärksam vid migrering.

Förbered API-token

Referera till SDK-översikt - Ansök om API-token för att få token, och exportera den i shell:
Vid konstruktion av klienten, om du inte anger api_token, kommer SDK automatiskt att läsa ACEDATACLOUD_API_TOKEN miljövariabeln. Om din miljö redan har ACEDATACLOUD_API_KEY (projektförrådets överenskommelse), vänligen ange det uttryckligen: AceDataCloud(api_token=os.environ["ACEDATACLOUD_API_KEY"]).

Exempel 1: chat.completions (synkron)

Programresultat:
Resultatförklaring:
  • id är svar-ID, som kan hittas i användningshistorik.
  • content ADC_PY_SDK_OK är den fasta identifieringen som modellen faktiskt returnerade.
  • res["usage"] returnerar dict, inte pydantic-modell; en anrop förbrukar cirka 24 token.

Exempel 2: chat.completions (SSE-strömning)

När stream=True returnerar create en vanlig generator som varje gång yieldar en parserad chunk dict.
Programresultat:
Resultatförklaring:
  • Första ramen fördröjning 2104 ms, de efterföljande 11 ramarna tog bara 7 ms för att komma fram - så snart tjänsten börjar strömma kan den konsumeras smidigt lokalt.
  • chunk är en vanlig dict, värden kan hämtas säkert enligt OpenAI SSE-formatet med .get().
  • I praktisk produktion rekommenderas det att strömma SSE till frontend medan man yieldar, den totala första fördröjningen ligger nära 2 sekunder.

Exempel 3: AsyncAceDataCloud (asynkron)

API:et för AsyncAceDataCloud är helt symmetriskt med den synkrona versionen, men alla IO-metoder returnerar coroutine. Lämplig för FastAPI / aiohttp / asyncio-tjänster.
Programresultat:
Resultatförklaring:
  • Den asynkrona versionen och den synkrona versionen går via samma HTTP-väg, men implementeringen av anslutningspoolen är olika (httpx.AsyncClient).
  • Vid avslutning, se till att await client.close() stänger anslutningspoolen; i tjänster med lång livslängd behöver den bara stängas en gång innan processen avslutas.
  • Enstaka fördröjning är ungefär densamma som den synkrona, men i samtidiga scenarier visar den asynkrona versionen sin fördel - en event loop kan köra dussintals eller hundratals pågående förfrågningar samtidigt.

Exempel 4: images.generate (NanoBanana)

NanoBanana API är en synkron tjänst för att generera bilder, skicka inte wait - SDK-anropet kommer att vänta tills tjänsten returnerar 200.
Programresultat:
Resultatbeskrivning:
  • image_url är en stabil adress på CDN, som kan laddas ner eller bäddas in på en webbsida.
  • 18,9 sekunder var nästan helt modellens inferens; lokala SDK-kostnader var bara några millisekunder.
  • För verkligt asynkrona uppgifter som Midjourney, Sora, Veo, Suno, behöver du använda wait=True eller manuellt TaskHandle.wait() för att pollera, se SDK-uppgiftspolling och strömmande svar.

Exempel 5: Typfelhantering

Undantagsnivåerna är desamma som i TypeScript: AuthenticationError (401), TokenMismatchError (token matchar inte tjänsten), InsufficientBalanceError (otillräcklig balans), ResourceDisabledError (tjänsten är inaktiverad), ValidationError (400), RateLimitError (429), ModerationError (403 innehållsgranskning), APIError (fallback), TimeoutError (timeout), TransportError (nätverkslager).

Konfigurationsalternativ

Python SDK:s timeout och TaskHandle:s poll_interval / max_wait har enhet i sekunder, TypeScript SDK använder millisekunder, var särskilt uppmärksam vid överföring mellan språk. Se SDK-uppgiftspolling och strömmande svar.
SDK läser som standard miljövariabeln ACEDATACLOUD_API_TOKEN; för att enhetliggöra med Claude Code VS Code-tutorial och andra tutorials, används i exemplet ACEDATACLOUD_API_KEY, vilket kräver api_token=os.environ["ACEDATACLOUD_API_KEY"] för att injicera explicit.

Avancerat: X402 betalningshook

Fullständig process och verkliga resultat på kedjan finns i SDK + X402 betalningshook.

Hur man ser kvarvarande saldo

Genom Ace Data Cloud-konsolen - Applista kan du se det aktuella kontots kvarvarande saldo. Genom Ace Data Cloud-konsolen - Användningshistorik kan du se all användningshistorik och avgiftsdetaljer.

Lär dig mer