spicyapiDocumentation
Applications et plugins
Contenu principal

Applications de jeu de rôle (RisuAI, Agnai, Chub, KoboldAI Lite, Janitor AI)

Connectez les modèles de texte SpicyAPI à RisuAI, Agnai, Chub, KoboldAI Lite et Janitor AI. Les champs exacts de chaque application, les modèles adaptés au jeu de rôle, les modèles de raisonnement et le plafonnement des dépenses.

Les applications de jeu de rôle permettent de discuter avec des personnages, et la plupart acceptent votre propre modèle d’IA via une connexion compatible OpenAI. SpicyAPI parle ce protocole : vous pouvez donc y connecter ces applications, choisir n’importe quel modèle de texte SpicyAPI et payer sur votre solde SpicyAPI.

Cette page couvre cinq applications web et de bureau : RisuAI, Agnai, Chub, KoboldAI Lite et Janitor AI. Pour SillyTavern, voir SillyTavern. Ces applications sont conçues par d’autres et leurs écrans changent ; les noms de champs ci-dessous proviennent du code source publié et des pages d’aide de chaque application, et chaque section indique ce qui a été vérifié et ce qui ne l’a pas été.

Le résumé

  1. Créez une clé API dédiée à l’application sur spicyapi.ai/console/keys et donnez-lui un plafond de dépense quotidien.
  2. Dans l’application, choisissez sa connexion compatible OpenAI ou « reverse proxy ». Saisissez https://api.spicyapi.ai/v1 comme adresse (Janitor AI veut l’adresse plus longue https://api.spicyapi.ai/v1/chat/completions), collez votre clé et réglez le modèle sur un identifiant de chat se terminant par /chat, copié depuis le catalogue en ligne.
  3. Réglez Max tokens à au moins 1 000 pour les modèles de raisonnement, puis envoyez un message.

Ce dont vous avez besoin

  • Un compte SpicyAPI avec un solde. Voir Préparer votre compte et Facturation.
  • Une clé API qui commence par sk-spicy-. Voir Authentification.
  • Un identifiant de modèle. Les modèles de texte se nomment <maker>/<model>/chat, écrit ici MODEL_ID_FROM_CATALOG. MODEL_ID_FROM_CATALOG désigne un identifiant de modèle de chat que vous copiez depuis le catalogue en ligne (GET /api/v1/models) ; ne saisissez jamais le texte de substitution lui-même. L’identifiant doit être saisi exactement, y compris le /chat final. La liste complète se trouve sur spicyapi.ai/models ; avec votre clé, GET https://api.spicyapi.ai/v1/models la renvoie aussi, et les identifiants de chat sont ceux qui se terminent par /chat. Voir Modèles.

Quelle application demande quel champ

ApplicationAdresse à saisirOù va la cléModèleQui envoie la requête
RisuAIhttps://api.spicyapi.ai/v1 (l’adresse complète .../v1/chat/completions fonctionne aussi)Key/PasswordRequest Model, saisi à la mainLe serveur de RisuAI sur le site web, votre ordinateur dans l’application de bureau
Agnaihttps://api.spicyapi.ai/v1 (pas le chemin complet)API KeyChoisi dans un préréglage, à partir d’une liste récupérée chez SpicyAPILe serveur d’Agnai
Chubhttps://api.spicyapi.ai/v1 (pas le chemin complet)Reverse Proxy KeyMenu récupéré chez SpicyAPIVotre navigateur
KoboldAI Litehttps://api.spicyapi.ai/v1Champ API key de sa connexion OpenAIMenu récupéré chez SpicyAPIVotre navigateur
Janitor AIhttps://api.spicyapi.ai/v1/chat/completions (le chemin complet)API KeyModel Name, saisi à la mainNon vérifié, voir la section Janitor AI

La différence entre l’adresse courte et l’adresse complète compte. Les applications qui ajoutent elles-mêmes /chat/completions cessent de fonctionner si vous l’incluez, et Janitor AI a besoin qu’on l’écrive en entier.

Choisir un modèle

Le jeu de rôle demande un modèle qui reste dans son personnage, écrit de longues réponses et ne refuse pas les demandes d’histoire ordinaires. Le classement jeu de rôle et LLM note les modèles de texte de SpicyAPI sur ces critères et affiche les prix actuels. Consultez-le plutôt que de vous fier à une liste écrite ici, car les modèles et les classements évoluent.

Chaque page de modèle affiche aussi une étiquette de politique de contenu (par exemple sans restriction, limite ou filtré). Cette étiquette indique avec quelle liberté le modèle répond ; choisissez un modèle dont l’étiquette convient aux histoires que vous voulez écrire.

DeepSeek V4.1 Flash est un bon premier modèle à essayer : il figure près du haut du classement et c’est l’un des moins chers. Copiez son identifiant (il se termine par /chat) depuis le catalogue en ligne sur spicyapi.ai/models plutôt que de le saisir de mémoire.

Deux limites à connaître :

  • Certains modèles acceptent au plus 256 messages par requête. Dans une très longue conversation, une application qui envoie tout l’historique peut dépasser ce seuil. Cherchez le réglage de l’application qui fixe la quantité d’historique envoyée, ou sa taille de contexte, et réduisez-le. La page du modèle indique ses limites.
  • L’entrée d’images ne fonctionne qu’avec les modèles qui lisent les images. Une conversation de jeu de rôle ordinaire n’en a pas besoin.

Réglages d’échantillonnage

Les applications de jeu de rôle envoient avec chaque message une foule de réglages d’échantillonnage : température, top-p, top-k, min-p, top-a, pénalités de fréquence, de présence et de répétition. Les modèles diffèrent sur ceux qu’ils acceptent.

SpicyAPI ignore ceux qu’un modèle n’utilise pas au lieu de refuser le message. Il ignore aussi n: 1, une liste d’arrêt vide et les chaînes d’arrêt sur un modèle qui n’en a pas. Lorsqu’il ignore quelque chose, la réponse porte un en-tête X-Spicy-Ignored-Params qui nomme les réglages abandonnés, ce qui vous permet de voir exactement ce qui n’a eu aucun effet.

Lorsqu’un modèle accepte un réglage mais pas la valeur envoyée, SpicyAPI utilise la valeur acceptée la plus proche : une température supérieure au maximum du modèle devient ce maximum, et une liste de chaînes d’arrêt plus longue que ce que le modèle autorise garde ses premières entrées. Ces changements sont listés dans un en-tête X-Spicy-Adjusted-Params, par exemple temperature=1, stop=kept 1 of 3. Vous pouvez donc laisser vos préréglages habituels tels quels.

Les champs qui ne sont pas des réglages d’échantillonnage sont différents : si une application envoie quelque chose que le modèle ne connaît pas du tout, SpicyAPI répond quand même par une erreur 400 qui nomme le champ.

Modèles de raisonnement et Max tokens

Certains modèles réfléchissent avant de répondre. La réflexion consomme des tokens, et ces tokens comptent dans Max tokens (aussi appelé Max output, Response length ou max_new_tokens, selon l’application).

  • Réglez Max tokens généreusement. S’il est très petit, disons 20 ou 200, un modèle de raisonnement peut dépenser tout le budget à réfléchir et ne renvoyer aucun texte. Vous obtenez alors une erreur upstream_failed indiquant que le budget de sortie a été consommé par le raisonnement. Commencez à 1 000 ou plus et augmentez si les réponses sont coupées.
  • La réflexion coûte de l’argent et du temps. Vous payez les tokens de raisonnement comme n’importe quelle autre sortie, et le premier mot arrive plus tard. Certains modèles acceptent qu’on leur demande de réfléchir moins grâce au réglage reasoning_effort. Les niveaux diffèrent selon le modèle ; un niveau que le modèle ne propose pas est remplacé par le plus proche qu’il propose, et les réglages de raisonnement de type OpenRouter (Agnai en envoie) sont traduits en reasoning_effort. Les applications qui ont une zone Additional Parameters ou de paramètres personnalisés peuvent le transmettre, par exemple reasoning_effort avec une valeur plus basse ; la plupart des applications ci-dessous ne l’envoient pas d’elles-mêmes.
  • Certaines applications affichent la réflexion dans la conversation. Janitor AI l’entoure de balises <think>. Chub ne l’affiche pas du tout.

Garder les dépenses sous contrôle

Les conversations de jeu de rôle sont longues, et les applications renvoient toute la conversation à chaque message : le coût par message augmente donc à mesure que la conversation s’allonge.

Pour chaque application, créez sa propre clé dans la console. Ouvrez Advanced pendant la création et réglez un plafond de dépense quotidien (et un plafond mensuel si vous le souhaitez). Si l’application se comporte mal, boucle, ou si la clé fuite, les dégâts s’arrêtent au plafond, et vous pouvez révoquer cette seule clé sans toucher au reste. Une clé peut aussi être limitée à certains modèles. Voir Authentification.

Ces applications stockent votre clé sur leurs propres serveurs ou dans votre navigateur. Le site web de RisuAI, Agnai et Janitor AI font passer votre clé et votre conversation par leurs serveurs ; Chub et KoboldAI Lite envoient les requêtes directement depuis votre navigateur. Une clé dédiée et plafonnée est la bonne précaution dans tous les cas.

RisuAI

RisuAI fonctionne sur risuai.xyz, comme application de bureau, ou sur votre propre serveur. Vérifié avec le code source de RisuAI (version 2026.8.250).

Choisir le modèle Custom API

Dans les réglages du bot, ouvrez le menu des modèles et choisissez Custom API.

Renseigner les trois champs

  • URL (affiché comme « Reverse Proxy ») : https://api.spicyapi.ai/v1. RisuAI ajoute lui-même /chat/completions lorsque l’adresse se termine par /v1, et l’adresse complète https://api.spicyapi.ai/v1/chat/completions fonctionne aussi.
  • Key/Password : votre clé sk-spicy-. Elle est envoyée comme jeton Bearer.
  • Request Model : l’identifiant du modèle, MODEL_ID_FROM_CATALOG. RisuAI n’a pas de liste de modèles pour les adresses personnalisées : saisissez-le.

Réglez le menu Format sur OpenAI Compatible.

Régler Max tokens et envoyer un message

Augmentez la longueur maximale de réponse si vous avez choisi un modèle de raisonnement (voir plus haut), puis discutez.

D’où viennent les requêtes. Sur risuai.xyz, RisuAI relaie normalement les requêtes par son propre serveur : votre clé et votre conversation y transitent. L’application de bureau et un serveur auto-hébergé envoient les requêtes directement depuis votre machine. Seule l’option « Force Plain Fetch » du site web, cachée parmi les réglages déconseillés, envoie les requêtes depuis le navigateur ; SpicyAPI les accepte aussi.

Échantillonnage. Les réglages Custom API par défaut de RisuAI envoient les pénalités de fréquence, de présence et de répétition, min-p et top-a. SpicyAPI ignore ceux que le modèle n’utilise pas : les valeurs par défaut fonctionnent donc.

Agnai

Agnai se trouve sur agnai.chat. Vérifié avec le code source d’Agnai (branche dev, 2026-10-06). SpicyAPI ne figure pas dans la liste de fournisseurs intégrée d’Agnai : vous l’ajoutez donc comme connexion personnalisée compatible OpenAI.

Ajouter un fournisseur

Dans Settings, ouvrez la page de gestion des fournisseurs et ajoutez un fournisseur de type OpenAI Compat (ou Remotely Hosted, puis Other (Generic OpenAI)). Donnez-lui n’importe quel libellé.

Renseigner l’adresse et la clé

  • URL : https://api.spicyapi.ai/v1 (ou https://api.spicyapi.ai ; Agnai ajoute /v1 s’il manque). Ne saisissez pas le chemin complet .../chat/completions, sinon Agnai le double.
  • API Key : votre clé sk-spicy-.

Choisir le modèle dans un préréglage

Dans le préréglage avec lequel vous discutez, choisissez le modèle dans la liste. Agnai remplit la liste à partir de la liste de modèles de SpicyAPI. Choisissez un identifiant se terminant par /chat.

D’où viennent les requêtes. Avec un fournisseur ajouté de cette façon, c’est le serveur d’Agnai qui envoie la requête : votre clé est donc stockée chez Agnai.

Échantillonnage. Agnai envoie toujours la température et top-p, que certains modèles n’acceptent pas. SpicyAPI les ignore pour ces modèles : des modèles comme DeepSeek V4 et Kimi K3 fonctionnent donc.

Déconseillé : les modes directs depuis le navigateur. Agnai propose aussi un type de connexion Self-Host et un commutateur Use Local Requests sur les anciens préréglages, qui font appeler l’adresse directement par votre navigateur. D’après le code source, ces modes ajoutent un champ nommé think que SpicyAPI n’accepte pas, et SpicyAPI répond 400 pour les champs qu’il ne connaît pas. Cela n’a pas été testé avec SpicyAPI. Si vous obtenez une erreur 400 dans ce cas, revenez à la configuration de fournisseur décrite plus haut.

Chub

Chub (chub.ai) envoie les requêtes directement depuis votre navigateur vers l’adresse que vous lui donnez. Vérifié avec le code front-end publié de Chub (version du 2026-06-28) ; les écrans de Chub ont pu changer depuis. La connexion depuis le navigateur fonctionne parce que SpicyAPI autorise les requêtes provenant de pages web.

Ajouter le reverse proxy dans Secrets

Ouvrez Secrets, trouvez le bloc OpenAI et choisissez Reverse Proxy au lieu de My Own API Key.

Renseigner l’adresse et la clé

  • Open AI Reverse Proxy : https://api.spicyapi.ai/v1. Chub ajoute lui-même /chat/completions : ne l’incluez pas.
  • Reverse Proxy Key : votre clé sk-spicy-.

Appuyez sur Check Proxy. Une vérification réussie charge aussi la liste des modèles.

Sélectionner OpenAI / Proxy et un modèle

Sous Configuration > Prompt Structure, réglez l’API sur OpenAI / Proxy et choisissez un modèle dans le menu (un identifiant se terminant par /chat).

Chub avertit sur sa propre page de réglages que votre IP et l’historique de vos conversations peuvent être journalisés lorsque vous utilisez un reverse proxy. C’est une remarque de Chub, pas de SpicyAPI.

Ce que le code source montre et qui peut surprendre :

  • Chub cesse de lire une réponse en streaming après 120 secondes. Un modèle de raisonnement qui réfléchit longtemps peut être coupé ; réduisez son effort de raisonnement ou choisissez un modèle qui répond plus vite.
  • Chub n’affiche pas la réflexion d’un modèle, seulement sa réponse.

KoboldAI Lite

KoboldAI Lite est une page web unique sur lite.koboldai.net. Vérifié avec son index.html publié. Il appelle l’adresse directement depuis votre navigateur, ce qui fonctionne parce que SpicyAPI autorise les requêtes provenant de pages web.

Choisir la connexion OpenAI

Ouvrez Settings, choisissez la connexion OpenAI API (point de terminaison personnalisé).

Saisir l’adresse et la clé

Saisissez https://api.spicyapi.ai/v1 comme adresse et votre clé sk-spicy- dans le champ de clé. L’application retire un /chat/completions final si vous le collez.

Récupérer la liste des modèles

Utilisez le bouton de récupération des modèles de l’application, choisissez un identifiant se terminant par /chat et réglez la longueur de sortie dans les réglages de génération.

Laissez « CORS Proxy » désactivé. KoboldAI Lite propose une option qui fait passer les requêtes par un proxy exploité par son auteur. Vous n’en avez pas besoin pour SpicyAPI, et l’activer fait transiter votre clé par le serveur de quelqu’un d’autre.

Échantillonnage. Son réglage de répétition est envoyé à l’API comme une pénalité de présence. SpicyAPI l’ignore pour les modèles qui ne l’utilisent pas.

Janitor AI

Non vérifié

Nous n’avons pas pu confirmer que Janitor AI fonctionne avec SpicyAPI. Janitor AI est à code fermé et il faut un compte pour le tester : personne n’a donc essayé une vraie conversation. Ce qui suit décrit ses réglages de proxy tels qu’ils sont présentés dans le centre d’aide de Janitor et dans le code publié de sa page. Considérez-le comme une piste à essayer, pas comme une promesse.

La fonction « proxy » de Janitor AI envoie votre conversation à l’adresse de votre choix. D’après le centre d’aide de Janitor, les champs se trouvent dans l’icône d’engrenage de la page de chat, sous API Settings, puis Add Configuration.

Ajouter une configuration

Renseignez :

  • Config Name : ce que vous voulez, par exemple SpicyAPI.
  • Model Name : l’identifiant du modèle, saisi à la main : MODEL_ID_FROM_CATALOG.
  • Proxy URL : l’adresse complète, https://api.spicyapi.ai/v1/chat/completions. Janitor a un bouton « Add /chat/completions » qui s’en charge après que vous avez saisi https://api.spicyapi.ai/v1.
  • API Key : votre clé sk-spicy-.

Enregistrer, puis envoyer un message

Le bouton Check Key/Model de Janitor est décrit par son centre d’aide comme peu fiable : testez plutôt avec un vrai message.

Si Janitor affiche une erreur réseau ou de connexion, comme « A network error occurred », la page de Janitor bloque probablement les requêtes vers des adresses autres que celle d’OpenAI. La page web de Janitor applique une politique de sécurité qui n’autorise les requêtes directes que vers une seule adresse d’IA tierce, celle d’OpenAI. Lorsque Janitor envoie la requête depuis votre navigateur, le navigateur la refuse avant que SpicyAPI ne voie quoi que ce soit, et SpicyAPI n’y peut rien. Si votre clé n’affiche aucune utilisation dans la console pendant que cette erreur apparaît, c’est la cause.

Si vous y êtes confronté, utilisez plutôt SillyTavern ou RisuAI.

Autres faits tirés du centre d’aide et du code de page de Janitor :

  • Certains bots de Janitor ont les proxys désactivés par leurs auteurs : un bot peut donc refuser de discuter via un proxy, quoi que vous saisissiez.
  • Janitor affiche la réflexion d’un modèle entourée de balises <think>. Utilisez un Max tokens plus grand ou un effort de raisonnement plus faible pour la garder courte.
  • Janitor limite la longueur d’un message que vous saisissez.

Dépannage

Ce que vous voyezQue faire
401 ou « invalid API key »Copiez de nouveau la clé depuis la console. Une clé révoquée cesse de fonctionner immédiatement, et il doit s’agir de la clé sk-spicy-, pas d’un mot de passe de compte.
402 ou « insufficient balance »Ajoutez des fonds dans la console, ou vérifiez que le plafond de dépense quotidien de la clé n’est pas atteint. Voir Facturation.
404 ou « model not found »L’identifiant du modèle est erroné. Il doit se terminer par /chat et être orthographié comme dans https://api.spicyapi.ai/v1/models.
404 sur l’adresse elle-même, avec un chemin doublé comme /chat/completions/chat/completionsL’application ajoute elle-même le chemin. Utilisez https://api.spicyapi.ai/v1 (RisuAI, Agnai, Chub, KoboldAI Lite). Seul Janitor AI a besoin du chemin complet.
400 qui nomme un champL’application a envoyé quelque chose que le modèle n’accepte pas et qui n’est pas un réglage d’échantillonnage. Supprimez ou désactivez le champ nommé.
400 à propos du nombre de messagesL’historique de la conversation dépasse la limite de messages du modèle. Réduisez l’historique ou la taille de contexte dans l’application.
upstream_failed, « the output budget was spent on reasoning »Augmentez Max tokens, ou réduisez l’effort de raisonnement du modèle. Voir Modèles de raisonnement et Max tokens.
La réponse s’arrête en pleine phraseMax tokens est trop bas, ou (dans Chub) la limite de 120 secondes a été atteinte.
« Network error » ou « Failed to fetch » dans l’application, et aucune requête dans les journaux de votre consoleLa requête n’a jamais atteint SpicyAPI. Sur Janitor AI, c’est la page qui bloque l’adresse ; ailleurs, vérifiez qu’il n’y a pas de faute de frappe dans l’adresse et que le site est joignable.
429Trop de requêtes en même temps. Attendez quelques secondes ; les applications partagées peuvent envoyer les requêtes de nombreux utilisateurs depuis une même adresse.

Les codes d’erreur sont expliqués dans Erreurs. Chaque erreur se termine par un request_id ; communiquez-le au support et la requête pourra être retrouvée précisément. Vos requêtes apparaissent aussi sous Logs dans la console, ce qui est le moyen le plus rapide de savoir si une requête a bien atteint SpicyAPI.

Sur cette page