runlot
リファレンスAPI

ai

Covers 8 API operations in the ai category.

MethodPathDescription
GET/v1/ai/modelsAI 모델 카탈로그 (runlot ai models)
GET/v1/orgs/{orgSlug}/projects/{projectName}/aiAI 상태 (runlot ai usage)
POST/v1/orgs/{orgSlug}/projects/{projectName}/aiAI 를 켠다 (배포가 "ai": true 를 읽고 부른다)
DELETE/v1/orgs/{orgSlug}/projects/{projectName}/aiAI 를 끈다 (runlot ai delete)
GET/v1/orgs/{orgSlug}/ai/creditAI 크레딧 잔액과 자동 충전 설정 (runlot ai credit)
GET/v1/orgs/{orgSlug}/ai/ledgerAI 원장
POST/v1/orgs/{orgSlug}/ai/credit/checkout크레딧 충전 체크아웃
PUT/v1/orgs/{orgSlug}/ai/autotopup자동 충전을 켜거나 끈다

GET /v1/ai/models

env.ai 가 부를 수 있는 모델의 전부다 (docs/ai.md §2.3). 로그인만 하면 볼 수 있다 — 무엇을 살 수 있는지는 org 의 비밀이 아니고, 이 목록이 곧 가격표다.

차선이 둘이다. frontier 는 프로바이더 정가 그대로 통과시킨다 (listPrice: true, 마진 0) — 그래서 모델 id 에 프로바이더 이름이 그대로 있고 provider 도 실린다. value 는 우리가 도매로 사서 우리 값으로 파는 가성비 모델이라 provider안 싣는다: 그 값은 우리가 언제든 갈아끼운다.

단가는 100 만 토큰당 마이크로센트 정수다 (1 µ¢ = 1e-8 USD). 소수 자리를 서버가 정하지 않는 것이 요점이다 — 작은 호출이 센트로 반올림하면 0 이 되고 (docs/ai.md §3.1), 그 사실이 포맷 문자열 하나에 묶이면 안 된다.

목록에 없는 모델 id 는 호출에서 400 이다. 임의 모델 패스스루는 없다.

operationId listAIModels

Status codeDescriptionResponse body
200카탈로그object
401

GET /v1/orgs/{orgSlug}/projects/{projectName}/ai

부여 여부·상한 넷·org 잔액·최근 24 시간 사용량 (docs/ai.md §6). 부여가 없어도 상한은 채워 온다 — "켜면 이런 상한이 됩니다" 의 재료이고, granted 가 진짜 상태다.

maxOutputTokens·maxInputTokens0"모델이 정한다" 다.

spentMicroCents24husage_hourly 에서 못 만드는 수라 원장에서 따로 읽는다 — 단가가 시점의 함수이기 때문이고, 그것이 0046 이 표를 둘로 가른 이유다.

viewer 이상.

operationId getAI

Status codeDescriptionResponse body
200AI 상태AIStatus
403
404
503no_coreError

POST /v1/orgs/{orgSlug}/projects/{projectName}/ai

멱등이다. 요청 본문이 없다 — 상한도 모델 목록도 사용자가 정하는 값이 아니다.

켜지면 노드가 다음 수렴에서 env.ai 를 연결한다. 번들도 "ai": true 여야 실린다 — 부여는 CP 의 것이고 어떤 시스템 워커를 띄울지는 번들의 것이다.

노드 자격 검사가 없다: 상류(Bedrock·Vertex)는 노드 site.env 의 값이라 그 사실이 CP 에 등록돼 있지 않다. 자격 없는 노드에서는 부여가 통과하고 호출이 503 이다 (docs/ai.md §9 의 열린 것).

member 이상. 감사 ai.grant.

operationId grantAI

Status codeDescriptionResponse body
200부여 상태 (이미 있었으면 기존 값)AIStatus
403
404
503no_coreError

DELETE /v1/orgs/{orgSlug}/projects/{projectName}/ai

다음 배포부터 env.ai 가 없다. 멱등이다.

원장은 안 지운다 — 이미 지불한 돈의 기록이다. 크레딧 잔액도 그대로다: 잔액은 org 의 것이고 이 부여는 프로젝트의 것이다.

admin. 감사 ai.revoke.

operationId revokeAI

Status codeDescriptionResponse body
204껐다
403
404
503no_coreError

GET /v1/orgs/{orgSlug}/ai/credit

잔액은 마이크로센트이고 음수일 수 있다 (docs/ai.md §3.3 — 잔액 검사는 호출 전이고 차감은 뒤라 시작한 호출 하나가 잔액을 넘길 수 있다).

hasPaymentMethod 가 거짓이면 자동 충전을 켤 수 없다 — 저장된 카드가 없기 때문이고, 첫 충전은 반드시 수동이다 (그것이 카드를 저장한다).

autoTopupsTodayautoTopupPerDay 를 같이 준다. 그 상한이 곧 하루 지출 천장이라 화면이 둘을 같이 보여야 "왜 안 충전됐지" 에 답이 된다.

member 이상.

operationId getAICredit

Status codeDescriptionResponse body
200크레딧 상태AICredit
403

GET /v1/orgs/{orgSlug}/ai/ledger

금액의 정본이다 (0046). kindcall(음수)·topup(양수)·adjust. 커서는 ledger_id — 시각으로 자르면 같은 밀리초의 행 둘이 페이지 경계에서 갈린다.

member 이상.

operationId listAILedger

ParameterLocationRequiredTypeDescription
limitqueryNointeger
beforequeryNointeger이 ledger_id 보다 앞의 행
Status codeDescriptionResponse body
200원장object
403

POST /v1/orgs/{orgSlug}/ai/credit/checkout

임베드 체크아웃 URL 을 준다 (docs/billing.md §3.1 과 같은 모양 — 대시보드가 iframe 으로 띄운다).

돌아온 브라우저는 증거가 아니다. 잔액을 올리는 것은 order.paid 웹훅 하나이고, 화면은 성공 사건 뒤에 잔액을 폴링한다.

microCents 는 열거된 티어 중 하나여야 한다 — 자동 충전이 같은 목록을 쓰므로 (사람 없는 자리에서 도는 청구라 금액이 열거된 값이어야 한다) 수동만 자유롭게 두면 표가 둘이 된다.

admin.

operationId createAICreditCheckout

Request body: application/json · object

Status codeDescriptionResponse body
200체크아웃object
400충전 단위가 목록에 없다 · returnTo 가 허용된 주소가 아니다Error
403
501billing_off — 이 배치에 크레딧 상품이 없다Error

PUT /v1/orgs/{orgSlug}/ai/autotopup

켜는 것은 명시 동의다 (docs/ai.md §3.5). 화면이 "잔액이 X 아래로 내려가면 저장된 카드에 Y 를 자동으로 청구합니다. 하루 최대 N 회" 를 그대로 보여 주고 체크를 받는다 — off-session 청구는 카드사 규정이 사전 동의를 요구하고, 그 문장이 곧 동의의 내용이다.

서버가 보는 것 셋: 저장된 결제 수단이 있는가 (없으면 409), 금액이 티어 목록에 있는가, 그리고 기준이 0 보다 크고 충전 금액보다 작은가. 기준이 0 이면 충전이 비동기인 그 창 전부가 402 이고, 기준이 충전액 이상이면 한 번 충전해도 여전히 기준 아래라 하루 상한까지 계속 충전한다 — 설정이 아니라 함정이다.

admin. 감사 ai.autotopup.on / ai.autotopup.off.

operationId setAIAutoTopup

Request body: application/json · object

Status codeDescriptionResponse body
200켰다object
204껐다
400금액이 티어에 없다 · 기준이 0 이하 · 기준이 충전 금액 이상Error
403
409no_payment_method — 저장된 카드가 없다. 먼저 한 번 수동으로 충전한다Error

このページの目次