diff --git a/server/src/routes/admin.js b/server/src/routes/admin.js index 4456de2..6ceb4e0 100755 --- a/server/src/routes/admin.js +++ b/server/src/routes/admin.js @@ -1199,11 +1199,17 @@ router.post('/trends/fill-plain', requirePermission('trend:write'), async (req, const r = await fetch(model.apiUrl, { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${model.apiKey}` }, - body: JSON.stringify({ model: model.modelId, messages: [{ role: 'user', content: prompt }], max_tokens: 300, temperature: 0.5 }), - signal: AbortSignal.timeout(60_000), + body: JSON.stringify({ model: model.modelId, messages: [{ role: 'user', content: prompt }], max_tokens: 2000, temperature: 0.5 }), + signal: AbortSignal.timeout(90_000), }) const j = await r.json() - const text = String(j?.choices?.[0]?.message?.content || '').trim() + const msg = j?.choices?.[0]?.message + // 推理型模型(flash-lite 系)正式答案在 content;思考占满时兜底取 reasoning 尾部 + let text = String(msg?.content || '').trim() + if (!text && msg?.reasoning) { + const tail = String(msg.reasoning).split('\n').filter(Boolean).pop() || '' + text = tail.replace(/^["'“”]+|["'“”]+$/g, '').trim() + } const lines = text.split('\n').map(x => x.replace(/^(人话|对你)[::]?\s*/, '').trim()).filter(Boolean) if (lines.length >= 2) { await Trend.updateOne({ _id: t._id }, { plainExplain: lines[0].slice(0, 60), takeAway: lines[1].slice(0, 60) })