Files
openclaw/extensions/deepseek/models.ts
lsdsjy 7d1891e6e6 feat(deepseek): support v4 models
Add DeepSeek V4 Flash/Pro support, update Pi packages to 0.70.2, and handle disabled thinking/None by stripping replayed reasoning content.
2026-04-24 16:09:36 +01:00

91 lines
2.0 KiB
TypeScript

import type { ModelDefinitionConfig } from "openclaw/plugin-sdk/provider-model-shared";
export const DEEPSEEK_BASE_URL = "https://api.deepseek.com";
// DeepSeek API pricing (per 1M tokens)
// https://api-docs.deepseek.com/quick_start/pricing
const DEEPSEEK_V3_2_COST = {
input: 0.28,
output: 0.42,
cacheRead: 0.028,
cacheWrite: 0,
};
const DEEPSEEK_V4_PRO_COST = {
input: 1.74,
output: 3.48,
cacheRead: 0.145,
cacheWrite: 0,
};
const DEEPSEEK_V4_FLASH_COST = {
input: 0.14,
output: 0.28,
cacheRead: 0.028,
cacheWrite: 0,
};
export const DEEPSEEK_MODEL_CATALOG: ModelDefinitionConfig[] = [
{
id: "deepseek-v4-flash",
name: "DeepSeek V4 Flash",
reasoning: true,
input: ["text"],
contextWindow: 1_000_000,
maxTokens: 384_000,
cost: DEEPSEEK_V4_FLASH_COST,
compat: {
supportsUsageInStreaming: true,
supportsReasoningEffort: true,
maxTokensField: "max_tokens",
},
},
{
id: "deepseek-v4-pro",
name: "DeepSeek V4 Pro",
reasoning: true,
input: ["text"],
contextWindow: 1_000_000,
maxTokens: 384_000,
cost: DEEPSEEK_V4_PRO_COST,
compat: {
supportsUsageInStreaming: true,
supportsReasoningEffort: true,
maxTokensField: "max_tokens",
},
},
{
id: "deepseek-chat",
name: "DeepSeek Chat",
reasoning: false,
input: ["text"],
contextWindow: 131072,
maxTokens: 8192,
cost: DEEPSEEK_V3_2_COST,
compat: { supportsUsageInStreaming: true, maxTokensField: "max_tokens" },
},
{
id: "deepseek-reasoner",
name: "DeepSeek Reasoner",
reasoning: true,
input: ["text"],
contextWindow: 131072,
maxTokens: 65536,
cost: DEEPSEEK_V3_2_COST,
compat: {
supportsUsageInStreaming: true,
supportsReasoningEffort: false,
maxTokensField: "max_tokens",
},
},
];
export function buildDeepSeekModelDefinition(
model: (typeof DEEPSEEK_MODEL_CATALOG)[number],
): ModelDefinitionConfig {
return {
...model,
api: "openai-completions",
};
}