NsfwAiApi/가이드
롤플레이용 로컬 LLM을 선택할지, 호스팅 API를 선택할지 고민 중이신가요?
역할극을 위한 최고의 로컬 LLM은 GPU에 올릴 수 있고 받아들일 만한 품질을 내는 가장 큰 무검열 모델이며, 이 답변은 몇 달마다 바뀝니다. 하드웨어를 건너뛰고 싶다면 호스팅 엔드포인트는 URL 변경 하나로 동일한 채팅 워크플로를 제공합니다.

로컬 또는 호스팅: 빠른 결정
이미 강력한 GPU를 보유하고 있거나 모든 것을 오프라인으로 원하거나 모델 튜닝을 즐기는 경우 로컬을 선택하세요. 스토리에 긴 메모리가 필요하거나 노트북이나 휴대폰을 사용하거나 설정에 주말이 아닌 몇 분을 보내고 싶다면 호스팅을 선택하세요. 많은 사람들이 둘 다 사용합니다: 개인 실험용 로컬 모델과 긴 캠페인용 호스팅 모델.
| 요인 | 로컬 모델 | 호스팅 API |
|---|---|---|
| 비용 모델 | 하드웨어 및 전력, 토큰별 요금 없음 | 선불 크레딧에서 토큰당 요금 |
| 모델 크기 | GPU 메모리에 의해 제한됨 | 제공자가 실행하는 무엇이든 |
| 컨텍스트 길이 | 메모리에 의해 제한됨 (긴 컨텍스트는 더 많은 메모리가 필요함) | 여기서는 100,000 토큰 |
| 개인정보 | 아무것도 귀하의 기기를 떠나지 않습니다 | 프롬프트가 제공자에게 전송됨; 여기서는 학습에 사용되지 않음 |
| 설정 | 런타임, 가중치, 양자화, 업데이트 | base URL 및 키 |
| 어떤 기기에서든 작동 | 사용자의 기기를 노출하는 경우에만 | 예 |
최고의 로컬 모델을 실제로 결정하는 요소
롤플레이용 최고의 로컬 LLM 순위는 빠르게 구식화되며, 모든 사람에게 맞는 단일 모델은 없습니다. 대신 실제 세션에서 나타나는 요소에 따라 후보를 평가하세요.
- 거부 행동. 많은 기본 및 지시 모델은 특정 주제를 거부하도록 조정되었습니다. 소설용으로 미세 조정되었거나 무검열로 표시된 모델은 일반적으로 덜 거부하지만 품질은 다르므로 자신의 장면에서 테스트하세요.
- 캐릭터 유지. 모델이 캐릭터의 행동을 서술하거나 매 턴마다 동일한 구문을 반복하거나 방에 있는 사람을 잊어버리는지 주의하세요.
- 문체 품질. 연속으로 10개의 응답을 읽어보세요. 일부 모델은 한 턴에는 좋지만 열 번째에는 지루할 수 있습니다.
- 컨텍스트 처리. 모델이 긴 창을 선전하더라도 중간 부분의 세부 정보를 잃을 수 있습니다. 채팅 초기의 사실이 나중에 중요한 테스트를 실행하세요.
- 크기 및 양자화. 큰 모델을 높은 양자화로 압축하면 더 높은 정밀도로 실행되는 작은 모델보다 더 많은 정보를 잃을 수 있습니다. 가정하지 말고 비교하세요.
사용 중인 런타임의 커뮤니티 스레드와 모델 카드는 현재 권장 사항에 대한 올바른 장소입니다. 두세 가지 후보를 다운로드하고 각각에 같은 장면을 실행하여 이야기를 계속하고 싶게 만드는 것을 유지하세요.
로컬의 한계
롤플레이어가 직면하는 가장 큰 장벽은 메모리이며, 이는 두 곳에서 발생합니다. 첫 번째는 모델 자체입니다: 더 큰 모델은 더 잘 작성하지만 더 많은 GPU 메모리가 필요합니다. 두 번째는 컨텍스트입니다. 긴 이야기의 모든 메시지는 새로운 턴마다 다시 전송되며, 이를 저장하는 캐시도 길이에 따라 커지므로 긴 캠페인은 짧은 채팅을 잘 처리하는 GPU를 압박할 수 있습니다.
일반적인 우회 방법은 이전 대화 내용을 요약하거나 관련 사실만 주입하는 lorebook을 사용하거나 컨텍스트 크기를 줄이는 것입니다. 이러한 방법은 작동하지만 추가적인 노력이 필요합니다. 100,000개의 토큰을 지원하는 호스팅된 엔드포인트를 사용하면 긴 캠페인, 많은 캐릭터가 등장하는 공유 세계, 수주 동안 이어지는 이야기에서 스토리의 훨씬 많은 부분을 한눈에 볼 수 있게 유지할 수 있습니다.
절충점은 비용이므로 이를 측정하는 것이 도움이 됩니다. 채팅에 30,000토큰의 이력이 있고 모델이 답변당 300토큰을 작성한다고 가정해 봅시다. 한 턴은 100만 토큰당 $0.15의 30,000 입력 토큰 비용이 들며 이는 $0.0045이고, 300 출력 토큰은 100만 토큰당 $0.50로 $0.00015입니다. 이는 턴당 $0.00465, 즉 100턴에 $0.465입니다. 긴 저녁 게임 비용은 1달러 미만입니다. 가격 책정 페이지에는 요금과 더 큰 충전량에 대한 보너스 수준이 나열되어 있습니다.
Python으로 작동하는 호스팅 설정
엔드포인트는 OpenAI 호환이므로 공식 openai 패키지는 base URL과 키를 제외하고 변경되지 않고 작동합니다. 모델 ID는 uncensored입니다. 먼저 API 키 페이지에서 키를 얻으세요. 새 계정은 결제 세부 정보 없이 한 번의 클릭으로 $0.50 무료 체험 크레딧을 청구할 수 있습니다.
이 스크립트는 롤링 이력을 유지하고 응답을 스트리밍하며 오래된 턴을 잘라 프롬프트를 작게 유지합니다. 시스템 프롬프트는 당신의 시간을 쓸 가치가 있는 부분입니다: 설정, 규칙 및 스타일을 설정합니다.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.nsfwaiapi.com/v1",
api_key=os.environ["NSFWAIAPI_KEY"],
)
SYSTEM = '''You are the narrator and all non-player characters in an adult fiction roleplay.
Setting: a rain-soaked port city, late autumn, gaslight and smuggler politics.
Rules:
- Write in third person, past tense, 2 to 4 short paragraphs per reply.
- Never write the player's actions, words or thoughts. Stop where the player decides.
- Keep each character's voice and goals consistent. Track who is present in the scene.
- All characters are adults. Do not write sexual content involving minors under any circumstances.
- Stay in the story. No disclaimers or out-of-character commentary unless the player asks with (OOC).'''
history = [{"role": "system", "content": SYSTEM}]
MAX_TURNS = 40 # keep the last 40 messages besides the system prompt
def say(user_text):
history.append({"role": "user", "content": user_text})
trimmed = [history[0]] + history[1:][-MAX_TURNS:]
stream = client.chat.completions.create(
model="uncensored",
messages=trimmed,
temperature=0.9,
top_p=0.95,
frequency_penalty=0.3,
max_tokens=600,
stream=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)
print()
history.append({"role": "assistant", "content": reply})
say("I push open the door of the Gull and Anchor and look for the harbor master.")
창이 100,000 토큰이므로 MAX_TURNS을 잘라내기 전에 많이 높일 수 있습니다. 잘라내기는 여전히 좋은 습관입니다: 짧은 프롬프트는 비용이 더 적게 들고 모델을 최근 사건에 집중시킵니다.
SillyTavern 및 유사한 앱용 클라이언트 설정
대부분의 롤플레이 프론트 엔드는 OpenAI 호환 또는 사용자 정의 채팅 완료 소스에 대한 연결 화면을 가지고 있습니다. 예를 들어 SillyTavern은 OpenAI 호환 엔드포인트를 추가할 수 있게 합니다. 필드는 어디나 동일합니다:
- base 또는 엔드포인트 URL:
https://api.nsfwaiapi.com/v1. 일부 앱은/chat/completions로 끝나는 전체 경로를 원합니다. 앱이 base를 요청하면/v1에서 중지하세요. - API 키: bearer token으로 전송되는 키.
- 모델:
uncensored. 앱이 모델 목록을 가져올 수 있다면GET /v1/models를 호출할 수 있습니다. - 스트리밍: 켜짐. 답변은 작성되는 대로 나타나며, 앱은 원하는 방향으로 가지 않을 때 일찍 중단할 수 있습니다.
샘플링을 위해 온도는 서사 텍스트에 0.8에서 1.0 정도가 적합하며 top_p는 0.95 근처입니다. 작은 빈도 또는 존재 패널티는 긴 채팅이 수집하는 반복 구문을 줄입니다. 반복이 보일 때만 패널티를 높이세요. 높은 값은 문체를 이상하게 피하게 만듭니다. 중지 시퀀스는 통과되므로 모델이 당신을 대신해 말하려는 경우 플레이어 이름 뒤에 콜론을 추가한 중지 문자열을 추가하면 도움이 됩니다. 앱의 컨텍스트 크기를 지불하려는 금액으로 설정하세요. 100,000 토큰을 모두 채울 필요가 없습니다.
여러 채팅 탭이나 친구용 봇을 실행할 때 동시성을 염두에 두세요. 전체 키는 8개의 동시 요청과 분당 300개를 허용하며, 무료 체험 키는 2개와 60개를 허용합니다. 스트리밍된 답변은 스트림이 끝날 때까지 슬롯을 유지하므로, 멈춘 탭이 슬롯을 모두 사용할 수 있습니다. 문서에는 한계와 남은 크레딧을 보여주는 X-Balance-USD를 포함한 응답 헤더가 나열되어 있습니다.
긴 이야기를 건강하게 유지하는 작은 루틴
긴 롤플레이 세션은 예측 가능한 방식으로 잘못될 수 있으며, 몇 가지 습관이 대부분을 방지합니다. 20~30턴마다 짧은 이야기 요약을 작성하고 시스템 메시지 뒤에 프롬프트 상단에 유지하세요. 수동으로 업데이트하거나 모델에 생성을 요청한 후 이름, 장소 및 약속이 생존했는지 확인하세요. 관계와 열린 스레드처럼 절대 잊혀서는 안 되는 사실을 시스템 프롬프트 자체에 고정하세요.
원하지 않는 방향으로 응답이 진행되면 채팅에서 논쟁하기보다 해당 응답을 재생성하세요. 논쟁은 대화 기록을 오염시키고 모델이 그 장면이 논쟁에 관한 것이라고 학습하게 만듭니다. 방향을 조정하고 싶다면 대괄호 안에 명확한 한 줄을 추가하세요. 예를 들어 다음 장면의 분위기를 나타내는 메모를 넣고 다음 답변이 이를 포함하도록 하세요. 캐릭터 이름을 일관되게 유지하고 모든 비플레이어 캐릭터에 한 줄짜리 음성 메모를 제공하세요. 소리가 비슷한 캐릭터는 모델이 혼동하기 때문입니다.
이 모델의 정직한 한계
이 모델은 독립적인 제공자가 실행하고 합법적인 성인 사용을 위해 콘텐츠 거부 없이 답변하도록 조정된 오픈 웨이트 모델입니다. 이는 어떤 모델 벤더의 공식 API가 아니며 여러 모델에 대한 라우터도 아닙니다. 모델 간에 선택할 수 없으며 모든 작업에서 최고의 폐쇄형 모델과 일치할 것으로 기대하지 않아야 합니다.
텍스트만 생성합니다. 캐릭터를 위한 이미지, 음성, lorebook 검색을 위한 임베딩이 없으므로 초상화나 음성이 필요하면 각각 별도의 서비스를 추가해야 합니다. 파인튜닝도 제공되지 않습니다. 품질은 프롬프트에도 달려 있습니다: 모호한 시스템 프롬프트는 모호한 생성 텍스트를 생성하며, 예시 대화가 포함된 좋은 캐릭터 프로필은 샘플링 조정보다 더 많은 효과를 냅니다.
규칙 중 하나는 고정되어 있습니다. 미성년자가 관련된 성적 콘텐츠는 허용되지 않으며, 이를 생성하도록 설정된 방식은 지원되지 않습니다. 캐릭터는 성인으로 유지하고, 사용은 합법적으로 유지하세요. 소설, 동반자 앱, 성인을 위한 캐릭터 채팅의 경우, 거절이 적고 긴 컨텍스트 창을 가진 조합이 유용한 부분입니다.
더 많은 가이드
질문과 답변
로컬 LLM가 역할극용 호스팅 API보다 나은가요?
어느 쪽이 모든 곳에서 승리하지는 않습니다. 로컬은 오프라인 프라이버시와 토큰별 비용이 없다는 장점을 제공하며, 호스팅은 더 긴 컨텍스트와 하드웨어 제한이 없다는 장점을 제공합니다. 많은 사람들이 둘 다 사용합니다.
SillyTavern을 이 API와 함께 사용할 수 있나요?
네. SillyTavern 및 유사한 앱은 OpenAI 호환 엔드포인트를 지원합니다. URL로 https://api.nsfwaiapi.com/v1, 키 및 모델 ID uncensored를 입력하세요.
롤플레이 세션은 얼마나 많은 컨텍스트를 사용할 수 있습니까?
컨텍스트 창은 프롬프트와 응답을 합쳐서 100,000 토큰입니다. 긴 대화는 매 턴마다 대화 기록이 전송되므로 더 많은 비용이 듭니다.
캐릭터를 위해 이미지나 음성을 생성하나요?
아니요. 이 서비스는 텍스트 전용이며, 이미지, 오디오 또는 비디오 생성과 임베딩을 제공하지 않습니다.
키는 양식 하나만 작성하면 받을 수 있습니다
계정을 생성하고 키를 복사한 후 기본 URL을 변경하세요. 설정은 이것으로 끝입니다.
API 키 받기NsfwAiApiNSFW 텍스트 생성용 무검열 LLM API