Skip to content

Kimi API 兼容 OpenAI SDK,接入只需两步:安装 openai 包,替换 baseURL 为 api.moonshot.cn/v1。本页提供 Python 和 TypeScript 完整示例,以及环境搭建中最容易踩到的坑。

Kimi API 快速入门

Kimi API 和 OpenAI API 使用相同的接口格式,迁移成本极低。

准备工作

  1. platform.kimi.com 注册账号
  2. 进入控制台 → API Keys,创建一个 Key
  3. 将 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, // 生产环境建议自行控制重试逻辑
});

下一步

常见问题

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 ?? "");
}