add deferred tool loading for kimi-k3
This commit is contained in:
@@ -1675,6 +1675,11 @@ async function loadModelsDevData(): Promise<Model<any>[]> {
|
|||||||
if (m.tool_call !== true) continue;
|
if (m.tool_call !== true) continue;
|
||||||
|
|
||||||
const isKimiK3 = modelId === "kimi-k3";
|
const isKimiK3 = modelId === "kimi-k3";
|
||||||
|
const compat = isKimiK3 ? { ...moonshotCompat } : moonshotCompat;
|
||||||
|
if (isKimiK3) {
|
||||||
|
compat.requiresReasoningContentOnAssistantMessages = true;
|
||||||
|
compat.deferredToolsMode = "kimi";
|
||||||
|
}
|
||||||
models.push({
|
models.push({
|
||||||
id: modelId,
|
id: modelId,
|
||||||
name: m.name || modelId,
|
name: m.name || modelId,
|
||||||
@@ -1692,9 +1697,7 @@ async function loadModelsDevData(): Promise<Model<any>[]> {
|
|||||||
},
|
},
|
||||||
contextWindow: m.limit?.context || 4096,
|
contextWindow: m.limit?.context || 4096,
|
||||||
maxTokens: m.limit?.output || 4096,
|
maxTokens: m.limit?.output || 4096,
|
||||||
compat: isKimiK3
|
compat,
|
||||||
? { ...moonshotCompat, requiresReasoningContentOnAssistantMessages: true }
|
|
||||||
: moonshotCompat,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ export const MOONSHOTAI_CN_MODELS = {
|
|||||||
api: "openai-completions",
|
api: "openai-completions",
|
||||||
provider: "moonshotai-cn",
|
provider: "moonshotai-cn",
|
||||||
baseUrl: "https://api.moonshot.cn/v1",
|
baseUrl: "https://api.moonshot.cn/v1",
|
||||||
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek","requiresReasoningContentOnAssistantMessages":true},
|
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek","requiresReasoningContentOnAssistantMessages":true,"deferredToolsMode":"kimi"},
|
||||||
reasoning: true,
|
reasoning: true,
|
||||||
thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null,"high":null,"xhigh":null,"max":"max"},
|
thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null,"high":null,"xhigh":null,"max":"max"},
|
||||||
input: ["text", "image"],
|
input: ["text", "image"],
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ export const MOONSHOTAI_MODELS = {
|
|||||||
api: "openai-completions",
|
api: "openai-completions",
|
||||||
provider: "moonshotai",
|
provider: "moonshotai",
|
||||||
baseUrl: "https://api.moonshot.ai/v1",
|
baseUrl: "https://api.moonshot.ai/v1",
|
||||||
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek","requiresReasoningContentOnAssistantMessages":true},
|
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek","requiresReasoningContentOnAssistantMessages":true,"deferredToolsMode":"kimi"},
|
||||||
reasoning: true,
|
reasoning: true,
|
||||||
thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null,"high":null,"xhigh":null,"max":"max"},
|
thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null,"high":null,"xhigh":null,"max":"max"},
|
||||||
input: ["text", "image"],
|
input: ["text", "image"],
|
||||||
|
|||||||
@@ -1923,6 +1923,24 @@ export const OPENROUTER_MODELS = {
|
|||||||
contextWindow: 262144,
|
contextWindow: 262144,
|
||||||
maxTokens: 262144,
|
maxTokens: 262144,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
|
"moonshotai/kimi-k3": {
|
||||||
|
id: "moonshotai/kimi-k3",
|
||||||
|
name: "MoonshotAI: Kimi K3",
|
||||||
|
api: "openai-completions",
|
||||||
|
provider: "openrouter",
|
||||||
|
baseUrl: "https://openrouter.ai/api/v1",
|
||||||
|
compat: {"supportsDeveloperRole":false,"thinkingFormat":"openrouter"},
|
||||||
|
reasoning: true,
|
||||||
|
input: ["text", "image"],
|
||||||
|
cost: {
|
||||||
|
input: 3,
|
||||||
|
output: 15,
|
||||||
|
cacheRead: 0.3,
|
||||||
|
cacheWrite: 0,
|
||||||
|
},
|
||||||
|
contextWindow: 1048576,
|
||||||
|
maxTokens: 4096,
|
||||||
|
} satisfies Model<"openai-completions">,
|
||||||
"nex-agi/nex-n2-mini": {
|
"nex-agi/nex-n2-mini": {
|
||||||
id: "nex-agi/nex-n2-mini",
|
id: "nex-agi/nex-n2-mini",
|
||||||
name: "Nex AGI: Nex-N2-Mini",
|
name: "Nex AGI: Nex-N2-Mini",
|
||||||
@@ -4688,9 +4706,9 @@ export const OPENROUTER_MODELS = {
|
|||||||
thinkingLevelMap: {"xhigh":"xhigh"},
|
thinkingLevelMap: {"xhigh":"xhigh"},
|
||||||
input: ["text"],
|
input: ["text"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 0.9366,
|
input: 0.9338,
|
||||||
output: 2.9436,
|
output: 2.9348,
|
||||||
cacheRead: 0.17394,
|
cacheRead: 0.17342,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 1048576,
|
contextWindow: 1048576,
|
||||||
@@ -4832,13 +4850,13 @@ export const OPENROUTER_MODELS = {
|
|||||||
reasoning: true,
|
reasoning: true,
|
||||||
input: ["text", "image"],
|
input: ["text", "image"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 0.66,
|
input: 3,
|
||||||
output: 3.41,
|
output: 15,
|
||||||
cacheRead: 0.15,
|
cacheRead: 0.3,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 262144,
|
contextWindow: 1048576,
|
||||||
maxTokens: 262144,
|
maxTokens: 4096,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
"~openai/gpt-latest": {
|
"~openai/gpt-latest": {
|
||||||
id: "~openai/gpt-latest",
|
id: "~openai/gpt-latest",
|
||||||
|
|||||||
@@ -1890,6 +1890,23 @@ export const VERCEL_AI_GATEWAY_MODELS = {
|
|||||||
contextWindow: 262144,
|
contextWindow: 262144,
|
||||||
maxTokens: 32768,
|
maxTokens: 32768,
|
||||||
} satisfies Model<"anthropic-messages">,
|
} satisfies Model<"anthropic-messages">,
|
||||||
|
"moonshotai/kimi-k3": {
|
||||||
|
id: "moonshotai/kimi-k3",
|
||||||
|
name: "Kimi K3",
|
||||||
|
api: "anthropic-messages",
|
||||||
|
provider: "vercel-ai-gateway",
|
||||||
|
baseUrl: "https://ai-gateway.vercel.sh",
|
||||||
|
reasoning: true,
|
||||||
|
input: ["text", "image"],
|
||||||
|
cost: {
|
||||||
|
input: 3,
|
||||||
|
output: 15,
|
||||||
|
cacheRead: 0.3,
|
||||||
|
cacheWrite: 0,
|
||||||
|
},
|
||||||
|
contextWindow: 1000000,
|
||||||
|
maxTokens: 256000,
|
||||||
|
} satisfies Model<"anthropic-messages">,
|
||||||
"nvidia/nemotron-3-nano-30b-a3b": {
|
"nvidia/nemotron-3-nano-30b-a3b": {
|
||||||
id: "nvidia/nemotron-3-nano-30b-a3b",
|
id: "nvidia/nemotron-3-nano-30b-a3b",
|
||||||
name: "Nemotron 3 Nano 30B A3B",
|
name: "Nemotron 3 Nano 30B A3B",
|
||||||
|
|||||||
Reference in New Issue
Block a user