KO ▾
API 키 받기

Uncensored VideoSora 2 API: 비디오 파이프라인에서 무검열 텍스트 사용

AI 역할극: 무료 체험 설정 및 실제 비용

메시지별 유료화 없이 AI 역할극을 원한다면, 정직한 방법은 작은 체험 잔액과 토큰 기반 API를 사용하는 것입니다. 이 글에서는 체험이 어느 정도까지 지속되는지, 채팅 프론트엔드를 연결하는 방법 및 턴의 실제 비용을 보여줍니다.

업데이트됨

데이터 스트림에 의해 구동되는 빛나는 말풍선이 있는 무대, API를 통한 AI 역할극을 나타냅니다

주요 포인트

  • $0.50 체험 크레딧은 여러 번의 짧은 역할극 턴에 충분하며, 유효 기간은 7일이고 결제가 필요하지 않습니다.
  • OpenAI 호환 엔드포인트를 받는 모든 프론트엔드가 작동합니다: Base URL, 키 및 모델 uncensored을 설정하세요.
  • 비용은 응답 길이가 아닌 채팅 히스토리 길이에 의해 결정됩니다. 이전 턴을 자르거나 요약하세요.
  • 합법적인 성인만을 위한 픽션 및 역할극. 미성년자가 관련된 내용은 절대 없습니다.

여기서 무료가 의미하는 바

이 서비스에서는 무제한 무료 채팅이 없으며, 이를 명확히 하는 것이 좋습니다. 귀하가 얻는 것은 체험 잔액입니다: Google 또는 이메일과 비밀번호로 로그인한 후, API 키 페이지에서 한 번의 클릭으로 $0.50의 체험 크레딧을 청구할 수 있습니다. 이는 사람당 한 번이며, 유효 기간은 7일이고 결제가 필요하지 않습니다. 체험 키는 동시 요청 2개 및 분당 요청 60개로 실행되며, 이는 한 사람이 채팅하기에 충분합니다.

작아 보일 수 있지만 토큰은 저렴합니다. 입력 비용은 토큰 100만 개당 $0.15이며, 출력 비용은 토큰 100만 개당 $0.50입니다. 8,000 토큰의 프롬프트와 300 토큰의 응답이 있는 일반적인 역할극 턴은 $0.00135가 들며, $0.50은 약 370 턴을 커버합니다. 많은 사람들에게 이는 하룻밤 또는 여러 편의 짧은 이야기에 해당하며, 어떤 비용도 발생하기 전에 설정이 적합한지 결정하기에 충분합니다.

체험 크레딧이 소진되면 $20부터 $500까지의 정수 단위로 충전할 수 있습니다. 크레딧은 만료되지 않으며, 실패하거나 거부된 요청에는 요금이 부과되지 않고 취소할 구독도 없습니다. 이 사이트는 암호화폐만 받습니다: TRC20의 USDT 또는 Base의 USDC.

프론트엔드 선택

API는 HTTP를 통해 텍스트만 전송합니다. 캐릭터, 채팅 기록 및 프롬프트 템플릿을 유지할 무언가가 여전히 필요합니다. 세 가지 일반적인 선택 사항:

  • SillyTavern. 캐릭터 채팅용으로 구축된 로컬 웹 앱으로, 로어북, 페르소나 및 프리셋을 제공합니다. OpenAI 호환 엔드포인트를 추가할 수 있으며, 이는 바로 이 API입니다.
  • 다른 채팅 클라이언트는 사용자 정의 OpenAI 호환 URL을 위한 필드를 노출합니다. 사용자 정의 엔드포인트, 프록시 또는 OpenAI 호환이라는 설정을 찾으세요.
  • 자체 스크립트. Python 50줄로 메모리, 프롬프트 및 비용에 대한 완전한 제어를 얻을 수 있습니다. 또한 실제로 전송하는 내용을 확인하는 가장 쉬운 방법이기도 합니다.

채팅이 아닌 앱을 구축하는 경우 동일한 호출은 모든 OpenAI SDK에서 작동합니다. 문서의 빠른 시작에는 엔드포인트, 헤더 및 제한이 한 곳에 나열되어 있습니다.

SillyTavern을 5단계로 연결

  1. 계정을 생성하고 API 키 페이지로 이동한 후 체험 크레딧을 청구하고 키를 복사하세요.
  2. SillyTavern에서 플러그 아이콘(API Connections)을 열고 API 유형을 Chat Completion로 설정하세요.
  3. Custom (OpenAI-compatible)라는 소스를 선택하세요.
  4. https://api.uncensoredvideo.cc/v1을 사용자 정의 엔드포인트 필드에 붙여넣고, 키 필드에 키를 입력한 후 모델 ID로 uncensored을 입력하세요.
  5. 연결을 누르세요. 녹색 상태는 GET /v1/models 요청 또는 테스트 메시지가 성공했음을 의미합니다.

메뉴 레이블은 SillyTavern 버전 간에 변경되므로 정확한 단어보다는 개념을 기준으로 찾으세요. 앱을 탓하기 전에 터미널에서 키를 테스트하세요:

curl https://api.uncensoredvideo.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Reply with the word ready."}]}'

curl은 작동하지만 앱이 작동하지 않는다면, 문제는 앱의 필드에 있습니다: /v1 누락, 키의 불필요한 공백, 또는 잘못된 모델 이름입니다.

또는 작은 채팅 루프를 작성하세요

스크립트는 역할극 비용이 얼마나 드는지 배우는 좋은 방법입니다. 각 턴마다 토큰 사용량을 출력할 수 있기 때문입니다. 이 스크립트는 페르소나 프롬프트를 유지하고, 히스토리를 마지막 20개의 메시지로 제한하며 응답을 스트리밍합니다.

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.uncensoredvideo.cc/v1",
    api_key=os.environ["API_KEY"],
)

system = (
    "You are Mara, a dry-witted smuggler pilot in a space-opera story. "
    "Stay in character, write in third person, keep replies under 150 words."
)
history = []

while True:
    user = input("> ")
    history.append({"role": "user", "content": user})
    messages = [{"role": "system", "content": system}] + history[-20:]
    stream = client.chat.completions.create(
        model="uncensored",
        messages=messages,
        temperature=0.9,
        top_p=0.95,
        max_tokens=300,
        stream=True,
        stream_options={"include_usage": True},
    )
    reply = ""
    for chunk in stream:
        if chunk.choices and chunk.choices[0].delta.content:
            piece = chunk.choices[0].delta.content
            reply += piece
            print(piece, end="", flush=True)
        if chunk.usage:
            print("\n[tokens in/out: %d/%d]" % (chunk.usage.prompt_tokens, chunk.usage.completion_tokens))
    history.append({"role": "assistant", "content": reply})

사용량 줄을 주의 깊게 관찰하세요. 몇 십 번의 턴 후에 입력 수가 증가하는 것을 볼 수 있지만 출력은 일정하게 유지됩니다. 관리해야 할 숫자는 바로 입력 수입니다.

견고한 캐릭터 프롬프트 작성

대부분의 역할극 문제는 모델이 아닌 첫 번째 프롬프트에서 시작합니다. 좋은 캐릭터 프롬프트는 짧고 구체적이어야 합니다. 캐릭터 이름을 지정하고, 한두 문장으로 목소리를 부여하며, 배경을 설명하고, 응답 길이를 명시하세요. 그런 다음 멈추세요. 추가하는 규칙 하나하나가 매 턴마다 토큰 비용이 들며, 장황한 지침 목록은 명확한 예시보다 잘 따라지지 않는 경향이 있습니다.

같은 조종사를 설명하는 두 가지 방법을 비교하세요. 첫 번째는 그녀가 용감하고, 유머러스하며, 충성스럽고, 똑똑하다고 말합니다. 이는 모델이 실행할 수 있는 정보를 제공하지 않습니다. 두 번째는 그녀가 질문에 답할 때 먼저 농담을 하고 두 번째로 진실을 말하며, 두 번 물어보기 전에는 과거를 설명하지 않으며, 우주선 부품이 고장 날 때 가볍게 욕을 한다고 말합니다. 두 번째는 모델이 반복할 습관을 제공하며, 습관이 독자가 경험하는 성격입니다.

세 줄에서 네 줄 정도의 짧은 예시 대화를 추가하세요. 모델은 리듬을 매우 잘 복사하므로, 예시는 별도의 규칙 없이 길이, 시제 및 서술 시점을 고정합니다. 2인칭으로 작성하는 경우 그것을 보여주세요. 이탤릭체로 서술을 원한다면 그것도 보여주세요. 예시를 시스템 프롬프트나 대화의 첫 번째 메시지로 넣으세요.

마지막으로, 다른 캐릭터를 누가 통제할지 결정하세요. 모델이 전체 캐스트를 연기하게 하려면 그렇게 말하세요. 하나의 역할만 연기하게 하려면 캐릭터의 말이나 행동을 절대 쓰지 말아야 한다고 말하세요. 캐릭터 이름에 대한 정지 시퀀스는 API 수준에서 이를 뒷받침합니다.

역할극 턴의 비용

각 요청은 시스템 프롬프트, 캐릭터 설명 및 대화 기록을 다시 전송하므로, 대화가 길어질수록 입력 토큰이 증가합니다. 300 토큰 응답에 대한 계산은 다음과 같습니다. 이 응답 자체의 비용은 300 x $0.50 / 1,000,000 = $0.00015입니다:

프롬프트 크기입력 비용턴당 비용100 턴당$0.50당 턴 수
4,000 토큰$0.0006$0.00075$0.075약 666
8,000 토큰$0.0012$0.00135$0.135약 370
20,000 토큰$0.0030$0.00315$0.315약 158
50,000 토큰$0.0075$0.00765$0.765약 65

계산은 간단합니다. 동일한 턴 수를 기준으로, 8,000 토큰 프롬프트는 50,000 토큰 프롬프트보다 약 5.7배 더 저렴합니다. 8,000 토큰 수준에서 $20 충전은 약 14,800 턴의 비용을 충당합니다. 더 큰 충전에는 보너스가 추가됩니다: $50부터 +5%, $100부터 +10%, $200부터 +15%이므로, $100은 $110의 크레딧을 제공합니다. 전체 표는 가격 페이지를 참조하세요.

긴 이야기를 저렴하고 일관되게 유지

컨텍스트 창은 프롬프트와 응답을 합쳐 100,000 토큰이며, 많은 양을 로드할 수 있습니다. 하지만 일반적으로 그렇게 하지 않아야 합니다. 긴 프롬프트는 비용이 더 많이 들며 모델이 집중력을 잃게 만듭니다. 몇 가지 습관이 도움이 됩니다:

  • 요약한 후 삭제. 20번의 턴마다 모델에게 지금까지의 이야기에 대한 150단어 요약을 요청하고, 이를 시스템 프롬프트에 유지한 다음 이전 메시지를 삭제하세요.
  • 캐릭터 시트를 짧게 유지. 모델이 무시하는 규칙의 페이지는 각 턴마다 지불하는 페이지입니다.
  • 응답 길이를 제한하세요. max_tokens은 선택 사항이지만, 제한은 응답이 비정상적으로 길어지는 것을 방지하고 응답 길이를 적절히 유지합니다.
  • 샘플링 조정. 0.8~1.0의 온도는 픽션에 적합합니다. 모델이 구문을 반복하면 빈도 또는 존재 페널티를 약간 높이세요. 이 값들은 전달됩니다.
  • stop 시퀀스를 사용하세요 모델이 당신의 대사를 대신 쓰지 않도록 하세요. 예를 들어 캐릭터 이름 뒤에 콜론이 오도록 정지 시퀀스를 설정합니다.

고정 시드도 전달되므로 장면을 다시 재생하고 두 프롬프트 버전을 비교하려는 경우에 도움이 됩니다.

일반적인 문제 및 빠른 해결 방법

다음은 긴 대화에서 사람들이 가장 자주 부딪히는 문제들과 이를 해결하는 데 도움이 되는 설정입니다.

  • 모델이 당신을 대신해 말함. 시스템 프롬프트에 줄을 추가하고 캐릭터 이름에 정지 시퀀스를 추가하세요.
  • 응답이 매 턴마다 길어짐. 모델은 이전 응답의 길이를 복사합니다. max_tokens을 낮추고 긴 응답을 수동으로 편집하면 패턴이 초기화됩니다.
  • 반복된 구문. 온도를 약간 높이고 작은 존재 또는 빈도 페널티를 추가하며 자신의 메시지를 다양하게 만드세요. 모델은 자신이 보는 것을 복사합니다.
  • 잊혀진 세부 사항. 이름, 부상 및 약속과 같이 유지되어야 하는 사실은 프롬프트 상단에 짧은 고정 메모에 넣고 이야기가 변경될 때 업데이트하세요.
  • 단조로운 어조 더 강력한 어조 예시를 제공하세요. 어조는 형용사보다 예시를 통해 훨씬 잘 전달됩니다.

이상한 일이 발생하면 스크립트가 보내는 전체 메시지 목록을 출력하세요. 90%의 경우 원인은 프롬프트 자체에 있습니다: 남아 있는 지시문, 중복된 요약, 또는 정리되지 않은 기록이 원인일 수 있습니다.

접할 수 있는 제한 사항 및 오류

전체 키는 분당 8개의 동시 요청과 분당 300개의 요청을 허용하며, 체험 키는 각각 2개와 60개를 허용합니다. 한도를 초과하면 API는 HTTP 429를 반환합니다. 오류 코드 rate_limited은 분당 요청 수가 많음을 의미하고, concurrency은 동시에 요청 수가 많음을 의미합니다. Retry-After: 5 헤더가 포함된 429 응답은 일시적 과부하를 의미하므로 5초 기다렸다가 다시 시도하세요.

사람들이 간과하기 쉬운 한 가지 세부 사항: 스트리밍 요청은 스트림이 완료될 때까지 동시 요청 슬롯을 유지합니다. 체험 키에서 재생성을 세 번 빠르게 클릭하면 세 번째 시도가 concurrency 오류로 실패할 수 있습니다. 스트림이 끝날 때까지 기다리거나 클라이언트가 짧은 일시 정지 후 다시 시도하도록 하세요. 모든 응답에는 X-Balance-USD가 포함되어 있으므로 스크립트는 각 턴 후 남은 잔액을 출력할 수 있습니다.

변하지 않는 규칙: 모델은 합법적인 성인 사용에 대해 콘텐츠 거부 없이 답변하도록 조정되었으며, 미성년자가 관련된 성적인 콘텐츠는 생성하지 않습니다. 이야기의 선을 넘지 마세요. 프롬프트는 학습에 사용되지 않습니다.

질문과 답변

영구적으로 무료인 요금제가 있나요?

아니요. 무료 부분은 가입 후 사람당 한 번 청구할 수 있는 $0.50 체험 크레딧입니다. 그 이후에는 선불 크레딧에서 토큰당 요금을 지불하며, $20 충전으로 시작합니다.

역할극에 어떤 앱을 사용할 수 있나요?

OpenAI 호환 Base URL, API 키 및 모델 이름을 설정할 수 있는 모든 앱 또는 스크립트를 사용할 수 있습니다. SillyTavern이 일반적인 선택이며, 짧은 Python 루프도 작동합니다.

모델이 역할극 장면을 거부하나요?

모델은 합법적인 성인 사용에 대해 콘텐츠 거부 없이 답변하도록 조정되었습니다. 미성년자가 관련된 성적인 콘텐츠는 생성하지 않으며, 이 제한은 변경할 수 없습니다.

긴 이야기를 비싸지 않게 유지하려면 어떻게 하나요?

프롬프트를 짧게 유지하세요. 이전 턴을 요약하고, 보내는 이력의 양을 제한하며, 적절한 응답 길이를 설정하세요. 긴 채팅에서는 입력 토큰이 비용의 대부분을 차지합니다.

키는 양식 하나만 작성하면 받을 수 있습니다

계정을 생성하고 키를 복사한 후 Base URL을 변경하세요. 설정은 이것으로 끝입니다.

API 키 받기