NsfwAiApi/ガイド
ロールプレイに最適なローカルLLMか、ホスト型APIか?
ロールプレイに最適なローカルLLMは、GPUが収容でき、かつ許容できる品質の最も大きな無検閲モデルです。この答えは数ヶ月ごとに変わります。ハードウェアをスキップしたい場合は、ホストされたエンドポイントがURLの変更だけで同じチャットワークフローを提供します。

ローカルかホストか:迅速な判断基準
すでに高性能なGPUをお持ちの場合、すべてをオフラインにしたい場合、またはモデルのチューニングを楽しむ場合はローカルを選択してください。ストーリーに長い記憶を求めている場合、ラップトップやスマートフォンを使用している場合、またはセットアップに週末ではなく数分を使いたい場合はホストを選択してください。多くのユーザーは両方を行っています:プライベートな実験用のローカルモデルと、長いキャンペーン用のホストモデルです。
| 要素 | ローカルモデル | ホスト型API |
|---|---|---|
| コストモデル | ハードウェアと電力、トークン単位の費用なし | 前払いクレジットからトークン課金 |
| モデルサイズ | GPUメモリの制限を受ける | プロバイダが実行するもの |
| コンテキストの長さ | より長いコンテキストにはより多くのメモリが必要であるため、メモリに制限される | ここでは100,000トークン |
| プライバシー | データはあなたのマシンから外に出ません | プロンプトはプロバイダに送信されます。ここではトレーニングには使用されません |
| セットアップ | ランタイム、重み、量子化、アップデート | ベースURLとキー |
| あらゆるデバイスから動作 | 自分のマシンを公開する場合のみ | はい |
最適なローカルモデルを決定する実際の要因
ロールプレイに最適なローカルLLMのランキングはすぐに古くなり、誰にとっても正しい単一の名前はありません。代わりに、実際のセッションで現れるものに基づいて候補を判断してください。
- 拒否動作。 多くのベースモデルとインストラクショナルモデルは、特定のテーマを拒否するように調整されています。フィクション向けにファインチューニングされたモデルや、無検閲とマークされているモデルは通常、拒否が少ないですが、品質は異なるため、自分のシーンでテストしてください。
- キャラクターの維持。 モデルがあなたのキャラクターの行動を叙述し始め、毎ターン同じフレーズを繰り返す、または誰が部屋にいるのかを忘れることに注意してください。
- 文章の質。 10回の返信を連続して読んでください。あるモデルは1ターン目は問題ないが、10回目には疲れることがあります。
- コンテキストの処理。 モデルは長いウィンドウを謳っていても、その中間の情報を失うことがあります。チャットの初期にある事実が後で重要になるテストを実行してください。
- サイズと量子化。 重い量子化に圧縮された大きなモデルは、高い精度で実行される小さなモデルよりも多くの情報を失う可能性があります。比較してください、推測しないでください。
使用するランタイムのコミュニティスレッドとモデルカードが、現在の推奨事項のための適切な場所です。2〜3つの候補をダウンロードし、それぞれで同じシーンを実行し、ストーリーを続けたいと思わせるものを選択してください。
ローカルが限界に達する場所
ロールプレイヤーがぶつかる壁はメモリであり、それは2箇所で発生します。1つ目はモデル自体です:大きなモデルはより良い文章を書きますが、より多くのGPUメモリを必要とします。2つ目はコンテキストです。長いストーリーのすべてのメッセージは、新しいターンごとに再度送信され、それを保持するキャッシュも長さとともに成長するため、長いキャンペーンは短いチャットを処理できるGPUを圧迫する可能性があります。
一般的なワークアラウンドは、古いターンを要約し、関連する事実のみを注入するロアブックを使用し、コンテキストサイズを下げることです。これらは機能しますが、作業でもあります。100,000トークンのウィンドウを持つホスト型エンドポイントを使用すると、ストーリーのより多くの部分を明確に表示したままにでき、長いキャンペーン、多くのキャラクターを持つ共有世界、数週間続くストーリーに適しています。
コストはトレードオフなので、測定すると役立ちます。チャットの履歴が30,000トークンで、モデルが返信に300トークンを書くと仮定します。1ターンあたりのコストは、1Mあたり$0.15で30,000入力トークン($0.0045)と、1Mあたり$0.50で300出力トークン($0.00015)で、合計$0.00465、100ターンで$0.465です。長い夜のプレイは1ドル未満で収まります。価格表にはレートと、より大きなチャージのためのボーナスレベルが記載されています。
Pythonでの動作するホスト設定
エンドポイントはOpenAI互換なので、公式のopenaiパッケージはベース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互換のエンドポイントを追加できます。フィールドはどこでも同じです:
- ベースまたはエンドポイントURL:
https://api.nsfwaiapi.com/v1。一部のアプリは/chat/completionsで終わる完全なパスを必要とします。アプリがベースを要求する場合、/v1で停止してください。 - APIキー: ベアラートークンとして送信されるあなたのキー。
- モデル:
uncensored。アプリがモデルリストを取得できる場合、GET /v1/modelsを呼び出すことができます。 - ストリーミング: オン。返信は生成される際に表示され、アプリはもしその展開が気に入らなければ早期に停止できます。
サンプリングについては、温度0.8〜1.0が物語テキストに適しており、top_pは0.95付近です。小さな周波数または存在ペナルティは、長いチャットで収集されやすい繰り返しフレーズを減らします。反復が確認できる場合にのみペナルティを上げてください。高い値は文章を奇妙に回避的にするためです。ストップシーケンスはそのまま渡されるため、プレイヤーの名前に続くコロンをストップ文字列として追加すると、モデルがあなたの代わりに話そうとする場合に役立ちます。アプリのコンテキストサイズを、支払いしたい額に合わせて設定してください。100,000トークンすべてを埋める必要はありません。
複数のチャットタブや友人用のボットを実行する場合は、同時実行数に注意してください。フルキーは8つの同時リクエストと1分あたり300リクエストを許可し、トライアルキーは2と60を許可します。ストリーミングされた返信はストリームが終了するまでスロットを保持するため、固まったタブがスロットを使い果たす可能性があります。ドキュメントには制限とレスポンスヘッダー(残高クレジットを表示するX-Balance-USDを含む)がリストされています。
長いストーリーを健全に保つための小さなルーチン
長いロールプレイセッションは予測可能な方法で失敗し、いくつかの習慣でその大部分を防げます。20〜30ターンごとに短いストーリーの要約を書き、システムメッセージの後にプロンプトの上部近くに保持してください。手動で更新するか、モデルに生成を依頼し、名前、場所、約束が生き残っているか確認してください。関係やオープンスレッドなど、決して忘れてはいけない事実をシステムプロンプト自体に固定してください。
返信が気に入らない方向に進んだ場合は、チャットで議論するのではなく再生成してください。議論は履歴を汚染し、モデルにそのシーンが議論に関するものであると教えます。方向付けをしたい場合は、角括弧で明確な1行を追加します。例えば、次のシーンのムードに関するメモなどです。次の返信にそれを持たせます。キャラクター名を統一し、すべての非プレイヤーキャラクターに1行のボイスノート(口調のメモ)を与えてください。似ている声のキャラクターをモデルが混同するためです。
このモデルの正直な制限
これは独立したプロバイダが運用するオープンウェイトモデルで、法的な成人用途に対してコンテンツ拒否なしで回答するようにチューニングされています。任意のモデルベンダーの公式APIではなく、複数のモデル間のルーターでもありません。モデル間の選択はできず、すべてのタスクで最高のクローズドモデルに匹敵するとは期待しないでください。
テキストのみを生成します。キャラクター用の画像、音声、ロアブック検索用の埋め込みはありません。ポートレートや音声が必要な場合は、それぞれに別のサービスを追加する必要があります。ファインチューニングもありません。品質はプロンプトにも依存します:曖昧なシステムプロンプトは曖昧なフィクションを生み出し、良いキャラクタープロファイルと例文の対話は、サンプリングの調整よりも効果的です。
ルールは1つだけ固定されています。未成年者を含む性的コンテンツは禁止されており、それを生成しようとする設定はサポートされません。キャラクターを大人にし、利用法を合法に保ってください。フィクション、コンパニオンアプリ、大人向けキャラクターチャットでは、拒否が少なく、長いコンテキストウィンドウを持つことが有用な部分です。
その他のガイド
質問と回答
ロールプレイにはローカルLLMの方がホスト型APIより優れていますか?
どちらが常に優れているわけではありません。ローカルはオフラインでのプライバシーとトークンごとのコストなしを提供し、ホスト型は長いコンテキストとハードウェアの制限なしを提供します。多くの人が両方を使用しています。
SillyTavernをこのAPIで使用できますか?
はい。SillyTavernや類似のアプリはOpenAI互換のエンドポイントを受け付けます。URLにhttps://api.nsfwaiapi.com/v1、キーにあなたのキー、モデルIDにuncensoredを入力してください。
ロールプレイセッションで利用可能なコンテキストの量は?
コンテキストウィンドウは100,000トークンで、プロンプトと返信を合わせてカウントされます。長いチャットは履歴が毎ターン送信されるため、コストがかかります。
キャラクターの画像や音声は生成されますか?
いいえ。テキストのみで、画像、音声、動画の生成や埋め込み機能はありません。
キーはフォームを1つ埋めるだけで手に入ります
アカウントを作成し、キーをコピーし、ベースURLを変更します。これでセットアップは完了です。
API キーを取得NsfwAiApiNSFWテキスト生成用の無検閲LLM API