fix: improve HypaV3 logging

This commit is contained in:
Bo26fhmC5M
2025-01-16 22:40:08 +09:00
parent 6ffaa1257e
commit fac11bfe67

View File

@@ -87,7 +87,7 @@ function cleanOrphanedSummary(chats: OpenAIChat[], data: HypaV3Data): void {
const removedCount = originalLength - data.summaries.length;
if (removedCount > 0) {
console.log(`[HypaV3] Cleaned ${removedCount} orphaned summaries`);
console.log(`[HypaV3] Cleaned ${removedCount} orphaned summaries.`);
}
}
@@ -103,7 +103,7 @@ export async function summarize(
} catch (error) {
return {
success: false,
data: "[HypaV3] " + error,
data: error,
};
}
}
@@ -116,7 +116,7 @@ export async function summarize(
switch (db.supaModelType) {
case "instruct35": {
console.log(
"[HypaV3] Using openAI gpt-3.5-turbo-instruct for summarization"
"[HypaV3] Using openAI gpt-3.5-turbo-instruct for summarization."
);
const requestPrompt = `${stringifiedChats}\n\n${summarizePrompt}\n\nOutput:`;
@@ -165,7 +165,7 @@ export async function summarize(
}
case "subModel": {
console.log(`[HypaV3] Using ax model ${db.subModel} for summarization`);
console.log(`[HypaV3] Using ax model ${db.subModel} for summarization.`);
const requestMessages: OpenAIChat[] = parseChatML(
summarizePrompt.replaceAll("{{slot}}", stringifiedChats)
@@ -190,14 +190,17 @@ export async function summarize(
"memory"
);
if (
response.type === "fail" ||
response.type === "streaming" ||
response.type === "multiline"
) {
if (response.type === "streaming" || response.type === "multiline") {
return {
success: false,
data: "Unexpected response type",
data: "unexpected response type",
};
}
if (response.type === "fail") {
return {
success: false,
data: response.result,
};
}
@@ -207,7 +210,7 @@ export async function summarize(
default: {
return {
success: false,
data: `Unsupported model ${db.supaModelType} for summarization`,
data: `unsupported model ${db.supaModelType} for summarization`,
};
}
}
@@ -298,10 +301,10 @@ export async function hypaMemoryV3(
if (shouldReserveEmptyMemoryTokens) {
currentTokens += emptyMemoryTokens;
console.log("[HypaV3] Reserved empty memory tokens:", emptyMemoryTokens);
console.log("[HypaV3] Reserved empty memory tokens: ", emptyMemoryTokens);
} else {
currentTokens += memoryTokens;
console.log("[HypaV3] Reserved max memory tokens:", memoryTokens);
console.log("[HypaV3] Reserved max memory tokens: ", memoryTokens);
}
// If summarization is needed
@@ -336,17 +339,17 @@ export async function hypaMemoryV3(
console.log(
"[HypaV3] Evaluating summarization batch:",
"\nCurrent Tokens:",
"\nCurrent Tokens: ",
currentTokens,
"\nMax Context Tokens:",
"\nMax Context Tokens: ",
maxContextTokens,
"\nStart Index:",
"\nStart Index: ",
startIdx,
"\nEnd Index:",
"\nEnd Index: ",
endIdx,
"\nChat Count:",
"\nChat Count: ",
endIdx - startIdx,
"\nMax Chats Per Summary:",
"\nMax Chats Per Summary: ",
db.hypaV3Settings.maxChatsPerSummary
);
@@ -356,13 +359,13 @@ export async function hypaMemoryV3(
console.log(
"[HypaV3] Evaluating chat:",
"\nIndex:",
"\nIndex: ",
i,
"\nRole:",
"\nRole: ",
chat.role,
"\nContent:\n",
chat.content,
"\nTokens:",
"\nTokens: ",
chatTokens
);
@@ -387,7 +390,7 @@ export async function hypaMemoryV3(
currentTokens - toSummarizeTokens < targetTokens
) {
console.log(
`[HypaV3] Stopping summarization: would reduce below target tokens (${currentTokens} - ${toSummarizeTokens} < ${targetTokens})`
`[HypaV3] Stopping summarization: currentTokens(${currentTokens}) - toSummarizeTokens(${toSummarizeTokens}) < targetTokens(${targetTokens})`
);
break;
}
@@ -401,23 +404,23 @@ export async function hypaMemoryV3(
while (summarizationFailures < maxSummarizationFailures) {
console.log(
"[HypaV3] Attempting summarization:",
"\nAttempt:",
"\nAttempt: ",
summarizationFailures + 1,
"\nTarget:",
"\nTarget: ",
toSummarize
);
const summarizeResult = await summarize(stringifiedChats);
if (!summarizeResult.success) {
console.log("[HypaV3] Summarization failed:", summarizeResult.data);
console.log("[HypaV3] Summarization failed: ", summarizeResult.data);
summarizationFailures++;
if (summarizationFailures >= maxSummarizationFailures) {
return {
currentTokens,
chats,
error: "[HypaV3] Summarization failed after maximum retries",
error: `[HypaV3] Summarization failed after maximum retries: ${summarizeResult.data}`,
memory: toSerializableHypaV3Data(data),
};
}
@@ -442,11 +445,11 @@ export async function hypaMemoryV3(
`[HypaV3] ${
summarizationMode ? "Completed" : "Skipped"
} summarization phase:`,
"\nCurrent Tokens:",
"\nCurrent Tokens: ",
currentTokens,
"\nMax Context Tokens:",
"\nMax Context Tokens: ",
maxContextTokens,
"\nAvailable Memory Tokens:",
"\nAvailable Memory Tokens: ",
availableMemoryTokens
);
@@ -480,11 +483,11 @@ export async function hypaMemoryV3(
console.log(
"[HypaV3] After important memory selection:",
"\nSummary Count:",
"\nSummary Count: ",
selectedImportantSummaries.length,
"\nSummaries:",
"\nSummaries: ",
selectedImportantSummaries,
"\nAvailable Memory Tokens:",
"\nAvailable Memory Tokens: ",
availableMemoryTokens
);
@@ -525,13 +528,13 @@ export async function hypaMemoryV3(
console.log(
"[HypaV3] After recent memory selection:",
"\nSummary Count:",
"\nSummary Count: ",
selectedRecentSummaries.length,
"\nSummaries:",
"\nSummaries: ",
selectedRecentSummaries,
"\nReserved Recent Memory Tokens:",
"\nReserved Recent Memory Tokens: ",
reservedRecentMemoryTokens,
"\nConsumed Recent Memory Tokens:",
"\nConsumed Recent Memory Tokens: ",
consumedRecentMemoryTokens
);
}
@@ -553,7 +556,7 @@ export async function hypaMemoryV3(
reservedSimilarMemoryTokens += unusedRecentTokens;
console.log(
"[HypaV3] Additional available token space for similar memory:",
"\nFrom recent:",
"\nFrom recent: ",
unusedRecentTokens
);
}
@@ -617,23 +620,23 @@ export async function hypaMemoryV3(
while (summarizationFailures < maxSummarizationFailures) {
console.log(
"[HypaV3] Attempting summarization:",
"\nAttempt:",
"\nAttempt: ",
summarizationFailures + 1,
"\nTarget:",
"\nTarget: ",
recentChats
);
const summarizeResult = await summarize(stringifiedRecentChats);
if (!summarizeResult.success) {
console.log("[HypaV3] Summarization failed:", summarizeResult.data);
console.log("[HypaV3] Summarization failed: ", summarizeResult.data);
summarizationFailures++;
if (summarizationFailures >= maxSummarizationFailures) {
return {
currentTokens,
chats,
error: "[HypaV3] Summarization failed after maximum retries",
error: `[HypaV3] Summarization failed after maximum retries: ${summarizeResult.data}`,
memory: toSerializableHypaV3Data(data),
};
}
@@ -654,7 +657,7 @@ export async function hypaMemoryV3(
);
}
console.log("[HypaV3] Similarity corrected");
console.log("[HypaV3] Similarity corrected.");
break;
}
@@ -675,11 +678,13 @@ export async function hypaMemoryV3(
/*
console.log(
"[HypaV3] Trying to add similar summary:",
"\nSummary Tokens:",
"\nSummary Tokens: ",
summaryTokens,
"\nReserved Tokens:",
"\nConsumed Similar Memory Tokens: ",
consumedSimilarMemoryTokens,
"\nReserved Tokens: ",
reservedSimilarMemoryTokens,
"\nWould exceed:",
"\nWould exceed: ",
summaryTokens + consumedSimilarMemoryTokens > reservedSimilarMemoryTokens
);
*/
@@ -689,7 +694,7 @@ export async function hypaMemoryV3(
reservedSimilarMemoryTokens
) {
console.log(
`[HypaV3] Stopping similar memory selection: would exceed reserved tokens (${consumedSimilarMemoryTokens} + ${summaryTokens} > ${reservedSimilarMemoryTokens})`
`[HypaV3] Stopping similar memory selection: consumedSimilarMemoryTokens(${consumedSimilarMemoryTokens}) + summaryTokens(${summaryTokens}) > reservedSimilarMemoryTokens(${reservedSimilarMemoryTokens})`
);
break;
}
@@ -702,13 +707,13 @@ export async function hypaMemoryV3(
console.log(
"[HypaV3] After similar memory selection:",
"\nSummary Count:",
"\nSummary Count: ",
selectedSimilarSummaries.length,
"\nSummaries:",
"\nSummaries: ",
selectedSimilarSummaries,
"\nReserved Similar Memory Tokens:",
"\nReserved Similar Memory Tokens: ",
reservedSimilarMemoryTokens,
"\nConsumed Similar Memory Tokens:",
"\nConsumed Similar Memory Tokens: ",
consumedSimilarMemoryTokens
);
}
@@ -731,11 +736,11 @@ export async function hypaMemoryV3(
reservedRandomMemoryTokens += unusedRecentTokens + unusedSimilarTokens;
console.log(
"[HypaV3] Additional available token space for random memory:",
"\nFrom recent:",
"\nFrom recent: ",
unusedRecentTokens,
"\nFrom similar:",
"\nFrom similar: ",
unusedSimilarTokens,
"\nTotal added:",
"\nTotal added: ",
unusedRecentTokens + unusedSimilarTokens
);
@@ -766,13 +771,13 @@ export async function hypaMemoryV3(
console.log(
"[HypaV3] After random memory selection:",
"\nSummary Count:",
"\nSummary Count: ",
selectedRandomSummaries.length,
"\nSummaries:",
"\nSummaries: ",
selectedRandomSummaries,
"\nReserved Random Memory Tokens:",
"\nReserved Random Memory Tokens: ",
reservedRandomMemoryTokens,
"\nConsumed Random Memory Tokens:",
"\nConsumed Random Memory Tokens: ",
consumedRandomMemoryTokens
);
}
@@ -802,19 +807,19 @@ export async function hypaMemoryV3(
console.log(
"[HypaV3] Final memory selection:",
"\nSummary Count:",
"\nSummary Count: ",
selectedSummaries.length,
"\nSummaries:",
"\nSummaries: ",
selectedSummaries,
"\nReal Memory Tokens:",
"\nReal Memory Tokens: ",
realMemoryTokens,
"\nAvailable Memory Tokens:",
"\nAvailable Memory Tokens: ",
availableMemoryTokens
);
if (currentTokens > maxContextTokens) {
throw new Error(
`[HypaV3] Unexpected input token count:\nCurrent Tokens:${currentTokens}\nMax Context Tokens:${maxContextTokens}`
`[HypaV3] Unexpected error: input token count (${currentTokens}) exceeds max context size (${maxContextTokens})`
);
}
@@ -829,11 +834,11 @@ export async function hypaMemoryV3(
console.log(
"[HypaV3] Exiting function:",
"\nCurrent Tokens:",
"\nCurrent Tokens: ",
currentTokens,
"\nAll chats, including memory prompt:",
"\nAll chats, including memory prompt: ",
newChats,
"\nMemory Data:",
"\nMemory Data: ",
data
);