Claude Opus 5.5 已在 SeedRouter 上線

Kimi K3 API 怎麼用:取得金鑰並完成第一次呼叫

Kimi K3 API 串接教學:取得 API 金鑰,用 OpenAI SDK 呼叫 kimi-k3,設定推理強度、串流輸出、傳送圖片,並解決新手最先遇到的錯誤。

以 Markdown 閱讀

要呼叫 Kimi K3,你需要一個提供該模型的平台所發的 API 金鑰,以及一個把 model 設為 kimi-k3 的請求。Moonshot AI 在自家的 Kimi API 開放平台提供這個模型,首次儲值後才會解鎖。SeedRouter 以一把金鑰、按用量付費的方式提供它,使用官方請求格式:把 OpenAI SDK 指向 https://api.seedrouter.ai/v1,程式碼不用改。

本指南使用 SeedRouter;請求內容與 Kimi 自家 API 完全相同。

Kimi K3 API 金鑰怎麼取得?

  1. 登入 SeedRouter,開啟 API keys。
  2. 建立金鑰並複製;它只會顯示一次。
  3. 需要時再儲值。新帳戶會附一小筆免費餘額,而且沒有訂閱制。

把金鑰存在環境變數中,例如 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."}]}'

同一把金鑰也能透過 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 不接受公開的圖片網址;它的快速入門寫道:「Vision input does not support public image URLs」(視覺輸入不支援公開圖片網址):

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用了公開網址而不是 data URI以 base64 傳送圖片
401金鑰缺少或錯誤檢查 Authorization 標頭

錯誤會回傳 {"error": {"code": ..., "message": "..."}},失敗的請求不收費。

常見問題

Kimi K3 API 相容 OpenAI 嗎?

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

使用 Kimi K3 需要 Moonshot 帳號嗎?

在 SeedRouter 上不需要。你登入 SeedRouter,在那裡建立金鑰,並從 SeedRouter 餘額付費。

一次 Kimi K3 請求要多少錢?

依輸入與輸出 token 計費。Kimi K3 價格指南有即時費率與計算範例。

完整的參數清單在哪裡?

Kimi K3 API 參考文件列出所有欄位,Kimi K3 頁面提供 playground 與即時價格。

相關指南