Autentifikācija
Katram izsaukumam, kas palaiž modeli vai nolasa jūsu pieprasījumus, ir nepieciešama API atslēga. Katalogs (GET /models,
GET /categories), POST /quote un OpenAPI dokuments ir publiski.
API atslēgas
Izveidojiet un atsauciet atslēgas vietnē https://doitong.com/developers/dashboard#keys. Atslēga izskatās
kā doitong_, kam seko 64 heksadecimālas rakstzīmes, un tā tiek parādīta tikai vienreiz — izveides brīdī. Nosūtiet to
Authorization galvenē:
curl https://api.doitong.com/v1/account -H "Authorization: Bearer $DOITONG_API_KEY"
X-API-Key: <key> darbojas tāpat.
Pieprasījums bez atslēgas saņem 401 ar kodu missing_api_key; nezināma, atsaukta vai beigusies atslēga saņem 401 tāpat.
Tvērumi
Katrai atslēgai ir tvērumi. Modeļu API tos pārbauda:
| Darbība | Nepieciešamais tvērums |
|---|---|
| Palaist modeli, atcelt pieprasījumu, dzēst pieprasījuma failus, mainīt krātuves iestatījumu | models:run (darbojas arī atslēgas ar vecāko images:create vai videos:create) |
| Izveidot augšupielādes URL | models:run vai media:upload |
| Lasīt pieprasījumus un kontu | models:read (atslēga, ar kuru drīkst palaist modeļus, var arī lasīt) |
Jaunās atslēgas pēc noklusējuma saņem models:read un models:run. Izsaukums bez pareizā tvēruma saņem 403 ar kodu
insufficient_scope.
Kredītu budžeti
Atslēgai var būt savs budžets API kredītos (1000 API kredītu = 1 $), ko iestata konta īpašnieks: kopējais budžets, dienas budžets
(pēdējās 24 stundas) vai abi. Pirms maksas iekasēšanas par izpildi izmaksas tiek salīdzinātas ar summu, ko atslēga jau ir
iztērējusi, izmantojot šo API (atskaitot atmaksas). Izpilde, kas pārsniegtu šo summu, tiek noraidīta ar 402 budget_exceeded, un nekas
netiek iekasēts.
Atslēga bez budžeta var
iztērēt līdz API atlikuma summai. Atsevišķi izpilde, ko API atlikums nevar segt, saņem 402 insufficient_credits
ar top_up_url.
GET https://api.doitong.com/v1/account parāda API atlikumu un atslēgas atlikušo budžetu (abi API kredītos):
{
"object": "account",
"credits": 125000,
"balance": { "credits": 125000, "usd": "125.00" },
"top_up_url": "https://doitong.com/developers/dashboard#balance",
"key": {
"name": "Production server",
"prefix": "doitong_3fa9c1e...",
"scopes": ["models:read", "models:run"],
"budget_remaining": 50000,
"rate_limit": 3600,
"rate_limit_remaining": 3571
},
"webhook_signing_secret": "whsec_..."
}
budget_remaining ir null, ja atslēgai nav sava budžeta.
Ātruma ierobežojumi
Katra atslēga var veikt 3600 pieprasījumus stundā, ja vien tās ierobežojums nav iestatīts citādi. Katrā autentificētā atbildē ir norādīts pašreizējais stāvoklis:
| Galvene | Nozīme |
|---|---|
X-RateLimit-Limit |
Pašreizējā logā atļautie pieprasījumi |
X-RateLimit-Remaining |
Pašreizējā logā atlikušie pieprasījumi |
X-RateLimit-Reset |
Unix laiks, kad logs tiek atiestatīts |
Pārsniedzot ierobežojumu, saņemsiet 429 ar Retry-After galveni (sekundēs). Ilgstoša gaidīšana ar ?wait= tiek uzskaitīta kā viens pieprasījums
katrā izsaukumā, tāpēc gaidīšana ir izdevīgāka nekā bieža statusa pārbaude.
Turklāt vienam kontam vienlaikus var būt ne vairāk kā 10 procesā esoši pieprasījumi (queued vai running). Sākot vēl vienu, tiek atgriezts
429 too_many_inflight; sāciet to vēlreiz pēc tam, kad kāds pieprasījums ir pabeigts.