Kimi K3
Kimi K3 通过 OpenAI 兼容的 Chat Completions 接口调用,支持文本与图片输入、思考内容、流式输出和 Function Calling。
请求地址
POST /v1/chat/completions模型名称
kimi-k3实际可用模型与额度以当前账户权限为准。
基础请求
curl https://cubicspaces.cloud/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k3",
"messages": [
{ "role": "system", "content": "你是一个严谨、简洁的技术助手。" },
{ "role": "user", "content": "用三点说明幂等接口的设计原则。" }
],
"reasoning_effort": "high",
"max_tokens": 4096,
"stream": false
}'非流式响应的最终答案位于 choices[0].message.content。如果响应包含思考内容,则位于 choices[0].message.reasoning_content。
思考强度
reasoning_effort 支持以下值:
| 值 | 说明 |
|---|---|
low | 较短思考,适合简单任务 |
high | 深度思考,适合复杂分析与编码任务 |
max | 最大思考强度,可能产生更长响应 |
不要使用 medium 或其他未列出的值,否则请求会返回 400。
图片输入
图片应放在用户消息的 content 数组中,并使用 OpenAI image_url 格式。建议使用可公开访问的 HTTPS 图片地址。
{
"model": "kimi-k3",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg"
}
},
{
"type": "text",
"text": "请描述图片内容,并列出其中最重要的三个细节。"
}
]
}
],
"reasoning_effort": "high",
"max_tokens": 4096
}流式输出
curl https://cubicspaces.cloud/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k3",
"messages": [
{ "role": "user", "content": "分析这个数据库迁移方案可能产生的风险。" }
],
"reasoning_effort": "high",
"stream": true,
"stream_options": {
"include_usage": true
}
}'流式响应使用 SSE。客户端应分别处理:
choices[0].delta.reasoning_content:思考内容片段。choices[0].delta.content:最终答案片段。usage:启用stream_options.include_usage后在流末尾返回。data: [DONE]:流结束标志。
工具调用
工具必须使用 OpenAI Function Calling 格式。tools 必须是数组,每个工具都必须包含 type: "function" 和完整的 function 对象。
{
"model": "kimi-k3",
"messages": [
{ "role": "user", "content": "查询东京当前天气。" }
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询指定城市天气",
"parameters": {
"type": "object",
"properties": {
"city": { "type": "string" }
},
"required": ["city"]
}
}
}
],
"tool_choice": "auto",
"reasoning_effort": "high"
}工具名称必须满足以下规则:
- 长度不超过 64 个字符。
- 只能包含英文字母、数字、下划线和连字符。
function.parameters必须是 JSON 对象。
当模型返回 tool_calls 后,执行工具并将结果追加到消息历史:
{
"model": "kimi-k3",
"messages": [
{ "role": "user", "content": "查询东京当前天气。" },
{
"role": "assistant",
"content": null,
"tool_calls": [
{
"id": "call_1",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"city\":\"东京\"}"
}
}
]
},
{
"role": "tool",
"tool_call_id": "call_1",
"content": "晴,26°C"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"parameters": {
"type": "object",
"properties": {
"city": { "type": "string" }
},
"required": ["city"]
}
}
}
]
}每个 role: "tool" 消息的 tool_call_id 必须与前一条 assistant 消息中对应的 tool_calls[].id 完全一致,并且必须返回所有工具调用的结果后才能继续发送下一条普通消息。
Python SDK
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://cubicspaces.cloud/v1",
)
response = client.chat.completions.create(
model="kimi-k3",
messages=[
{"role": "user", "content": "解释什么是乐观锁。"}
],
reasoning_effort="high",
max_tokens=4096,
)
print(response.choices[0].message.content)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
model | string | 固定为 kimi-k3 |
messages | array | OpenAI Chat 消息数组 |
reasoning_effort | string | low、high 或 max |
max_tokens | integer | 最大输出 Token 数,建议使用该字段 |
max_completion_tokens | integer | 最大输出 Token 数;部分客户端可使用 |
stream | boolean | 是否使用流式输出 |
stream_options | object | 流式附加配置,例如 include_usage |
tools | array | Function Calling 工具定义 |
tool_choice | string/object | 工具选择策略 |
平台当前会将超过 65,536 的输出 Token 上限收敛到 65,536。请根据任务需要设置更小的合理值。
不要发送的参数
为避免兼容性错误,请不要向 Kimi K3 请求加入以下字段:
temperaturetop_ptop_kpresence_penaltyfrequency_penaltyprompt_cache_keyprompt_cache_retention- 原始 HTTP JSON 中的字面量
extra_body - 旧版
functions或function_call
使用 Python SDK 时,不需要为 Kimi K3 配置 extra_body。如果其他客户端提供名为 Extra Body 的高级输入框,也不要放入未知扩展字段。
常见 400 错误
| 表现 | 常见原因 | 处理方法 |
|---|---|---|
reasoning_effort 不支持 | 使用了 medium 或自定义值 | 改为 low、high 或 max |
tools[n].function.name 错误 | 工具名缺失、过长或含非法字符 | 按工具名称规则修改 |
function.parameters must be a JSON object | 参数 Schema 被传成字符串或数组 | 传入有效 JSON 对象 |
tool_call_id does not match | 工具结果没有对应前序调用 | 使用模型返回的原始 tool_calls[].id |
| 必须先返回全部工具结果 | 多个工具调用只返回了部分结果 | 为每个调用追加一条 role: "tool" 消息 |
messages 或 tools 格式错误 | 对象与数组混用,或数组元素结构不完整 | 按本文示例检查 JSON 层级 |
| JSON 解析错误 | 报文截断、引号或反斜杠转义错误 | 使用 JSON 校验器检查最终 HTTP 请求体 |
遇到错误时,应检查客户端最终发送的 HTTP JSON,而不只是 SDK 调用代码。代理、插件或客户端高级设置可能会在最终报文中加入额外字段。