post adjustment processing

This commit is contained in:
被遗忘的记忆
2024-10-13 23:47:19 +08:00
committed by GitHub
parent 8a06327df3
commit 5bb26d9cad
+11 -12
View File
@@ -46,21 +46,21 @@ export function formatMessages(messages, proxyModel) {
} }
} }
// 找到包含 </context> --- 的消息索引 // 找到最后一个有效的 user 消息索引
let lastUserIndex = -1;
let contextEndIndex = messages.length; 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('</context> ---')) { if (messages[i].content.includes('</context> ---')) {
contextEndIndex = i; contextEndIndex = i;
}
if (messages[i].role === 'user' && lastUserIndex === -1) {
lastUserIndex = i;
}
if (lastUserIndex !== -1 && contextEndIndex !== messages.length) {
break; break;
} }
} }
// 找到最后一个 user 消息的索引(在 </context> --- 之前)
let lastUserIndex = contextEndIndex - 1;
while (lastUserIndex >= 0 && messages[lastUserIndex].role !== 'user') {
lastUserIndex--;
}
for (let i = 0; i < messages.length; i++) { for (let i = 0; i < messages.length; i++) {
const message = messages[i]; const message = messages[i];
@@ -72,7 +72,7 @@ export function formatMessages(messages, proxyModel) {
continue; continue;
} }
if (message.role === 'user' && i < contextEndIndex) { if (message.role === 'user' && i <= lastUserIndex) {
if (isFirstUserFound) { if (isFirstUserFound) {
userRoundCounter = lastAssistantRound + 1; userRoundCounter = lastAssistantRound + 1;
descriptionPointCounter++; descriptionPointCounter++;
@@ -88,14 +88,14 @@ export function formatMessages(messages, proxyModel) {
roundInfo = `{{历史第 user = 回合${userRoundCounter}|assistant = 回合${nextAssistantRound} 开始,标记锚点:[${descriptionPointCounter}]}}\n`; roundInfo = `{{历史第 user = 回合${userRoundCounter}|assistant = 回合${nextAssistantRound} 开始,标记锚点:[${descriptionPointCounter}]}}\n`;
} }
message.content = roundInfo + message.content; message.content = roundInfo + message.content;
} else if (message.role === 'assistant' && i < contextEndIndex) { } else if (message.role === 'assistant' && i < lastUserIndex) {
const match = message.content.match(/<!-- AI Round (\d+) begins\. -->/); const match = message.content.match(/<!-- AI Round (\d+) begins\. -->/);
if (match) { if (match) {
assistantRoundCounter = parseInt(match[1]); assistantRoundCounter = parseInt(match[1]);
lastAssistantRound = assistantRoundCounter; lastAssistantRound = assistantRoundCounter;
} }
if (message.content.includes('<CHAR_turn>') && i < lastUserIndex) { if (message.content.includes('<CHAR_turn>')) {
message.content += `\n--------------------<历史锚点[${descriptionPointCounter}]结束>--------------------`; message.content += `\n--------------------<历史锚点[${descriptionPointCounter}]结束>--------------------`;
} }
} }
@@ -103,7 +103,6 @@ export function formatMessages(messages, proxyModel) {
formattedMessages.push(message); formattedMessages.push(message);
} }
// 如果 proxyModel 是 gpt_4o,则转换消息前缀为大写
if (proxyModel === 'gpt_4o') { if (proxyModel === 'gpt_4o') {
formattedMessages = convertToUpperCase(formattedMessages); formattedMessages = convertToUpperCase(formattedMessages);
} }