Skip to content

Kimi K3 ​

Kimi K3 通过 OpenAI 兼容的 Chat Completions 接口调用,支持文本与图片输入、思考内容、流式输出和 Function Calling。

请求地址 ​

http
POST /v1/chat/completions

模型名称 ​

text
kimi-k3

实际可用模型与额度以当前账户权限为准。

基础请求 ​

bash
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 图片地址。

json
{
  "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
}

流式输出 ​

bash
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 对象。

json
{
  "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 后,执行工具并将结果追加到消息历史:

json
{
  "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 ​

python
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)

参数说明 ​

参数类型说明
modelstring固定为 kimi-k3
messagesarrayOpenAI Chat 消息数组
reasoning_effortstringlow、high 或 max
max_tokensinteger最大输出 Token 数,建议使用该字段
max_completion_tokensinteger最大输出 Token 数;部分客户端可使用
streamboolean是否使用流式输出
stream_optionsobject流式附加配置,例如 include_usage
toolsarrayFunction Calling 工具定义
tool_choicestring/object工具选择策略

平台当前会将超过 65,536 的输出 Token 上限收敛到 65,536。请根据任务需要设置更小的合理值。

不要发送的参数 ​

为避免兼容性错误,请不要向 Kimi K3 请求加入以下字段:

  • temperature
  • top_p
  • top_k
  • presence_penalty
  • frequency_penalty
  • prompt_cache_key
  • prompt_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 调用代码。代理、插件或客户端高级设置可能会在最终报文中加入额外字段。