JA ▾
API キーを取得

NsfwAiApiガイド

NSFW LLMシステムプロンプト:構造と例

NSFW LLMシステムプロンプトは、モデルが演じる役割、ストーリーの許容範囲、応答の書き方などを固定する短い指示ブロックです。このガイドでは、法的な成人向けフィクションやコンパニオンチャットで機能するレイアウトと、実行可能なコードを示します。

更新

ターミナルの上にチャットバブルが重なり、システムプロンプトの構造を示す積み重ねられたプロンプトカード
ローカルのGPUボックスとホスト型サーバークラスターをチャットバブルでつなぐ等角イラスト

成人向けフィクションアプリにおけるシステムプロンプトの役割

システムメッセージはmessages配列の最初の要素です。モデルはすべてのターンごとにこれを読み取り、継続的な指示として扱います。無検閲モデルでは、トーンを決定する隠れた層がないため、プロンプトの重要性はフィルタの多いモデルよりも高くなります。指定しない内容はモデルが独自のデフォルトで埋めるため、それらはしばしば単調で反復的、または冗長になります。

したがってプロンプトの役割は「脱獄」することではありません。このサービスのモデルは、法的な成人向け利用に対してコンテンツ拒否なしで応答するように調整されているため、トリックは不要です。必要なのは方向性です:誰が、どこで、どのようなスタイルで話しており、物語の境界はどこか。これを適切に行うプロンプトは、何百ものターンにわたって一貫したキャラクターを生成します。

制御外であり、どのプロンプトにも含まれないルールが1つあります。それは未成年者を含む性的コンテンツの禁止です。プロンプトにすべてのキャラクターが成人であることを明記してください。これによりストーリーが健全に保たれ、APIドキュメントのサービス規約にも適合します。

5つの部分構成

長時間のセッションで維持できるプロンプトの多くは同じ骨格を持っています。各部分は数行に抑えてください。

  1. 役割。 モデルが誰であるかを表す1文。形容詞のリストではなく、名前と役割を指定してください。
  2. 設定。 場所、時間、ユーザーのキャラクターとの関係、および全キャラクターが成人である旨の注記。
  3. 口調。 人称と時制、文の長さ、ユーモアのレベル、語彙。返信の単語数を指定してください。
  4. ルール。 「ユーザーのキャラクターのために話さない」「ユーザーが指示しない限り、場は上品で非グラフィックに保つ」など、いくつかの肯定的な指示。
  5. 終了行。 ユーザーが物語外の質問をした場合の対応。キャラクターではない短い文を1つ述べ、その後シーンに戻ります。

6番目、7番目、8番目の部分を追加する衝動に駆られないでください。余分な段落は注意を奪い合い、モデルはプロンプトの最初と最後の行を中間部よりも確実に従う傾向があります。

今日送れる動作例

以下のスクリプトは 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 はプロンプトの2つのバージョンを比較する際に役立ちます:シードを固定し、テキストのみを変更します。
  • max_tokens はオプションです。プロンプト内の長さの指示は、文を途中で切ってしまう硬制限よりも通常より効果的です。

一度に1つだけ変更してください。プロンプトと温度を同時に編集すると、どちらの変更が役立ったか分かりません。

一般的な失敗とその修正方法

モデルがユーザーの代弁をする

明示的な行を1つ追加します:「ユーザーのキャラクターの言葉、思考、行動を書かないでください」。これをプロンプトの最終行として繰り返します。モデルはシステムメッセージの末尾に大きな重みを置きます。

応答が長くなり続ける

「80〜150語」のように数値を指定します。「簡潔に」などの曖昧な表現はターンごとに異なる解釈をされます。また、履歴内の自分の例メッセージが長すぎないか確認してください。モデルは目にする長さをコピーするからです。

キャラクターが設定を忘れる

システムメッセージは常に先頭に配置されるため、100,000トークンのコンテキストウィンドウから外れることはありませんが、長い履歴では詳細が曖昧になります。30〜40ターンごとに、ユーザーメッセージとして短い要約を追加するか、古いターンを要約して置き換えてください。ロールプレイモデルガイドでは、コンテキストサイズが長いシーンに与える影響について説明しています。

トーンが反復的になる

口調セクションに変化のヒントを追加します(例:「文の始まりを変え、直近3回の応答で使ったフレーズの繰り返しを避ける」)し、存在ペナルティをわずかに上げます。

キャラクター外雑談

終了行を定義します。これがないと、モデルは免責事項を即興で作成します。

システムプロンプトのコスト

システムメッセージはリクエストごとに送信されるため、毎回入力としてカウントされます。400トークンのプロンプトを考えます。1M入力トークンあたり$0.15の場合、400トークンのコストは400 / 1,000,000 x $0.15 = $0.00006 / リクエストです。1,000リクエストでは400,000トークン、つまり$0.06になります。

会話には履歴も含まれるため、通常システムメッセージよりも遥かに多くのトークンを消費します。出力は1Mトークンあたり$0.50で課金されるため、約200トークンの150語の返信には200 / 1,000,000 x $0.50 = $0.0001がかかります。失敗または拒否されたリクエストには課金されません。現在の価格とチャージ金額は料金ページに記載されており、APIキーページからトライアルキーから開始できます。支払いは暗号資産(TRC20上のUSDTまたはBase上のUSDC)で行われます。

結論:600トークンのプロンプトはコストの問題ではありません。必要なプロンプトを書き、削るのではなくテストに労力を費やしてください。

質問と回答

NSFWシステムプロンプトの長さはどのくらいにすべきですか?

150〜400語の範囲でほとんどのケースをカバーできます。より長いプロンプトはあまり役立たず、重要な指示が薄まる可能性があります。

無検閲の応答を得るためにジェイルブレイクは必要ですか?

いいえ。このモデルは法的な成人利用に対してコンテンツ拒否なしで応答するように調整されているため、明確な役割と設定だけで十分です。ジェイルブレイク風テキストは主にノイズを追加します。

会話中にシステムプロンプトを変更できますか?

はい。次のリクエストで配列内の最初のメッセージを置き換えてください。モデルは新しいバージョンを直ちに従いますが、履歴内の以前の応答はスタイルに影響を与え続けます。

プロンプトに関係なく、制限されていることはありますか?

はい。未成年者を含む性的コンテンツは常に禁止されており、設定ブロックにはすべてのキャラクターが成人であることを明記する必要があります。

キーはフォーム1つで手に入ります

アカウントを作成し、キーをコピーし、ベースURLを変更します。これでセットアップは完了です。

API キーを取得

NsfwAiApiNSFWテキスト生成用の無検閲LLM API