Appearance
Kimi API 兼容 OpenAI SDK,接入只需两步:安装 openai 包,替换 baseURL 为 api.moonshot.cn/v1。本页提供 Python 和 TypeScript 完整示例,以及环境搭建中最容易踩到的坑。
Kimi API 快速入门
Kimi API 和 OpenAI API 使用相同的接口格式,迁移成本极低。
准备工作
- 在 platform.kimi.com 注册账号
- 进入控制台 → API Keys,创建一个 Key
- 将 Key 保存到环境变量
bash
# .env 或系统环境变量
MOONSHOT_API_KEY=sk-xxxxxxxxxxxxxxxx安装 SDK
bash
# Python(需要 openai >= 1.0)
pip install --upgrade "openai>=1.0"
# Node.js
npm install openai@latest第一次调用
TypeScript / Node.js
typescript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.MOONSHOT_API_KEY,
baseURL: "https://api.moonshot.cn/v1",
});
const response = await client.chat.completions.create({
model: "kimi-k2.6",
messages: [
{
role: "system",
content: "你是 Kimi,由 Moonshot AI 提供的人工智能助手。",
},
{
role: "user",
content: "你好,1+1 等于多少?",
},
],
});
console.log(response.choices[0].message.content);Python
python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("MOONSHOT_API_KEY"),
base_url="https://api.moonshot.cn/v1",
)
completion = client.chat.completions.create(
model="kimi-k2.6",
messages=[
{
"role": "system",
"content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手。",
},
{
"role": "user",
"content": "你好,1+1 等于多少?",
},
],
)
print(completion.choices[0].message.content)常见踩坑
model_not_found 错误
最常见原因:baseURL 写错了,使用了 OpenAI 的默认地址。
typescript
// ❌ 错误 - 没有指定 baseURL,调用了 OpenAI 的节点
const client = new OpenAI({ apiKey: "sk-moonshot-xxx" });
// ✅ 正确
const client = new OpenAI({
apiKey: "sk-moonshot-xxx",
baseURL: "https://api.moonshot.cn/v1",
});authentication_error(401)
检查是否把旧域名(platform.kimi.ai)的 Key 用在了新域名(platform.kimi.com)上。两个平台的账号和 Key 完全独立,不能混用。
国内节点 vs 境外节点
| 场景 | baseURL |
|---|---|
| 国内服务器/本机 | https://api.moonshot.cn/v1 |
| 境外服务器(AWS、GCP 等) | https://api.moonshot.ai/v1 |
OpenAI SDK 默认重试导致 RPM 超限
OpenAI SDK 失败时默认重试 2 次,可能快速消耗 RPM 配额:
typescript
const client = new OpenAI({
apiKey: process.env.MOONSHOT_API_KEY,
baseURL: "https://api.moonshot.cn/v1",
maxRetries: 0, // 生产环境建议自行控制重试逻辑
});下一步
- 模型列表 — 选择适合你场景的模型
- 多轮对话 — 管理对话历史
- 文件上传 — 让模型读取你的文档
- Tool Calls — 接入外部工具
常见问题
Q: Kimi API 和 OpenAI API 完全兼容吗?
A: 基础的 chat completions 接口完全兼容。但 Kimi 有自己的模型名称(kimi-k2.6 等),以及文件上传、批处理等独有功能,这些需要参考 Kimi 的文档。
Q: 免费额度有多少?
A: 新用户注册后有免费试用额度,具体金额以控制台为准。超出后按 token 计费,详见定价页面。
Q: stream 模式怎么开?
A: 在请求参数中加 stream: true,然后用 for await 遍历响应:
typescript
const stream = await client.chat.completions.create({ ..., stream: true });
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}