베이스 URL 및 인증
API는 https://api.nsfwchatbot.cc/v1에서 작동합니다. 표준 Bearer 토큰 인증을 사용합니다. API 키 받기 페이지를 통해 단일 API 키를 얻으며, Google 또는 이메일 로그인을 지원합니다. 키는 Authorization 헤더에 전송해야 합니다. 계정당 활성 키는 하나만 존재하며, 새 키를 생성하면 이전 키가 무효화됩니다. 월 구독은 없으며 크레딧은 선불이며 만료되지 않습니다.
클라이언트 라이브러리가 위의 베이스 URL을 가리키는지 확인하세요. 모델 식별자는 항상 uncensored입니다. 이는 GPT나 Claude와 구별되는 최소 콘텐츠 거부를 위해 튜닝된 오픈 웨이트 모델입니다. 합법적인 성인 콘텐츠에 대한 일반적인 가드레일 없이 원시 텍스트 응답을 제공합니다.
첫 번째 요청
기본 요청은 OpenAI chat-completions 엔드포인트를 반영합니다. 모델, 메시지 및 선택적 매개변수를 지정합니다. API는 텍스트 응답을 반환합니다. max_tokens을 생략하면 기본 출력 제한은 2,048 토큰입니다. 컨텍스트 창은 프롬프트와 완료를 합해 최대 100,000 토큰을 지원합니다.
다음 예제는 curl을 사용한 표준 텍스트 완성 요청을 보여줍니다.
curl https://api.nsfwchatbot.cc/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."}]
}'이것은 생성된 텍스트를 포함하는 JSON 객체를 반환합니다. 오류는 본문에 오류 객체와 함께 표준 HTTP 상태 코드를 반환합니다.
Python SDK
공식 OpenAI Python 라이브러리를 사용하여 our base URL을 가리키도록 구성하세요. 이렇게 하면 기존 클라이언트 코드를 최소한의 변경으로 활용할 수 있습니다. API 키를 api_key로 전달하고, base_url을 our endpoint로 설정하세요. 모델 이름은 uncensored로 유지됩니다.
초기화 및 완성 호출 예제:
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwchatbot.cc/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)이 접근 방식은 단순 텍스트 생성 또는 체인 구축에 적합합니다. 모델이 GPT-4가 아님을 기억하고 프롬프트 엔지니어링을 적절히 조정하세요. 스트리밍은 다음 섹션에서 자세히 설명하는 stream=True 매개변수를 통해 지원됩니다.
Node SDK
Node.js OpenAI SDK는 동일한 구성 패턴을 따릅니다. 라이브러리를 가져오고 베이스 URL과 API 키를 설정한 후 완성 엔드포인트를 호출하세요. 이는 서버 측 통합 또는 Node 기반 채팅 애플리케이션에 이상적입니다.
초기화 예제:
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwchatbot.cc/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);응답 객체는 response.choices[0].message.content에 생성된 콘텐츠를 포함합니다. 네트워크 문제나 잘못된 키로 인해 예외가 발생할 수 있으므로 오류를 적절히 처리하세요. 무검열 모델은 표준 시스템 프롬프트에 응답하므로 메시지 기록을 통해 어조와 동작을 정의할 수 있습니다.
스트리밍 응답
요청에 stream: true을 설정하여 스트리밍을 활성화하세요. API는 Server-Sent Events(SSE) 스트림을 반환합니다. 각 청크에는 부분 텍스트가 포함됩니다. 마지막 청크에는 토큰 사용 통계가 포함됩니다. 스트리밍은 NSFW 채팅봇 애플리케이션에서 사용자의 지각된 지연 시간을 줄입니다.
스트리밍 요청 예제:
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)스트림을 처리할 때 각 청크의 내용을 버퍼에 추가하세요. 비용 추적을 위해 사용 데이터에 대한 마지막 청크를 모니터링하세요. 토큰 가격은 입력 토큰 백만 개당 $0.25, 출력 토큰 백만 개당 $1.00입니다. 오류와 거부는 요금이 부과되지 않습니다.
한계, 오류 및 컨텍스트 창
각 API 키는 분당 300개의 요청과 8개의 동시 요청을 허용합니다. 요청 본문은 8 MB 미만이어야 합니다. 키가 유효하지 않으면 401 오류가 발생합니다. 402 오류는 크레딧 부족을 의미합니다. 429 오류는 속도 제한을 나타냅니다. 컨텍스트 창은 총 100,000 토큰입니다. 지정된 경우 출력 최대치는 32,000 토큰입니다. 미성년자가 포함된 콘텐츠는 항상 거부됩니다. 크레딧은 암호화폐를 통해 선불로 충전되며 만료되지 않습니다. 이러한 제한을 사용하여 무검열 AI API 통합에 대한 재시도 로직 및 큐 관리를 설계하세요.