베이스 URL 및 인증
Unrestricted AI API는 https://api.unrestrictedai.top/v1에 호스팅됩니다. OpenAI 채팅 완성 구조를 따르므로 base_url을 업데이트하고 API 키를 제공하기만 하면 기존 OpenAI SDK를 사용할 수 있습니다. 계정당 활성 키가 하나만 필요하며, 무검열 모델에 즉시 액세스할 수 있습니다. 인증은 Bearer 방식을 사용하여 Authorization 헤더를 통해 처리됩니다. 키는 선불 크레딧 사용량을 제어하므로 안전하게 보관해야 합니다. 구독 서비스와 달리 처리된 토큰에 대해서만 지불하며, 오류 및 거부는 토큰 0개로 청구됩니다.
첫 번째 요청
연결성을 테스트하려면 표준 채팅 완성 요청을 보내십시오. 모델 ID는 항상 uncensored입니다. 이 엔드포인트는 텍스트 입력을 받아 최대 100,000개의 토큰을 컨텍스트 창에서 지원하며 텍스트 출력을 반환합니다. max_tokens을 지정하지 않으면 API는 출력 토큰 2,048개로 기본값이 설정됩니다. 이 간단한 POST 요청은 합법적인 성인 또는 논쟁적인 주제에 대한 콘텐츠 필터 없이 프롬프트를 보내고 생성된 응답을 받는 핵심 기능을 보여줍니다.
Python SDK 통합
공식 OpenAI Python 라이브러리를 사용하는 것이 통합하는 가장 빠른 방법입니다. 클라이언트를 베이스 URL로 지정하고 키를 전달하세요. 아래 코드는 기본 동기식 요청을 보여줍니다. 이 접근 방식은 JSON 파싱을 자동으로 처리하여 Python 변수에서 응답 콘텐츠에 직접 액세스할 수 있게 합니다. 스트리밍 지연 시간보다 코드 단순성이 중요한 백엔드 서비스나 배치 처리에 이상적입니다.
Node.js SDK 통합
JavaScript 환경에서는 OpenAI Node.js 클라이언트를 구성하여 엔드포인트를 지정하세요. Node.js의 비동기 특성은 API 응답 시간과 잘 맞습니다. 베이스 URL을 올바르게 설정하면 SDK가 요청 형식을 처리합니다. 이 API는 이미지, 오디오 또는 임베딩 엔드포인트를 지원하지 않으므로 텍스트 기반 완료에 집중하세요. 이 방법은 무검열 LLM 응답을 동적 콘텐츠에 삽입해야 하는 웹 서버나 엣지 함수에 적합합니다.
스트리밍 응답
요청에 stream: true을 설정하여 스트리밍을 활성화하세요. API는 서버 전송 이벤트(SSE)를 통해 데이터를 반환하여 토큰을 실시간으로 받을 수 있습니다. 토큰 사용량 및 청구 지표는 스트림의 마지막 청크에 포함됩니다. 이는 특히 긴 출력의 경우 최종 사용자의 지각된 지연 시간을 줄입니다. 즉시 텍스트 렌더링이 사용자 경험을 향상시키는 채팅 인터페이스에는 스트리밍이 권장됩니다. 선불 크레딧을 정확하게 추적하려면 총 토큰 수를 확인하기 위해 마지막 청크를 모니터링하세요.
제한, 오류 및 컨텍스트
각 API 키는 분당 300개 요청 및 8개의 동시 요청으로 제한됩니다. 요청 본문은 8 MB를 초과할 수 없습니다. 일반적인 오류에는 유효하지 않은 키에 대한 401, 선불 크레딧이 고갈되었을 때의 402, 속도 제한에 대한 429이 포함됩니다. 컨텍스트 창은 프롬프트와 완성을 모두 포함하여 총 100,000개의 토큰을 지원합니다. 이러한 제한을 초과하면 지수 백오프를 구현하십시오. 크레딧은 만료되지 않으며, 중복 청구 같은 실수는 지원 페이지를 통해 처리되어 선불 가치를 영구적으로 보유할 수 있습니다.
cURL
curl https://api.unrestrictedai.top/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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.unrestrictedai.top/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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.unrestrictedai.top/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);스트리밍
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)