문서
시작하기

작동 방식

Markdown

프로그램과 모델 사이에서 요청이 처리되는 과정입니다.

전체 가이드

OpenAI, Anthropic 또는 Google로 직접 보내는 방식과 동일하게 Ailoot API로 요청하세요. Ailoot는 키와 잔액을 확인하고 모델에 전달한 뒤 같은 형식으로 응답하며 실제 사용량에 따라 요금을 차감합니다.

01요청클라이언트가 sk-… 키로 api.ailoot.ai에 요청을 전송합니다
02검증 및 금액 예약키, 제한, 잔액을 확인하고 응답이 진행되는 동안 금액을 예약합니다.
03모델모델이 응답하며 사용한 형식으로 결과를 반환합니다.
04차감실제 토큰에 따라 한 번만 차감하고 남은 예약액은 해제합니다.

키 하나 — 세 형식

형식은 모델이 아니라 요청 경로에 따라 결정됩니다. 같은 Claude 모델을 OpenAI Chat, OpenAI Responses 또는 Anthropic Messages로 호출하면 호출한 경로의 형식으로 응답합니다.

형식경로사용 클라이언트
OpenAI Chat Completions/v1/chat/completionsOpenAI SDK, 대부분의 채팅·편집기, n8n, LangChain
OpenAI Responses/v1/responsesCodex CLI, OpenAI Agents SDK, SDK의 새 버전
Anthropic Messages/v1/messagesClaude Code, Anthropic SDK, Zed, Cline
Gemini/v1beta/models/{model}:generateContentGemini CLI, Google GenAI SDK

비용: 금액 예약 및 단일 차감

  • 새 텍스트 요청을 보내기 전에 Ailoot는 입력과 일반적인 응답의 예상 비용을 예약하며, 지정한 한도(max_tokens)와 해당 모델의 조건을 반영합니다. 예약액이 가용 잔액이나 키 한도를 초과하면, 전달할 한도는 실제로 그 한도를 지키는 모델과 메서드에서만 줄일 수 있습니다. 256토큰과 정해진 최소 응답량 중 어느 것도 밑돌 수 없습니다. 출력이 이미지, 영상, 오디오인 경우에는 결과 전체 비용의 예약을 유지합니다.
  • 응답 후 실제 사용량에 따라 한 번만 차감합니다. 사용하지 않은 예약액은 잔액으로 즉시 반환됩니다.
  • 응답 비용이 예약액보다 크면 가용 잔액에서 차액을 차감합니다. 잔액은 음수가 되지 않습니다.
  • 최소 예약액도 충당하지 못하면 요청을 보내지 않습니다. 이해하기 쉬운 402 오류를 받고 아무 금액도 차감되지 않습니다.
  • 결과 없는 오류에는 과금하지 않습니다.

설명과 계산 예제 페이지: 금액 예약 및 차감.

Request ID가 포함된 오류

모든 응답에는 요청 식별자가 있습니다. 헤더 X-Request-ID 및 오류 메시지에 표시됩니다. 호출한 형식의 JSON 오류이므로 SDK가 올바르게 인식합니다. 문제가 발생하면 Request ID를 다음으로 보내주세요: 지원팀 — 요청을 찾는 데 일 분이면 됩니다.

401 Unauthorized
{
  "code": "API_KEY_REQUIRED",
  "error": {
    "code": "invalid_api_key",
    "message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
    "param": null,
    "reason": "invalid_api_key",
    "request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
    "type": "invalid_request_error"
  },
  "message": "No API key was sent with the request. Nothing was charged. …"
}

스트리밍 및 타임아웃

스트리밍 응답(stream: true)은 Server-Sent Events로 전달됩니다. Ailoot는 유료 텍스트 응답을 비용 계산 후 전달합니다. 따라서 설정 stream: true 사용 시 SSE 형식은 유지되지만 텍스트는 모델이 완료한 뒤 한 번에 전달되며 단어별로 전달되지 않습니다. 약 15초 이상 걸리면 Chat Completions, Responses, Messages 스트림에서 먼저 서비스용 줄 : ping 이 약 10초 간격으로 오고, 다음 줄 : ailoot-charged-usd … 에는 차감 금액이 담기며, 그 뒤에 실제 응답 데이터가 전달됩니다. SDK는 이러한 서비스용 줄을 건너뜁니다.

Gemini 형식에는 서비스용 줄이 없습니다. 응답 :streamGenerateContent 은 계산 후 한 번에 전달됩니다. 추론 모델의 클라이언트 타임아웃에 여유를 두세요. 몇 분 걸리는 것은 정상입니다.

응답 헤더

X-Request-ID 는 모든 응답에 포함됩니다. 나머지 Ailoot 헤더는 유료 텍스트 응답에 추가합니다:

헤더내용
X-Request-ID요청 식별자. 지원팀이 확인을 위해 요청합니다
X-Ailoot-Charged-USD이 요청의 차감 금액(달러)
X-Ailoot-Output-Tokens결제된 응답 토큰 수
X-Ailoot-Max-Tokens-Capped전체 예약액을 충당하지 못해 축소한 응답 한도
X-Ailoot-Notice-Code, X-Ailoot-Notice응답이 길이 한도에서 종료된 경우의 설명

서비스용 줄로 스트림이 이미 시작됐다면 헤더 대신 데이터 전에 주석 줄로 해당 정보를 전달합니다.

프롬프트 캐시

캐시 지원 모델에서 긴 접두사(시스템 지침, 문서)를 다시 전송하면 비용이 줄 수 있습니다. 모델 카드의 캐시 읽기·쓰기 가격 확인 위치: 카탈로그. 캐시 적중 여부는 모델 개발자가 결정하며 Ailoot는 보장하지 않습니다.

궁금한 점이 남았나요? Request ID와 설명을 보내 주시면 해결을 도와드리겠습니다.지원팀에 문의