무검열.chat API를 사용해야 하는 이유
표준 LLM API는 종종 합법적인 성인 콘텐츠, 창작 소설 또는 논쟁적인 주제를 거부하는 경직된 콘텐츠 필터를 적용합니다. 무검열 채팅 API는 이러한 가드레일을 제거하여 모델이 정책 준수 여부가 아닌 관련성에 따라 프롬프트에 응답할 수 있도록 합니다. 이는 인공적인 제약 없이 모델의 원본 기능을 필요로 하는 애플리케이션에 중요합니다.
우리의 API는 이러한 동작을 위해 특별히 조정된 단일 오픈 웨이트 모델을 제공합니다. 벤더 간 라우팅이나 여러 모델 선택을 제공하지 않습니다. 조정된 엔진 하나에서 일관되고 예측 가능한 출력을 얻습니다. 이는 모델의 다양한 특성이나 숨겨진 필터링 레이어를 다루지 않아도 되므로 디버깅 및 성능 조정을 단순화합니다.
일반적인 제공업체와 달리 우리는 임베딩, 이미지 생성 또는 오디오 처리를 번들로 제공하지 않습니다. 이는 API를 가볍고 빠르게 유지합니다. 애플리케이션에 멀티모달 기능이 필요한 경우 별도로 통합하고 이 API를 텍스트 생성 전용으로 사용해야 합니다. 여기서 초점은 100,000 토큰 컨텍스트 창을 갖춘 고품질 제한 없는 텍스트 출력에 있습니다.
환경 설정
통합은 개발 환경의 기본 URL을 우리의 기본 URL로 가리키도록 구성하는 것으로 시작됩니다. 이는 표준 OpenAI 호환 엔드포인트이므로 공식 OpenAI SDK 또는 호환 클라이언트 라이브러리를 사용할 수 있습니다. 기본 URL과 API 키만 변경하면 됩니다.
베이스 URL은 https://api.nofilteraichat.com/v1입니다. 요청에 포함할 모델 ID는 uncensored입니다. 이 모델은 당사 서버에서 실행되며 GPT, Claude 또는 기타 벤더의 모델이 아닙니다. 이 모델은 무검열 응답을 위해 튜닝된 오픈 웨이트 모델입니다.
실시간 출력을 사용하려는 경우 환경이 서버 전송 이벤트(SSE)를 통한 스트리밍을 지원해야 합니다. API는 temperature, top_p, stop 및 seed과 같은 표준 매개변수를 지원합니다. response_format을 {"type": "json_object"}로 설정하여 JSON 모드를 활성화할 수 있습니다.
컨텍스트 창: 프롬프트 + 결과 포함 총 100,000 토큰. 별도의 출력 제한이 없으며, max_tokens이 설정되지 않은 경우 응답이 창의 끝까지 이어질 수 있습니다.
API 키를 통한 인증
인증은 Authorization 헤더에 전달된 API 키를 통해 처리됩니다. Google로 계속하기 또는 이메일과 비밀번호를 사용하여 API 키 받기 페이지에서 가입할 수 있습니다. 전화번호는 필요하지 않습니다.
계정을 생성하면 활성 API 키 하나를 받게 됩니다. 이 키는 생성 시 즉시 표시됩니다. 새 키를 생성하면 이전 키가 대체되며, 계정당 여러 동시 키를 지원하지 않습니다. 이는 키 관리를 단순화하지만 동일한 계정에서 다른 환경에 대해 별도의 키를 가질 수 없음을 의미합니다.
이 키는 /v1/chat/completions 엔드포인트로의 요청을 인증하는 데 사용됩니다. 오류 및 거부(미성년자 관련 성 콘텐츠에 대한 하드 제한 제외)는 선불 크레딧을 소모하지 않습니다. 크레딧은 실제 토큰 사용량에 대해서만 청구됩니다.
개인정보: 프롬프트는 학습에 사용되지 않습니다. 계정에는 이메일 주소만 필요합니다.
첫 번째 요청 만들기
첫 번째 요청은 연결을 확인하기 위한 간단한 채팅 완성이어야 합니다. POST /v1/chat/completions 엔드포인트를 uncensored 모델 ID와 함께 사용하세요.
기본 요청 예제는 다음과 같습니다:
curl https://api.nofilteraichat.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."}]
}'이 요청은 프롬프트를 보내고 텍스트 응답을 받습니다. 모델은 합법적인 성인 콘텐츠에 대한 필터링 없이 응답합니다. 특정 어조나 형식을 적용해야 하는 경우 system 메시지를 사용하여 지시사항을 설정하세요.
API는 키당 분당 300개의 요청 제한과 8개의 동시 요청을 허용한다는 점을 기억하세요. 이러한 제한을 초과하면 속도 제한 오류가 발생합니다. 요청 본문 크기는 8 MB로 제한됩니다. 지수 백오프를 구현하여 클라이언트가 이러한 제한을 적절하게 처리하도록 하세요.
스트리밍 응답 구현
스트리밍은 서버 전송 이벤트(SSE)를 통해 지원됩니다. 이를 통해 생성되는 대로 토큰을 수신하여 긴 응답에 대한 사용자 경험을 개선할 수 있습니다. 각 청크는 응답의 부분 델타를 포함합니다.
중요: 토큰 사용량 통계(입력 및 출력 토큰)는 스트림의 마지막 청크에만 포함됩니다. 정확한 사용량 데이터를 얻으려면 델타를 집계한 후 마지막 청크를 처리해야 합니다.
코드에서 스트리밍을 처리하는 방법은 다음과 같습니다:
from openai import OpenAI
client = OpenAI(base_url="https://api.nofilteraichat.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)이 접근 방식은 실시간으로 텍스트를 표시하면서도 토큰 사용량을 정확하게 추적할 수 있도록 보장합니다. 스트리밍 중 오류가 발생하면 스트림이 조기에 종료될 수 있습니다. 세부 정보는 마지막 청크 또는 오류 상태를 확인하세요.
함수 호출 사용
함수 호출은 tools 및 tool_choice 매개변수를 통해 지원됩니다. 이를 통해 모델은 애플리케이션에서 실행할 수 있는 구조화된 데이터를 출력할 수 있습니다. 함수를 tools 배열에 정의하고 모델은 적절한 경우 응답에 tool_calls 필드를 반환합니다.
함수 호출 시기를 모델이 결정하도록 하려면 tool_choice을 "auto"로 설정하거나 특정 함수 ID를 지정하여 호출을 강제하세요. 모델은 함수 이름과 인수를 JSON 형식으로 반환합니다.
예제 구조:
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nofilteraichat.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);클라이언트가 tool_calls 배열을 파싱하고 함수를 실행하도록 하세요. 모델은 함수 자체를 실행하지 않으며 호출 명령만 생성합니다. 이는 표준 OpenAI 호환 패턴이므로 함수 호출을 지원하는 모든 라이브러리가 여기서 작동해야 합니다.
JSON 모드 처리
JSON 모드는 모델이 엄격하게 유효한 JSON을 출력하도록 보장합니다. 이는 API 응답이나 구성 파일과 같은 구조화된 데이터가 필요한 애플리케이션에 유용합니다. 요청에서 response_format을 {"type": "json_object"}로 설정하세요.
JSON 모드가 활성화되면 모델은 단일 유효한 JSON 개체를 출력하려고 시도합니다. 출력이 유효하지 않으면 API가 오류 또는 잘못된 응답을 반환할 수 있습니다. 항상 클라이언트 측에서 JSON을 검증하세요.
예제:
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)이 모드는 결정적인 출력 형식이 필요한 에이전트 또는 애플리케이션을 구축하는 데 특히 유용합니다. 이는 자유 텍스트에서 구조화된 데이터를 추출하기 위한 후처리 필요성을 줄입니다. JSON 모드는 모델 출력에 대한 추가 제약으로 인해 지연 시간이 약간 증가할 수 있습니다.
속도 제한 및 오류 관리
속도 제한은 키당 분당 300개의 요청 및 키당 8개의 동시 요청으로 적용됩니다. 요청 본문은 8 MB로 제한됩니다. 이러한 제한을 초과하면 429 상태 코드가 반환됩니다. 클라이언트에서 재시도를 처리하기 위해 지수 백오프를 구현하세요.
잘못된 매개변수 또는 서버 문제와 같은 오류는 크레딧을 소모하지 않습니다. 합법적인 성인 콘텐츠에 대한 거부도 크레딧을 소모하지 않습니다. 항상 적용되는 유일한 하드 제한은 미성년자 관련 성 콘텐츠의 거부이며, 이 경우 요청이 처리되면 토큰이 소모됩니다.
가격은 투명합니다: 입력 토큰 100만 개당 $0.15, 출력 토큰 100만 개당 $0.50. 크레딧은 선불이며 만료되지 않습니다. 오류는 무료이므로 비용을 걱정하지 않고 실험할 수 있습니다. 청구 문제가 발생하면 지원 페이지를 사용하여 도움을 받으세요.
