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 金鑰怎麼取得?
- 登入 SeedRouter,開啟 API keys。
- 建立金鑰並複製;它只會顯示一次。
- 需要時再儲值。新帳戶會附一小筆免費餘額,而且沒有訂閱制。
把金鑰存在環境變數中,例如 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 或懲罰參數回傳 400 | Kimi 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 與即時價格。



