Guides
Samplers for fiction
DeepSeek takes the samplers fiction apps send: temperature, top_p, top_k, min_p, and frequency, presence and repetition penalties. GLM takes none of them.
Checked 26 October 2026
Starting values
| Field | Start at | What it does |
|---|---|---|
temperature | 0.9 | How adventurous the word choice is. Lower it to 0.7 if replies wander. |
top_p | 0.95 | Cuts the long tail of unlikely words. 1 turns it off. |
min_p | 0.05 | Drops words far less likely than the best one. Pairs well with a higher temperature. |
top_k | 0 (off) | Keeps only the k likeliest words. Leave it off when top_p or min_p is set. |
repetition_penalty | 1.05 | Breaks loops on pet phrases in long chats. 1 is off. |
frequency_penalty | 0 | Leave at 0 when repetition_penalty is set, or names get avoided. |
presence_penalty | 0 | Raise to 0.2 only if a story keeps restating the scene. |
Send them
curl https://nokeep.ai/v1/chat/completions \
-H "Authorization: Bearer $NOKEEP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash-uncensored",
"temperature": 0.9,
"top_p": 0.95,
"min_p": 0.05,
"repetition_penalty": 1.05,
"max_tokens": 400,
"messages": [
{
"role": "system",
"content": "You are Mara, a ship’s navigator with a dry wit. Stay in character."
},
{
"role": "user",
"content": "The storm is closing in. What do we do?"
}
]
}'OpenAI’s SDKs have no argument for min_p, top_k or repetition_penalty. Pass them in extra_body in Python, or as extra fields in JavaScript.
reply = client.chat.completions.create(
model="deepseek-v4.1-flash-uncensored",
temperature=0.9,
extra_body={"min_p": 0.05, "repetition_penalty": 1.05},
messages=messages,
)With GLM
glm-5.3-flash-uncensored takes no samplers. Every one you send is dropped and named in x-nokeep-ignored, so your app keeps working; the reply just uses the model’s own settings.