Claude Opus 5.5 已在 SeedRouter 上线

Kimi K3 API 怎么调用:获取 key 并完成第一次调用

Kimi K3 API 接入教程:获取 API key,用 OpenAI SDK 调用 kimi-k3,设置推理强度、流式输出、发送图片,并解决新手最先遇到的报错。

以 Markdown 阅读

要调用 Kimi K3,你需要一个提供该模型的平台的 API key,以及一个把 model 设为 kimi-k3 的请求。Moonshot AI 在自己的 Kimi API 开放平台上提供它,首次充值后才会解锁该模型。SeedRouter 用一个 key 提供它,按量付费,使用官方请求格式:把 OpenAI SDK 指向 https://api.seedrouter.ai/v1,代码保持不变。

本指南使用 SeedRouter;请求体与 Kimi 官方 API 完全相同。

Kimi K3 API key 怎么获取?

  1. 登录 SeedRouter,打开 API keys。
  2. 创建一个 key 并复制;它只显示一次。
  3. 需要时再充值。新账户自带少量免费余额,没有订阅。

把 key 放在 SEEDROUTER_API_KEY 这样的环境变量里,并且只在服务端代码中使用。

怎么用 Python 调用 Kimi K3?

Kimi K3 使用 Chat Completions 格式,所以官方的 openai 包可以直接使用:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["SEEDROUTER_API_KEY"],
    base_url="https://api.seedrouter.ai/v1",
)

completion = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Explain context caching in one sentence."}],
)
print(completion.choices[0].message.content)

回答在 content 里。Kimi K3 会先推理再回答,推理内容在同一条消息的 reasoning_content 中返回。

怎么用 Node.js 或 cURL 调用?

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.SEEDROUTER_API_KEY,
  baseURL: "https://api.seedrouter.ai/v1",
});

const completion = await client.chat.completions.create({
  model: "kimi-k3",
  messages: [{ role: "user", content: "Explain context caching in one sentence." }],
});
console.log(completion.choices[0].message.content);
curl https://api.seedrouter.ai/v1/chat/completions \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "kimi-k3", "messages": [{"role": "user", "content": "Explain context caching in one sentence."}]}'

同一个 key 也可以通过 Responses API(/v1/responses)和 Anthropic Messages 格式(/v1/messages)调用 kimi-k3。

推理强度怎么设置?

Kimi K3 始终会推理,无法关闭。reasoning_effort 决定它在回答前思考多少:

completion = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Find the bug: def avg(xs): return sum(xs) / len(xs)"}],
    reasoning_effort="high",
)
取值适用场景
low快速、简单的步骤
high大多数编程和分析任务
max(默认)最难的问题

推理 token 按输出计费,并计入 max_completion_tokens,其默认值为 131,072,最大可达 1,048,576。在我们对同一个问题的测试中,low 用了 25 个输出 token,max 用了 146 个。

怎么流式输出回答?

加上 stream=True。推理内容先出现在 delta.reasoning_content 中,然后回答出现在 delta.content 中。设置 stream_options={"include_usage": True},即可在最后一个分块里拿到 token 用量:

stream = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Write a haiku about latency."}],
    stream=True,
    stream_options={"include_usage": True},
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

可以发送图片吗?

可以,以 base64 data URI 的形式发送。Kimi K3 不接受公网图片 URL;它的快速入门写道:"Vision input does not support public image URLs"(视觉输入不支持公网图片 URL):

import base64

with open("chart.png", "rb") as f:
    image = base64.b64encode(f.read()).decode()

completion = client.chat.completions.create(
    model="kimi-k3",
    messages=[{
        "role": "user",
        "content": [
            {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image}"}},
            {"type": "text", "text": "What does this chart show?"},
        ],
    }],
)

会遇到哪些报错?

错误原因解决方法
temperature、top_p、n 或惩罚参数报 400Kimi K3 把它们固定为 1.0、0.95、1、0不要传这些参数
reasoning_effort 报 400取值不是 low、high 或 max使用这三个值之一
图片报 400用了公网 URL 而不是 data URI以 base64 发送图片
401key 缺失或错误检查 Authorization 请求头

错误返回 {"error": {"code": ..., "message": "..."}},失败的请求不收费。

常见问题

Kimi K3 API 兼容 OpenAI 吗?

兼容。Kimi K3 支持 Chat Completions 和 Responses 格式,所以只要改 base URL 和模型名,OpenAI SDK 就能用。它也支持 Anthropic Messages 格式。

使用 Kimi K3 需要 Moonshot 账户吗?

在 SeedRouter 上不需要。你登录 SeedRouter,在那里创建 key,从 SeedRouter 余额中付费。

一次 Kimi K3 请求要多少钱?

按输入和输出 token 计费。Kimi K3 价格指南里有实时费率和计算示例。

完整参数列表在哪里?

Kimi K3 API 参考列出了所有字段,Kimi K3 页面提供 playground 和实时价格。

相关指南