Les trois valeurs
- URL de base
https://nokeep.ai/v1- Clé API
sk-nokeep-test (free) or your sk-nokeep-… key- Modèle
deepseek-v4.1-flash-uncensored
Les SDK OpenAI officiels lisent l'URL de base et la clé depuis l'environnement ; pour beaucoup de projets, le changement ne demande donc aucune modification de code :
export OPENAI_BASE_URL="https://nokeep.ai/v1"
export OPENAI_API_KEY="sk-nokeep-…"Changez ensuite le nom du modèle là où vous l'appelez. Le reste ne change pas.
En Python, JavaScript et curl
import os
from openai import OpenAI
client = OpenAI(
base_url="https://nokeep.ai/v1",
api_key=os.environ["NOKEEP_API_KEY"],
)
reply = client.chat.completions.create(
model="deepseek-v4.1-flash-uncensored",
messages=[{"role": "user", "content": "Write a haiku about moving house."}],
)
print(reply.choices[0].message.content)Le streaming, les outils, la sortie JSON et les images fonctionnent comme dans le format OpenAI. Les bibliothèques et frameworks construits sur le SDK OpenAI prennent la même URL de base et la même clé. Essayez d'abord l'appel directement ici :
Ce qui est pris en charge
| Fonctionnalité | Pris en charge |
|---|---|
POST /v1/chat/completions, en entier ou en flux | Oui, les deux modèles |
GET /v1/models et GET /v1/models/{id} | Oui, avec la longueur de contexte, la réponse la plus longue et le prix par token |
| Rôles : system, developer, user, assistant, tool | Oui |
Appels d'outils : tools, tool_choice | Oui. Sur GLM, tool_choice n'accepte que auto ou none. |
reasoning_effort | DeepSeek : none, low, high, max. GLM : low, high. |
Images en parties image_url, liens ou URL de données | deepseek-v4.1-flash-uncensored, jusqu'à 10 par requête |
response_format, temperature, top_p, stop, seed, pénalités | deepseek-v4.1-flash-uncensored |
stream_options.include_usage, max_tokens, max_completion_tokens | Oui |
Entrée en cache dans usage.prompt_tokens_details.cached_tokens | Oui, facturée au prix du cache |
Chaque champ, modèle par modèle : Chat completions.
Ce qui ne l'est pas
| Non pris en charge | Ce que vous obtenez |
|---|---|
| Autres routes : embeddings, images, audio, fichiers, batch, modérations, les API Responses et Assistants, les completions historiques | 404 not_found, qui nomme les quatre routes disponibles |
n différent de 1 | 400 unsupported_n |
Un reasoning_effort que le modèle n'accepte pas | 400 invalid_reasoning_effort, qui nomme ceux qu'il accepte |
Une fonction nommée ou required comme tool_choice sur glm-5.3-flash-uncensored | 400 unsupported_tool_choice |
Images vers glm-5.3-flash-uncensored ; parties audio ou vidéo vers l'un ou l'autre modèle | 400 unsupported_input, qui nomme le modèle qui lit les images |
| Plus de 10 images, ou plus de 2 000 messages | 400 too_many_images, 400 invalid_messages |
Champs qu'aucun des deux modèles n'accepte, comme logprobs, logit_bias, user ou store | Retirés, et nommés dans l'en-tête x-nokeep-ignored |
Rien de non pris en charge n'est deviné ni modifié en silence : une requête est soit refusée avec un code, soit ses champs inutilisés sont nommés dans un en-tête. Chaque code et sa solution : Erreurs.
Petites différences à connaître
usage.nokeep_creditsindique le coût de l'appel ; les en-têtesx-nokeep-creditsetx-nokeep-balancele disent sur une réponse complète.- La facturation se fait par crédits prépayés : 1,000 valent $1, à partir de $5, et n'expirent jamais. Un appel refusé ne coûte rien.
- Limite de débit : 120 requêtes par minute et par clé. Un
429porteRetry-After. - L'hôte de GLM peut être chargé aux heures de pointe ; un appel occupé répond
503 busyavecRetry-After: 5et ne coûte rien.
Questions
Dois-je changer mon code pour basculer ?
Seulement l'URL de base, la clé et le nom du modèle. Avec les SDK officiels, les deux premières peuvent venir de OPENAI_BASE_URL et OPENAI_API_KEY dans l'environnement.
Cela fonctionne-t-il avec les applications qui acceptent un point d'accès OpenAI personnalisé ?
Oui. Toute application dotée d'un réglage de point d'accès compatible OpenAI ou personnalisé fonctionne. Guides : SillyTavern, Open WebUI, et les agents de code sur la page des agents de code.
Quels modèles OpenAI puis-je appeler ?
Aucun : le format est celui d'OpenAI, mais les modèles sont deepseek-v4.1-flash-uncensored et glm-5.3-flash-uncensored. GET /v1/models liste chaque identifiant.
Existe-t-il un point d'accès pour les embeddings ?
Pas encore. L'API sert les chat completions, la liste des modèles et une route de statut. Les nouvelles routes apparaîtront dans le journal des modifications.
Que devient un champ non pris en charge ?
Il est retiré et nommé dans l'en-tête x-nokeep-ignored, pour voir exactement ce qui n'a pas été utilisé. Les valeurs qui changeraient le sens d'une requête, comme n au-dessus de 1, sont refusées avec un 400 à la place.