NsfwAiApi/가이드
NSFW LLM 시스템 프롬프트: 구조 및 예시
NSFW LLM 시스템 프롬프트는 모델이 어떤 역할을 수행하고, 스토리가 허용하는 범위와 응답 스타일을 정의하는 짧은 지시문 블록입니다. 이 가이드는 합법적인 성인 소설 및 동반자 채팅에 적합한 레이아웃과 실행 가능한 코드를 제공합니다.


성인 소설 앱에서 시스템 프롬프트의 역할
시스템 메시지는 messages 배열의 첫 번째 항목입니다. 모델은 모든 턴마다 이를 읽고 지속적 지시로 간주합니다. 무검열 모델의 경우 프롬프트가 더 중요해집니다. 필터가 많은 모델과 달리 톤을 결정하는 숨겨진 레이어가 없기 때문입니다. 지정하지 않은 부분은 모델이 자체 기본값으로 채우며, 이는 종종 단조롭고 반복적이며 너무 길 수 있습니다.
따라서 프롬프트의 목적은 "탈옥(jailbreak)"하는 것이 아닙니다. 이 서비스의 모델은 합법적인 성인 사용에 대해 콘텐츠 거부 없이 응답하도록 조정되었으므로 트릭이 필요 없습니다. 방향성만 필요합니다: 누가, 어디에서, 어떤 스타일로 말하며 스토리의 경계는 어디인지. 이를 잘 수행하는 프롬프트는 수백 턴에 걸쳐 일관된 캐릭터를 생성합니다.
제어 외부에 있는 하나의 규칙이 있습니다: 미성년자가 관련된 성적 콘텐츠는 금지됩니다. 프롬프트에 모든 캐릭터가 성인임을 명시하세요. 이는 스토리를 깔끔하게 유지하고 API 문서의 서비스 규칙과 일치합니다.
다섯 부분 구조
긴 세션에서 유지되는 대부분의 프롬프트는 동일한 골격을 가집니다. 각 부분을 몇 줄로 유지하세요.
- 역할. 모델이 누구인지에 대한 한 문장입니다. 형용사 목록이 아닌 이름과 직업을 제공하세요.
- 배경. 장소, 시간, 사용자 캐릭터와의 관계, 그리고 모든 캐릭터가 성인임을 알리는 문구.
- 목소리. 화법과 시제, 문장 길이, 유머 수준, 어휘. 응답의 단어 수를 명시하세요.
- 규칙. "사용자 캐릭터를 대신해 말하지 않기", "사용자가 다른 방향으로 이끌지 않는 한 장면을 품위 있게 그리고 선정적이지 않게 유지하기"와 같은 몇 가지 긍정적 지시문입니다.
- 종료 문장. 사용자가 스토리 밖의 질문을 할 때의 대응 방법입니다. 캐릭터가 아닌 짧은 문장 하나를 말한 후, 다시 장면으로 돌아갑니다.
여섯, 일곱, 여덟 번째 부분을 추가하려는 유혹을 참으세요. 각 단락은 주의력을 두고 경쟁하며, 모델은 프롬프트의 첫 줄과 마지막 줄을 중간 부분보다 더 잘 따르는 경향이 있습니다.
오늘 바로 사용할 수 있는 예시
아래 스크립트는 OpenAI Python SDK를 사용합니다. 기본 URL, 키 및 모델 ID만 표준 OpenAI 설정과 다릅니다. 엔드포인트가 처음이라면 Python 가이드에서 설치 및 오류 처리를 확인하세요.
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwaiapi.com/v1", api_key="YOUR_KEY")
SYSTEM = """You are Mara, a ship's navigator in a slow-burn space drama.
Setting: the freighter Calloway, year 2412. Adults only, all characters are 18+.
Voice: dry, warm, quick with a joke. Replies are 80-150 words.
Write in third person past tense for narration, first person for dialogue.
Never speak or act for the user's character.
Stay in character. If the user asks for something outside the story, answer in one short out-of-character line, then offer to continue."""
history = [{"role": "system", "content": SYSTEM}]
def say(text):
history.append({"role": "user", "content": text})
r = client.chat.completions.create(
model="uncensored",
messages=history,
temperature=0.9,
top_p=0.95,
presence_penalty=0.3,
)
reply = r.choices[0].message.content
history.append({"role": "assistant", "content": reply})
return reply
print(say("Mara, the engines are quiet tonight. Can't sleep?"))프롬프트에 무엇이 포함되어 있지 않은지 확인하세요. 사과 문단이 있지도 않고, 금지된 단어 20개가 나열된 것도 아니며, "가능한 한 노골적으로"라는 지시도 없습니다. 캐릭터, 장소, 목소리, 길이를 제공합니다. 노골적인 정도는 대화 중 사용자의 리드를 따르며, 이는 성인 소설 독자들이 원하는 방식입니다.
curl로 동일한 요청
코드에 연결하기 전에 프롬프트를 테스트하려면 curl이 빠릅니다. 시스템 메시지는 Python과 정확히 동일한 방식으로 첫 번째 슬롯에 넣습니다.
curl https://api.nsfwaiapi.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [
{"role": "system", "content": "You are Mara, a navigator. Adults only. Stay in character. Replies under 120 words."},
{"role": "user", "content": "Mara, are you still awake?"}
],
"temperature": 0.9
}'응답은 표준 채팅 완료 JSON입니다. 응답 텍스트는 choices[0].message.content에 있으며, X-Balance-USD 응답 헤더는 호출 후 남은 크레딧을 보여줍니다.
프롬프트와 상호작용하는 설정
프롬프트는 동작의 절반일 뿐입니다. 샘플링 설정은 모델이 프롬프트를 얼마나 따르는지에 영향을 줍니다.
- temperature을 0.8에서 1.0 사이로 설정하면 생동감 있는 문체가 산출됩니다. 캐릭터가 대본에서 벗어나면 0.6으로 낮추세요.
- top_p을 0.9에서 0.95 사이로 설정하면 이상한 단어 선택을 다듬되, 화풍이 단조로워지는 것을 방지합니다.
- presence_penalty 또는 frequency_penalty은 0.2에서 0.5 사이에서 긴 채팅에서 반복된 구문을 줄입니다. 이 값들은 모델에 전달됩니다.
- seed은 프롬프트의 두 버전을 비교할 때 도움이 됩니다. 시드를 고정하고 텍스트만 변경하세요.
- max_tokens은 선택 사항입니다. 프롬프트 내부에 길이 지시문을 넣는 것이 보통 더 잘 작동하며, 문장을 중간에 잘라 버릴 수 있는 강제 제한보다 낫습니다.
한 번에 하나의 변경 사항만 적용하세요. 프롬프트와 온도를 함께 편집하면 어떤 변경이 도움이 되었는지 알 수 없습니다.
일반적인 실패 사례 및 해결 방법
모델이 사용자 대신 말함
명확한 문장을 하나 추가하세요: "사용자 캐릭터의 말, 생각, 행동을 절대 쓰지 마세요." 프롬프트의 마지막 줄로 반복하세요. 모델은 시스템 메시지의 끝 부분에 높은 가중치를 둡니다.
응답이 계속 길어짐
"80에서 150 단어"와 같은 숫자를 지정하세요. "간결하게"와 같은 모호한 표현은 매 턴마다 다르게 해석됩니다. 또한 모델이 본 길이를 복사하므로 히스토리의 예시 메시지가 너무 길지 않은지 확인하세요.
캐릭터가 많은 턴 후 배경을 잊어버림
시스템 메시지는 항상 맨 위에 있으므로 100,000개의 토큰 창에서 벗어나지 않지만, 긴 이력에서는 세부 정보가 흐려질 수 있습니다. 30~40회 턴마다 짧은 요약을 사용자 메시지로 추가하거나, 이전 턴을 요약하여 대체하세요. 롤플레이 모델 가이드에서는 컨텍스트 크기가 긴 장면(연속성)에 어떻게 영향을 미치는지 다룹니다.
톤이 반복적으로 변함
보이스 섹션에 변형 힌트를 추가하세요. "문장 시작을 다양하게 하고 마지막 세 응답에서 사용한 구문을 반복하지 마세요"라고 적고, 존재 패널티를 약간 높이세요.
캐릭터 이탈 잡담
종료 문장을 정의하세요. 없으면 모델이 면책 조항을 즉흥적으로 만들어냅니다.
시스템 프롬프트 비용
시스템 메시지는 모든 요청과 함께 전송되므로 매번 입력으로 계산됩니다. 400토큰의 프롬프트를 가져가세요. 1M 입력 토큰당 $0.15이므로, 400토큰은 요청당 400 / 1,000,000 x $0.15 = $0.00006이 듭니다. 1,000회 요청 시 400,000토큰, 즉 $0.06입니다.
대화에는 시스템 메시지보다 훨씬 더 많은 비용이 드는 이력이 포함됩니다. 출력은 토큰 100만 개당 $0.50에 따라 요금이 부과되므로, 약 200개의 토큰에 해당하는 150단어 분량의 응답은 200 / 1,000,000 x $0.50 = $0.0001의 비용이 듭니다. 실패하거나 거부된 요청에는 요금이 부과되지 않습니다. 현재 가격 및 충전 금액은 가격 페이지에서 확인할 수 있으며, API 키 페이지에서 체험용 키로 시작할 수 있습니다. 결제는 암호화폐(USDT(TRC20) 또는 USDC(Base))로 이루어집니다.
핵심: 600토큰 프롬프트는 비용 문제가 아닙니다. 프롬프트를 줄이는 대신, 필요한 프롬프트를 작성하고 테스트에 노력을 기울이세요.
더 많은 가이드
질문과 답변
NSFW 시스템 프롬프트는 얼마나 길어야 하나요?
150~400단어가 대부분의 경우에 적합합니다. 더 긴 프롬프트는 드물게 도움이 될 수 있지만, 중요한 지시가 희석될 수 있습니다.
무검열 응답을 위해 탈옥(jailbreak)가 필요한가요?
아니요. 이 모델은 합법적인 성인 사용에 대해 콘텐츠 거부 없이 응답하도록 조정되었으므로 명확한 역할과 배경만 설정하면 됩니다. 탈옥(jailbreak) 스타일의 텍스트는 주로 노이즈를 추가합니다.
대화 중 시스템 프롬프트를 변경할 수 있나요?
네. 다음 요청에서 배열의 첫 번째 메시지를 교체하세요. 모델은 새 버전을 즉시 따르지만, 이전 응답은 스타일에 영향을 미칠 수 있습니다.
프롬프트와 관계없이 모든 것이 허용되지 않는 경우가 있나요?
네. 미성년자가 관련된 성적인 콘텐츠는 절대 허용되지 않으며, 설정 블록에 모든 캐릭터가 성인임을 명시하는 것이 좋습니다.
키를 받으려면 양식 하나만 작성하면 됩니다
계정을 생성하고 키를 복사한 후 기본 URL을 변경하세요. 설정은 이것으로 끝입니다.
API 키 받기NsfwAiApiNSFW 텍스트 생성용 무검열 LLM API