OpenAI 호환 API: 세 줄로 클라이언트 전환
기본 URL과 API 키만 변경하면 기존 코드는 그대로 유지됩니다. 이 교체 가능한 OpenAI 호환 API는 투명한 토큰별 가격으로 무검열 LLM API 경험을 제공합니다.
- 기본 URL
- https://api.openaicompatibleapi.com/v1
- 모델
- 무검열
사전 준비: OpenAI SDK 설치
요청을 보내기 전에 선호하는 언어에 대한 공식 OpenAI SDK가 개발 환경에 설치되어 있는지 확인하세요. 이는 개발자가 OpenAI 호환 API와 상호 작용하는 표준 방식이며, 일관된 타입과 오류 처리를 보장합니다. Python의 경우 pip install openai를 사용하세요. Node.js의 경우 npm install openai을 실행하세요. 이러한 라이브러리는 하위 HTTP 세부 사항을 처리하므로 프롬프트 전달과 텍스트 출력 수신에 집중할 수 있습니다.
기본 URL 및 API 키 구성
서비스의 핵심 장점은 두 가지 구성 값만 업데이트하면 된다는 것입니다. 클라이언트를 다음 기본 URL로 지정하십시오: https://api.openaicompatibleapi.com/v1. 그런 다음 가입 페이지에서 API 키를 생성하십시오. 등록 직후에 표시되며 신용카드가 필요하지 않습니다. 클라이언트 초기화 시 base_url 및 api_key을 설정하십시오. 이는 기존 로직을 다시 작성하지 않고 기존 프로젝트에 대한 직접적인 GPT API 대체제가 됩니다.
첫 번째 요청 보내기
모델 ID uncensored를 사용하여 표준 채팅 완료 요청을 보내세요. 이 모델은 합법적인 성인 사용에 대한 콘텐츠 거부 없이 답변하도록 튜닝된 오픈 웨이트 대형 언어 모델입니다. GPT, Claude 또는 기타 벤더의 모델이 아닙니다. 간단한 텍스트 프롬프트로 즉시 연결성을 테스트할 수 있습니다. 응답은 content 필드에 생성된 텍스트를 반환합니다.
curl https://api.openaicompatibleapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
스트리밍 응답 활성화
더 나은 사용자 경험을 위해 스트리밍을 활성화하여 생성되는 토큰을 받으십시오. 요청에 stream=True을 설정하십시오. SDK는 도착하는 대로 청크를 제공하므로 부분 결과를 즉시 표시할 수 있습니다. 이는 최대 100,000 토큰의 긴 컨텍스트 창에 특히 유용합니다. 스트리밍은 표준 OpenAI 클라이언트와 동일하게 작동하여 기존 오류 처리 로직과의 호환성을 유지합니다.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
도구 호출(함수 호출) 사용
당사의 API는 구조화된 함수 호출을 지원합니다. tools 매개변수에 함수를 정의하면 모델이 응답에서 함수 호출을 반환합니다. 그런 다음 해당 함수를 실행하고 결과를 모델에 다시 보내 추가 추론을 수행할 수 있습니다. 이 기능은 표준 함수 호출 형식을 지원하는 모든 OpenAI 호환 클라이언트와 함께 작동합니다. 복잡한 LLM 프록시를 관리하지 않고 에이전트를 구축하거나 워크플로우를 자동화하는 데 이상적입니다.
from openai import OpenAI
client = OpenAI(base_url="https://api.openaicompatibleapi.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
사용 가능한 모델 확인
사용 가능한 모델을 확인하려면 GET /v1/models 엔드포인트를 쿼리하세요. uncensored 모델이 나열됩니다. 이는 API 키와 베이스 URL이 올바르게 구성되었음을 확인합니다. 이 엔드포인트를 사용하여 인증 문제를 디버깅할 수도 있습니다. 엔드포인트가 목록을 반환하면 개발자를 위한 AI API에 대한 연결이 활성화된 것입니다. 다른 모델은 제공되지 않으므로 구성이 단순하게 유지됩니다.
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openaicompatibleapi.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);기술 사양
크레딧을 구매하기 전에 확인할 수 있도록 API의 실제 한도와 기능을 한곳에 정리했습니다.
| 항목 | 내용 |
|---|---|
| 형식 | OpenAI 호환: 어떤 OpenAI SDK든 base URL과 키만 바꾸면 동작 |
| 엔드포인트 | POST /v1/chat/completions · GET /v1/models |
| 모델 ID | uncensored |
| 인증 | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.openaicompatibleapi.com/v1 |
| 스트리밍 | 지원 — SSE, 마지막 청크에 토큰 사용량 포함 |
| JSON 모드 | response_format: {"type": "json_object"} |
| 함수 호출 | 지원 — tools, tool_choice; 응답에 tool_calls (스트리밍 포함), 결과는 role: tool로 전송 |
| 파라미터 | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| 최대 출력 | 100,000 토큰 윈도우의 남은 만큼; max_tokens는 선택 사항(별도 상한 없음) |
| 컨텍스트 창 | 100,000 토큰 (입력 + 출력) |
| 응답 헤더 | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| 속도 제한 | 키당 분당 300회 |
| 요청 크기 | 최대 8 MB |
| 동시 요청 | 키당 동시 8개 |
| 가격 | 입력 100만 토큰당 $0.25 · 출력 100만 토큰당 $1.00 |
| 보너스 | $50 이상 +5%, $100 이상 +10% |
| 과금 | 선불 크레딧에서 실제 사용량만큼 차감, 오류·거부는 무료 |
| 유효기간 | 유료 크레딧은 만료되지 않으며 구독 없음 |
| 충전 | USDT (TRC20) 또는 USDC (Base), $10~$500 사이 원하는 정수 금액 |
| 무료 체험 | $0.50, 7일, 카드 불필요 · 체험 키: 동시 요청 2건, 분당 60건. 첫 충전 후 전체 한도(8건, 300건) 적용 |
| 콘텐츠 | 성인 콘텐츠 허용, 미성년자가 관련된 성적 콘텐츠는 거부 |
| 키 | 계정당 활성 키 1개, 새 키를 만들면 이전 키는 무효 |
| 로그인 | Google 또는 이메일과 비밀번호 |
오류 코드
오류는 고정된 type을 가진 JSON으로 반환되며, 실패하거나 거부된 요청은 과금되지 않습니다.
| 코드 | 유형 | 의미 |
|---|---|---|
400 | bad_request | 잘못된 JSON, 빈 메시지, 잘못된 파라미터 또는 컨텍스트 초과 |
401 | missing_key · invalid_key · key_revoked | 키 없음·잘못됨·새 키로 교체됨 |
402 | no_credit | 잔액 없음 — 충전하면 즉시 재개 |
403 | content_blocked | 미성년자 관련 성적 콘텐츠 — 거부, 과금 없음 |
404 | not_found | 알 수 없는 엔드포인트 |
413 | request_too_large | 본문 8 MB 초과 |
429 | rate_limited · concurrency | 분당 300회 또는 동시 8개 초과 — 잠시 후 재시도 |
503 | upstream_busy | 모델 혼잡 — 몇 초 후 재시도 |
질문과 답변
속도 제한은 어떻게 되나요?
API 키당 분당 300개의 요청으로 제한됩니다. 요청 본문 크기는 8 MB로 제한됩니다. 제한을 초과하면 429 오류가 발생합니다. 키 자체에는 속도 제한이 적용되지만, 언제든지 키를 재생성하여 연결을 초기화할 수 있습니다.
401 또는 402 오류가 발생하는 이유는 무엇인가요?
401 오류는 유효하지 않거나 만료된 API 키를 의미합니다. 402 오류는 선불 크레딧이 고갈되었음을 의미합니다. 무료 무제한 티어를 제공하지 않으므로 무검열 LLM API를 계속 사용하려면 충전해야 합니다. 크레딧은 만료되지 않으므로 USDT 또는 USDC로 $10부터 충전할 수 있습니다.
컨텍스트 창이 정말 100k인가요?
네, 모델은 프롬프트와 완료 합계 기준 엄격한 100,000 토큰 컨텍스트 창을 지원합니다. 이를 통해 광범위한 문서 처리 또는 긴 대화를 수행할 수 있습니다. 절단 또는 오류를 피하려면 입력이 이 제한 내에 있는지 확인하세요.
키는 양식 하나만 작성하면 받을 수 있습니다
계정을 생성하고 키를 복사한 다음 기본 URL을 변경하십시오. 설정은 이것뿐입니다.