feat: add lastSelectedSummaries property to store selected memory indices
This commit is contained in:
@@ -332,6 +332,7 @@
|
||||
DBState.db.characters[$selectedCharID].chatPage
|
||||
].hypaV3Data = {
|
||||
summaries: [],
|
||||
lastSelectedSummaries: [],
|
||||
};
|
||||
} else {
|
||||
showHypaV3Alert();
|
||||
|
||||
@@ -1113,6 +1113,7 @@
|
||||
onclick={() => {
|
||||
DBState.db.characters[$selectedCharID].chats[DBState.db.characters[$selectedCharID].chatPage].hypaV3Data ??= {
|
||||
summaries: [],
|
||||
lastSelectedSummaries: [],
|
||||
}
|
||||
showHypaV3Alert()
|
||||
}}
|
||||
|
||||
@@ -24,6 +24,7 @@ interface Summary {
|
||||
|
||||
interface HypaV3Data {
|
||||
summaries: Summary[];
|
||||
lastSelectedSummaries?: number[];
|
||||
}
|
||||
|
||||
export interface SerializableHypaV3Data {
|
||||
@@ -32,6 +33,7 @@ export interface SerializableHypaV3Data {
|
||||
chatMemos: string[];
|
||||
isImportant: boolean;
|
||||
}[];
|
||||
lastSelectedSummaries?: number[];
|
||||
}
|
||||
|
||||
interface SummaryChunk {
|
||||
@@ -55,6 +57,7 @@ function isSubset(subset: Set<string>, superset: Set<string>): boolean {
|
||||
|
||||
function toSerializableHypaV3Data(data: HypaV3Data): SerializableHypaV3Data {
|
||||
return {
|
||||
...data,
|
||||
summaries: data.summaries.map((summary) => ({
|
||||
...summary,
|
||||
chatMemos: [...summary.chatMemos],
|
||||
@@ -64,6 +67,7 @@ function toSerializableHypaV3Data(data: HypaV3Data): SerializableHypaV3Data {
|
||||
|
||||
function toHypaV3Data(serialData: SerializableHypaV3Data): HypaV3Data {
|
||||
return {
|
||||
...serialData,
|
||||
summaries: serialData.summaries.map((summary) => ({
|
||||
...summary,
|
||||
// Convert null back to undefined (JSON serialization converts undefined to null)
|
||||
@@ -288,6 +292,7 @@ export async function hypaMemoryV3(
|
||||
// Load existing hypa data if available
|
||||
let data: HypaV3Data = {
|
||||
summaries: [],
|
||||
lastSelectedSummaries: [],
|
||||
};
|
||||
|
||||
if (room.hypaV3Data) {
|
||||
@@ -398,8 +403,8 @@ export async function hypaMemoryV3(
|
||||
i,
|
||||
"\nRole:",
|
||||
chat.role,
|
||||
"\nContent:\n",
|
||||
chat.content,
|
||||
"\nContent:",
|
||||
"\n" + chat.content,
|
||||
"\nTokens:",
|
||||
chatTokens
|
||||
);
|
||||
@@ -543,9 +548,9 @@ export async function hypaMemoryV3(
|
||||
selectedRecentSummaries.length,
|
||||
"\nSummaries:",
|
||||
selectedRecentSummaries,
|
||||
"\nReserved Recent Memory Tokens: ",
|
||||
"\nReserved Tokens:",
|
||||
reservedRecentMemoryTokens,
|
||||
"\nConsumed Recent Memory Tokens: ",
|
||||
"\nConsumed Tokens:",
|
||||
consumedRecentMemoryTokens
|
||||
);
|
||||
}
|
||||
@@ -699,9 +704,9 @@ export async function hypaMemoryV3(
|
||||
selectedSimilarSummaries.length,
|
||||
"\nSummaries:",
|
||||
selectedSimilarSummaries,
|
||||
"\nReserved Similar Memory Tokens: ",
|
||||
"\nReserved Tokens:",
|
||||
reservedSimilarMemoryTokens,
|
||||
"\nConsumed Similar Memory Tokens: ",
|
||||
"\nConsumed Tokens:",
|
||||
consumedSimilarMemoryTokens
|
||||
);
|
||||
}
|
||||
@@ -763,9 +768,9 @@ export async function hypaMemoryV3(
|
||||
selectedRandomSummaries.length,
|
||||
"\nSummaries:",
|
||||
selectedRandomSummaries,
|
||||
"\nReserved Random Memory Tokens: ",
|
||||
"\nReserved Tokens:",
|
||||
reservedRandomMemoryTokens,
|
||||
"\nConsumed Random Memory Tokens: ",
|
||||
"\nConsumed Tokens:",
|
||||
consumedRandomMemoryTokens
|
||||
);
|
||||
}
|
||||
@@ -811,6 +816,11 @@ export async function hypaMemoryV3(
|
||||
);
|
||||
}
|
||||
|
||||
// Save last selected summaries
|
||||
data.lastSelectedSummaries = selectedSummaries.map((selectedSummary) =>
|
||||
data.summaries.findIndex((summary) => summary === selectedSummary)
|
||||
);
|
||||
|
||||
const newChats: OpenAIChat[] = [
|
||||
{
|
||||
role: "system",
|
||||
|
||||
Reference in New Issue
Block a user