一、注册与获取API Key
Kimi 是由月之暗面(Moonshot AI)开发的国产大语言模型,以20万字超长上下文为核心特色。无论是整本小说、几十页PDF、还是长篇幅的技术文档,Kimi 都能一次性读完并分析。API兼容OpenAI格式,接入非常简单。
步骤1:注册账号
访问 https://kimi.moonshot.cn/,点击右上角登录/注册。支持手机号注册,注册后即可使用Web版体验 Kimi 的能力。
步骤2:进入开放平台
登录后,将鼠标悬停在右上角头像上,点击下拉菜单中的「开放平台」(或直接访问 https://platform.moonshot.cn/)。
- 在开放平台左侧菜单点击「API Key 管理」
- 点击「新建 API Key」
- 给 Key 起个名字(如"开发测试"或"生产环境")
- 创建后 Key 会展示一次,请立即复制保存
步骤3:查看免费额度
Kimi的长文本能力在小程序场景里特别实用——比如做智能客服(能记住上下文)、合同助手、资料查询。本文将介绍如何把Kimi API接到小程序中。
openai Python 包或 openai Node.js SDK,只改 base_url 和 api_key 即可无缝切换。
二、用curl测试(最快验证方式)
不管用什么语言开发,先用 curl 跑通一遍,确认 API Key 有效、网络通畅。Kimi API 的 base URL 为 https://api.moonshot.cn/v1。
curl https://api.moonshot.cn/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer *** \
-d '{
"model": "moonshot-v1-auto",
"messages": [
{"role": "system", "content": "你是一个有用的助手"},
{"role": "user", "content": "用一句话解释什么是API"}
]
}'
如果成功,会返回类似下面的 JSON 结果:
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "API(应用程序编程接口)是不同软件组件之间约定的通信方式,它定义了一组规则,让一个程序可以请求另一个程序的数据或功能,无需了解其内部实现细节。"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 48,
"total_tokens": 73
}
}
https://api.moonshot.cn/v1(注意是 moonshot 不是 kimi)。
三、用Python调用
Python 是调用 AI API 最常用的语言。Kimi 兼容 OpenAI SDK,直接用 openai 包即可。
安装依赖
pip install openai
基础对话
from openai import OpenAI
# 初始化客户端(关键:把 base_url 改为 Kimi 的地址)
client = OpenAI(
api_key="sk-你的API_KEY",
base_url="https://api.moonshot.cn/v1"
)
# 发送对话请求
response = client.chat.completions.create(
model="moonshot-v1-auto",
messages=[
{"role": "system", "content": "你是一个专业的编程助手"},
{"role": "user", "content": "用Python写一个快速排序算法"}
]
)
print(response.choices[0].message.content)
流式输出(打字机效果)
流式输出可以让 AI 一边生成一边显示,响应更快、体验更好:
from openai import OpenAI
client = OpenAI(
api_key="sk-你的API_KEY",
base_url="https://api.moonshot.cn/v1"
)
stream = client.chat.completions.create(
model="moonshot-v1-auto",
messages=[{"role": "user", "content": "讲一个程序员笑话"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
四、用Node.js调用
安装依赖
npm install openai
基础对话
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'sk-你的API_KEY',
baseURL: 'https://api.moonshot.cn/v1'
});
async function main() {
const response = await client.chat.completions.create({
model: 'moonshot-v1-auto',
messages: [
{ role: 'system', content: '你是一个有用的助手' },
{ role: 'user', content: 'Node.js如何读取文件?' }
]
});
console.log(response.choices[0].message.content);
}
main();
五、常用功能代码示例
1. 超长文档分析(Kimi 核心优势)
Kimi 最大的亮点是支持20万字超长上下文。你可以直接把整本书或几十页 PDF 内容传进去进行分析。这里演示用 Python 读取本地文件内容并让 Kimi 分析:
def analyze_long_document(file_path, question):
\"\"\"读取长文档内容并让 Kimi 分析\"\"\"
# 读取文件内容
with open(file_path, "r", encoding="utf-8") as f:
content = f.read()
# 如果是 PDF,需要先用 PyMuPDF/pdfplumber 提取文本
# 这里以 txt/md 文件为例
response = client.chat.completions.create(
model="moonshot-v1-128k", # 128K 上下文版本
messages=[
{
"role": "system",
"content": "你是一个文档分析助手,基于用户提供的文档内容回答问题。"
},
{
"role": "user",
"content": f"以下是一份文档的内容:\n\n{content}\n\n"
f"请基于以上文档回答:{question}"
}
],
temperature=0.3 # 分析类任务使用较低温度
)
return response.choices[0].message.content
moonshot-v1-128k 模型(实际支持约 20 万字符)。如果文档长度在 32K 以内,可以用 moonshot-v1-32k 节省成本。对于不确定长度的任务,直接用 moonshot-v1-auto 让系统自动选择最合适的模型。
2. AI 翻译(保留格式)
def translate_text(text, target_lang="中文"):
\"\"\"将文本翻译为目标语言,保留原格式\"\"\"
response = client.chat.completions.create(
model="moonshot-v1-auto",
messages=[{
"role": "user",
"content": f"请将以下内容翻译成{target_lang},严格保留原文格式(包括换行、标点、Markdown标记):\n\n{text}"
}],
temperature=0.1
)
return response.choices[0].message.content
3. AI 写作助手
def generate_article(topic, style="专业", word_count=800):
\"\"\"根据主题和风格生成文章\"\"\"
response = client.chat.completions.create(
model="moonshot-v1-auto",
messages=[{
"role": "user",
"content": f"请以{style}的风格,写一篇约{word_count}字的文章。主题:{topic}。"
f"要求:有吸引人的标题、有清晰的分段结构、有具体案例或数据支撑。"
}]
)
return response.choices[0].message.content
4. 多轮对话(带上下文记忆)
def chat_with_memory(user_message, history=None):
\"\"\"多轮对话,保留上下文\"\"\"
messages = [
{"role": "system", "content": "你是一个智能助手,回答简洁准确。"}
]
if history:
# 只保留最近 10 轮对话
for h in history[-10:]:
messages.append(h)
messages.append({"role": "user", "content": user_message})
response = client.chat.completions.create(
model="moonshot-v1-auto",
messages=messages
)
return response.choices[0].message.content
六、常见错误及解决
| 错误代码 | 原因 | 解决方案 |
|---|---|---|
| 401 Unauthorized | API Key 无效或已过期 | 检查 Key 是否完整、前后有无空格;去开放平台确认 Key 状态 |
| 403 Forbidden | IP 不在白名单或账户受限 | 在开放平台「安全设置」中配置白名单 IP;检查账户是否欠费 |
| 429 Too Many Requests | 请求频率超过限制 | 降低请求频率,添加 sleep 或使用指数退避策略 |
| 400 Invalid URL | 请求地址写错 | 确认 base_url 为 https://api.moonshot.cn/v1,不是 kimi.moonshot.cn |
| 400 context_length_exceeded | 输入内容超过模型上下文限制 | 缩短文档长度,或换用 moonshot-v1-128k 超大上下文版本 |
| 503 Service Unavailable | 服务端暂时不可用 | 等待几秒后重试,一般会自动恢复 |
| timeout / 连接超时 | 网络问题 | 检查网络环境,设置更长的 timeout 参数 |
tenacity 库实现指数退避重试(如失败后等待 1s、2s、4s 递增),最多重试 3 次。同时建议在代码中捕获 openai.APIError 等异常,确保程序不会因一次请求失败而崩溃。
七、价格与免费额度
Kimi API 目前采用按量计费模式,以下是参考价格(具体以开放平台最新公告为准):
| 项目 | 说明 |
|---|---|
| 新用户赠送 | 注册即送额度(具体金额以平台活动为准),可用于初期开发和测试 |
| moonshot-v1-auto | 自动选择最合适的模型,按实际使用模型计费 |
| moonshot-v1-8k | 适合短文本对话,价格最低 |
| moonshot-v1-32k | 适合中等长度文档,性价比高 |
| moonshot-v1-128k | 支持20万字超长上下文,适合整书分析、大型文档处理 |
| 计费方式 | 按 tokens 计费(输入 + 输出),具体单价请参考开放平台定价页面 |
相较于其他国际大模型 API,Kimi 在中文理解、长文档处理方面有显著优势,价格也更具竞争力。特别适合需要处理大量中文文档、书籍、长文本分析的场景。
八、实际项目应用场景 & 代接服务
API 调通了,然后呢?以下是我们用 Kimi API 验证过的落地场景:
场景一:智能文档问答系统
上传整本PDF/Word/技术文档 → Kimi 自动理解内容 → 用户用自然语言提问,AI基于文档内容精准回答。适合企业知识库、法规文档查阅、学术文献分析。
- 优势:Kimi 超长上下文直接读完整文档,无需 RAG 或分块
- 接入方式:用户上传文件 → 后端提取文本 → 调用 Kimi API
- 我们能帮做:整套知识库问答系统 ¥800 起
场景二:AI 写作与内容生成
对接公众号、博客、自媒体平台,自动生成文章、总结、摘要。Kimi 的中文写作能力优秀,适合中文内容创作。
场景三:多语言翻译与本地化
批量翻译文档、网站内容、产品说明。Kimi 在中文 ↔ 英文/日文/韩文等语言的翻译质量高,并且能保持原文排版和格式。
场景四:长合同/法律文档审查
将几十页的合同、协议全文输入 Kimi,让 AI 帮忙提取关键条款、标注风险点、生成摘要。20万字上下文足以覆盖绝大多数合同文档。
场景五:AI 客服与对话机器人
基于 Kimi 构建智能客服系统,支持长时间的多轮对话。适合电商、教育、SaaS 平台等需要与用户深度交流的场景。