NsfwAiApi/指南
NSFW LLM 系统提示词:结构与示例
NSFW LLM 系统提示词是一段简短的指令块,用于固定模型扮演的角色、故事允许的内容以及回复的阅读方式。本指南展示了一种适用于合法成人小说和伴侣聊天的布局,并附有你可以运行的代码。


系统提示词在成人小说应用中的作用
系统消息是 messages 数组中的第一个条目。模型在每一轮对话前都会读取它,并将其视为固定指令。使用无审查模型时,提示词比使用重度过滤模型时更重要,因为没有隐藏层来为你决定语气。任何未指定的内容,模型都会用自己的默认值填充,而这些默认值往往平淡、重复或过长。
因此,提示词的作用不是“越狱”。本服务上的模型已针对合法成人用途进行调整,能够回答且不会拒绝内容,因此你不需要技巧。你需要的是方向:谁在说话、在哪里、以什么风格,以及故事的边缘在哪里。一个能做好这些的提示词可以在数百轮对话中产生一致的角色。
有一条规则不在你的控制范围内,也不在任何提示词中:禁止涉及未成年人的性内容。在提示词中声明每个角色都是成年人。这能让故事保持整洁,并符合 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?"))注意提示词不包含什么。没有道歉段落,没有二十个禁用词列表,也没有“尽可能露骨”的指令。它提供了一个角色、一个地点、一种声音和一个长度。露骨程度则跟随用户在对话中的引导,这是大多数成人小说读者希望它表现的方式。
使用 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 是可选的。提示词中的长度指令通常比硬性上限效果更好,硬性上限可能会将句子截断一半。
每次只修改一项。如果你同时编辑提示词和 temperature,你将无法确定是哪项改动起了作用。
常见故障及其修复方法
模型代替用户发言
添加一行明确的内容:“永远不要写用户角色的话语、想法或动作。”将其作为提示词的最后一行重复。模型会给予系统消息末尾较高的权重。
回复持续变长
给出一个数字,例如“80 到 150 字”。模糊的措辞如“简洁”在每一轮对话中的解读都不同。还要检查历史记录中的你自己的示例消息是否过长,因为模型会复制它看到的长度。
角色在多次交互后忘记了场景设定
系统消息始终位于顶部,因此它不会超出 10 万 token 的上下文窗口,但细节在长历史记录中会漂移。每 30 或 40 轮,追加一条简短的回顾作为用户消息,或者总结旧轮次并替换它们。角色扮演模型指南 讨论了上下文大小对长场景的影响。
语气变得重复
向声音部分添加变化提示,例如“变化句首并避免重复最近三次回复中使用的短语”,并略微提高存在惩罚。
跳出角色的闲聊
定义退出行。如果没有退出行,模型会即兴发挥免责声明。
系统提示词的成本
系统消息随每次请求发送,因此每次计算为输入。假设提示词为 400 token。每 100 万输入 token 价格为 $0.15,则 400 token 的成本为 400 / 1,000,000 x $0.15 = $0.00006 每次请求。在 1,000 次请求中,这相当于 400,000 token,或 $0.06。
对话还携带其历史记录,这通常比系统消息成本高得多。输出按每 100 万 token $0.50 定价,因此约 200 token 的 150 字回复的成本为 200 / 1,000,000 x $0.50 = $0.0001。失败或被拒绝的请求不收费。当前价格和充值金额在 定价页面 上,你可以从 API 密钥页面 获取试用密钥。支付使用加密货币(TRC20 上的 USDT 或 Base 上的 USDC)。
结论:600 token 的提示词不是成本问题。写出你需要的提示词,把精力花在测试它上,而不是削减它。
更多指南
问答
NSFW 系统提示词应该多长?
150 到 400 字涵盖了大多数情况。更长的提示词很少有帮助,反而可能稀释重要的指令。
我需要越狱才能获得无审查回复吗?
不需要。模型已针对合法成人用途进行调整,能够回答且不会拒绝内容,因此清晰的角色和背景就足够了。越狱风格的文本主要增加噪音。
我可以在对话中途更改系统提示词吗?
可以。在下次请求中替换数组中的第一条消息。模型会立即遵循新版本,尽管历史记录中的早期回复仍会影响其风格。
无论提示词如何,有什么是禁止的吗?
是的。涉及未成年人的色情内容始终禁止,你应在设置块中声明所有角色均为成年人。