Cas d'usage
Une API de dialogue de PNJ
Envoyez la personnalité du PNJ et l'état de la quête comme message système, puis recevez en flux une courte réplique. DeepSeek V4.1 Flash Uncensored répond tout de suite, reste dans son rôle pour les méchants et les brigands, et peut renvoyer du JSON que votre jeu lit. Mille échanges de huit répliques coûtent environ $2.76.
Vérifié le 29 octobre 2026
Ce qu'un dialogue de PNJ demande, et ce que vous obtenez
| Ce qu'un dialogue de PNJ demande | Sur nokeep |
|---|---|
| Des répliques qui démarrent vite | Activez le streaming, gardez max_tokens petit et laissez la réflexion désactivée, qui est la valeur par défaut de DeepSeek. Le contrôle de statut horaire, une courte question à réponse complète, a donné en moyenne entre une demi-seconde et 1,7 seconde par jour pour DeepSeek du 26 au 29 octobre 2026 ; un seul appel peut prendre bien plus longtemps à un moment chargé. Statut en direct. |
| Des personnages capables de cruauté | Un brigand peut menacer et un chef de culte peut prêcher : les refus sont retirés des poids du modèle. Seules les limites strictes sont refusées, avec un 422 et sans facturation. |
| Des faits sur lesquels votre jeu peut agir | DeepSeek accepte response_format, json_schema compris, donc une réplique peut revenir avec une humeur et une action. Sortie JSON. |
| La mémoire du joueur | L'API ne garde rien entre les appels. Mettez ce que le PNJ doit retenir (l'étape de la quête, une insulte passée) dans le message système ; votre fichier de sauvegarde le conserve. |
| Un coût par joueur que vous pouvez prévoir | Crédits prépayés, facturés au millionième de crédit. Un plafond quotidien par clé arrête une boucle qui s'emballe. |
Ce que coûtent mille échanges
| Modèle | Pour 1,000 échanges, sans cache | Pour 1,000 échanges, début répété en cache |
|---|---|---|
| DeepSeek V4.1 Flash Uncensored | $4.88 | $2.76 |
| GLM 5.3 Flash Uncensored | $2.11 | $1.34 |
Calculé à partir des prix du jour : un début de 800 tokens, 8 tours de 25 tokens en entrée et 60 en sortie, l'appel le plus long faisant 1,420 tokens. La brève réflexion de GLM avant chaque réponse ajoute des tokens de sortie que ce calcul ne prend pas en compte.
Sur GLM, les mêmes mille échanges coûtent environ $1.34 avant sa brève réflexion, mais cette réflexion précède chaque réplique, ce qui prend un temps qu'un PNJ ne peut pas se permettre. Les personnalités courtes sont bon marché dans les deux cas ; ce qui fait monter la note, c'est un long dossier de lore dans chaque appel.
Une réplique de dialogue, en flux
Exécutez ceci sur le serveur de votre jeu, pas dans le client : une clé embarquée dans un jeu peut en être extraite. Affichez chaque morceau à mesure qu'il arrive, pour que la bulle de dialogue se remplisse sous les yeux du joueur.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://nokeep.ai/v1",
api_key=os.environ["NOKEEP_API_KEY"],
)
persona = "You are Brannoc, the blacksmith of Hollowmere: gruff, superstitious, owes the thieves guild money. The player has the quest \"Missing ore\" and has not yet found the mine. Speak only as Brannoc, in one to three short sentences. Never mention game mechanics."
stream = client.chat.completions.create(
model="deepseek-v4.1-flash-uncensored",
messages=[
{"role": "system", "content": persona},
{"role": "user", "content": "Have you seen any ore carts come through town?"},
],
stream=True,
max_tokens=120,
temperature=0.8,
)
for chunk in stream:
if chunk.choices:
print(chunk.choices[0].delta.content or "", end="", flush=True)Une réplique que votre jeu peut exploiter
Quand la réponse du PNJ doit changer le jeu, demandez du JSON plutôt que de la prose en flux : la réplique à afficher, une humeur pour l'animation et une action pour votre code. Décrivez aussi la forme dans le prompt.
import json
reply = client.chat.completions.create(
model="deepseek-v4.1-flash-uncensored",
max_tokens=200,
response_format={"type": "json_object"},
messages=[
{"role": "system", "content": persona + ' Answer as JSON: {"line": string, "mood": "calm" | "angry" | "afraid", "action": "none" | "give_map" | "attack"}.'},
{"role": "user", "content": "Tell me where the mine is or I tell the guild you skipped town."},
],
)
npc = json.loads(reply.choices[0].message.content)
print(npc["line"], npc["mood"], npc["action"])Beaucoup de joueurs en même temps
- Chaque clé accepte 120 requêtes par minute, et un compte peut détenir 10 clés. Au-delà d'un 429, l'en-tête
Retry-Afterindique combien de temps attendre. Limites de débit. - Donnez à chaque environnement sa propre clé avec un plafond quotidien : un bug qui boucle sur un dialogue s'arrête au plafond, pas à votre solde. Clés et plafonds.
- Gardez les personnalités courtes et fixes. Une personnalité d'environ 1,000 tokens ou plus, qui se répète d'un appel à l'autre, est lue depuis le cache à une fraction du prix.
- Écrivez une réplique de secours pour le cas où un appel échoue, pour qu'un moment chargé ne fige jamais une scène. Un
503 busyne coûte rien.
Quel modèle
Utilisez deepseek-v4.1-flash-uncensored pour les répliques parlées : il répond sans réfléchir d'abord, accepte les réglages d'échantillonnage et renvoie du JSON. glm-5.3-flash-uncensored est moins cher au token ($0.20 en entrée et $0.65 en sortie par million, contre $0.45 et $1.75), mais réfléchit brièvement avant chaque réponse ; il convient donc à un travail que le joueur n'attend pas, comme écrire les rumeurs de la ville de demain. Comparer les deux.
Ce que nous gardons des mots des joueurs
Une ligne par appel : l'heure, la clé, le modèle, le nombre de tokens, les crédits et le statut, conservés 30 jours. Jamais ce que le joueur a tapé, jamais la réplique du PNJ. Rien n'est ajouté à votre prompt de personnalité. Ce que nous gardons.
Questions
Est-ce assez rapide pour un dialogue en temps réel ?
Pour les bulles de dialogue et les boîtes de texte, oui : diffusez la réplique, gardez max_tokens vers 120 et laissez la réflexion désactivée. Les temps varient selon la charge ; la page de statut affiche la moyenne de chaque jour. Pour une voix synchronisée sur les lèvres, lancez la voix dès que la première phrase arrive.
Les méchants peuvent-ils jurer, menacer et mentir ?
Oui. Les modèles écrivent des personnages sombres sans prompt de contournement. Seule la courte liste de limites strictes des conditions est refusée, avec un 422 qui ne coûte rien.
Puis-je l'appeler depuis le client du jeu ?
Vous le pouvez, puisque l'API accepte toute origine, mais n'importe qui peut extraire une clé d'un jeu distribué. Appelez-la depuis votre serveur et gardez un plafond quotidien sur la clé.
Cela fonctionne-t-il avec Unity, Godot ou Unreal ?
Tout moteur capable d'envoyer une requête HTTPS POST fonctionne : l'API suit le format des chat completions d'OpenAI, donc une bibliothèque cliente OpenAI pour votre langage marche telle quelle, pointée vers notre URL de base.