주요 포인트
- 단일 베이스 URL과 모델 ID(uncensored)는 모든 OpenAI SDK 또는 클라이언트와 함께 작동합니다.
- 스트리밍, 함수 호출 및 JSON 모드를 지원하며, 100,000 토큰 컨텍스트 창을 제공합니다.
- 전체 키는 동시 요청 8개와 분당 300개의 요청을 허용하므로, 바쁜 애플리케이션의 경우 작은 대기열을 계획하세요.
- 선불 크레딧에서 입력 토큰 100만 개당 $0.15, 출력 토큰 100만 개당 $0.50의 과금이며, 프롬프트는 학습에 사용되지 않습니다.
단일 엔드포인트에서 제공하는 기능
사람들은 합법적인 성인 사용에 콘텐츠 거부 없이 답변하는 모델을 원하지만 GPU를 실행하고 싶지 않을 때 uncensored llm hub를 검색합니다. 이 서비스는 평범한 HTTPS API입니다. OpenAI 클라이언트를 https://api.uncensoredllmhub.com/v1에 연결하고, 모델 ID uncensored를 입력한 후 Authorization: Bearer YOUR_KEY로 인증합니다. 대화용 POST /v1/chat/completions과 목록 조회용 GET /v1/models 두 가지 방법이 있습니다.
그 엔드포인트 뒤에 무엇이 있는지 명확히 하는 것이 도움이 됩니다. 이는 독립적인 제공자가 실행하고 콘텐츠 거부를 건너뛰도록 조정된 단일 오픈 웨이트 모델입니다. 이는 대형 벤더의 공식 API가 아니며, 모델 간 선택을 라우팅하는 것이 아닙니다. 텍스트만 처리하며, 이미지, 오디오, 비디오, 임베딩 또는 파인튜닝이 없습니다. 예외 없이 적용되는 하나의 엄격한 규칙은 미성년자를 포함한 성적인 콘텐츠가 없다는 것입니다.
이 좁은 범위가 핵심입니다. 단일 안정된 엔드포인트는 구축하기 쉽습니다. 하단 섹션에서는 작은 채팅 백엔드, 에이전트 루프, 설계에 필요한 제한 사항을 보여줍니다.
단계 1: 기존 클라이언트 연결
API가 OpenAI 형식을 따르므로 새로운 클라이언트 코드를 작성할 필요가 거의 없습니다. SDK나 도구를 열고 베이스 URL과 키를 변경한 후 모델을 uncensored로 설정하세요. 먼저 API 키 페이지(Google 또는 이메일과 비밀번호)에서 가입한 후 한 번의 클릭으로 $0.50 무료 체험 크레딧을 청구하세요. 체험에는 카드가 필요 없으며 7일 동안 유효하고 사람당 하나만 청구할 수 있습니다.
Python의 간단한 요청 예시:
from openai import OpenAI
client = OpenAI(
base_url="https://api.uncensoredllmhub.com/v1",
api_key="YOUR_API_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are a concise assistant for a writing tool."},
{"role": "user", "content": "Give me three opening lines for a mystery set on a ferry."},
],
temperature=0.9,
top_p=0.95,
)
print(resp.choices[0].message.content)
temperature, top_p, stop, seed 및 빈도 및 존재 패널티와 같은 샘플링 설정은 모델에 전달되므로 다른 제공업체에서 익숙한 조절자가 동일한 방식으로 작동합니다. SillyTavern이나 Open WebUI와 같은 커스텀 OpenAI 호환 엔드포인트를 허용하는 도구에서도 동일한 호출이 작동합니다: 베이스 URL을 붙여넣고, 키를 추가한 후 모델 ID를 직접 입력하세요.
단계 2: 채팅 인터페이스로 스트리밍 답변 받기
사용자가 전체 답변이 도착할 때까지 빈 상자를 바라보면 채팅 앱이 느리게 느껴집니다. 스트리밍이 이를 해결합니다. stream: true을 설정하면 API는 서버 전송 이벤트로 답변을 전송하며 스트림 끝에 사용량을 보고합니다. 토큰이 도착하는 대로 전달하는 Node 버전은 다음과 같습니다:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.uncensoredllmhub.com/v1",
apiKey: process.env.API_KEY,
});
export async function streamReply(history, onToken, signal) {
const stream = await client.chat.completions.create(
{ model: "uncensored", messages: history, stream: true },
{ signal }
);
let text = "";
for await (const chunk of stream) {
const piece = chunk.choices[0]?.delta?.content ?? "";
if (piece) {
text += piece;
onToken(piece);
}
}
return text;
}
두 가지 습관이 나중에 문제를 예방합니다. 첫째, 항상 중단 신호를 전달하고 사용자가 탭을 닫거나 정지 버튼을 누르면 취소하세요. 스트리밍 요청은 스트리밍이 끝날 때까지 동시 요청 슬롯을 점유하므로, 방치된 스트리밍은 사용 가능량을 소모합니다. 둘째, 생성한 전체 텍스트를 보관하세요. 다음 턴의 어시스턴트 메시지 기록에 이를 추가해야 하기 때문입니다.
스트리밍 중 프론트 엔드에서 모호한 오류가 표시되면 잘못된 베이스 URL, 이벤트를 버퍼링하는 프록시 및 두 가지 429 코드와 같은 일반적인 원인에 대한 스트리밍 오류 진단 노트를 참조하세요.
단계 3: 긴 컨텍스트 의도적으로 사용
컨텍스트 창은 프롬프트와 완성문이 공유하는 100,000 토큰입니다. 스토리 작성 도구, 캐릭터 채팅 또는 문서 어시스턴트의 경우 긴 이력, 큰 시스템 프롬프트 및 참조 자료를 동시에 저장할 수 있는 공간이 있습니다. max_tokens을 설정할 필요가 없습니다. 완성문은 남은 모든 토큰을 사용할 수 있습니다.
이 가격으로 긴 컨텍스트를 시도하는 것은 저렴합니다. 입력을 전체 창으로 채우면 100,000 입력 토큰에 대해 0.1 × $0.15 = $0.015가 발생합니다. 2,000 토큰 답변(0.002 × $0.50 = $0.001)을 추가하면 거의 전체 호출 비용은 $0.016입니다. 여전히 창을 관리해야 하는 세 가지 이유가 있습니다: 프롬프트 크기가 커지면 지연 시간이 증가하고, 각 턴에서 이력이 다시 전송되므로 세션 전체에 비용이 누적되며, 매우 긴 이력은 상단의 지시를 희석시킵니다.
간단한 정책이 잘 작동합니다:
- 시스템 프롬프트와 고정 참조 텍스트를 시작 부분에 유지하세요.
- 가장 최근의 턴은 그대로 유지하세요.
- 이력이 선택한 임계값(예: 60,000 토큰)을 초과하면 모델에게 가장 오래된 부분을 짧은 메모로 요약하도록 요청하고 해당 턴을 해당 메모로 교체하세요.
- 문자 수로 추정하는 대신 각 응답에서
usage.prompt_tokens을 읽어서 다음 요청의 크기를 확인하세요.
단계 4: 에이전트를 위한 도구 및 구조화된 출력
에이전트에는 모델에서 두 가지가 필요합니다: 함수를 호출하는 방법과 구문 분석 가능한 출력입니다. 둘 다 지원됩니다. 도구 호출은 표준 tools 및 tool_choice 매개변수를 사용하며, 도구 호출은 스트리밍할 수 있고 결과는 role: "tool" 메시지로 반환됩니다. 단일 라운드 트립은 다음과 같습니다:
import json
from openai import OpenAI
client = OpenAI(
base_url="https://api.uncensoredllmhub.com/v1",
api_key="YOUR_API_KEY",
)
tools = [{
"type": "function",
"function": {
"name": "lookup_order",
"description": "Find an order by its number.",
"parameters": {
"type": "object",
"properties": {"order_id": {"type": "string"}},
"required": ["order_id"],
},
},
}]
messages = [{"role": "user", "content": "Where is order A-1042?"}]
first = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
msg = first.choices[0].message
if msg.tool_calls:
call = msg.tool_calls[0]
args = json.loads(call.function.arguments)
result = {"order_id": args["order_id"], "status": "shipped"} # your real lookup goes here
messages.append(msg)
messages.append({"role": "tool", "tool_call_id": call.id, "content": json.dumps(result)})
final = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
print(final.choices[0].message.content)
부수 효과가 있는 작업을 실행하기 전에 항상 인수를 유효성 검사하세요. 모델은 잘못되거나 예상치 못한 값을 생성할 수 있으며, 귀하의 코드가 마지막 방어선입니다.
도구 없이 순수 구조화된 출력을 위해 response_format을 {"type": "json_object"}로 설정한 JSON 모드를 사용하세요. 프롬프트에서 원하는 형태를 설명하고, 나쁜 응답이 충돌 대신 재시도를 트리거하도록 try 블록 내에서 응답을 구문 분석하세요.
curl https://api.uncensoredllmhub.com/v1/chat/completions -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" -d '{
"model": "uncensored",
"response_format": {"type": "json_object"},
"messages": [
{"role": "system", "content": "Reply with JSON: {"title": string, "tags": [string]}"},
{"role": "user", "content": "Describe a noir story set in a rainy port city."}
]
}'
설계 시 고려할 제한 사항
전체 키는 동시 요청 8개와 분당 300개의 요청을 허용합니다. 체험 키는 각각 2개와 60개를 허용합니다. 요청 본문은 최대 8 MB까지 가능합니다. 각 응답에는 X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency 헤더가 포함되어 있어 로깅에 유용합니다.
제한을 초과하면 API는 HTTP 429를 반환합니다. 코드는 분당 요청이 너무 많으면 rate_limited이고, 동시에 너무 많으면 concurrency입니다. 일시적인 과부하도 429를 반환하며 Retry-After: 5를 포함합니다. 다중 사용자 앱의 경우 API 앞에 작은 큐를 배치하세요: 동시성 제한보다 작은 세마포어와 Retry-After을 준수하는 재시도. 병렬 도구 호출로 분기되는 에이전트의 경우 분기 수를 동일한 수로 제한하세요.
전체 매개변수 목록과 오류 형식은 API 문서에 있습니다.
비용, 충전 및 데이터 처리
가격은 선불 크레딧에서 입력 토큰 100만 개당 $0.15, 출력 토큰 100만 개당 $0.50입니다. 구독이 없으며 크레딧은 만료되지 않고, 실패하거나 거부된 요청에는 요금이 부과되지 않습니다. 입력 1,500 토큰과 출력 500 토큰의 채팅 턴 비용은 0.0015 × $0.15 + 0.0005 × $0.50 = $0.000225 + $0.00025 = $0.000475이므로, $20의 크레딧으로 약 42,000개의 이러한 턴을 처리할 수 있습니다.
$20에서 $500까지 정수 단위로 충전할 수 있습니다. 보너스는 $50부터 +5%, $100부터 +10%, $200부터 +15%입니다. 카드(Visa, Mastercard, Apple Pay, Google Pay) 또는 암호화폐(USDT(TRC20), USDC(Base))로 결제하세요. 가격 페이지에서 현재 표를 확인하세요.
데이터의 경우: 프롬프트는 학습에 사용되지 않습니다. 전체 내용은 개인정보 처리방침을 참조하세요. 귀하가 모델로 구축한 것에 대해 책임을 지며, 이 서비스는 합법적인 성인 사용만을 목적으로 합니다.
