
無論是在建置 AI 聊天機器人,還是在應用程式中加入對話功能,了解 AI 如何處理對話都很重要。Chat Completion API 可將應用程式與 AI 模型連接起來,生成相關且自然的回應。有了 Python 整合、串流和工具呼叫等功能,開發人員能建置互動性更高的應用程式。接下來將了解它的運作方式、使用方法,以及 Kimi API 等供應商如何支援彈性的 AI 開發。
什麼是 Chat Completions API
Chat Completions API 是一種介面,可讓應用程式向 AI 模型傳送一連串訊息,並接收助理回應,同時支援單輪與多輪對話。例如,您可以使用 Kimi K3.1 Pro 回答關於 Python 裝飾器的問題,接著再提出追問:
第一次請求:傳送使用者訊息「什麼是 Python 裝飾器?」Kimi 會傳回說明此概念的助理訊息。
第二次請求:若要延續對話,請傳送先前的使用者訊息、Kimi 完整的助理訊息,以及新的使用者訊息:「可以舉個例子嗎?」
messages 陣列承載每次請求所需的上下文。以下三項關鍵設計使這個介面廣受採用:
由應用程式管理歷史記錄:應用程式會管理對話歷史,並在每次請求中包含相關上下文,讓開發人員能控制模型看到的內容。
常見訊息角色:常見角色包括
system(指令)、user(輸入)、assistant(模型輸出,會回傳以提供多輪對話脈絡)和tool(函式呼叫結果)。這些角色可用於表達指令、對話及工具互動。彈性功能:視模型支援情況而定,介面可處理串流、工具呼叫、視覺輸入及結構化輸出。Kimi K3.1 Pro 支援這些功能。
如何透過 Kimi 使用 Chat Completions API
以下範例使用 Kimi K3.1 Pro 與 OpenAI Python SDK,示範如何設定用戶端、傳送請求、處理回應及實作工具呼叫:
快速入門:使用 OpenAI Python SDK 呼叫 Kimi
安裝 OpenAI Python SDK:
將 Kimi API 金鑰設為環境變數:
您不需要 OpenAI API 金鑰。OpenAI Python SDK 作為用戶端程式庫,而您的 Kimi API 金鑰和基礎 URL 則用於驗證身分並將請求路由至 Kimi。
初始化用戶端並傳送第一個請求:
本範例使用 Kimi 的國際 API 端點。如需官方設定方式及模型詳細資訊,請參閱 Kimi K3.1 Pro 快速入門。
主要參數
以下參數涵蓋透過 Chat Completions API 呼叫 Kimi K3.1 Pro 時可用的主要選項:
| 參數 | 用途 |
|---|---|
model | 指定模型 ID,例如 kimi-k3.1-pro。 |
messages | 提供對話訊息,包括先前的使用者輸入和助理回覆。支援文字與多模態內容。 |
reasoning_effort | 控制推理深度。可設為 low、high 或 max(預設值)。 |
max_completion_tokens | 設定生成內容的最大預算,包括推理 token 與最終答案 token。輸入 token 會另外計算,但輸入與生成 token 的總和必須符合模型的上下文視窗限制。 |
stream | 設為 true 可逐步接收回應,而不必等待完整輸出。 |
tools | 定義模型可要求應用程式執行的函式。 |
response_format | 控制輸出格式。支援用於 JSON 模式的 json_object,以及用於受 Schema 限制之結構化輸出的 json_schema。 |
注意:Kimi K3.1 Pro 使用固定的取樣設定。請勿在請求中加入 temperature 或 top_p。參數詳細資訊及支援的值,請參閱 Chat Completions API 參考文件。
讀取回應
請求成功後,您可透過傳回的 completion 物件存取主要回應欄位:
choices[0].message– 包含 assistant 的回覆;模型要求呼叫函式時,會包含content或tool_calls。choices[0].finish_reason– 指出生成停止的原因,例如stop、length或tool_calls。usage– 提供 token 使用量資訊,包括輸入、輸出,以及可用時的快取 token 數量。
若要取得基本文字回應,請讀取 choices[0].message.content。如果模型傳回 tool_calls,您的應用程式必須執行所要求的函式,並在後續請求中提交其結果
串流範例
設定 stream=True,即可分段接收 Kimi 的回應。以下範例會重複使用上方設定的 client,並在最終答案到達時將其印出:
Kimi K3.1 Pro 會將推理內容與最終答案分開傳回。本範例只會印出 delta.content,因此會顯示最終回應,而不處理另外的 reasoning_content 欄位。
工具呼叫簡介
當工作需要模型自身回覆以外的資訊或操作時,工具呼叫可讓 Kimi 請求外部函式。例如,若使用者問「今天去東京要帶雨傘嗎?」,Kimi 可請求 get_weather 函式來取得天氣預報。
流程分為三個步驟:
宣告函式:在
tools參數中定義get_weather及其預期引數。執行工具:Kimi 會傳回包含函式名稱及引數的
tool_calls項目。您的應用程式會執行相應函式並取得天氣資料。傳回結果:將 Kimi 完整的 assistant 訊息和工具結果(使用相符的
tool_call_id)附加至對話中,然後再次呼叫 Kimi 以產生面向使用者的答案。
以下範例會重複使用上方設定的 client。執行前,請確認您已實作 get_weather(city) 函式,且該函式會傳回可序列化為 JSON 的天氣資料。此函式由您的應用程式執行,而非 Kimi。
此處的 get_weather() 代表由您的應用程式實作的函式,而非由 Kimi 直接執行的函式。Kimi 會決定何時請求此函式並提供引數;實際操作由您的應用程式執行並傳回結果。
在正式環境中,請實作一個迴圈,處理每次工具呼叫、將對應結果附加至對話,並把更新後的訊息傳回 Kimi。重複此循環,直到模型傳回最終答案且不再請求其他工具為止。
選擇供應商時,「OpenAI 相容」為何重要
許多供應商支援 OpenAI Chat Completions 格式,讓開發者可重複使用熟悉的 SDK 和請求結構。切換時通常只需更新基礎 URL、API 金鑰和模型 ID,然後確認支援的參數及回應處理方式。比較供應商時,請考量以下因素:
相容性完整度:確認串流、工具呼叫、結構化輸出及
usage報告是否能如您的應用程式預期般運作。採用相同 API 格式並不保證各供應商提供完全一致的功能支援或回應行為。模型是否適合您的工作負載:相較於通用基準測試,您使用的語言組合和任務類型更重要。
上下文視窗:長上下文模型可在單一請求中處理更多來源內容,從而簡化部分文件工作流程。
成本機制:快取與批次折扣的影響往往超過表面上的每 token 價格。
生態系廣度:其他相容端點,例如 Responses 和 Anthropic Messages,可隨著您的應用程式演進,提供更多整合選項與彈性。
Kimi API:出色的 OpenAI 相容供應商
若您正在尋找 OpenAI 相容供應商,Kimi API 由 Moonshot AI 開發,值得納入考量,尤其適合中文應用程式、長篇文件處理及程式設計 agent。它結合了熟悉的 API 整合模式,以及 Kimi 的長上下文與推理能力。
可直接替換使用
如果您的應用程式已使用 OpenAI Python SDK,無須重寫整個請求流程即可整合 Kimi。只要更新 API 設定,包括 base_url、api_key 和模型 ID,同時保留熟悉的 Chat Completions 介面。
例如,下列程式碼會從 report.txt 讀取本機報告,將其內容傳送至 Kimi K3.1 Pro 進行摘要,並以串流方式取得生成的回應:
此處的 client 會重複使用先前初始化的 Kimi 用戶端,其 API 金鑰從環境變數讀取。請依所在地區選擇基礎 URL:國際平台使用 https://api.moonshot.ai/v1,在中國大陸存取 API 的使用者則使用 https://api.moonshot.cn/v1。
透過這種方式,您可保留既有的 OpenAI SDK 工作流程,同時使用 Kimi 模型執行文件摘要等工作,以及建置其他由 API 驅動的應用程式。
Kimi 的差異化優勢
具備 100 萬 token 上下文視窗的旗艦模型: Kimi K3.1 Pro 支援最長 100 萬 token 的上下文視窗與原生視覺理解能力。開發者可在單一工作流程中處理大型程式碼庫、篇幅相當於一本書的文件及圖片輸入,適用於複雜推理、程式開發和多模態應用程式。
彈性的成本最佳化: Kimi API 支援針對重複請求前綴自動進行上下文快取,也支援用於不需即時回應的大規模任務的 Batch API 推論。快取計費與 Batch 定價視模型及適用的定價規則而定。請查看 Kimi API 官方定價,瞭解目前費率與計費詳情。
跨 API 生態系的相容性: Kimi 提供與 OpenAI 相容的 Chat Completions 和 Responses API 端點,以及與 Anthropic Messages 相容的端點。開發者可使用熟悉的 SDK 和 API 格式,將 Kimi K3.1 Pro 整合至既有工作流程,並依端點及支援功能進行調整。
結語
開始使用 Chat Completions API 很簡單:設定 API 憑證、傳送請求,然後從 choices[0].message.content 讀取生成的回應。首次 API 呼叫成功後,您可依應用程式需求擴充整合功能,例如加入多輪對話、串流回應或工具呼叫。準備好使用 Kimi 建置了嗎?取得您的 Kimi API 金鑰,開始發送 API 請求。
常見問題
messages 陣列,並透過 choices 陣列傳回回應。Responses API 的輸入與輸出結構較有彈性,可支援不同內容類型與工具互動。對話狀態的管理方式因供應商而異。使用 Kimi 的 Responses API 時,應用程式應在每次請求中包含相關的對話歷史,而非依賴以回應 ID 串接。base_url 改為 Kimi 的 API 端點、將 api_key 改為您的 Kimi API 金鑰,以及將 model 改為支援的 Kimi 模型 ID。接著測試整合,確認應用程式所依賴的參數與功能(例如串流和工具呼叫)皆受到支援。



