NsfwAiApi/Guide
Meilleur LLM local pour le jeu de rôle ou une API hébergée ?
Le meilleur LLM local pour le jeu de rôle est le plus grand modèle sans censure que votre GPU peut contenir à une qualité que vous acceptez, et cette réponse change tous les quelques mois. Si vous préférez éviter le matériel, un endpoint hébergé vous offre le même flux de travail de chat avec un seul changement d’URL.

Local ou hébergé : la décision rapide
Choisissez le local si vous possédez déjà un GPU capable, si vous voulez tout hors ligne ou si vous aimez ajuster les modèles. Choisissez l'hébergé si vous voulez une longue mémoire dans une histoire, si vous utilisez un ordinateur portable ou un téléphone, ou si vous préférez passer des minutes plutôt que des week-ends à la configuration. Beaucoup font les deux : un modèle local pour des expériences privées et un hébergé pour les longues campagnes.
| Facteur | Modèle local | API hébergée |
|---|---|---|
| Modèle de coût | Matériel et énergie, aucun frais par token | Payer par token depuis un crédit prépayé |
| Taille du modèle | Limité par la mémoire de votre GPU | Ce que le fournisseur exécute |
| Longueur du contexte | Limité par la mémoire, car un contexte plus long en nécessite davantage | 100 000 tokens ici |
| Confidentialité | Rien ne quitte votre machine | Les prompts voyagent vers le fournisseur ; ici, ils ne sont pas utilisés pour l'entraînement |
| Configuration | Temps d'exécution, poids, quantification, mises à jour | Une URL de base et une clé |
| Fonctionne depuis n'importe quel appareil | Uniquement si vous exposez votre propre machine | Oui |
Ce qui décide vraiment du meilleur modèle local
Les classements du meilleur LLM local pour le jeu de rôle deviennent rapidement obsolètes, et aucun nom unique ne convient à tout le monde. Au lieu de cela, évaluez les candidats sur les éléments qui apparaissent lors d'une session réelle.
- Comportement de refus. De nombreux modèles de base et d'instruction ont été ajustés pour refuser certains thèmes. Les modèles peaufinés pour la fiction ou marqués comme sans censure refusent généralement moins, mais la qualité varie, testez-les donc avec vos propres scènes.
- Rester en personnage. Méfiez-vous d'un modèle qui dérive vers la narration des actions de votre personnage, répète les mêmes phrases à chaque tour ou oublie qui est dans la pièce.
- Qualité du texte. Lisez dix réponses de suite. Certains modèles sont corrects pour un tour mais lassants à la dixième réponse.
- Gestion du contexte. Un modèle peut annoncer une longue fenêtre et perdre tout de même les détails du milieu. Lancez un test où un fait du début de la conversation est important plus tard.
- Taille et quantification. Un plus grand modèle compressé en quantification lourde peut perdre plus qu'un plus petit exécuté avec une précision supérieure. Comparez, ne supposez pas.
Les fils de discussion de la communauté et les fiches modèles pour le runtime que vous utilisez sont l'endroit idéal pour les recommandations actuelles. Téléchargez deux ou trois candidats, exécutez la même scène sur chacun et gardez celui qui vous donne envie de continuer l'histoire.
Où le local arrive à saturation
Le mur que rencontrent la plupart des joueurs de rôle est la mémoire, et cela se produit à deux endroits. Le premier est le modèle lui-même : un modèle plus grand écrit mieux mais nécessite plus de mémoire GPU. Le second est le contexte. Chaque message dans une longue histoire est renvoyé à chaque nouveau tour, et le cache qui le contient grossit également avec la longueur, donc une longue campagne peut mettre à rude épreuve un GPU qui gère très bien les courtes conversations.
Les contournements habituels consistent à résumer les anciens tours, à utiliser des livres de lore qui injectent uniquement des faits pertinents, et à réduire la taille de la fenêtre de contexte. Ils fonctionnent, et ils demandent aussi du travail. Un endpoint hébergé avec une fenêtre de 100 000 tokens vous permet de conserver bien plus de l’histoire en vue claire, ce qui convient aux campagnes longues, aux mondes partagés avec de nombreux personnages et aux histoires qui durent plusieurs semaines.
Le compromis est le coût, il est donc utile de le mesurer. Supposons qu'une conversation ait 30 000 tokens d'historique et que le modèle écrive 300 tokens par réponse. Un tour coûte 30 000 tokens d'entrée à 0,15 $ par 1M, soit 0,0045 $, plus 300 tokens de sortie à 0,50 $ par 1M, soit 0,00015 $. Cela représente 0,00465 $ par tour, ou 0,465 $ pour 100 tours. Une longue soirée de jeu coûte bien moins d'un dollar. La page des tarifs liste les taux et les niveaux de bonus pour les recharges plus importantes.
Une configuration hébergée fonctionnelle en Python
L'endpoint est compatible OpenAI, donc le package officiel openai fonctionne sans modification, à part l'URL de base et la clé. L'ID du modèle est uncensored. Obtenez d'abord une clé depuis la page Clé API ; les nouveaux comptes peuvent y réclamer un crédit d'essai de 0,50 $ en un clic, sans moyens de paiement nécessaires.
Ce script conserve un historique glissant, diffuse la réponse et supprime les anciens tours pour que le prompt reste léger. Le prompt système est la partie qui vaut votre temps : il définit le cadre, les règles et le style.
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.")
Comme la fenêtre de contexte fait 100 000 tokens, vous pouvez augmenter beaucoup MAX_TURNS avant que la réduction ne devienne nécessaire. La réduction reste une bonne habitude : des prompts plus courts coûtent moins cher et maintiennent le modèle concentré sur les événements récents.
Paramètres client pour SillyTavern et applications similaires
La plupart des interfaces de jeu de rôle ont un écran de connexion pour une source de complétion de chat compatible OpenAI ou personnalisée. SillyTavern, par exemple, vous permet d'ajouter un endpoint compatible OpenAI. Les champs sont les mêmes partout :
- URL de base ou endpoint :
https://api.nsfwaiapi.com/v1. Certaines applications veulent le chemin complet se terminant par/chat/completions; si l'application demande une base, arrêtez-vous à/v1. - Clé API : votre clé, envoyée en tant que jeton porteur.
- Modèle :
uncensored. Si l'application peut récupérer une liste de modèles, elle peut appelerGET /v1/models. - Streaming : activé. Les réponses apparaissent à mesure qu'elles sont générées, et l'application peut s'arrêter prématurément si vous n'aimez pas la direction.
Pour l'échantillonnage, une température autour de 0,8 à 1,0 convient au texte narratif, avec top_p près de 0,95. Une petite pénalité de fréquence ou de présence réduit les phrases répétées que les longues conversations ont tendance à accumuler. Augmentez la pénalité uniquement si vous voyez des répétitions, car des valeurs élevées rendent le texte étrangement évasif. Les séquences d'arrêt sont transmises, donc ajouter le nom du joueur suivi de deux points comme chaîne d'arrêt aide si un modèle essaie de parler pour vous. Définissez la taille du contexte de l'application à ce que vous voulez payer ; vous n'avez pas besoin de remplir tous les 100 000 tokens.
Gardez à l'esprit la concurrence si vous ouvrez plusieurs onglets de chat ou un bot pour des amis. Une clé complète permet 8 requêtes simultanées et 300 par minute, et une clé d'essai permet 2 et 60. Une réponse en streaming occupe sa place jusqu'à la fin du flux, donc un onglet bloqué peut consommer une place. Les docs listent les limites et les en-têtes de réponse, y compris X-Balance-USD, qui affiche votre crédit restant.
Une petite routine pour garder les longues histoires saines
Les longues sessions de jeu de rôle échouent de manière prévisible, et quelques habitudes préviennent la plupart des problèmes. Rédigez un court résumé de l'histoire tous les 20 ou 30 tours et gardez-le près du haut du prompt, après le message système. Mettez-le à jour manuellement ou demandez au modèle de le produire, puis vérifiez que les noms, les lieux et les promesses ont survécu. Épinglez les faits qui ne doivent jamais être oubliés, tels que les relations et les fils ouverts, dans le prompt système lui-même.
Si une réponse prend une direction que vous n'aimez pas, régénérez-la au lieu de discuter avec elle dans le chat. Les arguments polluent l'historique et apprennent au modèle que la scène porte sur l'argument. Lorsque vous voulez orienter, ajoutez une ligne claire entre crochets, telle qu'une note sur l'ambiance de la scène suivante, et laissez la prochaine réponse la reprendre. Gardez les noms de personnages cohérents et donnez à chaque personnage non-joueur une note vocale d'une ligne, car les modèles confondent les personnages qui se ressemblent.
Les limites honnêtes de ce modèle
C'est un seul modèle à poids ouverts, hébergé par un fournisseur indépendant et ajusté pour répondre sans refus de contenu pour un usage adulte légal. Ce n'est pas l'API officielle d'aucun fournisseur de modèle et ce n'est pas un routeur entre plusieurs. Vous ne pouvez pas choisir entre des modèles, et vous ne devez pas vous attendre à ce qu'il égale les meilleurs modèles fermés sur toutes les tâches.
Il génère uniquement du texte. Il n'y a pas d'images pour vos personnages, pas de voix et pas d'embeddings pour une recherche dans un lorebook, donc si vous voulez des portraits ou de la parole, vous devez ajouter un service séparé pour chacun. Il n'y a pas non plus de fine-tuning. La qualité dépendra aussi de votre prompt : un prompt système vague donne une fiction vague, et un bon profil de personnage avec des dialogues d'exemple fait plus qu'un simple réglage de l'échantillonnage.
Une règle est fixe. Le contenu sexuel impliquant des mineurs n'est pas autorisé, et une configuration qui tente d'en produire ne sera pas prise en charge. Gardez les personnages adultes et assurez-vous que votre utilisation est légale. Pour la fiction, les applications de compagnon et les chats de personnages destinés aux adultes, la combinaison de moins de refus et d'une longue fenêtre de contexte est l'aspect utile.
Plus de guides
Questions et réponses
Un LLM local est-il meilleur qu'une API hébergée pour le jeu de rôle ?
Aucune solution n’est meilleure partout. Le local vous offre une confidentialité hors ligne et aucun coût par token, tandis que l’hébergé vous offre une fenêtre de contexte plus longue et aucune limite matérielle. Beaucoup de personnes utilisent les deux.
Puis-je utiliser SillyTavern avec cette API ?
Oui. SillyTavern et des applications similaires acceptent un endpoint compatible OpenAI. Saisissez https://api.nsfwaiapi.com/v1 comme URL, votre clé et l'ID de modèle uncensored.
Quelle quantité de contexte une session de jeu de rôle peut-elle utiliser ?
La fenêtre de contexte est de 100 000 tokens, en comptant le prompt et la réponse ensemble. Les longues conversations coûtent plus cher car l'historique est envoyé à chaque tour.
Génère-t-il des images ou de la voix pour mes personnages ?
Non. Le service est textuel uniquement, sans génération d'images, d'audio ou de vidéo, et sans embeddings.
Votre clé est à un formulaire de vous
Créez un compte, copiez la clé, modifiez l'URL de base. C'est toute la configuration.
Obtenir clé APINsfwAiApiAPI LLM sans censure pour la génération de texte NSFW