diff --git a/app/llm.js b/app/llm.js index db7217b..5dcd129 100644 --- a/app/llm.js +++ b/app/llm.js @@ -16,9 +16,16 @@ export async function chat(systemPrompt, userContent) { }; if (provider === 'claude') headers['anthropic-version'] = '2023-06-01'; + // 部分模型(如 DeepSeek-R1)不支援 system role,改合併到 user message + const NO_SYSTEM_ROLE_MODELS = ['deepseek-ai/deepseek-r1', 'deepseek-r1']; + const isNoSystemRole = NO_SYSTEM_ROLE_MODELS.some(m => model.toLowerCase().includes(m.toLowerCase())); + const messages = isNoSystemRole + ? [{ role: 'user', content: `${systemPrompt}\n\n${userContent}` }] + : [{ role: 'system', content: systemPrompt }, { role: 'user', content: userContent }]; + const resp = await axios.post( `${baseURL.replace(/\/$/, '')}/chat/completions`, - { model, messages: [{ role: 'system', content: systemPrompt }, { role: 'user', content: userContent }], temperature: 0.2 }, + { model, messages, temperature: 0.2 }, { headers, timeout: 120000, httpsAgent } ); return resp.data.choices[0].message.content;