使用场景
用于互动小说和文字冒险的 API
把任意 OpenAI SDK 指向 nokeep,用 DeepSeek V4.1 Flash Uncensored 做你的叙述者。它边写边流式输出文字,支持小说创作需要的采样参数,能装下一百万 token 的战役内容,并且会顺着黑暗的剧情走,不会拒绝。60 轮的会话约花 $0.041。
核对于 2026年10月29日
文字游戏需要什么,你能得到什么
| 文字游戏需要 | 在 nokeep 上 |
|---|---|
| 开头的文字要快 | 每个模型都支持流式输出。DeepSeek 除非你要求它思考,否则会立即作答,所以叙述在调用开始的同时就开始了。 |
| 长记忆 | DeepSeek 可容纳 1,000,000 个 token:整段战役都能装下。每次调用重复的开头按缓存价计费,每百万 $0.011,而不是 $0.45。 |
| 文字不打转 | DeepSeek 支持 temperature、min_p、top_k 和三种惩罚参数。起始参数值。 |
| 容纳黑暗题材 | 拒答机制已从权重中移除,而且不会往你的提示词里添加任何内容。唯一的例外是一份简短的硬性限制清单:触碰其中一条的调用会收到附带代码的 422,且不收费。 |
| 费用可预知 | 预付积分,从 $5 起,永不过期。每次响应都会告诉你这次调用花了多少。 |
一次会话的费用
| 模型 | 一次对话,无缓存 | 一次对话,重复的开头走缓存 |
|---|---|---|
| DeepSeek V4.1 Flash Uncensored | $0.30 | $0.041 |
| GLM 5.3 Flash Uncensored | $0.13 | $0.037 |
按今天的价格计算:1,500 个 token 的开头,60 轮,每轮输入 40 个 token、输出 250 个,最长的一次调用为 18,650 个 token。GLM 每次回复前的简短思考会增加输出 token,这里未计入。
每一轮都会发送完整的历史,所以第 60 次调用比第一次长得多。缓存让这部分保持低廉:一次调用重复上一次调用的部分,会从缓存中读取。如果一次缓存都不命中,同样的会话在 DeepSeek 上要 $0.30。缓存如何运作。
二十行代码做一个叙述者
世界观和规则放在 system 消息里。每一轮都保持不变,这样每次调用的开头都会重复,并从缓存中读取。流式接收回复,并在文字到达时逐段显示。
import os
from openai import OpenAI
client = OpenAI(
base_url="https://nokeep.ai/v1",
api_key=os.environ["NOKEEP_API_KEY"],
)
history = [{"role": "system", "content": "You are the narrator of a dark fantasy text adventure. The player is a smuggler in the drowned city of Vell. Describe what they see, hear and smell in second person, in under 150 words. Never act or speak for the player. End each turn with the scene open, not with a list of options."}]
def turn(move):
history.append({"role": "user", "content": move})
stream = client.chat.completions.create(
model="deepseek-v4.1-flash-uncensored",
messages=history,
stream=True,
max_tokens=400,
temperature=0.9,
extra_body={"min_p": 0.05, "repetition_penalty": 1.05, "prompt_cache_key": "campaign-42"},
)
text = ""
for chunk in stream:
if chunk.choices:
piece = chunk.choices[0].delta.content or ""
print(piece, end="", flush=True)
text += piece
history.append({"role": "assistant", "content": text})
turn("I row the stolen skiff under the old customs bridge.")prompt_cache_key 可以是任意字符串,同一个战役保持不变即可。它会把该战役的调用导向开头已经缓存好的位置。流式输出介绍了最后一个数据块中的用量信息,以及如何提前停止回复。
把游戏状态留在你的代码里
- 状态放在文字之外。 把物品、生命值和标记保存在你自己的数据里,并在 system 消息中放一段简短的摘要。模型记得住故事,却不擅长记数字。
- 需要结构化结果时请求 JSON。 再发一次简短的调用,使用
response_format,就能返回这一轮发生的变化,交给你的代码去应用。JSON 输出。 - 长战役。 一百万 token 能容纳很多轮,但每一轮都要计费。超过几百轮后,把最早的内容替换为你只写一次的摘要,并把摘要放在固定的位置,这样开头依然会重复并命中缓存。
- 分支与撤销。 API 在调用之间不保存任何内容,所以存档点就是该轮的消息列表。想回退时,重新发送更早的列表即可。
选哪个模型
| DeepSeek V4.1 Flash Uncensored | GLM 5.3 Flash Uncensored | |
|---|---|---|
| 用途 | 叙述者。大多数文字游戏。 | 简短、便宜的辅助调用,例如摘要。 |
| 采样参数 | 全部支持 | 无;使用它自己的设置 |
| 思考 | 默认关闭,除非你要求,因此回复立即开始 | 始终先做简短思考 |
| 上下文 | 1,000,000 tokens | 128,000 tokens |
| 图片输入 | 支持,每个请求最多 10 张 | 不支持 |
模型 ID:deepseek-v4.1-flash-uncensored 和 glm-5.3-flash-uncensored。完整对比两者。
玩家的故事会怎样
我们为每次调用保留一行记录:时间、密钥、模型、token 数、积分和状态,保留 30 天。从不保存消息,也从不保存回复。DeepSeek 运行在一个私有层级上,不存储提示词或回复。玩家的故事保存在你的游戏所在之处,不在我们这里。我们保存什么。
常见问题
我能用它来跑带成熟主题的文字冒险吗?
可以,面向成年人。暴力、恐怖、犯罪和成人关系等虚构内容,模型无需越狱提示词即可写出。只有条款中那份简短的硬性限制清单会被拒绝,并返回不收费的 422。每个密钥的创建者都确认自己已年满 18 岁。
模型遗忘之前,能容纳多少轮?
DeepSeek 每次调用可读取 1,000,000 个 token。按每轮约 300 个 token 计算,相当于超过 3,000 轮的历史。大多数游戏会在那之前就做摘要,以保持每次调用的成本低廉。
玩家能直接从我的网页调用 API 吗?
API 允许浏览器调用,但公开页面上的密钥可以被复制。请从你的服务器调用,或为每位玩家分配各自的密钥,并设置每日上限。
付费前能先试用吗?
可以。免费测试密钥 sk-nokeep-test 对任何请求都只返回一行固定文字,所以你可以先把游戏接好。测试密钥。