uncensored 모델의 토큰 카운팅 이해
각 섹션의 첫 문장은 해당 제목의 질문에 답합니다. 토큰 카운팅은 모든 LLM 프록시에서 청구의 기본 단위입니다. 프롬프트에 전송된 모든 토큰과 응답에서 생성된 모든 토큰에 대해 지불합니다. 여기에는 시스템 지시문, 대화 기록, 서식 문자가 포함됩니다.
많은 개발자는 보이는 텍스트만 토큰으로 계산된다고 가정합니다. 이는 잘못되었습니다. 모든 공백, 줄바꿈, JSON 괄호는 토큰을 소모합니다. Uncensored 모델을 사용할 때 안전 필터가 없으므로 일관성을 유지하기 위해 더 장황한 추론이 필요하기 때문에 컨텍스트 윈도우가 더 빨리 채워집니다.
API는 입력 토큰 100만 개당 $0.15, 출력 토큰 100만 개당 $0.50의 요금을 부과합니다. 이 요금은 실제 토큰 사용량에 적용됩니다. 오류 발생 시 요금이 부과되지 않으며, 거부된 요청은 무료입니다. 이 구조는 실제 연산에 대해서만 요금이 부과되도록 보장합니다.
curl https://api.claudeapiproxy.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "get the current server time in ISO format"}]
}'- 시스템 프롬프트의 모든 문자를 세세요.
- 입력 시 대화 기록을 토큰 사용량 계산에 포함합니다.
- JSON 포맷 오버헤드를 위한 계정.
- 대규모 페이로드 전송 전 토큰 수를 확인하십시오.
컨텍스트 윈도우 트랩: 100k 입력 vs 16k 출력
당사의 API는 100,000개 토큰의 컨텍스트 윈도우를 제공하지만, 요청당 생성할 수 있는 토큰은 16,000개에 불과합니다. 이러한 비대칭성은 무제한 출력이 가능하다고 가정하는 사용자에게 과금 함정을 만듭니다.
프롬프트가 90,000개의 토큰을 소모하면 출력에 사용할 수 있는 토큰은 10,000개만 남습니다. 최대 16,000개의 토큰을 요청하더라도 모델은 조기에 종료됩니다. 생성된 토큰에 대해서는 여전히 요금이 부과됩니다. 이는 버그가 아니라 큰 컨텍스트 윈도우의 기능입니다.
많은 사용자가 max_tokens을 너무 높게 설정하여 크레딧을 낭비합니다. 모델이 컨텍스트를 모두 소진하면 자연스럽게 중단됩니다. 당신은 생성된 것에 대해 지불합니다. 생성할 수 없었던 것에 대해서는 지불하지 않습니다.
from openai import OpenAI
client = OpenAI(base_url="https://api.claudeapiproxy.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)항상 남은 컨텍스트를 모니터링하세요. 현재 제한을 확인하려면 /v1/models 엔드포인트를 사용하세요. 출력에 여유를 두기 위해 프롬프트 길이를 조정하세요. 이는 잘린 응답으로 인한 예상치 못한 과금을 방지합니다.
스트리밍 응답과 마지막 청크 기반 과금
스트리밍은 총 비용에 영향을 주지 않습니다. 토큰을 즉시 받든 한 번에 받든 동일한 토큰에 대해 요금이 부과됩니다. 차이점은 사용량을 추적하는 방식에 있습니다.
스트리밍 시 여러 청크를 받게 됩니다. 각 청크에는 응답의 일부가 포함됩니다. 마지막 청크에는 토큰 사용량 요약이 포함됩니다. 여기서 정확한 토큰 수를 확인할 수 있습니다.
일부 프록시는 청크별로 요금을 청구합니다. 당사는 그렇지 않습니다. 당사는 생성된 총 토큰에 대해 요금을 청구합니다. 스트리밍 모드는 사용자 경험을 위한 것이지 청구 효율성을 위한 것이 아닙니다.
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)- 실시간 UI 업데이트를 위해 스트림을 사용하세요.
- 청구를 위한 중간 청크 무시.
- 토큰 카운트를 위해 마지막 청크 읽기.
- 사용량이 귀하의 기대에 부합하는지 확인하세요.
도구 사용 시 함수 호출 오버헤드
함수 호출은 도구 정의가 모든 요청에서 반복되므로 상당한 오버헤드를 추가합니다. 함수를 호출할 때마다 모델은 도구 스키마를 다시 읽어야 합니다.
도구가 5개 있고 각각 정의에 1,000개의 토큰이 있는 경우, 모든 요청에 5,000개의 토큰이 추가됩니다. 이는 입력 비용을 크게 증가시킵니다. 긴 대화의 경우 이러한 오버헤드가 누적됩니다.
API는 도구와 tool_choice를 사용하여 함수 호출을 지원합니다. 도구 복잡성을 줄여 최적화할 수 있습니다. 관련 도구를 단일 스키마로 결합하세요. 이는 요청당 토큰 수를 줄입니다.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.claudeapiproxy.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);토큰 사용량을 주의 깊게 모니터링하세요. 높은 함수 호출량은 입력 비용을 두 배로 늘릴 수 있습니다. 가능하면 도구 정의를 캐싱하세요. 이렇게 하면 선불 크레딧이 더 오래 지속되는 데 도움이 됩니다.
왜 거절은 무료지만 재시도는 비용이 발생하는가
거절은 무료이므로 생성된 토큰이 없습니다. 모델이 콘텐츠나 형식 때문에 요청을 거절하면, 당신은 요금을 지불하지 않습니다. 이는 선불 청구의 주요 이점입니다.
재시도는 무료가 아닙니다. 요청을 보내고 오류가 발생하면 재시도해야 할 수 있습니다. 각 재시도는 토큰을 소모합니다. 오류 자체는 무료이지만 재시도는 그렇지 않습니다.
API는 실제 토큰 사용량만큼만 부과합니다. 토큰 생성 전에 요청이 실패하면 요금이 부과되지 않습니다. 생성 후에 실패하면 생성된 토큰만큼 지불합니다. 이 투명성은 숨겨진 요금을 방지합니다.
curl https://api.claudeapiproxy.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "get the current server time in ISO format"}]
}'- 거절은 크레딧 0입니다.
- 재시도는 예산을 소모합니다.
- 토큰이 생성되지 않은 경우 오류는 무료입니다.
- 재시도를 모니터링하여 효율성을 최적화하세요.
JSON 모드 포맷팅 비용
JSON 모드 포맷팅 비용은 일반 텍스트 모드와 동일합니다. JSON 출력의 토큰에 대해 지불합니다. 형식 때문에 추가 요금이 부과되지 않습니다.
JSON 출력은 종종 일반 텍스트보다 더 많은 토큰을 필요로 합니다. 모델은 유효한 JSON을 보장하기 위해 여백이나 키를 추가로 추가할 수 있습니다. 이는 출력 비용을 증가시킵니다.
API는 response_format을 통해 JSON 모드를 지원합니다. 엄격한 JSON 출력을 강제할 수 있습니다. 이는 클라이언트 코드와의 호환성을 보장합니다. 비용은 형식이 아닌 토큰 단위로 계산됩니다.
from openai import OpenAI
client = OpenAI(base_url="https://api.claudeapiproxy.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)토큰 수를 줄이기 위해 JSON 스키마를 최적화합니다. 불필요한 키를 제거하세요. 짧은 변수 이름을 사용하세요. 이는 데이터 무결성을 유지하면서 비용을 최소화하는 데 도움이 됩니다.
프록시 비용과 직접 벤더 요금 비교
프록시 비용은 토큰에만 지불하기 때문에 직접 벤더 가격보다 낮은 경우가 많습니다. 직접 벤더는 가동 시간, 지원 또는 모델 버전 관리에 대해 청구할 수 있습니다. 당사 API는 입력 토큰 100만 개당 $0.15, 출력 토큰 100만 개당 $0.50을 청구합니다.
Anthropic이나 OpenAI와 같은 직접 벤더는 복잡한 가격 책정 등급을 가지고 있습니다. 다른 모델에 대해 다른 요금을 부과할 수 있습니다. 당사 API는 단일 무검열 모델을 제공합니다. 이는 청구를 단순화합니다.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.claudeapiproxy.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);- 프록시 청구는 투명하며 선불 방식입니다.
- 직접 벤더는 숨겨진 수수료가 있을 수 있습니다.
- 당사의 모델은 검열이 없으며 오픈 가중치입니다.
- 가격뿐만 아니라 토큰 수도 비교하세요.
대화당 유효 비용 계산
대화당 유효 비용은 토큰 사용량에 따라 달라집니다. 전송 및 수신된 총 토큰 수를 계산하세요. 백만 토큰당 요금으로 곱하면 정확한 비용이 산출됩니다.
예를 들어, 대화에 10,000개의 입력 토큰과 5,000개의 출력 토큰이 사용된 경우, 비용은 $0.0015 + $0.0025 = $0.004입니다. 이는 대부분의 사용 사례에서 미미한 수준입니다.
curl https://api.claudeapiproxy.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "get the current server time in ISO format"}]
}'평균 대화 길이를 추적하세요. 입력 토큰을 줄이기 위해 프롬프트를 최적화하세요. 이를 통해 비용을 정확하게 예측할 수 있습니다. 선불 크레딧은 만료되지 않으므로 장기적으로 계획할 수 있습니다.
사전 충전 크레딧을 사용하여 중복 청구 실수 피하기
중복 과금은 드물지만 발생할 수 있습니다. 암호화폐로 충전하는 경우 올바른 금액을 보내는지 확인하십시오. 당사 API는 실제 토큰 사용량에 대해서만 과금합니다. 실수는 지원 페이지를 통해 수정됩니다.
from openai import OpenAI
client = OpenAI(base_url="https://api.claudeapiproxy.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)- 충전 전 거래 해시를 확인하세요.
- 각 요청 후 잔액을 확인하세요.
- 오류를 즉시 보고 환불을 받으세요.
- 거래 내역을 기록하세요.