GPT-6 Luna vs Kimi K3
什麼情況選哪一個
兩款模型的上下文規模大致相同(gpt-6-luna 為 1,050,000 個 token,而 kimi-k3 為 1,048,576),因此真正的差異在於價格、輸出長度與輸入:kimi-k3 每百萬輸入成本為 $3 且每百萬輸出為 $15,是 gpt-6-luna 的 $0.1 與 $0.5 的 30x,而在快取讀取上也是 30x($0.3 對比 $0.01)。若要處理大批量的文字與圖像任務,且同時希望擁有關閉思考功能的選項,請選擇 gpt-6-luna。若需要影片輸入,或高達 1,048,576 個 token 的單一回覆(遠超過 gpt-6-luna 的 128,000 上限),請選擇 kimi-k3。
Benchmark 成績
供應商公布: Alibaba (Qwen) Anthropic ByteDance DeepSeek Google MiniMax Moonshot OpenAI Tencent Z.ai
定價
| GPT-6 Luna | Kimi K3 | Δ | |
|---|---|---|---|
| 輸入 / 1M tokens | $0.1 | $3 | 0.033× |
| 輸出 / 1M tokens | $0.5 | $15 | 0.033× |
| 快取讀取 / 1M tokens | $0.01 | $0.3 | 0.033× |
| 快取寫入 | 1.25x (30m) / 2.5x (12h) | - | - |
費率取自網站建置時的即時目錄;各模型頁面都列有最新的價目。
兩者的相對位置:每 1M tokens 的輸入價格,涵蓋同一計費單位下全部 83 個聊天模型(對數尺度)
功能
| GPT-6 Luna | Kimi K3 | |
|---|---|---|
| 工具使用 | 是 | 是 |
| 思考控制 | 可設定 | 一律開啟 |
| 結構化輸出 | 是 | 是 |
| 提示詞快取 | 隱式 + 顯式 | 隱式(自動) |
| 快取存活時間 | at least 30m by default, 12h option on the Responses API | 未公布 |
| 最小快取前綴 | 1,024 個 token | 未公布 |
規格
| GPT-6 Luna | Kimi K3 | |
|---|---|---|
| 輸入模態 | 文字 圖像 | 文字 圖像 影片 |
| 輸出模態 | 文字 | 文字 |
| 發布日期 | 2026-09-22 | 2026-07-16 |
| 知識截止日期 | 2026-05 | - |
| 上下文視窗 | 1.1M | 1M |
| 最大輸出 | 128K | 1M |
| 思考參數 | reasoning.effort | reasoning_effort (top-level; the thinking object is not accepted) |
| 可接受的值 | reasoning.effort
| reasoning_effort
|
| 預設值 | medium | max |
規格摘錄自各供應商的文件;供應商沒有公布的項目就直接略過,不自行推測。 完整來源: GPT-6 Luna · Kimi K3
同一段提示詞,兩個模型,經閘道實測
GPT-6 Luna 通過 · 3 sentences
Enabling reasoning typically makes the model process more information and generate more internal tokens before producing its answer. Because usage is billed by tokens—and reasoning may also route requests to a more expensive model—the cost per request can rise sharply. If request volume stayed similar, that higher cost per request could explain why the bill doubled.
輸出 117 tok (+48 思考) 延遲 3.4 s
Kimi K3 通過 · 3 sentences
Reasoning models don't just answer questions—they "think" first, generating long internal chains of step-by-step logic before producing a response. Those hidden thinking steps are billed as output tokens (the most expensive kind, typically 3–5x the price of input tokens), and a single query can generate thousands of them even when the visible answer is only a paragraph long. So you're paying for dramatically more compute per request: the bill doubled because the model does far more work behind the scenes, not because usage increased.
輸出 755 tok (+637 思考) 延遲 20.8 s
是否照指令做(剛好三句,數得出來)、語氣是否貼合對象(寫給 CFO 看),以及下方 token 計量顯示出的隱藏思考計費落差。
GPT-6 Luna 通過 · 8/8 cases
```python def longest_run(xs): if not xs: return 0 best = cur = 1 for i in range(1, len(xs)): if xs[i] == xs[i - 1]: cur += 1 else: cur = 1 best = max(best, cur) return best ``` The original code counted matching *adjacent pairs* rather than items, so a run of length `n` was reported as `n - 1`, and a single-item input returned `0`. This version counts the current item as part of each run and updates `best` at every index, including the last; it returns `0` for an empty input.
輸出 514 tok (+356 思考) 延遲 6.9 s
Kimi K3 通過 · 8/8 cases
```python def longest_run(xs): if not xs: return 0 best = 1 cur = 1 for i in range(1, len(xs)): if xs[i] == xs[i - 1]: cur += 1 best = max(best, cur) else: cur = 1 return best ``` The bug is a fencepost error: `cur` counts *matching adjacent pairs* rather than *items in the run*, because it starts at 0 and only increments when `xs[i] == xs[i - 1]`. A run of length L contains L−1 equal pairs, so every run was undercounted by exactly one. For a single-element list (a run of length 1) the loop never runs and the function returns 0 instead of 1; likewise any run ending at the last index — e.g. the two `2`s in `[1, 2, 2]` — reported 1 instead of 2, making it look like no run existed at all. […]
輸出 1837 tok (+1547 思考) 延遲 47.2 s
修正是否真的正確(跑得起來)、說明的資訊密度,以及在範圍明確的任務上的 token 效率。
GPT-6 Luna 通過 · 5/5 fields, guidance "Withheld pending the Q4 close"
{"company":"Meridian Robotics","quarter":"September quarter","revenue_usd_m":412,"growth_pct":null,"guidance":"Withheld pending the Q4 close"}
輸出 161 tok (+119 思考) 延遲 21.7 s
Kimi K3 通過 · 5/5 fields, guidance null
{ "company": "Meridian Robotics", "quarter": "September quarter", "revenue_usd_m": 412, "growth_pct": 11, "guidance": null }
輸出 924 tok (+863 思考) 延遲 25.9 s
是否遵守 schema(不自創欄位)、面對幻覺誘因的表現(題目明確不給 guidance),以及結構化輸出路徑的差異。
GPT-6 Luna 通過 · 120 words, 0 banned, 1 question
Introducing Prompt Cache, a new API gateway feature that recognizes repeat prompt prefixes and reuses provider-side cached context across supported models. Teams can route requests to different AI providers while preserving eligible cache hits, reducing redundant input processing and helping lower latency and token costs. Configure cache policies in one place, monitor hit rates by provider, and keep existing client integrations unchanged. The gateway applies provider-specific rules automatically, so developers do not need to build separate caching logic for each endpoint. Which workflows could benefit from faster responses and predictable spend? Prompt Cache is available today in preview for eligible accounts, with usage details, supported providers, and setup guidance in the dashboard. Start with one route, compare results, then expand.
輸出 959 tok (+813 思考) 延遲 14.6 s
Kimi K3 通過 · 120 words, 0 banned, 1 question
Meet Prompt Cache, a new API gateway capability that stores prompt responses and serves them across OpenAI, Anthropic, Google, and Azure endpoints. It matches requests by model, prompt hash, tools, temperature, and tenant policy, so repeated work returns fast while sensitive contexts stay isolated. Teams set TTLs, stale rules, encryption scopes, and bypass flags per route. Analytics show hit rate, latency saved, token spend avoided, and drift risk by provider. What changes for developers? Keep one integration, add cache headers, and watch fallback logic respect consent, residency, and audit needs. During rollout, canary keys compare fresh answers with cached copies before promotion. Prompt Cache cuts vendor calls, steadies p95 latency, and gives platform owners controls for cost, quality, and compliance.
輸出 1527 tok (+1354 思考) 延遲 37.9 s
是否遵守限制(字數上限、禁用詞清單、只能有一句問句)、文字風格的特徵,以及長度控制。
改一行程式碼就能在兩者之間切換
下面每個頁籤都列了這兩個模型 ID,要改的只有醒目標示的那兩行。端點、金鑰和請求格式都不變。
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.chat.completions.create(
model="gpt-6-luna",
# model="kimi-k3", # 取消這一行的註解,並把上一行註解掉
messages=[{"role": "user", "content": "Summarize this diff"}],
reasoning_effort="medium",
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://synthorai.io/v1",
apiKey: "sk-syn-...",
});
const resp = await client.chat.completions.create({
model: "gpt-6-luna",
// model: "kimi-k3", // 取消這一行的註解,並把上一行註解掉
messages: [{ role: "user", content: "Summarize this diff" }],
reasoning_effort: "medium",
});
console.log(resp.choices[0].message.content);curl https://synthorai.io/v1/chat/completions \
-H "Authorization: Bearer sk-syn-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
# "model": "kimi-k3", # 取消這一行的註解,並把上一行註解掉
"messages": [{"role": "user", "content": "Hello"}],
"reasoning_effort": "medium"
}'package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://synthorai.io/v1"),
option.WithAPIKey("sk-syn-..."),
)
resp, _ := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
Model: "gpt-6-luna",
// Model: "kimi-k3", // 取消這一行的註解,並把上一行註解掉
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Summarize this diff"),
},
ReasoningEffort: openai.ReasoningEffortMedium,
})
fmt.Println(resp.Choices[0].Message.Content)
}import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.*;
import com.openai.models.ReasoningEffort;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://synthorai.io/v1")
.apiKey("sk-syn-...")
.build();
ChatCompletion resp = client.chat().completions().create(
ChatCompletionCreateParams.builder()
.model("gpt-6-luna")
// .model("kimi-k3") // 取消這一行的註解,並把上一行註解掉
.addUserMessage("Summarize this diff")
.reasoningEffort(ReasoningEffort.MEDIUM)
.build());
System.out.println(resp.choices().get(0).message().content().orElse(""));常見問題
GPT-6 Luna 和 Kimi K3 哪個比較便宜?
以「輸入 / 1M tokens」來看,GPT-6 Luna 比較便宜($0.1 對 $3,相差 30×)。其他項目的結果可能相反,完整價目請看上表;實際成本要看你的用量組合。
可以只串接一次,就對 GPT-6 Luna 和 Kimi K3 做 A/B 測試嗎?
可以。兩個模型都走同一個 OpenAI 相容端點,用的也是同一把 API 金鑰,切換時只要改一行裡的模型名稱字串。你可以把一部分流量分別導到兩邊,再直接比較帳單。
GPT-6 Luna 與 Kimi K3 支援提示詞快取嗎?
支援。兩者的快取讀取費率都低於輸入費率,所以前綴已經進快取的工作負載,實際成本會比官網價算出來的低。確切的快取讀取價格請見上方定價表。