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