Chat Completions API
创建对话补全:向 Kimi 模型发送消息并获取回复,支持流式输出、工具调用与视觉输入。
Content 字段说明
Content 字段说明
content 字段支持以下两种形式:纯文本字符串type 字段区分类型:image_url 和 video_url 也支持直接传入字符串,效果等同于对象形式中的 url 字段:参数说明
数组中每个元素的字段说明如下:image_url 传入对象时,其字段说明如下:video_url 传入对象时,其字段说明如下:url 字段)还是字符串简写,均支持以下两种格式:- base64 编码:
data:image/png;base64,...或data:video/mp4;base64,... - 文件引用:
ms://<file_id>
调用示例
上下文缓存(Cache Write)
上下文缓存(Cache Write)
prompt_cache_options 可以控制缓存写入行为:- 缓存以组织(org)为粒度隔离,组织之间不共享缓存。
- 相同前缀的请求在缓存有效期内命中后,缓存的有效期会按原 TTL 刷新;命中部分只收取缓存读取费用,不再收取缓存写入费用。
- 缓存写入按 TTL 档位分别计费,价格详见产品定价。
- 不支持手动清除缓存,已缓存的前缀在至少 5 分钟不活动后自动过期。
- 暂不支持显式缓存断点:
content中出现prompt_cache_breakpoint时请求会被拒绝(HTTP 400)。
usage.prompt_tokens 始终为总输入 Token 数,其内部分类通过 prompt_tokens_details 返回:cached_tokens、cache_write_tokens 与未缓存部分互斥,三者之和等于 prompt_tokens,即未缓存部分 = prompt_tokens − cached_tokens − cache_write_tokens。流式请求中,完整的缓存读写明细仅在最后一个 chunk 的 usage 字段中返回(需设置 stream_options.include_usage=true)。Chat Completions 的响应不回显实际应用的 mode/ttl(与 Responses API 不同),请从请求发起侧记录所用取值。多轮对话
多轮对话
messages 数组中再发送。JSON Mode
JSON Mode
response_format 参数可约束模型输出格式:{"type": "text"}(默认):普通文本输出{"type": "json_object"}:强制输出合法 JSON Object{"type": "json_schema", "json_schema": {...}}:按给定 JSON Schema 输出结构化数据(Structured Output)
json_object 时,必须在 system prompt 或 user prompt 中明确描述期望的 JSON 字段和类型,否则模型可能输出不符合预期的结果。工具调用 Tool Use
工具调用 Tool Use
tools 参数传入 JSON Schema 定义的外部工具,模型可决定在适当时机调用它们。请求示例tool_calls当 finish_reason 为 "tool_calls" 时,模型返回 tool_calls 数组,包含 id、function.name 和 function.arguments:role="tool" 消息追加到 messages 中(tool_call_id 必须与请求中的 id 对应):思考模式与 Preserved Thinking
思考模式与 Preserved Thinking
kimi-k3 始终进行推理,使用顶层 reasoning_effort(支持 "low"、"high"、"max",默认 "max")。kimi-k2.6 和 kimi-k2.7-code 支持思考模式,模型在输出最终答案前会先输出推理过程(reasoning_content)。K2.x 请求参数choices[0].message 包含:流式输出 Streaming
流式输出 Streaming
stream: true 可启用流式输出,模型会以 Server-Sent Events (SSE) 格式逐段返回生成的内容。推荐在聊天、代码生成、长文本输出等实时性要求高的场景中使用。data: 开头,内容为 JSON 对象。当 finish_reason 为 null 时,内容在 delta.content 中累加;当 finish_reason 不为 null 时,表示输出结束:stream_options通过 stream_options: {"include_usage": true} 可在最后一个 chunk(data: [DONE] 之前)额外获取 usage 字段,显示本次请求的 Token 消耗:Partial Mode
Partial Mode
messages 的最后一条 assistant 消息中预填输出前缀,从而引导模型按照你期望的格式或方向继续生成。开启方式在 messages 数组末尾添加一条 role="assistant" 的消息,并设置 partial: true:- 强制模型以特定格式开头(如 JSON 的
{、代码块的 ````python`) - 角色扮演中保持角色名称前缀(配合
name字段) - 在
finish_reason="length"时,用相同的前缀续写被截断的内容
授权
请求头
请求体
- kimi-k3
- kimi-k2.7-code
- kimi-k2.6
模型 ID
kimi-k3 Kimi K3 对话消息列表。除标准消息外,还可在任意对话位置插入 {"role": "system", "tools": [...]} 消息动态加载工具;该动态工具消息不包含 content 字段,并且只影响后续对话。
Kimi K3 对话消息。既支持标准消息,也支持不含 content、通过 tools 声明动态工具的 system 消息。
- 标准消息
- 动态工具消息
是否返回输出 Token 的对数概率。设置为 true 时,在响应 message 的 logprobs 字段中返回每个输出 Token 的对数概率信息
指定在每个 Token 位置返回概率最高的候选 Token 数量(0-20),各候选 Token 附带对数概率。使用此参数时必须将 logprobs 设置为 true
0 <= x <= 20Predicted Output 配置。当模型响应的大部分内容可以提前预知时(例如重新生成仅有少量修改的文件),可显著降低响应延迟
已弃用,请使用 max_completion_tokens
聊天补全生成的最大 Token 数量。默认值因模型而异:Kimi K3 默认为 131072,最大可设置为 1048576。如果结果达到最大 Token 数而未结束,finish reason 将为 "length";否则为 "stop"。此值为期望返回的 Token 长度,而非输入加输出的总长度。如果输入加 max_completion_tokens 超出模型上下文窗口,将返回 invalid_request_error。
控制模型输出格式。默认值为 {"type": "text"},即纯文本输出。设置为 {"type": "json_object"} 可启用 JSON 模式,确保输出为合法 JSON 对象(需在 prompt 中引导模型输出 JSON 并指定格式)。设置为 {"type": "json_schema"} 可启用 Structured Output,按指定的 JSON Schema 约束输出结构(推荐,需配合 json_schema 字段使用)。如果您在使用 JSON Schema 时遇到校验问题,欢迎到 walle GitHub Issues (https://github.com/MoonshotAI/walle/issues) 提交反馈。
停用词,完全匹配时将停止输出。匹配到的词本身不会被输出。最多允许 5 个字符串,每个不超过 32 字节
是否以流式方式返回响应,默认 false
流式响应选项
模型可调用的工具列表
用于缓存相似请求的响应以优化缓存命中率。对于 Coding Agent,通常是代表单个会话的 session id 或 task id;退出并恢复会话时应保持不变。对于 Kimi Code Plan,此字段为必填以提高缓存命中率。对于其他多轮对话 Agent,也建议使用此字段
上下文缓存写入选项。不传时默认开启缓存写入(5m 档):系统自动将请求前缀写入 5m 档缓存
用于检测可能违反使用政策的用户的稳定标识符。应为唯一标识每个用户的字符串。建议对用户名或邮箱进行哈希处理以避免发送可识别信息
控制模型是否调用工具。auto(默认):模型自行决定是否调用工具;none:不调用工具;required:强制调用工具;也可传入特定函数对象强制调用指定工具。
auto, none, required Kimi K3 始终启用思考,并开启 Preserved Thinking。推理强度支持 low、high 和 max,默认为 max。
low, high, max