1.登錄成功后,點(diǎn)擊頁面右上角頭像或?qū)Ш綑谶M(jìn)入 “控制臺”。然后點(diǎn)擊左側(cè)菜單“API key
2.完善信息點(diǎn)擊確定
3.復(fù)制生成的密鑰
安全警示:
為了成功運(yùn)行上述代碼,你可能需要準(zhǔn)備:
1.Python 環(huán)境 或 Node.js 環(huán)境,我們推薦使用 Python 3.8 及以上版本的 Python 解釋器;
2.OpenAI SDK,我們的 API 完全兼容 OpenAI 的 API 格式,因此你可以直接使用 Python 或 Node.js OpenAI SDK 進(jìn)行調(diào)用,你可以通過如下方式來安裝 OpenAI SDK:
pip install --upgrade 'openai>=1.0' #Pythonnpm install openai@latest #Node.js
如果您成功運(yùn)行上述代碼,且沒有任何報錯,那么您將看到類似如下的內(nèi)容輸出:
你好,李雷!1+1 等于 2。這是一個基本的數(shù)學(xué)加法問題。如果你有其他問題或需要幫助,請隨時告訴我。
掌握了 API Key 并配置好環(huán)境,現(xiàn)在讓我們開始進(jìn)行核心的 API 調(diào)用。Kimi K2 API 主要圍繞 Chat Completions 接口展開。
1. 純文本對話
這是最基本也是最常用的功能:向模型發(fā)送一段或多段文本消息,并獲取模型的文本回復(fù)。
from moonshot import Moonshot
# 步驟 1: 初始化客戶端 - 替換 '你的API Key' 為你在控制臺獲取的真實 Key
client = Moonshot(api_key="你的API Key")
# 例如: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# 步驟 2: 構(gòu)建對話歷史 (messages)
# 每條消息是一個字典 (dict),包含 'role' (角色) 和 'content' (內(nèi)容)
# role 可選: 'system' (系統(tǒng)設(shè)定), 'user' (用戶), 'assistant' (模型之前的回復(fù))
messages = [
{
"role": "system",
"content": "你是一個樂于助人的AI助手。你的回答需要簡潔、清晰、有邏輯性。",# 設(shè)定AI的角色和行為
},
{
"role": "user",
"content": "請解釋一下量子計算的基本原理是什么?它與傳統(tǒng)計算機(jī)有什么主要區(qū)別?",# 用戶的問題
},
]
# 步驟 3: 發(fā)起 API 請求
# 使用 chat.completions.create 方法
# 必選參數(shù): model (指定模型), messages (對話歷史)
# 可選參數(shù): max_tokens (限制回復(fù)最大長度), temperature (控制隨機(jī)性), top_p (控制多樣性)等
completion = client.chat.completions.create(
model="moonshot-v1-8k",# 指定模型ID, 例如 'moonshot-v1-8k', 'moonshot-v1-32k', 'moonshot-v1-128k'
messages=messages,
max_tokens=1024,# 限制模型回復(fù)的最大token數(shù)
temperature=0.3,# 值越低(接近0)輸出越確定/保守; 值越高(接近1)輸出越隨機(jī)/有創(chuàng)意
)
# 步驟 4: 提取模型回復(fù)
# 返回的 completion 對象包含多個屬性,回復(fù)內(nèi)容在 choices[0].message.content
response_text = completion.choices[0].message.content
# 打印模型回復(fù)
print("Kimi 的回答:")
print(response_text)
關(guān)鍵參數(shù)詳解:
model: 必選。指定要使用的模型。
moonshot-v1-8k: 支持上下文約 8K tokens。
moonshot-v1-32k: 支持上下文約 32K tokens。
moonshot-v1-128k: Kimi K2 核心優(yōu)勢! 支持上下文約 128K tokens,適合處理超長文檔和復(fù)雜任務(wù)。
messages: 必選。一個列表 (list),包含對話消息字典 (dict)。
role: 消息發(fā)送者角色。system 用于設(shè)定助手的行為和背景;user 代表用戶的輸入;assistant 代表模型之前的回復(fù)(用于多輪對話)。
content: 該角色的消息文本內(nèi)容。
max_tokens: 可選。限制模型在本次請求中生成的 最大 token 數(shù)量。注意:這個限制包括輸入 (messages) 和輸出 (response) 的總 tokens 不能超過模型本身的最大上下文長度 (如 128k)。設(shè)置合理的 max_tokens 可以控制成本和響應(yīng)長度。
temperature: 可選 (默認(rèn)值通常為 0.7)。取值范圍 [0, 2]。控制生成文本的隨機(jī)性。
值越低 (如 0.1-0.3):輸出更確定、更集中、更保守。適合需要事實性、一致性的任務(wù)(如問答、摘要)。
值越高 (如 0.7-1.0):輸出更隨機(jī)、更多樣化、更有創(chuàng)意。適合需要創(chuàng)造性的任務(wù)(如寫詩、生成不同想法)。
top_p: 可選 (默認(rèn)值通常為 1.0)。取值范圍 [0, 1]。另一種控制多樣性的方式,稱為核采樣 (nucleus sampling)。
模型只考慮累計概率超過 top_p 的 token 集合。例如 top_p=0.9 表示模型只考慮概率最高的那部分 token (它們的概率累加達(dá)到 90%),然后從這部分里隨機(jī)選擇。
通常只調(diào)整 temperature 或 top_p 其中一個即可,不必同時調(diào)整。
stream: 可選 (True/False)。是否啟用流式傳輸 (Server-Sent Events)。啟用后 (stream=True),響應(yīng)會分塊返回,適合需要實時顯示結(jié)果的場景(如聊天界面)。處理流式響應(yīng)代碼稍復(fù)雜一些(見下文進(jìn)階部分)。
stop: 可選。一個字符串列表 (list[str])。指定一個或多個序列,當(dāng)模型生成遇到這些序列時,會停止生成。例如 stop=["n", "。"] 表示遇到換行或句號就停止。用于更精確地控制輸出格式。
2. 文件上傳與處理 (多模態(tài))
Kimi K2 的核心亮點(diǎn)之一是能夠理解上傳文件的內(nèi)容(如 PDF, DOCX, XLSX, PPTX, TXT, 圖片等)。這極大地擴(kuò)展了其應(yīng)用場景。
調(diào)用步驟:
files API 將你的文件上傳到平臺,獲取一個臨時的 file_id。messages 時,在 user 消息的 content 中,使用特定的格式 @file-{file_id} 來引用你上傳的文件。你可以要求模型讀取文件內(nèi)容、總結(jié)、回答問題、提取信息等。from moonshot import Moonshot
import os
client = Moonshot(api_key="你的API Key")
# 步驟 1: 上傳文件
# 指定要上傳的文件路徑 (替換為你的實際文件路徑)
file_path = "./path/to/your/file.pdf"
# 支持 PDF, DOCX, XLSX, PPTX, TXT, 圖片等
# 使用 files.create 方法上傳
# 參數(shù): file (一個打開的文件對象), purpose (固定為 'file-extract')
with open(file_path, "rb") as file_to_upload:
uploaded_file = client.files.create(file=file_to_upload, purpose="file-extract")
# 獲取上傳文件的唯一標(biāo)識符 (file_id)
file_id = uploaded_file.id
print(f"文件已上傳,ID: {file_id}")
# 步驟 2: 在對話中引用文件并提問
messages = [
{
"role": "system",
"content": "你是一個專業(yè)的文檔分析助手。請根據(jù)用戶提供的文檔回答問題。"
},
{
"role": "user",
# 使用 @file-{file_id} 格式引用上傳的文件,并提問
"content": f"請閱讀附件中的文檔:@file-{file_id}。nn總結(jié)這份文檔的主要觀點(diǎn),并列出三個關(guān)鍵論據(jù)。"
}
]
# 步驟 3: 發(fā)起對話請求 (與非文件調(diào)用相同)
completion = client.chat.completions.create(
model="moonshot-v1-128k",# 處理長文檔強(qiáng)烈推薦使用 128k 模型
messages=messages,
max_tokens=2048,
temperature=0.2# 文件分析任務(wù)通常需要更確定性的輸出
)
# 步驟 4: 提取并打印回復(fù)
response_text = completion.choices[0].message.content
print("Kimi 的文檔分析結(jié)果:")
print(response_text)
# (可選) 步驟 5: 刪除上傳的文件 (如果需要清理)
# client.files.delete(file_id)
文件處理要點(diǎn):
moonshot-v1-128k)支持多模態(tài)文件解析。user 的 content 中,清晰地指明哪個問題針對哪個文件(尤其在引用多個文件時)。Kimi K2 API 為開發(fā)者打開了一扇通往強(qiáng)大國產(chǎn)大模型能力的大門。通過本文的指南,你應(yīng)該已經(jīng)掌握了:
持續(xù)探索:
https://platform.moonshot.cn/docs) 是獲取最新模型列表、API 詳細(xì)參數(shù)、限制說明、最佳實踐和更新公告的權(quán)威來源。務(wù)必定期查閱。[prompt](https://prompts.explinks.com/)) 的設(shè)計、參數(shù)的調(diào)整。多嘗試不同的 system 設(shè)定、提問方式、temperature 值,找到最適合你應(yīng)用場景的組合。Kimi K2 的 128K 上下文和文件處理能力使其在處理復(fù)雜、信息密集的任務(wù)上具有獨(dú)特優(yōu)勢。無論是構(gòu)建智能知識助手、自動化文檔處理流水線,還是開發(fā)創(chuàng)新的對話應(yīng)用,Kimi K2 API 都提供了堅實可靠的基礎(chǔ)?,F(xiàn)在就開始你的集成之旅,釋放國產(chǎn)大模型的潛能吧!
參考資料: