Developer guide

API 키로 인증하기

API 키를 넣는 헤더와 SDK 에 설정할 base URL

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

CLEVI 게이트웨이는 OpenAI 호환 경로와 Anthropic 호환 경로를 API 키 하나로 인증합니다.
클라이언트에서 설정할 값은 키를 담는 인증 헤더와 SDK의 base URL 두 가지이며, 허용되는 헤더 형식과 base URL이 규격마다 다릅니다.
설정을 마친 뒤 모델 목록을 조회하면 인증 여부를 바로 확인할 수 있습니다.
인증에 실패하면 401을, 인증을 통과한 뒤 권한이나 한도 조건을 충족하지 못하면 403을 반환합니다.

API 키는 콘솔의 API 키 화면에서 발급하세요. 같은 화면에서 키의 폐기와 사용 범위를 관리할 수 있습니다.

인증 헤더

두 규격 모두 요청 헤더 하나에 API 키를 담습니다. X-API-Key 헤더와 Authorization 헤더 중 하나를 사용하며, 허용되는 형식은 규격에 따라 다릅니다.

헤더OpenAI 호환Anthropic 호환
X-API-Key: <키>사용 가능사용 가능
Authorization: Bearer <키>사용 가능사용 가능
Authorization: <키> (Bearer 없이)거절사용 가능

OpenAI 호환 경로에서 Authorization 헤더를 사용할 때는 Bearer 접두사가 필요합니다. 접두사 없이 키만 보내면 게이트웨이가 요청을 거절합니다.

헤더 이름은 대소문자를 구분하지 않으므로 Anthropic SDK가 보내는 x-api-key 헤더도 그대로 동작합니다. 두 헤더를 모두 지정하면 X-API-Key 값이 우선 적용됩니다.

base URL

기존에 사용하던 SDK는 base URL만 아래 주소로 바꾸면 그대로 사용할 수 있습니다. 두 주소는 /v1을 포함하는지가 다르므로 규격에 맞는 주소를 그대로 지정하세요.

규격base URL경로 규칙
OpenAI 호환https://platform.clevi.net/api/v2/aiservice/openai/v1/v1까지 base URL에 포함합니다.
Anthropic 호환https://platform.clevi.net/api/v2/aiservice/anthropicAnthropic SDK가 요청 경로에 /v1을 직접 추가하므로 /v1 앞에서 끝납니다.

인증 확인

키와 base URL을 설정한 뒤 모델 목록을 조회하면 인증 여부를 확인할 수 있습니다. 아래 예제는 같은 조회를 curl, OpenAI SDK, Anthropic SDK로 실행합니다. sk-... 자리에는 API 키 화면에서 발급한 키를 넣으세요.

curl로 조회할 때는 두 규격 모두 /v1/models까지 전체 경로를 지정합니다. 첫 번째 명령은 OpenAI 호환 경로에 X-API-Key 헤더를, 두 번째 명령은 Anthropic 호환 경로에 Authorization 헤더를 사용합니다.

curl https://platform.clevi.net/api/v2/aiservice/openai/v1/models \
  -H "X-API-Key: sk-..."

curl https://platform.clevi.net/api/v2/aiservice/anthropic/v1/models \
  -H "Authorization: Bearer sk-..." \
  -H "anthropic-version: 2023-06-01"

OpenAI SDK는 base_url에 /v1까지 포함한 주소를 지정합니다.

from openai import OpenAI

client = OpenAI(
    api_key="sk-...",
    base_url="https://platform.clevi.net/api/v2/aiservice/openai/v1",
)

for model in client.models.list():
    print(model.id)

Anthropic SDK는 base_url을 /v1 앞에서 끝나는 주소로 지정합니다.
인증에는 SDK가 보내는 x-api-key 헤더를 그대로 사용합니다.

from anthropic import Anthropic

client = Anthropic(
    api_key="sk-...",
    base_url="https://platform.clevi.net/api/v2/aiservice/anthropic",
)

for model in client.models.list(limit=20).data:
    print(model.id)

어느 예제든 응답이 200이면 인증에 성공한 것이며, 응답의 data에 이 키로 호출할 수 있는 모델 목록이 담깁니다. 401이면 다음 절의 순서로 원인을 확인하세요.

인증 실패

키가 없거나 만료·폐기된 키를 보내면 401을 반환합니다. OpenAI 호환 경로에서 키 없이 호출하면 아래 본문을 반환하며, Anthropic 호환 경로에서는 error.type이 authentication_error입니다.

{
  "error": {
    "message": "API key is required.",
    "type": "invalid_request_error"
  }
}

401을 받으면 다음 순서로 확인하세요.

  1. API 키 화면에서 키 상태를 확인하세요. 만료되었거나 폐기된 키면 새로 발급하세요.
  2. 헤더 이름이 X-API-Key 또는 Authorization인지 확인하세요.
  3. OpenAI 호환 경로에서 Authorization 헤더를 사용한다면 Bearer 접두사가 있는지 확인하세요.

수정한 뒤 인증 확인 절의 모델 목록 조회를 다시 실행해 200이 오는지 확인하세요.

함께 쓰는 헤더

다음 헤더는 모두 선택 사항입니다. 문제를 추적할 수 있도록 X-Request-Id는 지정해 두기를 권장합니다.

헤더용도생략하면
X-Request-Id요청 추적용 식별자입니다. Anthropic 호환 경로는 응답의 request-id 헤더로 같은 값을 반환합니다.서버가 발급합니다.
X-Region-Code호출 리전을 지정합니다.global입니다.
X-Product-Sku (쿼리 product_sku로도 지정 가능)과금에 사용할 Product SKU를 직접 지정합니다. 헤더가 쿼리보다 우선하며 주로 음성·보이스 경로에서 사용합니다.보이스 경로에서는 생략할 수 없습니다. audio/speech와 audio/transcriptions는 요청 본문의 model로 Product를 선택합니다.
anthropic-version / anthropic-betaAnthropic 호환 경로에서 그대로 전달합니다.버전은 2023-06-01입니다.

5xx가 반복되면 도움말과 문의로 X-Request-Id와 함께 알려 주세요. 직접 지정한 값이면 클라이언트 기록과 바로 대조할 수 있습니다.

CLEVI

Язык и регион

Языки, переведённые машинным способом, отмечены. Доступность определяется опубликованным пакетом сайта.

136 языков

Рекомендуется

1

Восточная Азия

7

Юго-Восточная Азия

11

Южная Азия

18

Центральная Азия

5

Ближний Восток и Кавказ

10

Западная Европа и Южная Европа

16

Великобритания и Ирландия

4

Северная Европа

10

Центральная Европа и Балканы

14

Восточная Европа

5

Восточная Африка

8

Западная Африка и Центральная Африка

9

Южная Африка

8

Америка

5

Океания

5