Kimi K3.1 Pro 提供标准版 kimi-k3.1-pro 和高速版 kimi-k3.1-pro-highspeed。两者的主要区别在输出速度和计费价格:官方说明高速版保持同等智能,输出速度约为标准版的 2---3 倍,但输入、输出及缓存写入价格也更高。
接入时不宜只比较模型单价。对于包含大量固定上下文的应用,缓存命中费用会影响整体成本;对于交互式应用,首字时间和完整响应时间也值得单独测量。
本文按接入顺序介绍模型选择、费用估算、常用参数和数据保留边界。文中价格来自官方页面,计算结果为示例估算,未进行真实接口调用测试。
一、模型与价格有什么区别?

| 模型 | 输入(未命中缓存) | 输出 | 缓存命中 |
|---|---|---|---|
kimi-k3.1-pro |
13 元 | 68 元 | 1.30 元 |
kimi-k3.1-pro-highspeed |
26 元 | 136 元 | 1.30 元 |
kimi-k3 |
20 元 | 100 元 | 2.00 元 |
单位:元/百万 token。缓存写入另按 5 分钟和 1 小时档计费,具体以官方价格页面为准。
高速版的输入和输出价格是标准版的两倍,但缓存命中价格相同。因此,实际调用成本并不一定恰好翻倍。对于固定提示词或长篇知识库反复参与推理的场景,缓存命中占比越高,两者的实际费用差距通常越小。
K3.1 Pro 标准版的输入价格和缓存命中价格比 K3 低 35%,输出价格低 32%。如果现有项目使用 K3,可以先评估标准版,再根据业务延迟要求决定是否需要高速版。
二、用代码估算一次请求的费用
假设一次请求包含以下内容:
-
15 万 token 已命中缓存;
-
5 万 token 未命中缓存;
-
模型输出 5000 token。
可以使用下面的函数计算稳态请求的费用。此处不包含首次建立缓存的费用。
PRICE = {
"kimi-k3.1-pro": (13.0, 68.0, 1.30),
"kimi-k3.1-pro-highspeed": (26.0, 136.0, 1.30),
"kimi-k3": (20.0, 100.0, 2.00),
}
def cost(model, miss, hit, output):
input_price, output_price, cache_price = PRICE[model]
return (
miss * input_price
+ hit * cache_price
+ output * output_price
) / 1_000_000
for model in PRICE:
value = cost(model, 50_000, 150_000, 5_000)
print(model, f"{value:.3f} 元")
按上述价格计算,结果如下:
kimi-k3.1-pro 1.185 元
kimi-k3.1-pro-highspeed 2.175 元
kimi-k3 1.800 元
在这个例子里,高速版费用约为标准版的 1.84 倍。这个结果只适用于给定的 token 数量和缓存命中情况,不能直接作为所有业务的固定成本。
三、如何选择标准版和高速版?
如果用户正在等待回复,响应速度会直接影响体验,例如实时问答、编程助手和客服交互。这类场景可以优先测试高速版。
如果任务在后台执行,例如批量分析、报告生成和定时处理,通常可以先使用标准版。任务耗时是否会影响业务流程,比模型输出速度本身更重要。
对于长资料问答,建议先检查上下文缓存的使用情况。固定的系统提示词和知识库内容应尽量保持一致,并放在请求前部,以提高缓存复用机会。
此外,K3.1 Pro 始终开启思考模式,可以通过 reasoning_effort 设置 low、high 或 max,默认值为 max。在切换高速版之前,可以先用实际业务问题比较不同推理强度下的结果质量和响应时间。
四、用流式响应测量首字时间和总耗时
官方提供的速度说明不能代替业务环境中的测量。实际耗时还会受到输入长度、输出长度、推理强度、排队和网络状况影响。
下面的示例使用 OpenAI Python 工具包兼容的调用方式,分别记录首段内容到达时间和完整响应耗时。运行前需要安装对应 SDK,并设置 MOONSHOT_API_KEY 环境变量。
import os
import time
from openai import OpenAI
client = OpenAI(
api_key=os.environ["MOONSHOT_API_KEY"],
base_url="https://api.moonshot.cn/v1",
)
PROMPT = "用 300 字说明企业为什么要给大模型接口设置用量上限。"
def measure(model, effort="high"):
start = time.perf_counter()
first = None
stream = client.chat.completions.create(
model=model,
reasoning_effort=effort,
messages=[{"role": "user", "content": PROMPT}],
stream=True,
)
for chunk in stream:
if not chunk.choices:
continue
delta = chunk.choices[0].delta
reasoning = getattr(delta, "reasoning_content", None) or ""
content = delta.content or ""
if first is None and (reasoning or content):
first = time.perf_counter() - start
total = time.perf_counter() - start
return {
"model": model,
"first_content_seconds": round(first or total, 2),
"total_seconds": round(total, 2),
}
for model in ("kimi-k3.1-pro", "kimi-k3.1-pro-highspeed"):
print(measure(model))
建议使用相同的问题、推理强度和调用条件,分别运行多次,再比较中位数与波动范围。脚本测得的首段内容时间可能包含思考内容,并不等同于最终答案第一个字符出现的时间。
五、接入时需要注意的限制
1. 采样参数不要随意传入。
官方文档将 temperature、top_p、n、presence_penalty 和 frequency_penalty 等参数列为固定值,建议不要显式传入。需要调整推理强度时,使用 reasoning_effort。
2. 多轮对话应保留完整的 assistant 消息。
不要只保存返回消息中的 content。如果应用还涉及思考内容或工具调用,应按文档要求保留并回传完整消息对象,否则可能丢失后续流程所需的信息。
3. 图片输入需要符合接口要求。
文档要求使用 base64 或平台文件编号传递图片,不支持直接使用公网图片链接;多模态消息的 content 需要按要求组织为对象数组。
4. 缓存有效期要结合请求间隔设置。
默认缓存有效期为 5 分钟。请求间隔较长时,可以通过 prompt_cache_options.ttl 选择 1 小时档,但该档的缓存写入价格是 5 分钟档的两倍。是否值得使用,需要结合缓存复用频率计算。
5. 联网搜索功能暂不宜直接用于关键生产流程。
按照原稿所引用的官方文档,联网搜索工具当时正在更新,文档建议近期不要用于生产流程。正式接入前应再次检查文档状态。
六、零数据保留适用于哪些场景?
零数据保留(ZDR)是面向企业客户的数据保护模式。根据原稿引用的官方说明,开通后,请求内容用于当次推理,响应返回后不再留存,法律法规要求的情况除外。该能力需要联系销售申请评估,开通后接口和计费方式不变。
需要注意,它并不覆盖所有数据路径。原稿列出的不覆盖范围包括:
-
批处理接口提交的任务;
-
通过文件上传接口直接提交的图片或视频;
-
Kimi 托管智能体处理的数据;
-
安全日志、账单等运营数据;
-
第三方模型、连接器和插件。
涉及敏感数据时,应在接入前确认实际调用路径是否处于保障范围内。尤其是文件上传的图片或视频,不要自行假设改成其他传输方式后就一定适用。
零数据保留也会影响问题追踪:平台不保留请求内容,企业就需要在自身系统中建立适当的日志机制,并控制日志的访问权限和保存期限。
七、接入前检查清单
-
按业务延迟要求选择标准版或高速版。
-
用实际 token 分布估算输入、输出和缓存成本。
-
对比不同
reasoning_effort设置下的响应表现。 -
保留完整的多轮 assistant 消息。
-
按文档要求组织图片输入。
-
根据请求间隔选择缓存有效期。
-
核实数据保留模式的适用范围,并配置自身日志。
模型选型不应只看速度或单价。先确认业务真正需要什么,再通过可重复的测试验证配置,才能得到更可靠的成本和体验结果。
参考资料
-
Kimi 开放平台模型与价格页面:Kimi API 开放平台
-
K3.1 Pro 接入指南:Kimi K3.1 Pro - Kimi API 开放平台
-
零数据保留说明:什么是零数据保留(ZDR)? - Kimi API 开放平台