Developer guide

API 호출하기

API 호환 경로와 스트리밍·음성 규칙

Written in 한국어. A version in your language is being prepared.

이 페이지는 인증을 마친 뒤 실제로 부르는 경로를 다룹니다.
OpenAI 호환 경로와 Anthropic 호환 경로의 목록, 요청 본문에 stream 을 켰을 때 응답이 오는 방식,
음성·보이스 경로에만 적용되는 규칙 순서입니다.
모델 ID 와 모델별 허용된 호출은 모델 페이지에, 인증 헤더와 base URL 은 API 키로 인증하기 페이지에 있습니다.

진행 경로

두 호환 규격은 같은 API 키를 쓰고, 대화형 추론 모델은 어느 규격으로도 부를 수 있습니다. 하려는 일과 쓰던 SDK 에 따라 경로를 고릅니다.

하려는 일규격경로
대화형 추론, OpenAI SDK 사용OpenAI 호환POST /chat/completions 또는 POST /responses
대화형 추론, Anthropic SDK 사용Anthropic 호환POST /v1/messages
임베딩 생성OpenAI 호환POST /embeddings
음성 합성·전사, 보이스 관리OpenAI 호환/audio 와 /voices 아래 경로
호출할 수 있는 모델 확인둘 다GET /models

OpenAI 호환 경로

base URL 은 https://platform.clevi.net/api/v2/aiservice/openai/v1 이고, 요청과 응답 본문은 OpenAI 규격을 따릅니다. 아래 표는 추론과 모델 경로이며, 음성·보이스 경로는 뒤의 절에 따로 정리했습니다.

메서드경로설명
POST/api/v2/aiservice/openai/v1/chat/completions대화형 추론. stream 을 켜면 SSE 로 응답합니다.
POST/api/v2/aiservice/openai/v1/responsesResponses 규격 호출. stream 을 지원합니다.
GET/api/v2/aiservice/openai/v1/responses/{responseId}저장된 응답 1건을 조회합니다.
GET/api/v2/aiservice/openai/v1/responses/{responseId}/input_items저장된 응답의 입력 항목 목록입니다.
POST/api/v2/aiservice/openai/v1/responses/{responseId}/cancel백그라운드로 진행 중인 응답을 취소합니다.
DELETE/api/v2/aiservice/openai/v1/responses/{responseId}저장된 응답을 삭제합니다.
POST/api/v2/aiservice/openai/v1/completions레거시 텍스트 완성. stream 을 지원합니다.
POST/api/v2/aiservice/openai/v1/embeddings임베딩 생성. 스트리밍은 지원하지 않습니다.
GET/api/v2/aiservice/openai/v1/models이 키로 호출할 수 있는 모델 목록입니다.
GET/api/v2/aiservice/openai/v1/models/{modelId}모델 1건 조회. 접근할 수 없으면 404 입니다.
curl https://platform.clevi.net/api/v2/aiservice/openai/v1/chat/completions \
  -H "X-API-Key: sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "cip-5.5-im",
    "messages": [{"role": "user", "content": "안녕하세요"}]
  }'

sk-... 자리에는 API 키 화면에서 발급한 키를, model 에는 모델 페이지의 ID 를 넣습니다.

그 밖의 경로

경로설명
GET /api/v2/aiservice/openai/v1/healthz음성 provider 의 상태를 확인합니다.
/api/v2/aiservice/openai/v1/api/status · /api/options · /api/generate · /outputs/{filename}레거시 Cosa 의 상태·옵션 조회, 생성 호출(multipart), 산출물 내려받기입니다.
/api/v2/aiservice/openai/v1/{routeKey} (GET · POST · PUT · PATCH · DELETE)위에 없는 provider 경로를 규칙을 적용해 중계합니다. POST 중계로 chat/completions, completions, embeddings, responses 를 부르면 404 이며, 넷은 전용 경로가 처리합니다.

Anthropic 호환 경로

base URL 은 https://platform.clevi.net/api/v2/aiservice/anthropic 이며 Anthropic SDK 가 경로에 /v1 을 스스로 붙입니다. 요청과 응답 본문은 Anthropic Messages 규격을 따릅니다.

메서드경로설명
POST/api/v2/aiservice/anthropic/v1/messagesMessages 규격 호출. model·messages·max_tokens 가 필요하고 stream 을 지원합니다.
POST/api/v2/aiservice/anthropic/v1/messages/count_tokens과금 없이 입력 토큰 수만 추정합니다. max_tokens 는 필요 없습니다.
GET/api/v2/aiservice/anthropic/v1/models커서 페이지네이션 모델 목록입니다. limit 은 1~1000 이며 벗어나면 400 입니다.
GET/api/v2/aiservice/anthropic/v1/models/{modelId}모델 1건 조회. 접근할 수 없으면 404 입니다.
curl https://platform.clevi.net/api/v2/aiservice/anthropic/v1/messages \
  -H "X-API-Key: sk-..." \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "cip-5.5-im",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "안녕하세요"}]
  }'

스트리밍 (SSE)

요청 본문에 "stream": true 를 넣으면 서버가 Server-Sent Events 로 응답합니다. 경로와 모델에 따라 아래처럼 다릅니다.

대상동작
OpenAI 호환 POST /chat/completions · POST /completions · POST /responsesstream 을 지원합니다.
Anthropic 호환 POST /v1/messagesstream 을 지원합니다.
POST /embeddings스트리밍을 지원하지 않습니다.
Ivy 검색 계열 모델(ivy-4-mm-search 등)stream 을 켜도 서버가 끄고 한 번에 응답합니다.
GET /responses/{responseId}?stream=true400 으로 거절됩니다. 백그라운드 응답의 사용량을 정확히 한 번만 계량할 수 있을 때까지 닫아 둔 경로입니다.

첫 청크와 함께 아래 세 헤더가 내려갑니다. 이후에는 청크마다 event: 줄(업스트림이 이벤트 이름을 준 경우에만)과 data: 줄을 보내고 즉시 flush 합니다.

  • Content-Type: text/event-stream
  • Cache-Control: no-cache
  • X-Accel-Buffering: no

Anthropic 호환 경로의 청크는 event 줄과 data 줄이 짝을 이룹니다.

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"안"}}

chat/completions 의 청크는 data 줄로 오고, 끝에 data: [DONE] 이 그대로 전달됩니다.

data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[...]}

data: [DONE]

음성과 보이스 경로

TTS·STT 와 Cosa 보이스 관리 경로는 OpenAI 호환 규격에 있으며, 일반 추론과 다른 규칙이 몇 가지 있습니다. 어떤 모델이 어느 경로를 허용하는지는 모델 페이지의 Cosa 표에 있습니다.

메서드경로설명
POST/api/v2/aiservice/openai/v1/audio/speech텍스트를 음성으로 합성해 오디오를 그대로 내려받습니다.
POST/api/v2/aiservice/openai/v1/audio/transcriptions오디오를 텍스트로 전사합니다 (multipart).
POST/api/v2/aiservice/openai/v1/audio/speech/clone복제 보이스로 음성을 합성합니다 (multipart).
GET/api/v2/aiservice/openai/v1/voices내가 쓸 수 있는 보이스 목록입니다.
POST/api/v2/aiservice/openai/v1/voices오디오 샘플로 보이스를 등록합니다 (multipart).
POST/api/v2/aiservice/openai/v1/voices/design설명문으로 합성 보이스를 만듭니다.
DELETE/api/v2/aiservice/openai/v1/voices/{voiceId}보이스를 삭제합니다. 소유자만 가능합니다.
음성·보이스 경로에만 적용되는 규칙
규칙내용
바이너리 전달audio/speech, audio/speech/clone, outputs/{filename} 의 성공 응답은 오디오를 그대로 흘려보내면서 동시에 CleviDrive 에 저장합니다.
영수증 헤더X-Clevi-Drive-File-Id, X-Clevi-Drive-File-Version-Id, X-Clevi-Drive-Download-Url, X-Clevi-Drive-Expires-At, X-Clevi-Drive-Retention-Days: 3 이 내려갑니다. 보존 기간은 3일이고 이후에는 404 입니다.
Product 선택audio/speech 와 audio/transcriptions 는 본문의 model 로 Product 를 고릅니다. 보이스·진단 경로는 X-Product-Sku 헤더 또는 product_sku 쿼리가 필요합니다.
보이스 소유권복제·등록한 보이스는 만든 주체에게 귀속됩니다. 남의 보이스로 합성하거나 삭제하려 하면 403 이고, GET /voices 목록도 본인 소유만 남깁니다.
크기와 시간요청 상한은 28 MiB, 업스트림 호출 제한 시간은 5분입니다.
provider 혼잡업스트림이 바쁘면 409 가 그대로 전달되고, Retry-After 를 주면 그 값도 함께 전달됩니다. 게이트웨이가 재시도하거나 큐에 넣지 않습니다.
CLEVI

Bahasa dan wilayah

Bahasa yang diterjemahkan oleh mesin ditandakan. Ketersediaan mengikut pakej laman yang diterbitkan.

136 bahasa

Disyorkan

1

Asia Timur

7

Asia Tenggara

11

Asia Selatan

18

Asia Tengah

5

Timur Tengah dan Kaukasus

10

Eropah Barat dan Eropah Selatan

16

United Kingdom dan Ireland

4

Eropah Utara

10

Eropah Tengah dan Balkan

14

Eropah Timur

5

Afrika Timur

8

Afrika Barat dan Afrika Tengah

9

Selatan Afrika

8

Amerika

5

Oceania

5