refactor: build deepseek catalog from manifest

This commit is contained in:
Shakker
2026-04-28 04:34:07 +01:00
parent a4eb89c809
commit fd484cf472

View File

@@ -1,84 +1,15 @@
import { buildManifestModelProviderConfig } from "openclaw/plugin-sdk/provider-catalog-shared";
import type { ModelDefinitionConfig } from "openclaw/plugin-sdk/provider-model-shared";
import manifest from "./openclaw.plugin.json" with { type: "json" };
export const DEEPSEEK_BASE_URL = "https://api.deepseek.com";
const DEEPSEEK_MANIFEST_PROVIDER = buildManifestModelProviderConfig({
providerId: "deepseek",
catalog: manifest.modelCatalog.providers.deepseek,
});
// 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,
};
export const DEEPSEEK_BASE_URL = DEEPSEEK_MANIFEST_PROVIDER.baseUrl;
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 const DEEPSEEK_MODEL_CATALOG: ModelDefinitionConfig[] = DEEPSEEK_MANIFEST_PROVIDER.models;
export function buildDeepSeekModelDefinition(
model: (typeof DEEPSEEK_MODEL_CATALOG)[number],