Whisper 파이프라인을 위한 Quickstart
표준 OpenAI 호환 채팅 완성 API를 사용해 음성 또는 이미지 파이프라인에 무검열 텍스트 모델을 통합하세요. 이 가이드는 요청 전송, 스트리밍 처리, 후처리 작업을 위한 컨텍스트 창 관리의 필수 단계를 다룹니다.
사전 준비 사항
시작하기 전에 활성 계정과 API 키가 있는지 확인하세요. 이메일과 비밀번호만으로 API 키 받기 페이지에서 가입하세요. 키는 즉시 표시됩니다. 7일 유효한 무료 체험 크레딧으로 $0.50가 제공되며 신용카드가 필요하지 않습니다. 프로덕션 환경에서는 암호화폐(USDT 또는 USDC)로 $10부터 충전할 수 있습니다. 당사는 명확한 가격 정책을 따릅니다: 입력 토큰 100만 개당 $0.25, 출력 토큰 100만 개당 $1.00입니다. 크레딧은 만료되지 않습니다.
Base URL: https://api.whisperapis.com/v1. 이 엔드포인트는 모든 OpenAI 호환 클라이언트와 함께 작동합니다. Base URL을 구성하고 인증 헤더에 API 키를 제공하기만 하면 됩니다. 기본 HTTP 요청에는 특수 SDK가 필요하지 않습니다.
클라이언트 초기화
대부분의 개발자는 공식 OpenAI SDK 또는 호환 라이브러리를 사용할 것입니다. 클라이언트를 초기화할 때 Base URL을 저희 쪽으로 지정하세요. 이렇게 하면 모든 요청이 OpenAI 서버가 아닌 저희 무검열 모델로 라우팅됩니다. 모델 ID는 항상 uncensored입니다.
환경 변수 OPENAI_API_KEY가 대시보드의 키로 설정되어 있는지 확인하세요. 다른 언어나 라이브러리를 사용하는 경우 커스텀 Base URL을 지원하는지 확인해야 합니다. SDK는 JSON 직렬화와 헤더 주입을 처리하여 파이프라인 스크립트의 반복 코드량을 줄여줍니다.
채팅 완성 요청 보내기
파이프라인 출력을 정제하기 위해 표준 채팅 완성 요청을 보내세요. 예를 들어 음성 인식 녹취록에서 구조화된 JSON을 추출하거나 콘텐츠 필터 없이 이미지에 캡션을 생성할 수 있습니다.
엔드포인트는 POST /v1/chat/completions입니다. 모델 ID, 메시지 배열 및 선택적으로 무검열 동작을 정의하는 시스템 프롬프트를 포함하세요.
curl https://api.whisperapis.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."}]
}'당사의 모델은 고컨텍스트 데이터를 잘 처리하며 총 100,000개의 토큰을 지원합니다. 이를 통해 단일 패스로 긴 녹취록이나 상세한 이미지 설명을 처리하는 데 이상적입니다.
스트리밍 응답
실시간 후처리 또는 인터랙티브 파이프라인을 위해 스트리밍을 활성화하세요. 요청에서 stream 매개변수를 true로 설정하세요. API는 단일 JSON 객체 대신 서버 전송 이벤트(SSE)를 반환합니다.
도달하는 대로 delta 필드를 구문 분석하세요. 이는 스크립트 생성이나 노이즈가 많은 OCR 결과에서 긴 텍스트 블록 추출과 같은 대용량 출력의 지각된 지연 시간을 줄여줍니다. 스트리밍 형식은 표준 OpenAI SDK 스트리밍 핸들러와 호환됩니다.
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)클라이언트에서 부분 청크를 올바르게 처리해야 합니다. 스트림이 finish_reason이 stop 또는 length로 종료될 때까지 델타를 집계하여 전체 텍스트 응답을 복원하세요.
함수 호출 지원
당사의 무검열 모델은 함수 호출을 지원하여 파이프라인에 구조화된 출력을 정의할 수 있습니다. JSON 스키마 정의를 사용하여 tools 배열에 도구를 정의하세요.
모델은 응답에서 함수 호출을 반환하며 이를 실행하여 대화 컨텍스트를 업데이트할 수 있습니다. 이는 음성 녹취록에서 날짜, 이름 또는 좌표와 같은 비정형 텍스트에서 특정 데이터 포인트를 추출하는 데 유용합니다.
from openai import OpenAI
client = OpenAI(base_url="https://api.whisperapis.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)후속 메시지에서는 함수 호출을 API로 다시 전달하세요. 모델은 결과를 기반으로 출력을 정제합니다. 이를 통해 채팅 인터페이스를 벗어나지 않고도 복잡한 다단계 추론이 가능합니다. 잘못된 JSON 응답을 피하기 위해 스키마를 엄격하게 유지하세요.
제한, 오류 및 컨텍스트
중단을 피하려면 사용량을 모니터링하세요. API는 키당 분당 300개 요청의 제한을 적용합니다. 이를 초과하면 429 속도 제한 오류가 발생합니다. 클라이언트에서 지수 백오프를 구현하세요.
일반적인 오류:
401: 유효하지 않거나 만료된 API 키. 대시보드에서 키를 재생성하세요.402: 부족 크레딧. 처리를 계속하려면 계정에 충전하세요.429: 속도 제한 초과. 요청 빈도를 줄이거나 작은 작업을 배치하세요.
컨텍스트 창: 모델은 프롬프트 + 생성에 대해 100,000개의 토큰을 지원합니다. 입력이 이를 초과하면 오래된 메시지를 잘라내거나 데이터를 분할하세요. 요청 본문은 8 MB로 제한됩니다. 신뢰할 수 있는 성능을 위해 페이로드가 이러한 제약 내에 들어오도록 보장하세요.
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.whisperapis.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 사양
크레딧을 구매하기 전에 확인할 수 있도록 API의 실제 한도와 기능을 한곳에 정리했습니다.
| 항목 | 내용 |
|---|---|
| 형식 | OpenAI 호환: 어떤 OpenAI SDK든 base URL과 키만 바꾸면 동작 |
| 모델 ID | uncensored |
| 엔드포인트 | POST /v1/chat/completions · GET /v1/models |
| 인증 | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.whisperapis.com/v1 |
| 최대 출력 | 100,000 토큰 윈도우의 남은 만큼; max_tokens는 선택 사항(별도 상한 없음) |
| 스트리밍 | 지원 — SSE, 마지막 청크에 토큰 사용량 포함 |
| JSON 모드 | response_format: {"type": "json_object"} |
| 파라미터 | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| 함수 호출 | 지원 — tools, tool_choice; 응답에 tool_calls (스트리밍 포함), 결과는 role: tool로 전송 |
| 컨텍스트 창 | 100,000 토큰 (입력 + 출력) |
| 요청 크기 | 최대 8 MB |
| 속도 제한 | 키당 분당 300회 |
| 동시 요청 | 키당 동시 8개 |
| 응답 헤더 | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| 충전 | USDT (TRC20) 또는 USDC (Base), $10~$500 사이 원하는 정수 금액 |
| 보너스 | $50 이상 +5%, $100 이상 +10% |
| 과금 | 선불 크레딧에서 실제 사용량만큼 차감, 오류·거부는 무료 |
| 무료 체험 | $0.50, 7일, 카드 불필요 · 체험 키: 동시 요청 2건, 분당 60건. 첫 충전 후 전체 한도(8건, 300건) 적용 |
| 유효기간 | 유료 크레딧은 만료되지 않으며 구독 없음 |
| 가격 | 입력 100만 토큰당 $0.25 · 출력 100만 토큰당 $1.00 |
| 키 | 계정당 활성 키 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 | 모델 혼잡 — 몇 초 후 재시도 |
질문과 답변
컨텍스트 창 크기는 얼마인가요?
이 모델은 프롬프트와 생성 결과를 모두 포함해 100,000개의 토큰을 지원하는 컨텍스트 창을 제공합니다. 이를 통해 단일 요청으로 대용량 녹취록이나 상세 설명을 처리할 수 있습니다.
이 API는 이미지나 오디오를 생성하나요?
아니요. 이는 텍스트 전용 채팅 완성 API입니다. 음성 인식이나 이미지 생성 등 다른 모달리티의 텍스트 출력 후처리를 위해 설계되었습니다. 오디오, 이미지, 비디오는 생성하지 않습니다.
스트리밍 오류를 어떻게 처리하나요?
스트리밍 응답은 SSE 이벤트를 반환합니다. 오류가 발생하면 스트림은 일반적으로 최종 청크의 error 필드에 오류 메시지와 함께 종료됩니다. 클라이언트에서 연결 끊김을 우아하게 처리하고 필요시 재시도하도록 보장해야 합니다.
키는 양식 하나만 작성하면 받을 수 있습니다
계정을 생성하고 키를 복사한 후 Base URL을 변경하세요. 설정이 여기까지입니다.