DeepSeek V4.1 Flash: native Bilderkennung, GLM/OpenRouter entfernt

- deepseek-flash als einziges Modell mit Vision, Preise aktualisiert
- OpenRouter/GLM samt Code, Config und Env-Variablen entfernt
- Legacy-Modell-IDs in Sessions werden automatisch migriert
- browse lädt Produktbilder lokal nach dashboards/ (Dedupe + Cleanup)
- Vision-Prompt: Workflow für visuelle Produktsuche, max. ~5 Screenshots
This commit is contained in:
nico committed 2026-10-05 12:55:31 +02:00
1 parent 12f01b86d6
commit b740ce1316
9 files changed
+130 -82

No files matched your search

+9 -24
View File
@@ -51,9 +51,8 @@ const vapid = ensureVapidPair();
const config = {
port: Number(process.env.PORT || env.PORT || 3000),
apiKey: process.env.DEEPSEEK_API_KEY || env.DEEPSEEK_API_KEY || '',
openrouterApiKey: process.env.OPENROUTER_API_KEY || env.OPENROUTER_API_KEY || '',
appPassword: process.env.APP_PASSWORD || env.APP_PASSWORD || '',
model: process.env.MODEL || env.MODEL || 'deepseek-v4-flash',
model: process.env.MODEL || env.MODEL || 'deepseek-flash',
thinking: process.env.THINKING || env.THINKING || 'enabled',
maxTokens: Number(process.env.MAX_TOKENS || env.MAX_TOKENS || 64000),
baseUrl: process.env.DEEPSEEK_BASE_URL || env.DEEPSEEK_BASE_URL || 'https://api.deepseek.com',
@@ -69,36 +68,22 @@ const config = {
const envOr = (key, def) => process.env[key] || env[key] || def;
// ---------------------------------------------------------------------------
// Modell-Registry: DeepSeek direkt + OpenRouter-Modelle (z.B. GLM 5.3 Flash)
// Modell-Registry: DeepSeek V4.1 Flash (Text + Vision/Bilderkennung)
// ---------------------------------------------------------------------------
const MODELS = [
{
id: 'deepseek-v4-flash',
label: 'DeepSeek V4 Flash',
id: 'deepseek-flash',
label: 'DeepSeek V4.1 Flash',
provider: 'deepseek',
vision: false,
// Max. Output laut Doku: 384K – DeepSeek hat 3x so viel Headroom wie GLM
vision: true,
// Max. Output laut Doku: 384K
maxTokens: 300000,
reasoningEffort: () => envOr('DEEPSEEK_REASONING_EFFORT', 'max'),
// Liefer-Runde des Dashboards: Denken komplett aus, Budget gehört dem HTML
deliveryEffort: 'none',
prices: { inputCacheHit: 0.014, inputCacheMiss: 0.44, output: 1.32 },
},
{
id: 'z-ai/glm-5.3-flash',
label: 'GLM 5.3 Flash (OpenRouter)',
provider: 'openrouter',
vision: true,
// Max. Completion laut OpenRouter: 131072
maxTokens: 131072,
// Research-Runden: 'high' (effort 'max' verbrennt das ganze Budget mit
// Denken; für lange Recherchen bleibt dann nichts fürs große HTML übrig)
reasoningEffort: () => envOr('GLM_REASONING_EFFORT', 'high'),
// Liefer-Runde des Dashboards: minimales Denken (GLM: Reasoning Pflicht)
deliveryEffort: 'low',
prices: { inputCacheHit: 0.015, inputCacheMiss: 0.075, output: 0.25 },
costNote: 'Schätzung (OpenRouter, Rabatt bis Sep 2026)',
// Peak-Preise laut Docs (USD pro 1M Tokens; Off-Peak ist halb so teuer)
prices: { inputCacheHit: 0.006, inputCacheMiss: 0.3, output: 1.2 },
},
];
@@ -114,7 +99,7 @@ function getModels() {
vision: false,
maxTokens: config.maxTokens,
reasoningEffort: () => envOr('DEEPSEEK_REASONING_EFFORT', 'max'),
prices: { inputCacheHit: 0.014, inputCacheMiss: 0.44, output: 1.32 },
prices: { inputCacheHit: 0.006, inputCacheMiss: 0.3, output: 1.2 },
},
];
}