From 5bb26d9caddec54984529d719be34e131a871572 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=AB=E9=81=97=E5=BF=98=E7=9A=84=E8=AE=B0=E5=BF=86?= <32097237+YIWANG-sketch@users.noreply.github.com> Date: Sun, 13 Oct 2024 23:47:19 +0800 Subject: [PATCH] post adjustment processing --- formatMessages.mjs | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/formatMessages.mjs b/formatMessages.mjs index a42d846..ff25f11 100644 --- a/formatMessages.mjs +++ b/formatMessages.mjs @@ -46,21 +46,21 @@ export function formatMessages(messages, proxyModel) { } } - // 找到包含 --- 的消息索引 + // 找到最后一个有效的 user 消息索引 + let lastUserIndex = -1; let contextEndIndex = messages.length; - for (let i = 0; i < messages.length; i++) { + for (let i = messages.length - 1; i >= 0; i--) { if (messages[i].content.includes(' ---')) { contextEndIndex = i; + } + if (messages[i].role === 'user' && lastUserIndex === -1) { + lastUserIndex = i; + } + if (lastUserIndex !== -1 && contextEndIndex !== messages.length) { break; } } - // 找到最后一个 user 消息的索引(在 --- 之前) - let lastUserIndex = contextEndIndex - 1; - while (lastUserIndex >= 0 && messages[lastUserIndex].role !== 'user') { - lastUserIndex--; - } - for (let i = 0; i < messages.length; i++) { const message = messages[i]; @@ -72,7 +72,7 @@ export function formatMessages(messages, proxyModel) { continue; } - if (message.role === 'user' && i < contextEndIndex) { + if (message.role === 'user' && i <= lastUserIndex) { if (isFirstUserFound) { userRoundCounter = lastAssistantRound + 1; descriptionPointCounter++; @@ -88,14 +88,14 @@ export function formatMessages(messages, proxyModel) { roundInfo = `{{历史第 user = 回合${userRoundCounter}|assistant = 回合${nextAssistantRound} 开始,标记锚点:[${descriptionPointCounter}]}}\n`; } message.content = roundInfo + message.content; - } else if (message.role === 'assistant' && i < contextEndIndex) { + } else if (message.role === 'assistant' && i < lastUserIndex) { const match = message.content.match(//); if (match) { assistantRoundCounter = parseInt(match[1]); lastAssistantRound = assistantRoundCounter; } - if (message.content.includes('') && i < lastUserIndex) { + if (message.content.includes('')) { message.content += `\n--------------------<历史锚点[${descriptionPointCounter}]结束>--------------------`; } } @@ -103,7 +103,6 @@ export function formatMessages(messages, proxyModel) { formattedMessages.push(message); } - // 如果 proxyModel 是 gpt_4o,则转换消息前缀为大写 if (proxyModel === 'gpt_4o') { formattedMessages = convertToUpperCase(formattedMessages); }