fix: 补齐兼容推理型模型——content空时取reasoning尾部答案,max_tokens提到2000
This commit is contained in:
@@ -1199,11 +1199,17 @@ router.post('/trends/fill-plain', requirePermission('trend:write'), async (req,
|
|||||||
const r = await fetch(model.apiUrl, {
|
const r = await fetch(model.apiUrl, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${model.apiKey}` },
|
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 }),
|
body: JSON.stringify({ model: model.modelId, messages: [{ role: 'user', content: prompt }], max_tokens: 2000, temperature: 0.5 }),
|
||||||
signal: AbortSignal.timeout(60_000),
|
signal: AbortSignal.timeout(90_000),
|
||||||
})
|
})
|
||||||
const j = await r.json()
|
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)
|
const lines = text.split('\n').map(x => x.replace(/^(人话|对你)[::]?\s*/, '').trim()).filter(Boolean)
|
||||||
if (lines.length >= 2) {
|
if (lines.length >= 2) {
|
||||||
await Trend.updateOne({ _id: t._id }, { plainExplain: lines[0].slice(0, 60), takeAway: lines[1].slice(0, 60) })
|
await Trend.updateOne({ _id: t._id }, { plainExplain: lines[0].slice(0, 60), takeAway: lines[1].slice(0, 60) })
|
||||||
|
|||||||
Reference in New Issue
Block a user