Claude OpenAI 호환 형식
Fast-Token은 OpenAI API 프로토콜로 Anthropic Claude 시리즈 모델을 호출할 수 있습니다. OpenAI SDK 또는 /v1/chat/completions 기반 앱이 있다면 보통 base_url과 model만 변경하면 Claude에 연결할 수 있으며, Anthropic Messages 네이티브 API로 다시 작성할 필요가 없습니다.
이 페이지는 사용 안내가 중심입니다. 각 인터페이스의 요청 본문, 응답 필드, 온라인 디버깅은 ChatGPT 문서 및 아래 기능 대조표 링크를 참고하세요.
두 가지 연동 방식
| 비교 항목 | OpenAI 호환 형식(본 페이지) | Claude 네이티브 API(동일 디렉터리 기타 문서) |
|---|---|---|
| 일반적인 경로 | POST /v1/chat/completions | POST /v1/messages |
| 요청 본문 | messages, model, stream 등 OpenAI 필드 | messages, system, thinking 등 Anthropic 필드 |
| 적합한 경우 | 기존 OpenAI 클라이언트, 다중 모델 통합 게이트웨이, 빠른 이전 | Claude 전용 기능(확장 사고 예산, Tool Use, PDF, 웹 검색 등) |
| 문서 위치 | 본 페이지 + 채팅 그룹 | 본 폴더 「채팅」 그룹의 API 페이지 |
두 방식은 동일한 API Key와 게이트웨이 주소를 공유합니다. 요금은 모델 광장의 해당 모델을 기준으로 합니다.
연동 설정
게이트웨이 및 인증
- Base URL:
https://fast-token.com/v1(빠른 시작과 동일) - 인증: 요청 헤더
Authorization: Bearer <Fast-Token_API_KEY> - 모델 이름: 모델 광장에서
claude가 포함된 모델 ID를 복사해model필드에 입력
OpenAI SDK 사용(권장)
공식 SDK의 base_url을 Fast-Token으로 지정하면 나머지는 OpenAI와 동일합니다:
from openai import OpenAI
client = OpenAI(
base_url="https://fast-token.com/v1",
api_key="<Fast-Token_API_KEY>",
)
completion = client.chat.completions.create(
model="claude-sonnet-4-20250514", # 모델 광장 기준
messages=[
{"role": "user", "content": "用一句话介绍你自己"},
],
)
print(completion.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://fast-token.com/v1",
apiKey: "<Fast-Token_API_KEY>",
});
const completion = await client.chat.completions.create({
model: "claude-sonnet-4-20250514",
messages: [{ role: "user", content: "用一句话介绍你自己" }],
});
console.log(completion.choices[0].message.content);스트리밍 대화는 stream: true로 설정하세요. 채팅 완료 생성(스트리밍) 참고.
chat 호환 형식 기능 개요
아래 기능은 모두 OpenAI 호환 경로로 접근합니다. 콘솔 또는 Apifox에서는 「chat 호환 형식」으로 분류되는 경우가 많습니다. 구현상 대부분 동일한 POST /v1/chat/completions이며 모델, 스트리밍, 메시지 구조로 시나리오를 구분합니다.
| 기능 | 설명 | 참고 문서 |
|---|---|---|
| 사고 채팅 생성 | 모델 「사고」 과정이 포함된 대화 | 스트리밍 (extra_body.enable_thinking) |
| 채팅 완료 생성(스트리밍) | 표준 다중 턴 텍스트 대화, SSE 스트리밍 | 채팅 완료 생성(스트리밍) |
| 채팅 완료 생성(비스트리밍) | 표준 다중 턴 텍스트 대화, 일괄 응답 | 채팅 완료 생성(비스트리밍) |
| 채팅 이미지 인식(스트리밍) | 이미지 업로드로 이해·설명·질의 | 채팅 이미지 인식 생성(스트리밍) |
| 채팅 이미지 인식(비스트리밍) | 이미지 인식, 비스트리밍 전체 응답 | 채팅 이미지 인식 생성(비스트리밍) |
모델 선택
각 시나리오의 모델 ID는 모델 광장을 기준으로 하세요. 이름에 claude가 있고 해당 대화·이미지 인식·사고를 지원한다고 표시된 모델을 시도하세요. 「모델 없음」 또는 미지원이면 동일 시나리오의 다른 Claude 항목으로 바꾸세요.
시나리오별 사용 요점
표준 채팅(스트리밍 / 비스트리밍)
- 엔드포인트:
POST /v1/chat/completions messages배열로 다중 턴 대화 유지;role은system/user/assistant(OpenAI와 동일)- 비스트리밍:
stream: false또는stream생략 → 채팅 완료 생성(비스트리밍) - 스트리밍:
stream: true→ 채팅 완료 생성(스트리밍) - 공통 매개변수(
temperature,max_tokens,top_p등)는 OpenAI 문서와 동일
system 역할
OpenAI 형식에서는 messages의 role: "system"에 시스템 프롬프트를 작성합니다. 네이티브 Claude API는 상위 system 필드를 자주 사용합니다. → 채팅 완료 생성(스트리밍)
사고 모드(사고 채팅 생성)
일부 Claude 사고 모델은 스트리밍 요청에서 확장 필드로 사고 출력을 켤 수 있습니다:
{
"model": "claude-sonnet-4-20250514",
"messages": [{ "role": "user", "content": "逐步推导:为什么天空是蓝色的?" }],
"stream": true,
"extra_body": {
"enable_thinking": true
}
}- 호환 형식에서 사고 표시 방식은 게이트웨이와 모델에 따라 다릅니다. 모델 광장에서 「사고」를 지원하는 Claude 모델을 선택하세요
- 사고 토큰 예산(
thinking.budget_tokens)을 정밀 제어하고 사고 블록과 본문 블록을 구분하려면 네이티브 확장 사고 채팅 생성(POST /v1/messages)을 사용하세요
이미지 인식(비전)
user 메시지 content에 멀티모달 배열: text + image_url(URL 또는 Base64)을 사용합니다.
{
"model": "claude-sonnet-4-20250514",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "描述这张图片中的主要内容" },
{
"type": "image_url",
"image_url": { "url": "https://example.com/photo.jpg" }
}
]
}
],
"stream": true
}- 스트리밍 이미지 인식:
stream: true→ 채팅 이미지 인식 생성(스트리밍) - 비스트리밍:
stream: false→ 채팅 이미지 인식 생성(비스트리밍) - Base64: 채팅 이미지 인식 생성(스트리밍) Base64
OpenAI 호환 vs 네이티브 Claude API 선택
| 요구 사항 | 권장 |
|---|---|
| 빠른 연동, OpenAI SDK / 기존 코드 재사용 | OpenAI 호환 형식(본 페이지) |
확장 사고, budget_tokens, 사고 블록 SSE 구조 | 네이티브 API — 확장 사고 채팅 생성 |
| Tool Use / 함수 호출 | 네이티브 API — 함수 호출 생성(스트리밍) |
| 구조화 출력(JSON Schema) | 네이티브 API — 구조화된 출력 생성 |
| PDF, 웹 검색 | 네이티브 API — PDF 지원, 웹 검색 |
| OpenAI 클라이언트로 「채팅 + 이미지 인식 + 사고」만 필요 | OpenAI 호환 형식으로 주 경로 커버 |
자주 묻는 질문
Q: OpenAI 공식 문서와 완전히 같지 않은 이유는?
A: 호환 계층이 요청/응답을 OpenAI에 맞추고 실제는 Claude가 동작합니다. OpenAI 전용 매개변수 일부는 무시될 수 있으며, 실제 모델 지원을 기준으로 하세요.
Q: model에는 무엇을 넣나요?
A: 모델 광장의 전체 모델 ID(보통 claude 포함)를 사용하세요. 약칭이나 만료된 이름은 쓰지 마세요.
Q: Anthropic 공식 Python SDK를 쓸 수 있나요?
A: 기본 대상은 POST /v1/messages입니다. SDK를 유지하려면 본 폴더 네이티브 API 문서를 따르고, OpenAI SDK는 본 페이지 호환 형식용입니다.
Q: 스트리밍 응답 형식은?
A: SSE, data: {...} 행과 종료 data: [DONE], OpenAI 스트리밍 Chat Completions와 동일. → 채팅 완료 청크 객체
Q: 전체 응답 JSON 구조는?
A: → 채팅 완료 객체. 네이티브 Messages API: → 채팅 완료 객체(Anthropic 형식)
더 읽기
- 빠른 시작 — 첫 호출 및 API Key
- API 빠른 시작 가이드 — Base URL 및 클라이언트
- 모델 목록 —
GET /v1/models - 본 폴더 기타 페이지 — Claude 네이티브 Messages API 상세 매개변수 및 예제