Qwen Abliterated API: 호스팅 모델 호출, GPU 불필요

이미 사용하는 OpenAI SDK를 사용하여 HTTP를 통해 무검열 채팅 모델을 호출하고 가중치 다운로드나 GPU 임대 없이 사용할 수 있습니다. 이 가이드는 설정 방법, 작동하는 코드 및 정확한 비용을 보여줍니다.
주요 포인트
- OpenAI SDK의 base URL을 설정하고 모델을 uncensored로 설정하세요.
- 스트리밍, 도구 호출 및 JSON 모드는 표준 파라미터를 통해 작동합니다.
- 제한: 전체 키 기준 동시 요청 8회, 분당 300회.
- 토큰당 결제: 입력 100만 토큰당 $0.15, 출력 100만 토큰당 $0.50.
짧은 답변: base URL 변경
qwen abliterated api를 찾고 있다면, OpenAI 프로토콜을 사용하는 호스팅 엔드포인트가 실용적인 방법입니다. 클라이언트 코드를 유지하고 두 값을 변경한 후 모델을 실행하는 서버로 요청을 보냅니다. GGUF 다운로드, 양자화 선택, VRAM 예산이 필요 없습니다.
명명 방식에 대한 필수 참고 사항: 이는 독립적인 서비스이며 공식 Qwen API가 아니며, 호스팅 모델은 Qwen 체크포인트 이름이 아닌 uncensored로 호출됩니다. 이는 독립적인 제공업체가 실행하며, 합법적인 성인 사용자를 위해 콘텐츠 거부 없이 답변하도록 조정된 오픈 웨이트 모델입니다. 특정 abliterated 파일이 필요한 경우 해당 파일을 로컬에서 실행하세요. 애플리케이션에 안정적인 채팅 엔드포인트가 필요한 경우 계속 읽으세요.
| 설정 | 내용 |
|---|---|
| 기본 URL | https://api.qwenabliterated.top/v1 |
| 모델 | uncensored |
| 인증 헤더 | Authorization: Bearer YOUR_API_KEY |
| 엔드포인트 | POST /v1/chat/completions, GET /v1/models |
| 컨텍스트 창 | 100,000 토큰, 프롬프트 및 생성 포함 |
키 받기
Google로 로그인하거나 이메일과 비밀번호로 가입한 후 API 키 페이지를 엽니다. 신규 사용자는 클릭 한 번으로 1인당 $0.50의 무료 체험 크레딧을 받을 수 있으며, 유효 기간은 7일이고 카드 등록이 필요하지 않습니다. 아래 모든 예시를 여러 번 실행하기에 충분합니다.
체험용 키는 전체 키보다 낮은 제한이 있습니다: 동시 요청은 2개, 분당 요청은 60개로 제한되며, 전체 키는 각각 8개와 300개를 지원합니다. 병렬 작업자로 테스트할 때 이를 염두에 두십시오.
키를 소스 제어에 저장하는 대신 환경 변수에 저장하세요:
export QWENABL_KEY="paste-your-key-here"Python으로 첫 번째 요청
공식 SDK를 pip install openai 명령어로 설치한 후:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.qwenabliterated.top/v1",
api_key=os.environ["QWENABL_KEY"],
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are a blunt technical assistant."},
{"role": "user", "content": "Explain what a KV cache is in three sentences."},
],
temperature=0.7,
)
print(resp.choices[0].message.content)
print(resp.usage)
응답에는 usage 블록이 포함되어 있어 프롬프트 및 생성 토큰을 로깅하고 지출을 계산할 수 있습니다. 헤더에는 지원 문의용 X-Request-Id과 대시보드 없이 잔여 크레딧을 확인할 수 있는 X-Balance-USD이 포함됩니다.
왜 GGUF 파일 대신 API를 사용해야 하나요
무검열 모델에 도달하는 일반적인 경로는 양자화된 파일을 찾고 로컬 런타임에서 로드한 후 로컬 서버에 연결하는 것입니다. 이는 작동하며 실험적인 목적에는 학습에 좋은 방법입니다. 하지만 실험에서 다른 사람이 사용하는 서비스로 넘어갈 때 마찰이 발생합니다.
첫째, 하드웨어입니다. 짧은 컨텍스트에서는 데스크탑 카드에 맞을 수 있는 파일도 긴 컨텍스트에서는 맞지 않을 수 있습니다. 어텐션 캐시는 토큰마다 증가하기 때문입니다. 둘째, 동시성입니다. 단일 로컬 프로세스는 1~2개의 채팅을 원활하게 처리하지만, 10명의 사용자가 동시에 접속하면 대기열이 발생합니다. 셋째, 가용성입니다. 가정용 컴퓨터는 절전 모드로 들어가거나, 전원이 끊기며, 잘못된 시점에 드라이버 업데이트를 받습니다. 호스팅 API는 이러한 문제를 타인의 업무로 전환하며, 사용된 토큰만큼만 지불하면 됩니다.
양보하는 것은 특정 체크포인트를 선택할 수 있는 자유와 바이트가 네트워크를 벗어나지 않는다는 보장입니다. 프로젝트에 더 중요한 것이 무엇인지 결정한 후 선택하세요.
Node.js 및 curl
Node SDK는 동일한 두 옵션을 사용합니다:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.qwenabliterated.top/v1",
apiKey: process.env.QWENABL_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Give me five names for a fantasy tavern." }],
});
console.log(resp.choices[0].message.content);
curl의 경우 어떤 연결 전에 키를 확인하는 데 유용합니다:
curl -s https://api.qwenabliterated.top/v1/models \
-H "Authorization: Bearer $QWENABL_KEY"
성공적인 호출은 uncensored를 포함하는 JSON 목록을 반환합니다. 401은 키가 잘못되었거나 누락되었음을 의미합니다. 문서에서는 오류 형식을 자세히 다룹니다.
스트리밍, JSON 모드 및 도구
스트리밍
stream: true를 설정하고 서버 전송 이벤트를 읽으세요. 사용량은 스트림 끝에 보고됩니다.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Write a short scene on a night train."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
스트리밍 요청은 스트림이 끝날 때까지 동시성 슬롯을 유지하므로 스트림을 열고 떠나는 클라이언트는 용량을 차단합니다. 항상 스트림을 소비하거나 닫으세요.
JSON 모드
response_format={"type": "json_object"}를 전달하고 프롬프트에 JSON을 언급하세요. 어쨌든 방어적으로 구문 분석하세요. 모든 모델이 매번 스키마를 완벽하게 따르는 것은 아닙니다.
함수 호출
tools를 보내고 선택적으로 tool_choice를 사용하세요. 모델이 도구를 요청하면 실행하고 role: "tool" 메시지로 출력을 반환하세요. 도구 호출도 스트리밍됩니다. 샘플링 파라미터 temperature, top_p, stop, seed 및 빈도 및 존재 패널티가 전달됩니다.
실제 애플리케이션에 적용하기
단일 스크립트는 쉽습니다. 애플리케이션에는 몇 가지 더 많은 패턴이 필요하며, 이는 OpenAI 스타일 API를 사용할 때 사용하는 것과 동일한 패턴입니다.
키는 서버에 보관하세요
브라우저 코드나 모바일 앱에 키를 직접 넣지 마세요. API를 백엔드에서 호출하고 인증 및 사용자별 제한을 추가할 수 있는 프론트 엔드에 자체 경로를 노출하세요. 번들에서 키를 찾는 사람은 누구나 크레딧을 사용할 수 있습니다.
시간 초과를 설정하고 출력을 제한하세요
완성 텍스트는 100,000개 토큰 창에 남은 부분을 모두 사용할 수 있으며, max_tokens은 선택 사항입니다. 채팅 기능의 경우 인터페이스에 맞는 상한을 설정하여 비정상적으로 긴 답변으로 요금이 폭증하는 것을 방지하십시오. 클라이언트 타임아웃과 함께 사용하면 각 호출에 대한 시간과 비용의 상한을 설정할 수 있습니다.
요청 ID를 로깅하세요
모든 응답에는 X-Request-Id이 포함됩니다. 호출에 대한 자체 기록 옆에 저장하세요. 결과가 잘못 보이거나 요청이 실패할 때 해당 식별자는 지원이 정확한 요청을 찾는 데 도움이 됩니다. X-Balance-USD 헤더는 간단한 알림에 유용합니다: 숫자가 임계값 아래로 떨어지면 작업이 다 떨어지기 전에 메시지를 보내세요.
시작 시 모델 목록 확인
GET /v1/models을 호출하는 상태 확인은 토큰 비용이 들지 않으며 키, URL 및 네트워크 경로를 한 단계로 확인합니다. 서비스 부팅 시 실행하고 오류가 반환되면 명확하게 실패하세요.
제한 및 오류 처리
제한을 초과하는 요청은 HTTP 429를 받습니다. 오류 코드는 어떤 제한에 도달했는지 알려줍니다: rate_limited은 분당 요청이 너무 많음을 의미하고, concurrency은 동시에 너무 많음을 의미합니다. 일시적인 과부하 동안 API는 Retry-After: 5 헤더와 함께 429도 반환합니다. 최대 본문 크기는 8 MB입니다.
헤더를 준수하고 백오프하세요:
import time
from openai import OpenAI, RateLimitError
def ask(client, messages, tries=5):
for attempt in range(tries):
try:
return client.chat.completions.create(model="uncensored", messages=messages)
except RateLimitError as e:
wait = int(e.response.headers.get("Retry-After", 5))
time.sleep(wait * (attempt + 1))
raise RuntimeError("still rate limited")
작업자 풀을 실행하는 경우 전체 키의 경우 스레드를 8개로 제한하세요. 그 이상으로 가면 작업이 429 오류로 전환됩니다. 실패하거나 거부된 요청은 요금이 부과되지 않으므로 실패 시 재시도로 인해 추가 비용이 발생하지 않습니다.
요청 비용
입력 토큰은 100만 토큰당 $0.15, 출력 토큰은 100만 토큰당 $0.50입니다. 정확한 계산 예시:
- 프롬프트 토큰 2,000개와 완료 토큰 500개로 채팅 턴: 2,000 x $0.15 / 1M = $0.0003, 더하기 500 x $0.50 / 1M = $0.00025, 합계 $0.00055. 1,000턴은 $0.55가 듭니다.
- 10M 입력 토큰을 보내고 2M 출력 토큰을 받는 배치 작업: $1.50 더하기 $1.00, 합계 $2.50.
- 90,000 프롬프트 토큰과 1,000 출력 토큰으로 긴 컨텍스트 호출: $0.0135 더하기 $0.0005, 합계 $0.014.
크레딧은 선불 크레딧이며, 만료되지 않으며, 구독이 없습니다. $20에서 $500까지 전체 금액으로 충전할 수 있습니다. $50 추가 시 5% 보너스가 주어지므로 $50 충전 시 $52.50의 크레딧이 제공됩니다. 암호화폐(TRC20 USDT, Base USDC)로 결제하세요. 전체 보너스 표는 가격 책정 페이지를 참조하세요.
호스팅 또는 로컬 파일: 어떤 것이 적합합니까
로컬 GGUF는 격리로 인한 프라이버시와 정확한 가중치에 대한 완전한 제어를 제공합니다. 호스팅 API는 하드웨어 작업이 필요 없고 긴 컨텍스트와 다른 서비스가 호출할 수 있는 URL을 제공합니다. 봇, 글쓰기 도구 또는 게임 백엔드를 구축하는 대부분의 팀은 여분의 GPU 박스를 계속 실행해야 하므로 호스팅이 더 간단하다고 생각합니다.
토큰당 결제와 Qwen 스타일 모델에 접근하는 다른 방식들을 더 넓게 비교하려면 비교 가이드를 참조하세요. API로 전송된 프롬프트는 학습에 사용되지 않습니다. 이 모델은 텍스트 전용이며, 미성년자가 포함된 성적 콘텐츠는 어떤 상황에서도 허용되지 않습니다.
더 많은 가이드
질문과 답변
사용하려면 GPU가 필요한가요?
아니요. 모델은 제공업체 서버에서 실행됩니다. 코드에서는 HTTP 요청만 보내므로 노트북이나 소규모 VPS면 충분합니다.
어떤 모델 이름을 보내야 합니까?
모델 값으로 uncensored를 전송하세요. /v1/models 엔드포인트로 GET 요청을 보내서 확인할 수 있습니다.
OpenAI Python 및 Node SDK를 지원하나요?
네. 기본 URL을 사이트의 /v1 주소로 설정하고 API 키를 사용하세요. 채팅 완료, 스트리밍, 도구 호출 및 JSON 모드는 일반 파라미터를 통해 작동합니다.
요청이 너무 많으면 어떻게 되나요?
rate_limited 또는 concurrency 코드로 HTTP 429를 받습니다. 기다렸다가 재시도하고, Retry-After 헤더가 있는 경우 이를 준수하세요.
무료로 테스트할 수 있는 방법이 있나요?
새로운 사용자는 API 키 페이지에서 한 번의 클릭으로 $0.50의 무료 체험 크레딧을 받을 수 있습니다. 유효 기간은 7일이며 카드 등록이 필요하지 않습니다.