FR ▾
Obtenir une clé API

NsfwAiApiGuide

Prompt système LLM NSFW : Structure et exemples

Un prompt système LLM NSFW est un court bloc d'instructions qui définit le rôle du modèle, ce que l'histoire permet et l'apparence des réponses. Ce guide présente une mise en page efficace pour la fiction adulte légale et le chat compagnon, avec du code que vous pouvez exécuter.

Mis à jour

Cartes de prompt empilées s'écoulant dans une bulle de chat au-dessus d'un terminal, illustrant la structure du prompt système
Illustration isométrique comparant une boîte GPU locale et un cluster de serveurs hébergés reliés par des bulles de chat

Rôle d'un prompt système dans une application de fiction pour adultes

Le message système est la première entrée du tableau messages. Le modèle le lit avant chaque tour et le traite comme des instructions permanentes. Avec un modèle non censuré, le prompt est plus important que pour un modèle fortement filtré, car il n’y a pas de couche cachée qui décide du ton pour vous. Tout ce que vous ne spécifiez pas, le modèle le remplit avec ses propres valeurs par défaut, qui sont souvent plates, répétitives ou trop longues.

Le rôle du prompt n'est donc pas de « jailbreaker » le modèle. Le modèle de ce service est ajusté pour répondre sans refus de contenu pour un usage adulte légal, vous n'avez donc pas besoin d'astuces. Vous avez besoin d'indications : qui parle, où, dans quel style, et où se situent les limites de l'histoire. Un prompt qui fait cela bien produit des personnages cohérents sur des centaines de tours.

Une règle échappe à votre contrôle et à tout prompt : aucun contenu sexuel impliquant des mineurs. Indiquez dans votre prompt que chaque personnage est un adulte. Cela garde l'histoire propre et respecte les règles du service dans la documentation de l'API.

La structure en cinq parties

La plupart des prompts qui tiennent sur une longue session ont la même structure. Gardez chaque partie sur quelques lignes.

  1. Rôle. Une phrase sur l’identité du modèle. Donnez un nom et un métier, pas une liste d’adjectifs.
  2. Cadre. Lieu, époque, relation avec le personnage de l'utilisateur, et une note indiquant que tous les personnages sont des adultes.
  3. Voix. Personne et temps, longueur des phrases, niveau d'humour, vocabulaire. Indiquez la longueur des réponses en mots.
  4. Règles. Une poignée d’instructions positives, telles que « ne jamais parler pour le personnage de l’utilisateur » et « garder les scènes élégantes et non graphiques sauf si l’utilisateur change la direction ».
  5. Phrase de sortie. Que faire lorsque l’utilisateur demande quelque chose en dehors de l’histoire. Une seule phrase courte hors personnage, puis retour à la scène.

Résistez à l'envie d'ajouter une sixième, septième ou huitième partie. Chaque paragraphe supplémentaire concurrence l'attention, et les modèles ont tendance à suivre plus fiablement les premières et dernières lignes d'un prompt que le milieu.

Un exemple fonctionnel à envoyer aujourd'hui

Le script ci-dessous utilise le SDK Python d’OpenAI. Seule l’URL de base, la clé et l’ID du modèle diffèrent d’une configuration OpenAI standard. Si vous débutez avec l’endpoint, le guide Python couvre l’installation et la gestion des erreurs.

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?"))

Notez ce que le prompt ne contient pas. Pas de paragraphe d'excuses, pas de liste de vingt mots interdits, pas d'instruction « être aussi explicite que possible ». Il donne un personnage, un lieu, une voix et une longueur. L'explicitité suit ensuite l'initiative de l'utilisateur dans la conversation, ce qui est la façon dont la plupart des lecteurs de fiction adulte souhaitent qu'il se comporte.

La même requête avec curl

Si vous voulez tester un prompt avant de l'intégrer au code, curl est rapide. Le message système va dans la première position, exactement comme en 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
  }'

La réponse est un JSON standard de chat completion. Le texte de la réponse est dans choices[0].message.content, et l'en-tête de réponse X-Balance-USD affiche votre crédit restant après l'appel.

Paramètres interagissant avec le prompt

Le prompt ne constitue que la moitié du comportement. Les paramètres d'échantillonnage modifient la façon dont le modèle le suit.

  • temperature entre 0,8 et 1,0 donne une prose vivante. Réduisez à 0,6 si le personnage s’éloigne du script.
  • top_p autour de 0,9 à 0,95 réduit les choix de mots étranges sans aplatir la voix.
  • presence_penalty ou frequency_penalty de 0,2 à 0,5 réduit les phrases répétées dans les longues conversations. Ces paramètres sont transmis au modèle.
  • seed aide lorsque vous comparez deux versions d’un prompt : définissez la graine et modifiez uniquement le texte.
  • max_tokens est optionnel. Une instruction de longueur dans le prompt fonctionne généralement mieux qu'une limite stricte, qui peut couper une phrase en deux.

Modifiez une chose à la fois. Si vous modifiez le prompt et la température ensemble, vous ne saurez pas quel changement a aidé.

Échecs courants et comment les corriger

Le modèle parle à la place de l'utilisateur

Ajoutez une ligne explicite : « N'écrivez jamais les mots, les pensées ou les actions du personnage de l'utilisateur. » Répétez-la comme dernière ligne du prompt. Les modèles pondèrent fortement la fin du message système.

Les réponses deviennent de plus en plus longues

Donnez un nombre, comme « 80 à 150 mots ». Un libellé vague comme « concis » est interprété différemment à chaque tour. Vérifiez aussi que vos propres messages d'exemple dans l'historique ne sont pas longs, car le modèle copie la longueur qu'il voit.

Le personnage oublie le cadre après de nombreux tours

Le message système est toujours en haut, il ne sort donc pas d’une fenêtre de 100 000 tokens, mais les détails dérivent dans un long historique. Tous les 30 ou 40 tours, ajoutez un bref résumé en tant que message utilisateur, ou résumez les anciens tours et remplacez-les. Le guide du modèle de jeu de rôle discute de l’impact de la taille du contexte sur les longues scènes.

Le ton devient répétitif

Ajoutez une indication de variation à la section voix, comme « variez les débuts de phrase et évitez de répéter une phrase utilisée dans les trois dernières réponses », et augmentez légèrement la pénalité de présence.

Bavardages hors personnage

Définissez la ligne de sortie. Sans elle, le modèle improvise des avertissements.

Combien coûte le prompt système

Le message système est envoyé avec chaque requête, il est donc compté comme entrée à chaque fois. Prenons un prompt de 400 tokens. À $0,15 par 1M de tokens d’entrée, 400 tokens coûtent 400 / 1 000 000 x $0,15 = $0,00006 par requête. Sur 1 000 requêtes, cela représente 400 000 tokens, soit $0,06.

Une conversation comporte également son historique, qui coûte généralement beaucoup plus cher que le message système. La sortie est facturée à $0,50 par 1M de tokens, donc une réponse de 150 mots d’environ 200 tokens coûte 200 / 1 000 000 x $0,50 = $0,0001. Les requêtes échouées ou refusées ne sont pas facturées. Les prix actuels et les montants de rechargement sont sur la page des tarifs, et vous pouvez commencer avec une clé d’essai depuis la page des clés API. Le paiement est en crypto (USDT sur TRC20 ou USDC sur Base).

La leçon à retenir : un prompt de 600 tokens n’est pas un problème de coût. Rédigez le prompt dont vous avez besoin et investissez vos efforts à le tester plutôt qu’à le réduire.

Questions et réponses

Quelle doit être la longueur d’un prompt système NSFW ?

Entre 150 et 400 mots suffisent pour la plupart des cas. Des prompts plus longs aident rarement et peuvent diluer les instructions importantes.

Avez-vous besoin d’un jailbreaker pour obtenir des réponses sans censure ?

Non. Le modèle est ajusté pour répondre sans refus de contenu pour un usage adulte légal, donc un rôle et un cadre clairs suffisent. Le texte de style jailbreak ajoute surtout du bruit.

Puis-je modifier le prompt système en cours de conversation ?

Oui. Remplacez le premier message du tableau lors de la requête suivante. Le modèle respecte immédiatement la nouvelle version, bien que les réponses antérieures dans l’histoire influencent toujours son style.

Y a-t-il des limites quel que soit le prompt ?

Oui. Le contenu sexuel impliquant des mineurs n'est jamais autorisé, et vous devez indiquer que tous les personnages sont adultes dans votre bloc de paramétrage.

Votre clé n'est qu'à un formulaire d'ici

Créez un compte, copiez la clé, modifiez l'URL de base. C'est toute la configuration.

Obtenir clé API

NsfwAiApiAPI LLM non censurée pour la génération de texte NSFW